最近年底,我的工作相对少点。就学一些东西吧,上个项目用的Grid++做报表工具。主要是套打发票时,调试花的时间比较长,其实,最终还是打印机的原因吧,不同的打印机,走纸的长短有时不一样,一开始用的四通的打印机,10年前一款吧,在Xp下始终套打走纸调不准,不过A4比较准的。后来,用Epson的,先是300K,再680K,不同的打印机,纸张也要调了不一样。有时候,觉得是Grid++的问题,想换一个工具,水晶报表是业内比较大的了。还有一点,就是以后可能要开发一个web项目,也要打印,用Grid++也没问题,现在5.0版本,免费的也只是预览时,多一个别人的logo标志,打印时,就没有了,其实也是挺方便的,给用户多了一个选择。用水晶报表,盗版的也可以用用,只是听说好像到5个并发用户就有问题。
把一些调试过程记录下来,便于以后查看吧。
1,网上找资料,首先找了个《VS2008水晶报表快速入门.chm》,看了下,果然很方便,把代码弄下来,sql server2005建个数据库,运行一下,效果不错。只不过点打印时,默认要先导出到PDF,这怎么行啊,用户肯定不爽。上网查了下,可以用ActiveX方式。PageLoad时 CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;调试结果始终出问题。什么服务不正常之类。
2,继续找资料,一大堆关于PrintControl.cab的信息,按照说明,在web.config中加了
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://localhost:3003/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>
不过,还是不行,可能是版本号不对。后来,东找西找,还有另一种方法,就是把这个cab解压,里面有个dll,让web项目引用这个dll,试了下,果然,调试没问题了。可以直接选打印机打印了。
3,项目总归要发布的,试一下发布吧,结果,图标没有了,以为发布的不全,什么资源文件没引用进来。这一块搞死了,病急乱投医,把Vs自带的水晶报表运行时去掉,加装专门的水晶报表运行时。结果还是不行。找个半天,原来是要把
C:\Inetpub\wwwroot\下面的aspnet_client一同复制到发布的程序目录。打开这个目录,一层一层进去aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer4,都在这里,这里有要的图标,打印过程中的窗口页面。复制到发布目录,大功告成。
当然有人指导,你就会很容易,没有人,探索的过程,其实你也能学到一些别的东西。
如果VS自带的没装,可以装CRRedist2008_x86.msi,17点几M,是for 2008的。
如果你部署到目标机,可以直接装CRRuntime_12_0_mlb.msi,专门.net 2.0的水晶报表的运行时,40几M,安装时有一步输入ProductID,网上还真没找到,不过别人说可以直接跳过的,我也是直接Next跳过的。
这里一定要注意版本号。可以通过官方网站查的。
http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=56787567
CR 10.5 (VS .NET 2008) | 10.5.3700.0 | CRRedist2008_ia64.msi (64 bit Itanium) | Download Link | WIN XP, WIN 2003, WIN 2008, WIN Vista, WIN 7 | 2.0, 3.5 |
CRRedist2008_x64.msi (64 bit Intel) | Download Link | WIN XP, WIN 2003, WIN 2008, WIN Vista, WIN 7 | 2.0, 3.5 | ||
CRRedist2008_x86.msi (BootStrapper) | Download Link | WIN XP, WIN 2003, WIN 2008, WIN Vista, WIN 7 | 2.0, 3.5 |
2008里用的版本是 10.5,2005用的是10.2,所以一定要注意版本。
这些问题解决了,其它水晶报表的问题,可以去研究了,主要就是报表模板的设计,推模式,拉模式的理解。
当然,我主要还是担心版权,万一并发用户多于5个怎么办,真要买license,估计费用也比较高,网上也看到了一些说通过修改注册表里某个子项,不过,我没找到那个子项。 用Grid++,还是不太担心的,最多买个license,几千块钱吧。 其实Grid++也挺方便的,我用于两个项目过了。
到底用什么,等项目开始时再说吧,多一种选择,总比只会一种方法的好。