我在SSRS 2005中有报告,我正在使用远程报告,在IE中,打印按钮显示,但在Firefox和Chrome中,打印按钮不显示。
我的报告显示在jquery UI对话框中,所以我不能只执行window.print,我的报告在模态中呈现得很好。
我需要能够向reportviewer发出打印命令,就像在控件内部一样,但只能在firefox和chrome中执行。
我深入研究了报表查看器的标记,发现了这段代码。我试图手动将其注入到报表查看器中,但没有成功。
<table id="reportViewer_ctl01_ctl07_ctl00_ctl00" onclick="document.getElementById('reportViewer').ClientController.LoadPrintControl();return false;" onmouseover="this.Controller.OnHover();" onmouseout="this.Controller.OnNormal();" title="Print" style="display:none;">
<script type="text/javascript">
document.getElementById('reportViewer_ctl01_ctl07_ctl00_ctl00').Controller = new ReportViewerHoverButton("reportViewer_ctl01_ctl07_ctl00_ctl00", false, "", "", "", "#ECE9D8", "#DDEEF7", "#99BBE2", "1px #ECE9D8 Solid", "1px #336699 Solid", "1px #336699 Solid");
</script><tr>
<td><input type="image" name="reportViewer$ctl01$ctl07$ctl00$ctl00$ctl00" title="Print" src="/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.4402&Name=Microsoft.Reporting.WebForms.Icons.Print.gif" alt="Print" style="height:16px;width:16px;padding:2px;" /></td>
</tr>
</table>
有什么想法吗?
4条答案
按热度按时间chhkpiq41#
下面是我创建一个伪打印按钮的过程,该按钮模拟Internet Explorer中Report Viewer的打印功能,以供其他浏览器使用。
请注意,下面的解决方案需要JQuery。不需要安装ActiveX。
步骤如下。
请务必将版本号更改为您的RS版本。如果您在HTML代码方面遇到问题,您可以使用Internet Explorer打开页面,检查打印元素并复制它。
首先我们创建了一个变量来检测浏览器是否是IE浏览器。
通过使用Reserved.ReportViewerWebControl.axd中的_getInternalViewer()方法,我们可以请求PDF版本的报告作为请求,该请求最初在单击导出按钮时检索。
然后,我们将contentDisposition变量赋值为'AlwaysInline',因为我们希望以PDF格式请求报告,而不是以附件格式,而是以可以在html元素中呈现的PDF格式。https://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.reportviewer.exportcontentdisposition.aspx
src_new变量用我们的新请求'AlwaysInline'替换默认的EXPORT按钮内容处理请求(默认情况下设置为AlwaysAttachment)。
接下来,我们将iframe的src设置为新的url,当加载该url时,将从reportviewer显示PDF格式的报告。
iframe中的链式命令包括隐藏pdf元素、呈现它以及在加载完pdf后立即打印它。
我希望有人会发现这段代码有用,因为我很难在网上找到一个像样的解决方案,这是我在做了一些研究后想出的。
x6yk4ghg2#
遗憾的是,打印按钮在IE以外的浏览器中不受支持。
我想你意识到这一点,并做了变通办法,我们还没有拿出一个体面的解决方案,以及。虽然我们的大多数用户喜欢直接从Excel打印,所以我们允许他们导出文件,然后他们做打印。
这个SO问题是一个很好的链接:
SQL Reporting Services - Print Button not shown in Mozilla
oiopk7p53#
请查找具有Firefox和Chrome打印功能的打印图标的SSRS报告代码:
kmbjn2e34#
我做了一些修改,关于上述和它的工作很好,我在Chrome和Firefox。