ASP.NET下的水晶報表列印,據我所知有以下幾種辦法可以列印:
1.用IE的列印.調用window.print(),但這種辦法對於頁面上即有報表,又有其它控制項情況就無法區分,不能達到只列印報表內容的目的;
2.自已寫列印代碼.
代碼如下:
CrystalDecisions.CrystalReports.Engine.ReportDocument rd=new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rd.Load(Server.MapPath("Crystalreport1.rpt"));
rd.PrintOptions.PrinterName="印表機名稱";
rd.PrintToPrinter(1,true,0,0);
其中"印表機名稱":如果是網路印表機,在印表機名稱前面要加上"\\機器名".本機印表機也可以顯示在DropDownList控制項裡讓使用者選擇:
foreach(string iprt in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
this.DropDownList1.Items.Add(iprt);
這個辦法可以只列印報表中的內容,缺點就是必須指明印表機名稱.如果是本機印表機還好辦,可以枚舉出來,讓使用者選擇.但如果是網路印表機,似乎就有些麻煩,我還不知道怎麼把網路印表機列出來讓使用者選擇,或者自動選預設的網路印表機.
3.匯出到PDF或EXCEL或其它格式的檔案列印.範例程式碼如下:
報表名稱 myrpt=new 報表名稱();
myrpt.ExportOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
myrpt.ExportOptions.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
CrystalDecisions.Shared.DiskFileDestinationOptions opt=new CrystalDecisions.Shared.DiskFileDestinationOptions();
opt.DiskFileName=@"檔案名稱";
myrpt.ExportOptions.DestinationOptions =opt;
myrpt.Export();
另外給你些參考:
https://secure.crystaldecisions.com/product_details.asp?catalog_name=CD&category_name=CR%20Advanced%20Upgrade&cookie%5Ftest=1
http://www.crystaldecisions.com/products/dev_zone/
參考資料:http://www.5iaspx.com