///<summary> /// excelTokuisakiMotocyoKakunin /// F10:Excel出力 ///</summary> private void excelTokuisakiMotocyoKakunin() { //SQL実行時に取り出したデータを入れる用 DataTable dtPrintData = new DataTable(); //PDF作成後の入れ物 string strFile = ""; //印刷対象の選択用 string strInsatsuSelect = ""; //年月日の日付フォーマット後を入れる用 string strYMDformat = ""; //得意先コードの検索開始項目のチェック if (labelSet_TokuisakiStart.codeTxt.blIsEmpty() == false || StringUtl.blIsEmpty(labelSet_TokuisakiStart.ValueLabelText) == false || labelSet_TokuisakiStart.chkTxtTorihikisaki() == true) { labelSet_TokuisakiStart.Focus(); return; } //得意先コードの終了開始項目のチェック if (labelSet_TokuisakiEnd.codeTxt.blIsEmpty() == false || StringUtl.blIsEmpty(labelSet_TokuisakiEnd.ValueLabelText) == false || labelSet_TokuisakiEnd.chkTxtTorihikisaki() == true) { //例外発生メッセージ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, "得意先コードを範囲で指定してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); labelSet_TokuisakiEnd.Focus(); return; } //空文字判定(検索開始年月) if (txtStartYM.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n条件を指定してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtStartYM.Focus(); return; } //空文字判定(検索終了年月) if (txtEndYM.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n条件を指定してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtEndYM.Focus(); return; } //得意先開始チェック if (labelSet_TokuisakiStart.chkTxtTorihikisaki()) { labelSet_TokuisakiStart.Focus(); return; } //得意先終了チェック if (labelSet_TokuisakiEnd.chkTxtTorihikisaki()) { labelSet_TokuisakiEnd.Focus(); return; } //日付フォーマット生成、およびチェック strYMDformat = txtStartYM.chkDateYMDataFormat(txtStartYM.Text); //開始年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtStartYM.Focus(); return; } else { txtStartYM.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtEndYM.chkDateYMDataFormat(txtEndYM.Text); //終了年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtEndYM.Focus(); return; } else { txtEndYM.Text = strYMDformat; } //印刷対象の範囲指定をする場合 if (radSet_Insatsu.radbtn1.Checked == true) { strInsatsuSelect = "0"; } else { strInsatsuSelect = "1"; } //その月の最終日を求める(年月日検索終了項目用) int intDay = DateTime.DaysInMonth(DateTime.Parse(txtEndYM.Text).Year, DateTime.Parse(txtEndYM.Text).Month); //印刷用データを入れる用 List <string> lstPrintData = new List <string>(); //印刷用データを入れる lstPrintData.Add(labelSet_TokuisakiStart.CodeTxtText); lstPrintData.Add(labelSet_TokuisakiEnd.CodeTxtText); lstPrintData.Add(DateTime.Parse(txtStartYM.Text).ToString("yyyy/MM/dd")); lstPrintData.Add(DateTime.Parse(txtEndYM.Text).ToString("yyyy/MM/") + intDay.ToString()); lstPrintData.Add(strInsatsuSelect); //得意先コード範囲内の取引先を取得 E0330_TokuisakiMotocyoKakunin_B tokuisakimotocyokakuninB = new E0330_TokuisakiMotocyoKakunin_B(); try { //待機状態 Cursor.Current = Cursors.WaitCursor; dtPrintData = tokuisakimotocyokakuninB.getPrintData(lstPrintData); //元に戻す Cursor.Current = Cursors.Default; BaseMessageBox basemessagebox; //取得したデータがない場合 if (dtPrintData == null || dtPrintData.Rows.Count == 0) { //例外発生メッセージ(OK) basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } // SaveFileDialogクラスのインスタンスを作成 SaveFileDialog sfd = new SaveFileDialog(); // ファイル名の指定 sfd.FileName = "得意先元帳_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".xlsx"; // デフォルトパス取得(デスクトップ) string Init_dir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //はじめに表示されるフォルダを指定する sfd.InitialDirectory = Init_dir; // ファイルフィルタの設定 sfd.Filter = "すべてのファイル(*.*)|*.*"; //ダイアログを表示する if (sfd.ShowDialog() == DialogResult.OK) { CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 // Linqで必要なデータをselect var outDataAll = dtPrintData.AsEnumerable() .Select(dat => new { TokuiCd = dat["得意先コード"], //[0]ヘッダー表示のみ使用 TokuiName = dat["得意先名"], //[1]ヘッダー表示のみ使用 TokuiYMD = dat["年月日"], //[2] Tokuikbn = dat["取引区分名"], //[3] TokuiShohinName = dat["商品名"], //[4] TokuiSu = dat["数量"], //[5] TokuiTan = dat["売上単価"], //[6] TokuiUrikin = (decimal)dat["売上金額"], //[7] TokuiNyukin = (decimal)dat["入金金額"], //[8] TokuiSashiZankin = (decimal)dat["差引残高"], //[9] TokuiBiko = dat["備考"], //[11] }).ToList(); // リストをデータテーブルに変換 DataTable dtChkList = cpdf.ConvertToDataTable(outDataAll); string[] header = { "コード", "得意先名", "年月日", "取引区分名", "商品名", "数量", "売上単価", "売上金額", "入金金額", "差引残高", "備考", }; string outFile = sfd.FileName; // Excel作成処理 cpdf.DtToXls(dtChkList, "得 意 先 元 帳", outFile, 3, 1, header); // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } 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; } }
///<summary> ///printTokuisakiMotocyoKakunin ///印刷ダイアログ ///</summary> private void printTokuisakiMotocyoKakunin() { //SQL実行時に取り出したデータを入れる用 DataTable dtPrintData = new DataTable(); //PDF作成後の入れ物 string strFile = ""; //印刷対象の選択用 string strInsatsuSelect = ""; //年月日の日付フォーマット後を入れる用 string strYMDformat = ""; //得意先コードの検索開始項目のチェック if (labelSet_TokuisakiStart.codeTxt.blIsEmpty() == false || StringUtl.blIsEmpty(labelSet_TokuisakiStart.ValueLabelText) == false || labelSet_TokuisakiStart.chkTxtTorihikisaki() == true) { labelSet_TokuisakiStart.Focus(); return; } //得意先コードの終了開始項目のチェック if (labelSet_TokuisakiEnd.codeTxt.blIsEmpty() == false || StringUtl.blIsEmpty(labelSet_TokuisakiEnd.ValueLabelText) == false || labelSet_TokuisakiEnd.chkTxtTorihikisaki() == true) { //例外発生メッセージ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, "得意先コードを範囲で指定してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); labelSet_TokuisakiEnd.Focus(); return; } //空文字判定(検索開始年月) if (txtStartYM.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n条件を指定してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtStartYM.Focus(); return; } //空文字判定(検索終了年月) if (txtEndYM.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n条件を指定してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtEndYM.Focus(); return; } //得意先開始チェック if (labelSet_TokuisakiStart.chkTxtTorihikisaki()) { labelSet_TokuisakiStart.Focus(); return; } //得意先終了チェック if (labelSet_TokuisakiEnd.chkTxtTorihikisaki()) { labelSet_TokuisakiEnd.Focus(); return; } //日付フォーマット生成、およびチェック strYMDformat = txtStartYM.chkDateYMDataFormat(txtStartYM.Text); //開始年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtStartYM.Focus(); return; } else { txtStartYM.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtEndYM.chkDateYMDataFormat(txtEndYM.Text); //終了年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtEndYM.Focus(); return; } else { txtEndYM.Text = strYMDformat; } //印刷対象の範囲指定をする場合 if (radSet_Insatsu.radbtn1.Checked == true) { strInsatsuSelect = "0"; } else { strInsatsuSelect = "1"; } //その月の最終日を求める(年月日検索終了項目用) int intDay = DateTime.DaysInMonth(DateTime.Parse(txtEndYM.Text).Year, DateTime.Parse(txtEndYM.Text).Month); //印刷用データを入れる用 List <string> lstPrintData = new List <string>(); //印刷用データを入れる lstPrintData.Add(labelSet_TokuisakiStart.CodeTxtText); lstPrintData.Add(labelSet_TokuisakiEnd.CodeTxtText); lstPrintData.Add(DateTime.Parse(txtStartYM.Text).ToString("yyyy/MM/dd")); lstPrintData.Add(DateTime.Parse(txtEndYM.Text).ToString("yyyy/MM/") + intDay.ToString()); lstPrintData.Add(strInsatsuSelect); //得意先コード範囲内の取引先を取得 E0330_TokuisakiMotocyoKakunin_B tokuisakimotocyokakuninB = new E0330_TokuisakiMotocyoKakunin_B(); try { //待機状態 Cursor.Current = Cursors.WaitCursor; dtPrintData = tokuisakimotocyokakuninB.getPrintData(lstPrintData); //元に戻す Cursor.Current = Cursors.Default; //データが無ければ if (dtPrintData.Rows.Count < 1) { //例外発生メッセージ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, "印刷", "対象のデータがありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } //初期値 Common.Form.PrintForm pf = new Common.Form.PrintForm(this, "", CommonTeisu.SIZE_A4, YOKO); pf.ShowDialog(this); //プレビューの場合 if (this.printFlg == CommonTeisu.ACTION_PREVIEW) { //待機状態 Cursor.Current = Cursors.WaitCursor; //結果セットをレコードセットに strFile = tokuisakimotocyokakuninB.dbToPdf(dtPrintData, lstPrintData); //元に戻す Cursor.Current = Cursors.Default; //印刷できなかった場合 if (strFile == "") { //印刷時エラーメッセージ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, "印刷", "印刷時エラーです。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } // プレビュー pf.execPreview(strFile); } // 一括印刷の場合 else if (this.printFlg == CommonTeisu.ACTION_PRINT) { // PDF作成 strFile = tokuisakimotocyokakuninB.dbToPdf(dtPrintData, lstPrintData); //印刷できなかった場合 if (strFile == "") { //印刷時エラーメッセージ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, "印刷", "印刷時エラーです。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } // 一括印刷 pf.execPrint(null, strFile, CommonTeisu.SIZE_A4, CommonTeisu.YOKO, true); } } 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; } }