Пример #1
0
        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();
        }