在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); } |