我在我的网络应用程序中使用 .rdlc 报告,将报告导出为 pdf 并打印效果很好,但现在我想自动打印报告(即点击打印按钮。)
Is it possible to print rdlc report automatically?
请帮助我,谢谢。
我在我的网络应用程序中使用 .rdlc 报告,将报告导出为 pdf 并打印效果很好,但现在我想自动打印报告(即点击打印按钮。)
Is it possible to print rdlc report automatically?
请帮助我,谢谢。
是否可以自动打印 rdlc 报告?
如果你可以在页面上呈现它,你可以使用 javascript window.print(),它打印当前窗口。因此,正如 sinni800 所说,在单独的页面上呈现报告。
像这样的东西,
在包含其他内容的页面上添加此按钮:
<a href="javascript:window.open('/print-content.html','_blank');">print report</a>
打开窗口的第一个参数是带有报表查看器的页面,在该页面中,您可以在加载事件时开始打印,如下所示:
<body id="top" onload="window.print();">
rendered report here
</body>
但如果你问我最好坚持你目前的解决方案。
您可以将报告另存为 PDF 格式在磁盘上,使用 Javscript 打开它然后打印它,代码项目中有一个示例完全符合您的情况,正如我所了解的那样:
http://www.codeproject.com/Tips/376300/Custom-Print-functionality-for-Microsoft-Report-Vi
实际上,当您在 Internet Explorer 中打开 rdlc 报告时,报告必须有一个按钮来执行该打印作业。
如果您的目标是启用 Active-X 的浏览器(例如 IE),则以下解决方案应该可以工作:
<script language="javascript">
function PrintReport() {
var viewerReference = $find("ReportViewer1");
var stillonLoadState = viewerReference.get_isLoading();
if (!stillonLoadState ) {
var reportArea = viewerReference .get_reportAreaContentType();
if (reportArea == Microsoft.Reporting.WebFormsClient.ReportAreaContent.ReportPage) {
$find("ReportViewer1").invokePrintDialog();
}
}
}
</script>
请注意,此解决方案不适用于不支持 Active-X 的浏览器