直接打印asp.net报表查看器

时间:2012-05-05 11:22:10

标签: c# asp.net visual-studio-2010 reportviewer

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

Is it possible to print rdlc report automatically?

请帮帮我, &安培;谢谢。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

答案 2 :(得分: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的浏览器