예제 #1
0
파일: OCRData.cs 프로젝트: ymgw0867/IWT_OCR
        ///--------------------------------------------------------------------------------------------------
        /// <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);
        }
예제 #2
0
파일: OCRData.cs 프로젝트: ymgw0867/IWT_OCR
        ///-----------------------------------------------------------------------------------------------
        /// <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);
        }
예제 #3
0
파일: OCRData.cs 프로젝트: ymgw0867/IWT_OCR
        ///--------------------------------------------------------------------------------------------------
        /// <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);
        }