public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport() { EDINouhinJouhouTouroku_Report rpt = new EDINouhinJouhouTouroku_Report(); rpt.Site = this.Site; return(rpt); }
protected override void PrintSec() { // レコード定義を行う try { if (dtDelivery == null || gdvDSKENDeliveryDetail.Rows.Count == 0) { return; } //xsdファイルを保存します。 //DB ---→ xsd ----→ クリスタルレポート //というデータの流れになります //dtEdi.TableName = ProID; //dtEdi.WriteXmlSchema("DataTable" + ProID + ".xsd"); //①保存した.xsdはプロジェクトに追加しておきます。 DialogResult ret; EDINouhinJouhouTouroku_Report Report = new EDINouhinJouhouTouroku_Report(); //DataTableのDetailOnが1かどうかで詳細セクションを印字するかどうかの設定を //している(セクションエキスパート) switch (PrintMode) { case EPrintMode.DIRECT: //Q208 印刷します。”はい”でプレビュー、”いいえ”で直接プリンターから印刷します。 ret = ediNHJ_bl.ShowMessage("Q208"); if (ret == DialogResult.Cancel) { return; } Report.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4; Report.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape; // 印字データをセット Report.SetDataSource(dtDelivery); Report.Refresh(); Report.SetParameterValue("txtImportDate", lblImportDateTime.Text.ToString()); Report.SetParameterValue("txtVendor", lblVendor.Text.ToString()); Report.SetParameterValue("txtSKENNouhinshoNO", gdvDSKENDelivery[(int)EColNo.SKENNouhinshoNO, selectRowIndex].Value.ToString()); if (ret == DialogResult.Yes) { //プレビュー var previewForm = new Viewer(); previewForm.CrystalReportViewer1.ShowPrintButton = true; previewForm.CrystalReportViewer1.ReportSource = Report; //previewForm.CrystalReportViewer1.Zoom(1); previewForm.ShowDialog(); } else { int marginLeft = 360; CrystalDecisions.Shared.PageMargins margin = Report.PrintOptions.PageMargins; margin.leftMargin = marginLeft; // mmの指定をtwip単位に変換する margin.topMargin = marginLeft; margin.bottomMargin = marginLeft; //mmToTwip(marginLeft); margin.rightMargin = marginLeft; Report.PrintOptions.ApplyPageMargins(margin); // プリンタに印刷 Report.PrintToPrinter(0, false, 0, 0); } break; case EPrintMode.PDF: if (ediNHJ_bl.ShowMessage("Q204") != DialogResult.Yes) { return; } string filePath = ""; if (!ShowSaveFileDialog(InProgramNM, out filePath)) { return; } // 印字データをセット Report.SetDataSource(dtDelivery); Report.Refresh(); bool result = OutputPDF(filePath, Report); //PDF出力が完了しました。 ediNHJ_bl.ShowMessage("I202"); break; } } finally { } //更新後画面そのまま //detailControls[0].Focus(); }