昨天发现Web中,ReportViewer居然不能打印RDLC报表(原因是没有打印按钮-_-!!!),今天上网搜索了下,看了很多帖子包括蜡人张关于RDLC打印的文章(http://www.cnblogs.com/waxdoll/archive/2006/09/13/rdlc-report-in-web-application.html),答案是不可以,,,郁闷。。
看了ReportViewer的前台代码,发现里面有个Frame,于是决定绕个小弯,将ReportViewer直接打印出来,不就可以实现打印RDLC报表了么。。。结果。。屡次试验失败,将代码保存为本地文件一看,,,原来Frame里面还有个Frame。。遂又试验,成功!
代码如下:
function RdlcPrint(RDLCName) //打印函数
{
var RdlcFrame=window.frames['ReportFrame'+RDLCName].frames['report']//两个Frame嵌套。。
RdlcFrame.focus();//此句必须
RdlcFrame.print();//打印
}
function Button2_onclick() //实现打印
{
RdlcPrint('ReportViewer1');
}
________________________________________________
注意:此方法还有很多不足之处,比如不能分页,打印效果不十分清晰等等,还需按要求改进。