【问题标题】:How to do a Print Preview in C# crystal reports visual studio 2010如何在 C# Crystal Reports Visual Studio 2010 中进行打印预览
【发布时间】:2012-08-17 13:12:15
【问题描述】:

我有一个应用程序,它有两个选项,打印报告或预览报告。我有以下代码来打印报告-

FCPMS.Reports.rptPanelStudy crtrptPanelStudy = new FCPMS.Reports.rptPanelStudy();
crtrptPanelStudy.FileName = tReportFileName; -(refers to the file location on the  computer)
crtrptPanelStudy.DataDefinition.FormulaFields["PANELNUM"].Text = "'5'";
foreach (Table tblTable in crtrptPanelStudy.Database.Tables)
{
    tiInfo = tblTable.LogOnInfo;
    tiInfo.ConnectionInfo = ciConnection;
    tblTable.ApplyLogOnInfo(tiInfo);
}

crtrptPanelStudy.PrintToPrinter(1, false, 0, 0);

这可以正常工作并打印报告。但是我很难找到类似的代码来简单地使用此报告打开打印机预览。有谁知道我怎么能做到这一点?我所需要的只是在没有实际打印报告的情况下弹出打印机预览。任何帮助将不胜感激。

我也尝试使用打印对话框 -

PrintPreviewDialog printpreview = new PrintPreviewDialog();
printpreview.Document = crtrptFlowRangeSummary;
printpreview.ShowDialog(); 

但是在第二行得到了这个错误

错误 35 无法将类型 FCPMS.Reports.rptFlowRangeSummary 隐式转换为 System.Drawing.Printing.PrintDocument

【问题讨论】:

  • 你看过 PrintPreviewDialog 吗? msdn.microsoft.com/en-us/library/…
  • 是的,但它不起作用。有关详细信息,请参阅我编辑的问题。
  • 您需要 CrystalReportPrintPreviewForm
  • 我将发布一个示例,让我知道它是否适合您。
  • 需要看看你是如何实际创建报告实例的,以防其他人想插话并提供一些建议

标签: c# visual-studio-2010 printing crystal-reports-2010


【解决方案1】:

我不确定你是如何实现或声明 crtrptFlowRangeSummary 的,但你可以试试下面的代码。

这也是假设你有这样声明的事件

private void CrystalReportPrintPreviewForm_Load(object sender, EventArgs e)
{
    if(crtrptFlowRangeSummary !=null)
    crystalReportViewer1.ReportSource = crtrptFlowRangeSummary;
}


CrystalReportPrintPreviewForm crystalReportPrintPreview = 
       new CrystalReportPrintPreviewForm(crtrptFlowRangeSummary);
crystalReportPrintPreview.ShowDialog();

【讨论】:

  • 我没有那个活动。它在顶部声明(参见编辑的问题代码),然后代码在 PrintReport 函数中。
  • 看看这篇文章应该会提供一些额外的帮助stackoverflow.com/questions/6633062/…
  • 必须为此类'CrystalReportPrintPreviewForm'添加什么参考
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多