예제 #1
0
        /// <summary>
        /// printReport
        /// PDFを出力する
        /// </summary>
        private void printReport()
        {
            // データ検索用
            List <string> lstSearchItem = new List <string>();

            // データチェック
            if (!blnDataCheck())
            {
                return;
            }

            // 検索するデータをリストに格納
            lstSearchItem.Add(txtYear.Text);
            lstSearchItem.Add(lsTantoF.CodeTxtText);
            lstSearchItem.Add(lsTantoT.CodeTxtText);

            // ビジネス層のインスタンス生成
            C1530_TantouUriageArariNenkan_B uriagePrint_B = new C1530_TantouUriageArariNenkan_B();

            try
            {
                this.Cursor = Cursors.WaitCursor;

                // 検索実行
                DataTable dtUriage = uriagePrint_B.getUriage(lstSearchItem);

                this.Cursor = Cursors.Default;

                // 対象データがある場合
                if (dtUriage != null && dtUriage.Rows.Count > 0)
                {
                    // 印刷ダイアログ
                    Common.Form.PrintForm pf = new Common.Form.PrintForm(this, "", CommonTeisu.SIZE_A3, CommonTeisu.YOKO);
                    pf.ShowDialog(this);

                    // プレビューの場合
                    if (this.printFlg == CommonTeisu.ACTION_PREVIEW)
                    {
                        this.Cursor = Cursors.WaitCursor;

                        // PDF作成
                        String strFile = uriagePrint_B.dbToPdf(dtUriage, lstSearchItem);

                        this.Cursor = Cursors.Default;

                        // プレビュー
                        pf.execPreview(strFile);
                    }
                    // 一括印刷の場合
                    else if (this.printFlg == CommonTeisu.ACTION_PRINT)
                    {
                        this.Cursor = Cursors.WaitCursor;

                        // PDF作成
                        String strFile = uriagePrint_B.dbToPdf(dtUriage, lstSearchItem);

                        this.Cursor = Cursors.Default;

                        // 一括印刷
                        pf.execPrint(null, strFile, CommonTeisu.SIZE_A3, CommonTeisu.YOKO, true);
                    }

                    pf.Dispose();
                }
                else
                {
                    this.Cursor = Cursors.Default;

                    // メッセージボックスの処理、対象データがない場合のウィンドウ(OK)
                    BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "対象のデータはありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION);
                    basemessagebox.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;

                // エラーロギング
                new CommonException(ex);

                // メッセージボックスの処理、PDF作成失敗の場合のウィンドウ(OK)
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "印刷が失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();

                return;
            }
        }
예제 #2
0
        /// <summary>
        /// setUriage
        /// データグリッドビューにデータを表示
        /// </summary>
        private void setUriage()
        {
            // データ検索用
            List <string> lstSearchItem = new List <string>();

            // データチェック
            if (!blnDataCheck())
            {
                return;
            }

            // 検索するデータをリストに格納
            lstSearchItem.Add(txtYear.Text);
            lstSearchItem.Add(lsTantoF.CodeTxtText);
            lstSearchItem.Add(lsTantoT.CodeTxtText);

            // ビジネス層のインスタンス生成
            C1530_TantouUriageArariNenkan_B uriagePrint_B = new C1530_TantouUriageArariNenkan_B();

            try
            {
                // 検索実行
                DataTable dtUriage = uriagePrint_B.getUriage(lstSearchItem);
                int       rowsCnt  = dtUriage.Rows.Count;

                // 対象データがある場合
                if (dtUriage != null && rowsCnt > 0)
                {
                    // 総合計
                    DataRow   drGoukei   = dtUriage.NewRow();
                    DataTable dt         = null;
                    decimal[] decKingaku = uriagePrint_B.getGoukeiKingaku(dtUriage, ref dt);

                    // 総合計行へ値をセット
                    drGoukei["担当者名"] = "総合計";

                    for (int month = 1; month <= 6; month++)
                    {
                        drGoukei["売上額" + month.ToString()] = decKingaku[month * 3 - 3];
                        drGoukei["粗利額" + month.ToString()] = decKingaku[month * 3 - 2];
                        if (decKingaku[month * 3 - 1] == 0)
                        {
                            drGoukei["前年比率" + month.ToString()] = 0;
                        }
                        else
                        {
                            drGoukei["前年比率" + month.ToString()] = decKingaku[month * 3 - 2] / decKingaku[month * 3 - 1];
                        }
                    }
                    drGoukei["上期売上額"] = decKingaku[18];
                    drGoukei["上期粗利額"] = decKingaku[19];
                    if (decKingaku[20] == 0)
                    {
                        drGoukei["上期前年比率"] = 0;
                    }
                    else
                    {
                        drGoukei["上期前年比率"] = decKingaku[19] / decKingaku[20];
                    }

                    for (int month = 7; month <= 12; month++)
                    {
                        drGoukei["売上額" + month.ToString()] = decKingaku[month * 3];
                        drGoukei["粗利額" + month.ToString()] = decKingaku[month * 3 + 1];
                        if (decKingaku[month * 3 + 2] == 0)
                        {
                            drGoukei["前年比率" + month.ToString()] = 0;
                        }
                        else
                        {
                            drGoukei["前年比率" + month.ToString()] = decKingaku[month * 3 + 1] / decKingaku[month * 3 + 2];
                        }
                    }
                    drGoukei["下期売上額"] = decKingaku[39];
                    drGoukei["下期粗利額"] = decKingaku[40];
                    if (decKingaku[41] == 0)
                    {
                        drGoukei["上期前年比率"] = 0;
                    }
                    else
                    {
                        drGoukei["下期前年比率"] = decKingaku[40] / decKingaku[41];
                    }

                    // グループ合計
                    int[] groupRowsCnt = null;
                    int   groupsCnt    = 0;
                    int   groupRowCnt  = 0;
                    decimal[,] decKingakuGroup = uriagePrint_B.getGroupKingaku(dtUriage, ref groupRowsCnt, ref groupsCnt);

                    // グループ名を取得
                    DataView  dv      = new DataView(dtUriage);
                    DataTable dtGroup = dv.ToTable(true, "グループ名");

                    for (int cnt = 0; cnt < groupsCnt; cnt++)
                    {
                        DataRow drGroupGoukei = dtUriage.NewRow();

                        // 合計行へ値をセット
                        drGroupGoukei["担当者名"] = dtGroup.Rows[cnt][0].ToString();

                        for (int month = 1; month <= 6; month++)
                        {
                            drGroupGoukei["売上額" + month.ToString()] = decKingakuGroup[cnt, month * 3 - 3];
                            drGroupGoukei["粗利額" + month.ToString()] = decKingakuGroup[cnt, month * 3 - 2];
                            if (decKingakuGroup[cnt, month * 3 - 1] == 0)
                            {
                                drGroupGoukei["前年比率" + month.ToString()] = 0;
                            }
                            else
                            {
                                drGroupGoukei["前年比率" + month.ToString()] = decKingakuGroup[cnt, month * 3 - 2] / decKingakuGroup[cnt, month * 3 - 1];
                            }
                        }
                        drGroupGoukei["上期売上額"] = decKingakuGroup[cnt, 18];
                        drGroupGoukei["上期粗利額"] = decKingakuGroup[cnt, 19];
                        if (decKingakuGroup[cnt, 20] == 0)
                        {
                            drGroupGoukei["上期前年比率"] = 0;
                        }
                        else
                        {
                            drGroupGoukei["上期前年比率"] = decKingakuGroup[cnt, 19] / decKingakuGroup[cnt, 20];
                        }

                        for (int month = 7; month <= 12; month++)
                        {
                            drGroupGoukei["売上額" + month.ToString()] = decKingakuGroup[cnt, month * 3];
                            drGroupGoukei["粗利額" + month.ToString()] = decKingakuGroup[cnt, month * 3 + 1];
                            if (decKingakuGroup[cnt, month * 3 + 2] == 0)
                            {
                                drGroupGoukei["前年比率" + month.ToString()] = 0;
                            }
                            else
                            {
                                drGroupGoukei["前年比率" + month.ToString()] = decKingakuGroup[cnt, month * 3 + 1] / decKingakuGroup[cnt, month * 3 + 2];
                            }
                        }
                        drGroupGoukei["下期売上額"] = decKingakuGroup[cnt, 39];
                        drGroupGoukei["下期粗利額"] = decKingakuGroup[cnt, 40];
                        if (decKingakuGroup[cnt, 41] == 0)
                        {
                            drGroupGoukei["上期前年比率"] = 0;
                        }
                        else
                        {
                            drGroupGoukei["下期前年比率"] = decKingakuGroup[cnt, 40] / decKingakuGroup[cnt, 41];
                        }

                        // グループ合計行を追加
                        groupRowCnt += groupRowsCnt[cnt];
                        dtUriage.Rows.InsertAt(drGroupGoukei, groupRowCnt + cnt);
                    }

                    // 合計行を追加
                    dtUriage.Rows.Add(drGoukei);

                    // データテーブルからデータグリッドへセット
                    gridUriage.DataSource = dtUriage;
                }

                Control cNow = this.ActiveControl;
                cNow.Focus();
            }
            catch (Exception ex)
            {
                // エラーロギング
                new CommonException(ex);

                //例外発生メッセージ(OK)
                BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, CommonTeisu.LABEL_ERROR_MESSAGE, CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR);
                basemessagebox.ShowDialog();

                return;
            }
        }