/// <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; } }
/// <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; } }