ASP.NETクリスタルレポート印刷機能実装コード
1472 ワード
1.IEの印刷でwindowを呼び出す.print()ですが、この方法はページにレポートがあり、他のコントロールがある場合は区別できず、レポートの内容だけを印刷する目的を達成できません.
2.自作印刷コード
コードは次のとおりです.
ここで「プリンタ名」:ネットワークプリンタの場合は、プリンタ名の前に「\マシン名」を付ける.ローカルプリンタは、DropDownListコントロールに表示してユーザーに選択させることもできます.
この方法では、レポートの内容のみを印刷することができるが、プリンタ名を指定しなければならないという欠点がある.ローカルプリンタならまだしも、列挙してユーザに選択させることができる.しかし、ネットワークプリンタであれば、面倒なようですが、ネットワークプリンタをユーザーに選択させる方法や、デフォルトのネットワークプリンタを自動的に選択する方法が分かりません.
3.PDFまたはEXCELまたはその他の形式のファイル印刷にエクスポートする.サンプルコードは次のとおりです.
レポート名myrpt=newレポート名()
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();