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