0

我在我的网络应用程序中使用 .rdlc 报告,将报告导出为 pdf 并打印效果很好,但现在我想自动打印报告(即点击打印按钮。)

Is it possible to print rdlc report automatically?

请帮助我,谢谢。

4

3 回答 3

1

是否可以自动打印 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

于 2012-05-05T11:47:50.767 回答
1

实际上,当您在 Internet Explorer 中打开 rdlc 报告时,报告必须有一个按钮来执行该打印作业。

于 2012-05-07T12:46:00.147 回答
0

如果您的目标是启用 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>

http://blogs.msdn.com/b/selvar/archive/2011/04/09/invoking-the-print-dialog-for-report-viewer-2010-control-using-the-javascript-api.aspx

请注意,此解决方案不适用于不支持 Active-X 的浏览器

于 2013-02-20T11:16:06.303 回答