/// <summary> /// F10:Excel出力 /// </summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; try { // データ検索用 List <string> lstSearchItem = new List <string>(); // データチェック if (!blnDataCheack()) { return; } //待機状態 Cursor.Current = Cursors.WaitCursor; // 検索するデータをリストに格納 lstSearchItem.Add(txtYmdFrom.Text); lstSearchItem.Add(txtYmdTo.Text); // グループコード(開始)が空の場合 if (labelSet_GroupCdFrom.CodeTxtText.Equals("")) { lstSearchItem.Add("0000"); } else { lstSearchItem.Add(labelSet_GroupCdFrom.CodeTxtText); } // グループコード(終了)が空の場合 if (labelSet_GroupCdTo.CodeTxtText.Equals("")) { lstSearchItem.Add("9999"); } else { lstSearchItem.Add(labelSet_GroupCdTo.CodeTxtText); } // 担当者コード(開始)が空の場合 if (labelSet_TantoushaCdFrom.CodeTxtText.Equals("")) { lstSearchItem.Add("0000"); } else { lstSearchItem.Add(labelSet_TantoushaCdFrom.CodeTxtText); } // 担当者コード(終了)が空の場合 if (labelSet_TantoushaCdTo.CodeTxtText.Equals("")) { lstSearchItem.Add("9999"); } else { lstSearchItem.Add(labelSet_TantoushaCdTo.CodeTxtText); } // 得意先コード(開始)が空の場合 if (labelSet_TokuisakiCdFrom.CodeTxtText.Equals("")) { lstSearchItem.Add("0000"); } else { lstSearchItem.Add(labelSet_TokuisakiCdFrom.CodeTxtText); } // 得意先コード(終了)が空の場合 if (labelSet_TokuisakiCdTo.CodeTxtText.Equals("")) { lstSearchItem.Add("9999"); } else { lstSearchItem.Add(labelSet_TokuisakiCdTo.CodeTxtText); } // 営業所コード(開始)が空の場合 if (labelSet_EigyoshoCdFrom.CodeTxtText.Equals("")) { lstSearchItem.Add("0000"); } else { lstSearchItem.Add(labelSet_EigyoshoCdFrom.CodeTxtText); } // 営業所コード(終了)が空の場合 if (labelSet_EigyoshoCdTo.CodeTxtText.Equals("")) { lstSearchItem.Add("9999"); } else { lstSearchItem.Add(labelSet_EigyoshoCdTo.CodeTxtText); } // ビジネス層のインスタンス生成 C0630_TokuisakiUriageArariPrint_B uriagePrint_B = new C0630_TokuisakiUriageArariPrint_B(); // 検索実行 DataTable dtUriage = uriagePrint_B.getUriage(lstSearchItem); // カーソルを戻す this.Cursor = Cursors.Default; // 対象データがある場合 if (dtUriage != null && dtUriage.Rows.Count > 0) { // 並べ替え(グループコード、担当者コード、得意先コード) DataView dvUriage = new DataView(dtUriage); dvUriage.Sort = "グループコード, 担当者コード, 得意先コード"; dtUriage = dvUriage.ToTable(); // ダイアログ表示 if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "グループ名", "担当者名", "コード", "得意先名", "売上額", "粗利額", "粗利率", "指定期間内受注残金額", "指定期間内受注残粗利", "指定期間以降受注残金額", "指定期間以降受注残粗利", "月末売掛金残", "当月入金額", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtUriage.AsEnumerable() .Select(dat => new { groupName = dat["グループ名"], tantoName = dat["担当者名"], tokuiCode = dat["得意先コード"], tokuiName = dat["得意先名"], uriageKingaku = dat["売上額"], arariKingaku = dat["粗利額"], arariritu = dat["粗利率"], getumatuJuchuzanKingaku = dat["月末迄受注残売上"], getumatuJuchuarariKingaku = dat["月末迄受注残粗利"], yokugetuJuchuzankingaku = dat["翌月以降受注残売上"], yokugetuJuchuarariKingaku = dat["翌月以降受注残粗利"], urikakezanKingaku = dat["月末売掛金残"], nyuKingaku = dat["当月入金額"], }).ToList(); // listをDataTableに変換 DataTable dtTokuiArari = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtTokuiArari, "得意先別売上管理表", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); //元に戻す Cursor.Current = Cursors.Default; return; } } catch (Exception ex) { this.Cursor = Cursors.Default; // エラーロギング new CommonException(ex); // Excel出力失敗メッセージ BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }
///<summary> /// F10:Excel出力 ///</summary> private void excelTorihiki() { //SQL実行時に取り出したデータを入れる用 DataTable dtSetCd_B = new DataTable(); //ビジネス層のインスタンス生成 M1070_Torihikisaki_B daibunB = new M1070_Torihikisaki_B(); try { dtSetCd_B = daibunB.getPrintData(); BaseMessageBox basemessagebox; //取得したデータがない場合 if (dtSetCd_B == null || dtSetCd_B.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(); string[] header = { "コード", "取引先", "カナ", "郵便番号", "住所1", "住所2", "電話番号", "FAX", }; string outFile = sfd.FileName; // Excel作成処理 cpdf.DtToXls(dtSetCd_B, "取引先マスタリスト", 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> /// F10:Excel出力 /// </summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; try { //待機状態 Cursor.Current = Cursors.WaitCursor; // データチェック処理 if (!dataCheack()) { //元に戻す Cursor.Current = Cursors.Default; return; } // データ検索用 List <string> lstSearchItem = new List <string>(); // ビジネス層のインスタンス生成 B0410_SeikyuItiranPrint_B seikyuitiranprintB = new B0410_SeikyuItiranPrint_B(); // 検索するデータをリストに格納 lstSearchItem.Add(txtSimekiriYMD.Text); lstSearchItem.Add(txtKaisiYMD.Text); lstSearchItem.Add(labelSet_TokuisakiStart.CodeTxtText); lstSearchItem.Add(labelSet_TokuisakiEnd.CodeTxtText); lstSearchItem.Add(txtSimekiribiCd.Text); if (radSetSort.judCheckBtn() == 0 || radSetSort.radbtn0.Checked) { lstSearchItem.Add("1"); } else if (radSetSort.judCheckBtn() == 1 || radSetSort.radbtn1.Checked) { lstSearchItem.Add("2"); } else { lstSearchItem.Add("3"); } lstSearchItem.Add(Environment.UserName); // 検索実行 DataTable dtSeikyuItiran = seikyuitiranprintB.getSeikyuItiran(lstSearchItem); // カーソルを戻す this.Cursor = Cursors.Default; // 検索結果にデータがあった場合 if (dtSeikyuItiran.Rows.Count > 0) { // ダイアログ表示 if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "コード", "得意先名", "前月売掛残", "入金現金", "入金小切手", "入金振込", "入金手形", "入金相殺", "入金手数料", "入金その他", "繰越残高", "当月売上高", "当月消費税", "当月残高", "税区分", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtSeikyuItiran.AsEnumerable() .Select(dat => new { code = dat["得意先コード"], tokuisakiName = dat["得意先名"], zenurizanKingaku = dat["前月売掛残"], genKingaku = dat["入金現金"], kogiteKingaku = dat["入金小切手"], furikomiKingaku = dat["入金振込"], teagataKingaku = dat["入金手形"], sosaiKingaku = dat["入金相殺"], tesuryoKingaku = dat["入金手数料"], sonotakingaku = dat["入金その他"], kurizanKingaku = dat["繰越残高"], uriagedataKingaku = dat["当月売上高"], zeiKingaku = dat["当月消費税"], tougetuzanKingaku = dat["当月残高"], zeiku = dat["税区"], }).ToList(); // listをDataTableに変換 DataTable dtSiireChk = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtSiireChk, "請求一覧表", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); //元に戻す Cursor.Current = Cursors.Default; return; } } catch (Exception ex) { // エラーロギング new CommonException(ex); // メッセージボックスの処理、PDF作成失敗の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "印刷が失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }
///<summary> /// F10:Excel出力 ///</summary> private void excelTanaorosiKinyuuhyo() { // データ検索用 List <string> lstSearchItem = new List <string>(); // データ検索用(プロシージャ用) List <string> lstSearchItemProc = new List <string>(); // データチェック if (!blnDataCheack()) { return; } // 検索するデータをリストに格納 lstSearchItem.Add(txtYmd.Text); lstSearchItem.Add(labelSet_Eigyosho.CodeTxtText); lstSearchItem.Add(labelSet_Daibunrui.CodeTxtText); lstSearchItem.Add(labelSet_Chubunrui.CodeTxtText); lstSearchItem.Add(labelSet_Maker.CodeTxtText); lstSearchItem.Add(txtTanabanFrom.Text); lstSearchItem.Add(txtTanabanTo.Text); // 検索するデータをリストに格納(プロシージャ用) lstSearchItemProc.Add(txtYmd.Text); lstSearchItemProc.Add(labelSet_Eigyosho.CodeTxtText); lstSearchItemProc.Add(labelSet_Daibunrui.CodeTxtText); lstSearchItemProc.Add((radSort.judCheckBtn() + 1).ToString()); // ビジネス層のインスタンス生成 F0570_TanaorosiKinyuhyoPrint_B tanaorosiPrint_B = new F0570_TanaorosiKinyuhyoPrint_B(); try { BaseMessageBox basemessagebox; // 印刷するにチェックが入っていない場合 if (chkPrintOnly.Checked == false) { //待機状態 Cursor.Current = Cursors.WaitCursor; // 棚卸記入表の件数を取得 DataTable dtTanaorosiCount = tanaorosiPrint_B.getTanaorosiCount(lstSearchItem); //元に戻す Cursor.Current = Cursors.Default; // 対象データがある場合 if (dtTanaorosiCount != null && dtTanaorosiCount.Rows.Count > 0) { // 件数が1件以上の場合 if (int.Parse(dtTanaorosiCount.Rows[0][0].ToString()) > 0) { // メッセージボックスの処理(YES,NO) basemessagebox = new BaseMessageBox(this, "棚卸記入表", "既にデータが作成されています。書き換えますか?", CommonTeisu.BTN_YESNO, CommonTeisu.DIAG_QUESTION); // Noが押された場合 if (basemessagebox.ShowDialog() == DialogResult.No) { return; } } } try { //待機状態 Cursor.Current = Cursors.WaitCursor; // 棚卸記入表テーブルに追加 tanaorosiPrint_B.addTanaorosi(lstSearchItem); //元に戻す Cursor.Current = Cursors.Default; } catch (Exception ex) { //元に戻す Cursor.Current = Cursors.Default; // エラーロギング new CommonException(ex); // メッセージボックスの処理、追加失敗の場合のウィンドウ(OK) basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_TOUROKU, CommonTeisu.LABEL_TOUROKU_MISS, CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } } //待機状態 Cursor.Current = Cursors.WaitCursor; // 検索実行 DataTable dtTanaorosi = tanaorosiPrint_B.getTanaorosi(lstSearchItemProc); //元に戻す Cursor.Current = Cursors.Default; // 対象データがある場合 if (dtTanaorosi != null && dtTanaorosi.Rows.Count > 0) { string strFilter = ""; // 中分類コードがある場合 if (!lstSearchItem[3].Equals("")) { strFilter += "中分類コード = '" + lstSearchItem[3] + "'"; } // メーカーコードがある場合 if (!lstSearchItem[4].Equals("")) { if (!strFilter.Equals("")) { strFilter += " AND "; } strFilter += "メーカーコード = '" + lstSearchItem[4] + "'"; } // 棚番がある場合 if (!lstSearchItem[5].Equals("") && !lstSearchItem[6].Equals("")) { if (!strFilter.Equals("")) { strFilter += " AND "; } strFilter += "棚番 >= '" + lstSearchItem[5] + "' AND 棚番 <= '" + lstSearchItem[6] + "'"; } // 対象データから更に絞り込み(中分類コード、メーカーコード、棚番) if (!strFilter.Equals("")) { DataView dvTanaorosi = new DataView(dtTanaorosi); dvTanaorosi.RowFilter = strFilter; dtTanaorosi = dvTanaorosi.ToTable(); // 対象データがない場合 if (dtTanaorosi == null || dtTanaorosi.Rows.Count == 0) { // メッセージボックスの処理、対象データがない場合のウィンドウ(OK) basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "対象のデータはありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); 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) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 //Linqで必要なデータをselect var outDataAll = dtTanaorosi.AsEnumerable() .Select(dat => new { eigyo = dat["営業所名"], daibunruiName = dat["大分類名"], chubunruiName = dat["中分類名"], tanaban = dat["棚番"], maker = dat["メーカー名"], kataban = dat["品名型番"], zsuryo = (decimal)dat["指定日在庫"], suryo = (decimal)dat["棚卸数量"] }).ToList(); //リストをデータテーブルに変換 DataTable dtChkList = cpdf.ConvertToDataTable(outDataAll); string[] header = { "営業所名", "大分類名", "中分類名", "棚番", "メーカー名", "品名型番", "指定日在庫", "棚卸数量", }; string outFile = sfd.FileName; // Excel作成処理 cpdf.DtToXls(dtChkList, "業種マスタリスト", outFile, 3, 1, header); //元に戻す Cursor.Current = Cursors.Default; // メッセージボックスの処理、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> /// F10:Excel出力 ///</summary> private void excelGyoshu() { //SQL実行時に取り出したデータを入れる用 DataTable dtSetCd_B = new DataTable(); //ビジネス層のインスタンス生成 M1060_Gyoshu_B daibunB = new M1060_Gyoshu_B(); try { dtSetCd_B = daibunB.getPrintData(); BaseMessageBox basemessagebox; //取得したデータがない場合 if (dtSetCd_B == null || dtSetCd_B.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 = dtSetCd_B.AsEnumerable() .Select(dat => new { gyoshuCd = (String)dat["業種コード"], gyoshuName = dat["業種名"], }).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> /// F10:Excel出力 ///</summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; //年月日の日付フォーマット後を入れる用 string strYMDformat = ""; //待機状態 Cursor.Current = Cursors.WaitCursor; //得意先が空の場合 if (labelSet_Tokuisaki.codeTxt.blIsEmpty() == false) { BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "得意先を指定してください ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); labelSet_Tokuisaki.Focus(); return; } //検索開始年月日に記入がある場合 if (txtDenpyoYMDStart.blIsEmpty()) { //日付フォーマット生成、およびチェック strYMDformat = txtDenpyoYMDStart.chkDateDataFormat(txtDenpyoYMDStart.Text); //検索開始年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtDenpyoYMDStart.Focus(); return; } else { txtDenpyoYMDStart.Text = strYMDformat; } } //検索終了年月日に記入がある場合 if (txtDenpyoYMDEnd.blIsEmpty()) { //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtDenpyoYMDEnd.chkDateDataFormat(txtDenpyoYMDEnd.Text); //検索終了年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtDenpyoYMDEnd.Focus(); return; } else { txtDenpyoYMDEnd.Text = strYMDformat; } } //大分類チェック if (labelSet_Daibunrui.chkTxtDaibunrui()) { labelSet_Daibunrui.Focus(); return; } //中分類チェック if (labelSet_Chubunrui.chkTxtChubunrui(labelSet_Daibunrui.CodeTxtText)) { labelSet_Chubunrui.Focus(); return; } try { A0660_TokuisakiUriageKakunin_B siirekakuninB = new A0660_TokuisakiUriageKakunin_B(); // 検索文字列格納用 string[] arrSerach = new string[7]; // 出力順条件取得用 string[] arrOrder = new string[2]; // 表示条件取得用 string[] arrDisplay = new string[3]; arrSerach[0] = labelSet_Tokuisaki.CodeTxtText; // 得意先コード arrSerach[1] = txtDenpyoYMDStart.Text; // 伝票年月日start arrSerach[2] = txtDenpyoYMDEnd.Text; // 伝票年月日end arrSerach[3] = labelSet_Daibunrui.CodeTxtText; // 大分類コード arrSerach[4] = labelSet_Chubunrui.CodeTxtText; // 中分類コード arrSerach[5] = txtKataban.Text; // 品名・型番 arrSerach[6] = txtBiko.Text; // 備考 arrOrder[0] = radOutOrder.radbtn0.Checked.ToString().ToUpper(); // 出力順 日付・伝票番号順 arrOrder[1] = radOutOrder.radbtn1.Checked.ToString().ToUpper(); // 出力順 型番・日付順 arrDisplay[0] = radDisplay.radbtn0.Checked.ToString().ToUpper(); // 表示 すべて arrDisplay[1] = radDisplay.radbtn1.Checked.ToString().ToUpper(); // 表示 未検収 arrDisplay[2] = radDisplay.radbtn2.Checked.ToString().ToUpper(); // 表示 検収済 // 検索実行 DataTable dtUriagekensyu = siirekakuninB.getSiireData(arrSerach, arrOrder, arrDisplay); // カーソルをデフォルトに戻す this.Cursor = Cursors.Default; if (dtUriagekensyu.Rows.Count > 0) { //ダイアログを表示する if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "日付", "伝No.", "メーカー", "品名・型式", "数量", "売上単価", "売上金額", "備考", "検収", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtUriagekensyu.AsEnumerable() .Select(dat => new { denYmd = dat["伝票年月日"], denNo = dat["伝票番号"], maker = dat["メーカー"], hinmei = dat["品名型式"], suryo = dat["数量"], uriagetanka = dat["売上単価"], uriagekingaku = dat["売上金額"], biko = dat["備考"], kensyu = dat["検収状態"] }).ToList(); // listをDataTableに変換 DataTable dtUriKensyuList = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtUriKensyuList, "得意先売上検収入力", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } } catch (Exception ex) { this.Cursor = Cursors.Default; // エラーロギング new CommonException(ex); // Excel出力失敗メッセージ BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }
///<summary> /// F10:Excel出力 ///</summary> private void excelTokuteimukesakiTanka() { //SQL実行時に取り出したデータを入れる用 DataTable dtSetCd_B = new DataTable(); try { dtSetCd_B = (DataTable)gridTokuteimukesakiTanka.DataSource; BaseMessageBox basemessagebox; //取得したデータがない場合 if (dtSetCd_B == null || dtSetCd_B.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 = "CBC単価マスタ_" + 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 = dtSetCd_B.AsEnumerable() .Select(dat => new { kataban = dat["型番"], tanka = dat["単価"], simukesaki = dat["仕向先"], saisyuSiireYMD = dat["最終仕入日"], }).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> /// F10:Excel出力 /// </summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; try { // 検索条件格納用 List <string> lstSearchItem = new List <string>(); List <Array> lstSearchItem2 = new List <Array>(); DataTable dtSiireJisseki = new DataTable(); // データチェック if (!blnDataCheck()) { return; } // ヘッダーに条件を出力する値 lstSearchItem.Add(labelSet_Siiresaki.ValueLabelText); //仕入先名 lstSearchItem.Add(labelSet_Daibunrui.ValueLabelText); //大分類名 lstSearchItem.Add(labelSet_Chubunrui.ValueLabelText); //中分類名 // ビジネス層のインスタンス生成 D0320_SiireJissekiKakunin_B siireB = new D0320_SiireJissekiKakunin_B(); // 検索データをリストに格納 lstSearchItem = setSearchList(); lstSearchItem2 = getRadioBtn(); // 検索実行 dtSiireJisseki = siireB.getSiireJissekiList(lstSearchItem, lstSearchItem2); if (dtSiireJisseki != null && dtSiireJisseki.Rows.Count > 0) { // ダイアログ表示 if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "仕入日", "伝票番号", "メーカー", "品名・型式", "数量", "仕入単価", "仕入金額", "備考", "出荷先", "仕入先", "発注番号", "発注担当", "仕入担当", "受注番号", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtSiireJisseki.AsEnumerable() .Select(dat => new { denYmd = dat["伝票年月日"], denNo = dat["伝票番号"], maker = dat["メーカー"], hinkata = dat["品名型式"], suryo = dat["数量"], siireTanka = dat["仕入単価"], siireKingaku = dat["仕入金額"], biko = dat["備考"], shukaName = dat["出荷先名"], siireName = dat["仕入先名"], hachuNo = dat["発注番号"], hachuName = dat["発注担当"], siireTanto = dat["仕入担当"], juchuNo = dat["受注番号"], }).ToList(); // listをDataTableに変換 DataTable dtSiireJiseki = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtSiireJiseki, "仕入実績確認", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } } catch (Exception ex) { this.Cursor = Cursors.Default; // エラーロギング new CommonException(ex); // Excel出力失敗メッセージ BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }
/// <summary> /// F10:Excel出力 /// </summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; try { // データチェック処理 if (!dataCheack()) { return; } // データ検索用 List <string> lstSearchItem = new List <string>(); this.Cursor = Cursors.WaitCursor; // ビジネス層のインスタンス生成 C0650_SyohingunUriageSiirePrint_B syohingunuriagesiireprintB = new C0650_SyohingunUriageSiirePrint_B(); // 検索するデータをリストに格納 lstSearchItem.Add(txtKamikiYMDopen.Text); //[0] lstSearchItem.Add(txtKamikiYMDclose.Text); //[1] lstSearchItem.Add(txtSimokiYMDopen.Text); //[2] lstSearchItem.Add(txtSimokiYMDclose.Text); //[3] lstSearchItem.Add(labelSet_Torihikisaki.CodeTxtText); //[4] lstSearchItem.Add(labelSet_Tantousha.CodeTxtText); //[5] lstSearchItem.Add(labelSet_Daibunrui.CodeTxtText); //[6] lstSearchItem.Add(labelSet_Chubunrui.CodeTxtText); //[7] lstSearchItem.Add(labelSet_Maker.CodeTxtText); //[8] // 検索実行 DataTable dtSyohingunUriageSiire = syohingunuriagesiireprintB.getSyohingunUriageSiireItiran(lstSearchItem); this.Cursor = Cursors.Default; if (dtSyohingunUriageSiire.Rows.Count > 0) { // ダイアログ表示 if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "大分類名", "中分類名", "上期売上高", "上期仕入高", "下期売上高", "下期仕入高", "合計売上高", "合計仕入高", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtSyohingunUriageSiire.AsEnumerable() .Select(dat => new { daiName = dat["大分類名"], chuName = dat["中分類名"], kamiUriKingaku = dat["上期売上額"], kamiSiireKingaku = dat["上期仕入額"], simoUriKingaku = dat["下期売上額"], simoSiireKingaku = dat["下期仕入額"], uriKeiKingaku = dat["合計売上額"], siireKeiKingaku = dat["合計仕入額"], }).ToList(); // listをDataTableに変換 DataTable dtShohin = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtShohin, "商品群別売上仕入管理表", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } } catch (Exception ex) { this.Cursor = Cursors.Default; // エラーロギング new CommonException(ex); // Excel出力失敗メッセージ BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }
///<summary> /// F10:Excel出力 ///</summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; try { // データ検索用 List <string> lstSearchItem = new List <string>(); //年月日の日付フォーマット後を入れる用 string strYMDformat = ""; //待機状態 Cursor.Current = Cursors.WaitCursor; // 空文字判定(入力年月日(開始)) if (txtInputYMDStart.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。日付を入力してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtInputYMDStart.Focus(); return; } // 空文字判定(入力年月日(終了)) if (txtInputYMDEnd.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。日付を入力してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtInputYMDEnd.Focus(); return; } // 空文字判定(伝票年月日(開始)) if (txtDenpyoYMDStart.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。日付を入力してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtDenpyoYMDStart.Focus(); return; } // 空文字判定(伝票年月日(終了)) if (txtDenpyoYMDEnd.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。日付を入力してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtDenpyoYMDEnd.Focus(); return; } //日付フォーマット生成、およびチェック strYMDformat = txtInputYMDStart.chkDateDataFormat(txtInputYMDStart.Text); //開始入力年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtInputYMDStart.Focus(); return; } else { txtInputYMDStart.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtInputYMDEnd.chkDateDataFormat(txtInputYMDEnd.Text); //終了入力年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtInputYMDEnd.Focus(); return; } else { txtInputYMDEnd.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtDenpyoYMDStart.chkDateDataFormat(txtDenpyoYMDStart.Text); //開始伝票年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtDenpyoYMDStart.Focus(); return; } else { txtDenpyoYMDStart.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtDenpyoYMDEnd.chkDateDataFormat(txtDenpyoYMDEnd.Text); //終了伝票年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtDenpyoYMDEnd.Focus(); return; } else { txtDenpyoYMDEnd.Text = strYMDformat; } // ビジネス層のインスタンス生成 A0090_SiireCheckPrint_B checkPrintB = new A0090_SiireCheckPrint_B(); // 検索するデータをリストに格納 lstSearchItem.Add(txtInputYMDStart.Text); lstSearchItem.Add(txtInputYMDEnd.Text); lstSearchItem.Add(txtDenpyoYMDStart.Text); lstSearchItem.Add(txtDenpyoYMDEnd.Text); lstSearchItem.Add(txtUserId.Text); lstSearchItem.Add(labelSet_SiiresakiCdFrom.CodeTxtText); lstSearchItem.Add(labelSet_SiiresakiCdTo.CodeTxtText); // 検索実行 DataTable dtSiireCheckList = checkPrintB.getSiireCheckList(lstSearchItem); // カーソルをデフォルトに戻す this.Cursor = Cursors.Default; if (dtSiireCheckList.Rows.Count > 0) { if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "コード", "仕入先名", "年月日", "伝票番号", "取引区分", "品名・型番", "数量", "単価", "金額", "備考", "伝票合計", "消費税", "税込み計", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtSiireCheckList.AsEnumerable() .Select(dat => new { code = dat["仕入先コード"], siiresakiName = dat["仕入先名"], denYmd = dat["伝票年月日"], denNo = dat["伝票番号"], torihikiKbn = dat["取引区分名"], hinmei = dat["品名"], suryo = dat["数量"], siireTanka = dat["仕入単価"], siireKingaku = dat["仕入金額"], biko = dat["備考"], zeinukiGokeiKingaku = dat["税抜合計金額"], zeiKingaku = dat["消費税"], zeikomiGokeiKingaku = dat["税込合計金額"], }).ToList(); // listをDataTableに変換 DataTable dtSiireChk = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtSiireChk, "仕入チェックリスト", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } } catch (Exception ex) { this.Cursor = Cursors.Default; // エラーロギング new CommonException(ex); // Excel出力失敗メッセージ BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }
///<summary> /// F10:Excel出力 ///</summary> private void excelShireMotocyoKakunin() { //SQL実行時に取り出したデータを入れる用 DataTable dtPrintData = new DataTable(); //印刷対象の選択用 string strInsatsuSelect = ""; //営業所の選択用 string strEigyosho = ""; //年月日の日付フォーマット後を入れる用 string strYMDformat = ""; //得意先コードの検索開始項目のチェック if (labelSet_SiiresakiStart.codeTxt.blIsEmpty() == false || StringUtl.blIsEmpty(labelSet_SiiresakiStart.ValueLabelText) == false || labelSet_SiiresakiStart.chkTxtTorihikisaki() == true) { labelSet_SiiresakiStart.Focus(); return; } //得意先コードの終了開始項目のチェック if (labelSet_SiiresakiEnd.codeTxt.blIsEmpty() == false || StringUtl.blIsEmpty(labelSet_SiiresakiEnd.ValueLabelText) == false || labelSet_SiiresakiEnd.chkTxtTorihikisaki() == true) { //例外発生メッセージ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_ERROR, "仕入先コードを範囲で指定してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); labelSet_SiiresakiEnd.Focus(); return; } //空文字判定(検索開始年月) if (txtYmStart.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n条件を指定してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYmStart.Focus(); return; } //空文字判定(検索終了年月) if (txtYmEnd.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n条件を指定してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYmEnd.Focus(); return; } //得意先開始チェック if (labelSet_SiiresakiStart.chkTxtTorihikisaki()) { labelSet_SiiresakiStart.Focus(); return; } //得意先終了チェック if (labelSet_SiiresakiEnd.chkTxtTorihikisaki()) { labelSet_SiiresakiEnd.Focus(); return; } //日付フォーマット生成、およびチェック strYMDformat = txtYmStart.chkDateYMDataFormat(txtYmStart.Text); //開始年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYmStart.Focus(); return; } else { txtYmStart.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtYmEnd.chkDateYMDataFormat(txtYmEnd.Text); //終了年月日の日付チェック if (strYMDformat == "") { // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYmEnd.Focus(); return; } else { txtYmEnd.Text = strYMDformat; } //印刷対象の範囲指定をする場合 if (radSet_Insatsu.radbtn1.Checked == true) { strInsatsuSelect = "0"; } else { strInsatsuSelect = "1"; } //営業所の指定をする場合 if (radSet_Eigyo.radbtn0.Checked == true) { strEigyosho = "0"; } else if (radSet_Eigyo.radbtn1.Checked == true) { strEigyosho = "1"; } else if (radSet_Eigyo.radbtn2.Checked == true) { strEigyosho = "2"; } //その月の最終日を求める(年月日検索終了項目用) int intDay = DateTime.DaysInMonth(DateTime.Parse(txtYmEnd.Text).Year, DateTime.Parse(txtYmEnd.Text).Month); //印刷用データを入れる用 List <string> lstPrintData = new List <string>(); //印刷用データを入れる lstPrintData.Add(labelSet_SiiresakiStart.CodeTxtText); lstPrintData.Add(labelSet_SiiresakiEnd.CodeTxtText); lstPrintData.Add(DateTime.Parse(txtYmStart.Text).ToString("yyyy/MM/dd")); lstPrintData.Add(DateTime.Parse(txtYmEnd.Text).ToString("yyyy/MM/") + intDay.ToString()); lstPrintData.Add(strInsatsuSelect); lstPrintData.Add(strEigyosho); //仕入先コード範囲内の取引先を取得 E0340_SiiresakiMotochouKakunin_B siireB = new E0340_SiiresakiMotochouKakunin_B(); try { //待機状態 Cursor.Current = Cursors.WaitCursor; dtPrintData = siireB.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] TokuiUrikingaku = (decimal)dat["仕入金額"], //[7] TokuiNyukingaku = (decimal)dat["支払金額"], //[8] TokuiSashiZankingaku = (decimal)dat["差引残高"], //[9] TokuiBiko = dat["備考"] //[10] }).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> /// F10:Excel出力 ///</summary> private void exportXls() { // 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) { // グリッドに表示されていない場合 if (gridTokuisaki.Rows.Count == 0) { return; } //データの取り出し用 DataTable dtPrintData = new DataTable(); //列情報を取得 DataGridViewColumnCollection cols = gridTokuisaki.Columns; //行情報を取得 DataGridViewRowCollection rows = gridTokuisaki.Rows; //取引先経理情報登録時の情報 List <string> lstTorihiki = new List <string>(); //年月日の日付フォーマット後を入れる用 string strYMDformat = ""; this.Cursor = Cursors.WaitCursor; //空チェック(開始得意先コード) if (StringUtl.blIsEmpty(lblsetTokuisakiCdopen.CodeTxtText) == false) { this.Cursor = Cursors.Default; // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n日付を入力してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); lblsetTokuisakiCdopen.Focus(); return; } //空チェック(終了得意先コード) if (StringUtl.blIsEmpty(lblsetTokuisakiCdclose.CodeTxtText) == false) { this.Cursor = Cursors.Default; // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n日付を入力してください。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); lblsetTokuisakiCdclose.Focus(); return; } //日付フォーマット生成、およびチェック strYMDformat = txtYMopen.chkDateYMDataFormat(txtYMopen.Text); //開始年月日の日付チェック if (strYMDformat == "") { this.Cursor = Cursors.Default; // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYMopen.Focus(); return; } else { txtYMopen.Text = strYMDformat; } //初期化 strYMDformat = ""; //日付フォーマット生成、およびチェック strYMDformat = txtYMclose.chkDateYMDataFormat(txtYMclose.Text); //終了年月日の日付チェック if (strYMDformat == "") { this.Cursor = Cursors.Default; // メッセージボックスの処理、項目が日付でない場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "入力された日付が正しくありません。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYMclose.Focus(); return; } else { txtYMclose.Text = strYMDformat; } this.Cursor = Cursors.Default; //年月日が空の場合 if (txtYMopen.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n日付を入力してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYMopen.Focus(); return; } //年月日が空の場合 if (txtYMclose.blIsEmpty() == false) { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "項目が空です。\r\n日付を入力してください。 ", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); txtYMclose.Focus(); return; } //検索開始得意先コードのチェック if (lblsetTokuisakiCdopen.chkTxtTorihikisaki() == true) { lblsetTokuisakiCdopen.Focus(); return; } //検索終了得意先コードのチェック if (lblsetTokuisakiCdclose.chkTxtTorihikisaki() == true) { lblsetTokuisakiCdclose.Focus(); return; } this.Cursor = Cursors.WaitCursor; DataTable dtGridViewTokusaki = new DataTable(); List <string> lstStringViewData = new List <string>(); lstStringViewData.Add(lblsetTokuisakiCdopen.CodeTxtText); lstStringViewData.Add(lblsetTokuisakiCdclose.CodeTxtText); string strShuturyoku = ""; //出力順のラジオボタン判定 if (radShuturyoku.radbtn0.Checked == true) { strShuturyoku = "Tokuisaki"; } else { strShuturyoku = "Hurigana"; } lstStringViewData.Add(DateTime.Parse(txtYMopen.Text).ToString("yyyy/MM/dd")); lstStringViewData.Add(DateTime.Parse(txtYMclose.Text).ToString("yyyy/MM/dd")); lstStringViewData.Add(strShuturyoku); C0520_KaikakekinZandakaIchiranKakunin_B kaikakekakuninB = new C0520_KaikakekinZandakaIchiranKakunin_B(); try { DataTable dtXlsData = kaikakekakuninB.getPrintData(lstStringViewData); if (dtXlsData.Rows.Count > 0) { CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "コード", "得意先名", "年月", "前月買掛残", "支払現金", "支払小切手", "支払振込", "支払手形", "支払相殺", "支払手数料", "支払その他", "繰越残高", "当月仕入高", "当月消費税", "当月残高", "税区", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtXlsData.AsEnumerable() .Select(dat => new { code = dat["コード"], tokuisakiName = dat["得意先名"], YM = dat["年月"], zenkaikakezanKingaku = dat["前月買掛残"], siharaiGenkinKingaku = dat["支払現金"], siharaiKogiteKingaku = dat["支払小切手"], siharaiFurikomiKingaku = dat["支払振込"], siharaiTegataKingaku = dat["支払手形"], siharaiSosaiKingaku = dat["支払相殺"], siharaiTesuryoKingaku = dat["支払手数料"], siharaiSonotaKingaku = dat["支払その他"], kurikosizanKingaku = dat["繰越残高"], togetuUriageKingaku = dat["当月仕入高"], togetuZeiKingaku = dat["当月消費税"], togetuZanKingaku = dat["当月残高"], zeiku = dat["税区"] }).ToList(); // listをDataTableに変換 DataTable dtKaikakeZan = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtKaikakeZan, "買掛金残高一覧確認", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } catch (Exception ex) { this.Cursor = Cursors.Default; //データロギング 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> /// F10:Excel出力 ///</summary> private void exportXls() { // 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 = "すべてのファイル(*.*)|*.*"; try { // データチェック処理 if (!dataCheack()) { return; } // データ検索用 List <string> lstSearchItem = new List <string>(); //待機状態 Cursor.Current = Cursors.WaitCursor; // ビジネス層のインスタンス生成 A0150_UriageCheckPrint_B uriagecheckprintB = new A0150_UriageCheckPrint_B(); // 検索するデータをリストに格納 lstSearchItem.Add(txtNyuryokuYMDstart.Text); lstSearchItem.Add(txtNyuryokuYMDend.Text); lstSearchItem.Add(txtDenpyoYMDstart.Text); lstSearchItem.Add(txtDenpyoYMDend.Text); lstSearchItem.Add(txtUserID.Text); lstSearchItem.Add(labelSet_TokuisakiCdFrom.CodeTxtText); lstSearchItem.Add(labelSet_TokuisakiCdTo.CodeTxtText); // 検索実行(印刷用) DataTable dtUriageChk = uriagecheckprintB.getUriageCheckList(lstSearchItem); // カーソルをデフォルトに戻す this.Cursor = Cursors.Default; if (dtUriageChk.Rows.Count > 0) { if (sfd.ShowDialog() == DialogResult.OK) { //待機状態 Cursor.Current = Cursors.WaitCursor; CreatePdf cpdf = new CreatePdf(); // 出力するヘッダを設定 string[] header = { "コード", "得意先名", "年月日", "伝票番号", "取引区分", "品名・型番", "数量", "単価", "金額", "備考", "伝票合計", "消費税", "税込み計", }; // Linqで出力対象の項目をSelect // カラム名は以下のようにつける(カラム名でフォーマットを判断するため) // 金額関係:***kingaku // 単価関係:***tanka // 原価:***genka // 数量:***suryo var outDat = dtUriageChk.AsEnumerable() .Select(dat => new { code = dat["得意先コード"], siiresakiName = dat["得意先名"], denYmd = dat["伝票年月日"], denNo = dat["伝票番号"], torihikiKbn = dat["取引区分名"], hinmei = dat["品名"], suryo = dat["数量"], siireTanka = dat["単価"], siireKingaku = dat["金額"], biko = dat["備考"], zeinukiGokeiKingaku = dat["税抜合計金額"], zeiKingaku = dat["消費税"], zeikomiGokeiKingaku = dat["税込合計金額"], }).ToList(); // listをDataTableに変換 DataTable dtSiireChk = cpdf.ConvertToDataTable(outDat); string outFile = sfd.FileName; cpdf.DtToXls(dtSiireChk, "売上チェックリスト", outFile, 3, 1, header); this.Cursor = Cursors.Default; // メッセージボックスの処理、Excel作成完了の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excelファイルを作成しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_INFOMATION); basemessagebox.ShowDialog(); } } else { // メッセージボックスの処理、項目が空の場合のウィンドウ(OK) BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_INPUT, "対象のデータはありません", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } } catch (Exception ex) { this.Cursor = Cursors.Default; // エラーロギング new CommonException(ex); // Excel出力失敗メッセージ BaseMessageBox basemessagebox = new BaseMessageBox(this, CommonTeisu.TEXT_VIEW, "Excel出力に失敗しました。", CommonTeisu.BTN_OK, CommonTeisu.DIAG_ERROR); basemessagebox.ShowDialog(); return; } }