2

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

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.rptFlowRangeSummarySystem.Drawing.Printing.PrintDocument

4

1 回答 1

0

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

这也假设您有这样声明的事件

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


CrystalReportPrintPreviewForm crystalReportPrintPreview = 
       new CrystalReportPrintPreviewForm(crtrptFlowRangeSummary);
crystalReportPrintPreview.ShowDialog();
于 2012-08-17T13:36:14.060 回答