B/S软件做好了,接下来开始做报表了,目前想到两种方案:
1.用类似于水晶报表之类的第三方控件(我用的是devexpress),好处是功能强大,而且也可以"跨平台",在linux下浏览没问题,缺点是报表和程序无法分离(至少我没有做到),当增加/删除/修改报表后,要把整个网站重新上传.
2.用execl,优点是程序和报表分离,在本地编辑好EXCEL模版,上传到服务器(我用二进制方式保存到数据库里面),报表时,由服务器把模版取出,按约定的接口,把实际数据写入,发送给浏览器,这样可以通过程序更改报表而无须发布网站,缺点是客户端需要安装office,在linux下无法打开
不知道还有没有其他办法,最好是报表模版和程序分离
第二种方式,把生成的报表,生成一份对应的html. 就像在excel中可以把文件另存为网页形式,然后用传送给客户端。
我试试看,但打印恐怕无法自动分页了吧?
理论上虽然如此,其实一般不必把“客户端需要安装Excel”看做多么严重的问题。这年头嘴上最恶毒的反微软的人也还是要使用微软的东西的。你可以有两个报表,一个是Excel,一个是最简单的html,第二个只是作为补充而已。如果做得好,其实在提供Excel报表的时候还应该同时提供pdf报表。
我已经按照第二中方案完成了,同事解决了EXCEL不能完全退出的BUG,主要代码如下:
public clsReport(System.Web.UI.Page p_Page, DataRow p_TitleRow, DataTable p_Table, string p_ReportId, bool p_AddBorder)
{
if (p_Table == null || p_Table.Rows.Count == 0)
return;//无数据
Process[] P0,
select top 12 * from Product where [id] not in (select top 12 [id] from Product)
这样可以分页,但是我在后面想加个条件
select top 12 * from Product where [id] not in (select top 12 [id] from Prod ......
本人使用swfobject.js在本机可以正常播放,但发布到win2003服务器就无法播放,网上找了许多都说需要配置MIME类型,我配置了也没有成功,请高手指点一下
服务器是否支持,路径是否正确
有的服务器可能不支持
......