///-------------------------------------------------------------------------------------------------- /// <summary> /// エラーチェックメイン処理。 /// エラーのときOCRDataクラスのヘッダ行インデックス、フィールド番号、明細行インデックス、 /// エラーメッセージが記録される </summary> /// <param name="sIx"> /// 開始ヘッダ行インデックス</param> /// <param name="eIx"> /// 終了ヘッダ行インデックス</param> /// <param name="frm"> /// 親フォーム</param> /// <param name="dtsC"> /// NHBR_CLIDataSet </param> /// <param name="dts"> /// NHBRDataSet </param> /// <param name="cID"> /// FAX注文書@ID配列</param> /// <returns> /// True:エラーなし、false:エラーあり</returns> ///----------------------------------------------------------------------------------------------- public Boolean errCheckMain(string sID, Table <ClsDeviveryNote> tblDev) { int sDate = DateTime.Today.Year * 10000 + DateTime.Today.Month * 100 + DateTime.Today.Day; // 納品伝票データ読み出し Boolean eCheck = true; // 納品伝票データのコレクションを取得します ClsDeviveryNote r = tblDev.Single(a => a.ID == sID); // エラーチェック実施 eCheck = errCheckData(r); return(eCheck); }
///----------------------------------------------------------------------------------------------- /// <summary> /// 項目別エラーチェック。 /// エラーのときヘッダ行インデックス、フィールド番号、明細行インデックス、エラーメッセージが記録される </summary> /// <param name="r"> /// 納品伝票行コレクション</param> /// <returns> /// エラーなし:true, エラー有り:false</returns> ///----------------------------------------------------------------------------------------------- /// public Boolean errCheckData(ClsDeviveryNote r) { int eNum = 0; // 売上仕入区分:2020/09/25 if (r.UriShiire.ToString() != global.DEN_URIAGE && r.UriShiire.ToString() != global.DEN_SHIIRE) { setErrStatus(eDenpyo, 0, "売上・仕入が不明の伝票です。削除後、再度OCR認識を行ってください。"); return(false); } // 確認チェック if (r.Check == global.flgOff) { setErrStatus(eDataCheck, 0, "未確認の伝票です"); return(false); } // 納入日 DateTime dt; if (!DateTime.TryParse(r.NounyuDate, out dt)) { setErrStatus(eYearMonth, 0, "納入日が正しくありません"); return(false); } // 2020/09/29 コメント化 //// 納品仮伝票・現品票:仕入 //if (r.DenKbn.ToString() == global.DEN_NOUHINKARI || r.DenKbn.ToString() == global.DEN_GENPIN) //{ // // 仕入先コード // if (!getShiireStatus(r.NonyuCode.ToString())) // { // setErrStatus(eShiireNo, 0, "不明な仕入先コードです"); // return false; // } //} //// 納品書:売上 //if (r.DenKbn == Utility.StrtoInt(global.DEN_NOUHIN)) //{ // // 取引先コード // if (!getTorihikisakiStatus(r.NonyuCode.ToString())) // { // setErrStatus(eShiireNo, 0, "不明な取引先コードです"); // return false; // } //} // 仕入先コード:売上仕入区分で売上仕入を判断 2020/09/29 if (r.UriShiire.ToString() == global.DEN_SHIIRE) { // 仕入先コード if (!getShiireStatus(r.NonyuCode.ToString())) { setErrStatus(eShiireNo, 0, "不明な仕入先コードです"); return(false); } } // 取引先コード:売上仕入区分で売上仕入を判断 2020/09/29 if (r.UriShiire.ToString() == global.DEN_URIAGE) { // 取引先コード if (!getTorihikisakiStatus(r.NonyuCode.ToString())) { setErrStatus(eShiireNo, 0, "不明な取引先コードです"); return(false); } } // 商品コード(部品コード)・数量 if (!CheckSyohin(r.BuhinCode_1, r.Suu_1, eHinCode, eSuu, 0)) { return(false); } if (!CheckSyohin(r.BuhinCode_2, r.Suu_2, eHinCode, eSuu, 1)) { return(false); } if (!CheckSyohin(r.BuhinCode_3, r.Suu_3, eHinCode, eSuu, 2)) { return(false); } if (!CheckSyohin(r.BuhinCode_4, r.Suu_4, eHinCode, eSuu, 3)) { return(false); } if (!CheckSyohin(r.BuhinCode_5, r.Suu_5, eHinCode, eSuu, 4)) { return(false); } // 2020/08/17 コメント化 //// 部門コード //if (Utility.GetBumonFromDataTable(r.BumonCode, global.dtBumon).BumonCode == global.flgOff) //{ // setErrStatus(eBumom, 0, "部門が未選択です"); // return false; //} return(true); }
///-------------------------------------------------------------------------------------------------- /// <summary> /// エラーチェックメイン処理。 /// エラーのときOCRDataクラスのヘッダ行インデックス、フィールド番号、明細行インデックス、 /// エラーメッセージが記録される </summary> /// <param name="sIx"> /// 開始ヘッダ行インデックス</param> /// <param name="eIx"> /// 終了ヘッダ行インデックス</param> /// <param name="frm"> /// 親フォーム</param> /// <param name="tblFax"> /// ClsFaxOrderクラス</param> /// <param name="tblPtn"> /// ClsOrderPatternクラス</param> /// <param name="cID"> /// FAX注文書@ID配列</param> /// <returns> /// True:エラーなし、false:エラーあり</returns> ///----------------------------------------------------------------------------------------------- public Boolean errCheckMain(int sIx, int eIx, Form frm, Table <ClsDeviveryNote> tblDeliv, string[] cID) { // 2020/04/08 コメント化 int sDate = DateTime.Today.Year * 10000 + DateTime.Today.Month * 100 + DateTime.Today.Day; int rCnt = 0; // オーナーフォームを無効にする frm.Enabled = false; // プログレスバーを表示する frmPrg frmP = new frmPrg(); frmP.Owner = frm; frmP.Show(); // レコード件数取得 int cTotal = cID.Length; Boolean eCheck = true; // 発注書データ読み出し for (int i = 0; i < cTotal; i++) { // データ件数加算 rCnt++; // プログレスバー表示 frmP.Text = "エラーチェック実行中 " + rCnt.ToString() + "/" + cTotal.ToString(); frmP.progressValue = rCnt * 100 / cTotal; frmP.ProgressStep(); // 指定範囲ならエラーチェックを実施する if (i >= sIx && i <= eIx) { // 納品伝票データのコレクションを取得します ClsDeviveryNote r = tblDeliv.Single(a => a.ID == cID[i]); // エラーチェック実施 eCheck = errCheckData(r); if (!eCheck) { //エラーがあったとき { _errHeaderIndex = i; // エラーとなったヘッダRowIndex break; } } } } // いったんオーナーをアクティブにする frm.Activate(); // 進行状況ダイアログを閉じる frmP.Close(); // オーナーのフォームを有効に戻す frm.Enabled = true; return(eCheck); }