最近在修改一批RDLC列印程式,修改完毕后UT时发现每次列印都卡在报表呈现时转圈圈出不来;如图一:
图一:
我检查aspx里面注册的RDLC组件是2010版本的,如图二:
图二:
我查了下微软的一些资料后说旧版本RDLC有些bug,将会在新版中解决,于是我从RDLC10.0.0.0到11.0.0.0再到12.0.0.0终于可以点击列印能正常列印出来了,UT通过了,SIT后也通过了;
但是每次更换RDLC组件版本超级烦人,每个列印程式的aspx页面都要修改,几十支程式,修改很繁琐;于是我到网络上和微软官网终于找到解决方法,就是把这些组件不需要到每个page aspx里面注册,只要在web.config注册一次所有列印程式都可以用;aspx列印时会取web.config里面RDLC注册的组件版本。
这是原来的aspx注册的RDLC组件,如图三:
图三:
现在只要删除图三注册的RDLC这行,然后打开web.config,配置如图四:
图四:只要放在system.web中间即可,节点是<pages><controls><add ...></controls></pages>
代码如下:
<system.web>
<pages theme ="QiQu" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" >
<controls>
<add assembly="Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" namespace="Microsoft.Reporting.WebForms" tagPrefix="rsweb"></add>
</controls>
</pages>
</system.web>
theme ="QiQu" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"这行代码是我们系统的一个皮肤框架依赖的。
就这样一次性搞定所有Page的RDLC组件注册;以后维护起来十分方便。
RDLC 12.0.0.0依赖的组件:
开发端电脑和服务器端电脑都要安装这两个组件:
RDLC 12.0.0.0,Report 2015组件:
https://download.csdn.net/download/xgt2010/10767473
SQL Reprot 2014组件:
SQL Reprot组件,该组件客户端列印时浏览器需要执行管理员权限安装该组件的证书,每个登录系统的账号下只要第一次执行安装证书后,在不需要安装了。
https://download.csdn.net/download/emirma/12076335