Web打印是比较麻烦的事情,一般打印控件都需要购买,价格也都不便宜。如果你做的项目小,很明显购买打印控件不是一件划算的事情。我最近帮朋友做了个小系统,需要实现web打印,开始下载了一个据说是破解的打印控件,安装的时候也有注册码,结果使用了三个月报表就不能打开了,真是郁闷啊!没有办法,只能重新做了,研究以后发现使用ActiveReport
for
.net来实现Web打印是非常方便的,为了方便注册我选用了5.1.0.158版本。在使用过程中出现了一些小问题,现在把它记录下来,希望能够给碰到同样问题的朋友做参考。
一、报错“在位置N处没有任何行”
这个问题是最郁闷的,困扰了我一下午。当绑定数据的时候如果同时绑定reportheader,detail,reportfooter预览的时候就会报“在位置N处没有任何行”的错误,把detail部分换为子报表也不行,最后发现要把reportfooter需要绑定的字段复制粘贴到reportherder里面(设置为隐藏)问题就解决了,例如:在reportfooter里有制单人、制单时间需要绑定,那么就把这两个textBox复制粘贴到reportheader里,OK!问题解决。不知道这是什么原因,估计是ActiveReport
for .net本身的BUG把。截图如下:
:
三、发布到服务器
开发完成以后需要发布到服务器,在服务器上安装ActiveReport for
.net以后需要设置IIS(添加.rpx,.ActiveReport,.ArCacheItem应用程序配置项),如何设置IIS我在这就不说了,网上可以查到。如果已经设置了IIS虚拟目录,在配置了应用程序配置项以后需要删除原来的虚拟目录重新建,否则报表也不能显示。另外注意:如果是在后台代码中调用打印页面需要指定arview2.cab的路径,不然打印预览的时候不会提示下载控件。代码如下: