如何在CrystalReportViewer控件中检测并打印当前钻取?

时间:2008-09-16 16:12:36

标签: crystal-reports

使用Business Objects的CrystalReportViewer控件时,如何检测并手动打印用户当前钻取的报表?您可以使用CrystalReportViewer的Print()方法自动打印,但我希望能够手动打印此报告。

可以打印CrystalReportViewer的主要ReportSource,但我需要知道用户已钻取的报告,然后手动打印该特定的向下钻取。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我不确定您使用的是哪个版本的Crystal Reports,但如果它是XIR2或更早版本,那么这是不可能的。我没有使用过新版本,所以我不能告诉你。我过去为解决这个问题所做的一件事就是让演练实际上完全链接到另一个报告。这取决于您的观看者实际查看报告的方式(通过胖客户端查看器,开发人员或Web门户),但这是否有效。祝你好运!

答案 1 :(得分:1)

检测:是的!

网页:

<CR:CrystalReportViewer ... 
    ondrill="CrystalReportViewer1_Drill" 
    ondrilldownsubreport="CrystalReportViewer1_DrillDownSubreport" />
代码背后的代码:

 protected void CrystalReportViewer1_Drill(object source, CrystalDecisions.Web.DrillEventArgs e)
 {
  //drill from graph to list of elements
 }
protected void CrystalReportViewer1_DrillDownSubreport(object source, CrystalDecisions.Web.DrillSubreportEventArgs e)
 {
   //drill from main report to subreports
 }

打印当前:否!

protected void CrystalReportViewer1_DrillDownSubreport(object source, CrystalDecisions.Web.DrillSubreportEventArgs e)
{
    reportDocument.OpenSubreport(e.NewSubreportName).ExportToHttpResponse(format, Response, true, title);
}

导出子报告会抛出“不允许子报告”的异常。

溶液

CrystalReportsViewer的按钮也适用于下钻......

<CR:CrystalReportViewer    HasExportButton="true" ....