在ASP.NET中水晶报表没有象在Windows Form中那样提供报表的导出和打印功能,需要我们自己动手添加代码来控制,下面给个DEMO:
导出:
myReport ReportDoc = new myReport();//表表的名称
private void btnExport_Click(object sender, System.EventArgs e)
{
CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions();
ReportDoc.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
switch (DropDownList1.SelectedItem.Text)
{
case "Rich Text (RTF)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.RichText;
DiskOpts.DiskFileName = "d:\\demo.rtf";
break;
case "Portable Document (PDF)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
DiskOpts.DiskFileName = "d:\\demo.pdf";
break;
case "MS Word (DOC)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;
DiskOpts.DiskFileName = "d:\\demo.doc";
break;
case "MS Excel (XLS)":
ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel;
DiskOpts.DiskFileName = "d:\\demo.xls";
break;
default:
break;
}
ReportDoc.ExportOptions.DestinationOptions = DiskOpts;
ReportDoc.Export();
}
打印:
private void btnPrint_Click(object sender, System.EventArgs e)
{
string strPrinterName; // 指定打印机名称
strPrinterName = @"Canon Bubble-Jet BJC-210SP";
PageMargins margins;// 设置打印页边距
margins = ReportDoc.PrintOptions.PageMargins;
margins.bottomMargin = 250;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 450;
ReportDoc.PrintOptions.ApplyPageMargins(margins);
ReportDoc.PrintOptions.PrinterName = strPrinterName;//应用打印机名称
// 打印报表.startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
ReportDoc.PrintToPrinter(1, false,0,0);
}