Esempio n. 1
0
        public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport()
        {
            Hacchuusho_Report rpt = new Hacchuusho_Report();

            rpt.Site = this.Site;
            return(rpt);
        }
        /// <summary>
        ///
        /// </summary>
        protected override void PrintSec()
        {
            // レコード定義を行う
            DataTable table = CheckData(out DataTable dtForUpdate);

            try
            {
                if (table == null)
                {
                    return;
                }
                //xsdファイルを保存します。

                //DB ---→ xsd ----→ クリスタルレポート

                //というデータの流れになります
                //table.TableName = ProID;
                //table.WriteXmlSchema("DataTable" + ProID + ".xsd");

                //①保存した.xsdはプロジェクトに追加しておきます。
                DialogResult      ret;
                Hacchuusho_Report Report = new Hacchuusho_Report();

                switch (PrintMode)
                {
                case EPrintMode.DIRECT:
                    if (StartUpKBN == "1")
                    {
                        ret = DialogResult.No;
                    }
                    else
                    {
                        //Q202 印刷します。”はい”でプレビュー、”いいえ”で直接プリンターから印刷します。
                        ret = bbl.ShowMessage("Q202");
                        if (ret == DialogResult.Cancel)
                        {
                            return;
                        }
                    }

                    // 印字データをセット
                    Report.SetDataSource(table);
                    if ((int)table.Rows[0]["InsatuShuruiKBN"] != 3)
                    {
                        ((CrystalDecisions.CrystalReports.Engine.LineObject)Report.ReportDefinition.ReportObjects["line1"]).LineColor = Color.White;
                        ((CrystalDecisions.CrystalReports.Engine.LineObject)Report.ReportDefinition.ReportObjects["line2"]).LineColor = Color.White;
                        ((CrystalDecisions.CrystalReports.Engine.LineObject)Report.ReportDefinition.ReportObjects["line3"]).LineColor = Color.White;
                        ((CrystalDecisions.CrystalReports.Engine.LineObject)Report.ReportDefinition.ReportObjects["line4"]).LineColor = Color.White;
                        ((CrystalDecisions.CrystalReports.Engine.LineObject)Report.ReportDefinition.ReportObjects["line6"]).LineColor = Color.White;
                        ((CrystalDecisions.CrystalReports.Engine.LineObject)Report.ReportDefinition.ReportObjects["line8"]).LineColor = Color.White;
                    }
                    Report.Refresh();

                    if (ret == DialogResult.Yes)
                    {
                        //プレビュー
                        var previewForm = new Viewer();
                        previewForm.CrystalReportViewer1.ShowPrintButton = true;
                        previewForm.CrystalReportViewer1.ReportSource    = Report;
                        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 (bbl.ShowMessage("Q204") != DialogResult.Yes)
                    {
                        return;
                    }
                    string filePath = "";
                    if (!ShowSaveFileDialog(InProgramNM, out filePath))
                    {
                        return;
                    }

                    // 印字データをセット
                    Report.SetDataSource(table);
                    Report.Refresh();

                    bool result = OutputPDF(filePath, Report);

                    //PDF出力が完了しました。
                    bbl.ShowMessage("I202");

                    break;
                }

                //ログ出力
                L_Log_Entity le = new L_Log_Entity();
                le.InsertOperator = this.InOperatorCD;
                le.Program        = this.InProgramID;
                le.PC             = this.InPcID;
                le.OperateMode    = null;
                le.KeyItem        = this.ScHacchuuNO.TxtCode.Text;
                hsbl.L_Log_Insert(le);

                if ((int)table.Rows[0]["InsatuShuruiKBN"] == 4)
                {
                    //更新処理
                    hsbl.PRC_Hacchuusho_Register(this.InOperatorCD, this.CboStoreCD.SelectedValue.ToString(), this.ScStaff.TxtCode.Text, this.ScVendor.TxtCode.Text, this.ScHacchuuNO.TxtCode.Text);
                }
            }
            finally
            {
                DeleteExclusive(dtForUpdate);
            }

            //更新後画面そのまま
            detailControls[1].Focus();
        }