Ejemplo n.º 1
0
        /// -----------------------------------------------------------------
        /// <summary>
        ///     照合済みの未照合伝票データで配車テーブルを更新する </summary>
        /// <returns>
        ///     照合済み件数</returns>
        /// -----------------------------------------------------------------
        public int haishaDataUpdateUn()
        {
            // データセット
            DSLGDataSet dts = new DSLGDataSet();

            DSLGDataSetTableAdapters.未照合伝票TableAdapter adp  = new DSLGDataSetTableAdapters.未照合伝票TableAdapter();
            DSLGDataSetTableAdapters.配車TableAdapter    hAdp = new DSLGDataSetTableAdapters.配車TableAdapter();

            adp.Fill(dts.未照合伝票);
            hAdp.Fill(dts.配車);

            // 照合件数
            int dNum = 0;

            // 照合済みデータを抽出
            foreach (var t in dts.未照合伝票.Where(a => a.照合ステータス == global.STATUS_VERIFI))
            {
                // 配車データの照合結果を更新する
                if (dts.配車.Any(a => a.伝票番号 == t.伝票番号))
                {
                    DSLGDataSet.配車Row r = dts.配車.Single(a => a.伝票番号 == t.伝票番号 && a.日付 == t.日付);
                    r.画像名     = t.画像名;
                    r.照合ステータス = t.照合ステータス;
                    r.更新年月日   = DateTime.Now;

                    dNum++;

                    // 未照合伝票データを削除
                    t.Delete();
                }
            }

            // データベースを更新
            hAdp.Update(dts.配車);
            adp.Update(dts.未照合伝票);

            // 後片付け
            adp.Dispose();
            hAdp.Dispose();

            // 照合件数を返す
            return(dNum);
        }
Ejemplo n.º 2
0
        private void frmMnkeshikomi_Load(object sender, EventArgs e)
        {
            // メーカーコンボボックスに配車テーブルのメーカー名をセットします
            DSLGDataSet dts = new DSLGDataSet();

            DSLGDataSetTableAdapters.配車TableAdapter adp = new DSLGDataSetTableAdapters.配車TableAdapter();
            adp.Fill(dts.配車);

            var s = dts.配車.Select(a => new
            {
                a.メーカー名
            }).Distinct();

            foreach (var t in s)
            {
                comboBox1.Items.Add(t.メーカー名);
            }

            // 伝票番号
            txtDenNum.Text = _denNum;
        }
Ejemplo n.º 3
0
        /// ------------------------------------------------------------
        /// <summary>
        ///     未照合伝票・配車データ照合 </summary>
        ///
        ///     対象ステータス:未処理、NG
        ///
        ///     2016/04/05 再照合条件に日付を追加
        /// ------------------------------------------------------------
        public void findHaishaDataUn()
        {
            // 新画像名
            string newImgNm = string.Empty;

            // データセット
            DSLGDataSet dts = new DSLGDataSet();

            DSLGDataSetTableAdapters.未照合伝票TableAdapter adp  = new DSLGDataSetTableAdapters.未照合伝票TableAdapter();
            DSLGDataSetTableAdapters.配車TableAdapter    adpH = new DSLGDataSetTableAdapters.配車TableAdapter();
            adp.Fill(dts.未照合伝票);
            adpH.Fill(dts.配車);

            // 未照合伝票を順次読む
            if (dts.未照合伝票.Any(a => a.照合ステータス == global.STATUS_UNVERI ||
                              a.照合ステータス == global.STATUS_NG))
            {
                foreach (var t in dts.未照合伝票.Where(a => a.照合ステータス == global.STATUS_UNVERI ||
                                                  a.照合ステータス == global.STATUS_NG).OrderBy(a => a.ID))
                {
                    bool   md     = false;
                    string hDate  = string.Empty;
                    string hMaker = string.Empty;

                    // 有効な伝票番号のとき
                    if (t.伝票番号 > 0)
                    {
                        // 配車データを検索 2016/04/05 再照合条件に日付を追加
                        foreach (var it in dts.配車.Where(a => a.伝票番号 == t.伝票番号 && a.日付 == t.日付))
                        {
                            md     = true;
                            hDate  = it.日付.ToShortDateString(); // 日付
                            hMaker = it.メーカー名;                  // メーカー名
                        }

                        DSLGDataSet.未照合伝票Row d = dts.未照合伝票.Single(a => a.ID == t.ID);

                        if (md)
                        {
                            // 配車データに該当あり

                            // パスを含む新画像名
                            newImgNm = global.cnfTifPath + hDate.Replace("/", "") + hMaker + "_" + t.伝票番号.ToString() + ".tif";

                            // 再度読み込んだとき等、登録済みのときは削除する
                            if (System.IO.File.Exists(newImgNm))
                            {
                                System.IO.File.Delete(newImgNm);
                            }

                            // 画像を処理済フォルダへ移動する
                            System.IO.File.Move(t.画像名, newImgNm);

                            // 伝票番号テーブル情報更新
                            d.日付      = DateTime.Parse(hDate);
                            d.メーカー名   = hMaker;
                            d.照合ステータス = global.STATUS_VERIFI;
                            d.画像名     = newImgNm;
                            d.更新年月日   = DateTime.Now;
                        }
                        else
                        {
                            // 伝票番号テーブルの照合ステータス更新
                            d.照合ステータス = global.STATUS_UNFIND;
                            d.更新年月日   = DateTime.Now;
                        }
                    }
                }

                // データ更新
                adp.Update(dts.未照合伝票);
            }

            // 後片付け
            adp.Dispose();
        }
Ejemplo n.º 4
0
        ///-------------------------------------------------------------------
        /// <summary>
        ///     配車データ(CSV)を配車テーブルにインポートする </summary>
        ///-------------------------------------------------------------------
        public bool importHaishaCsv()
        {
            // 配車テーブル読み込み
            DSLGDataSet dts = new DSLGDataSet();

            DSLGDataSetTableAdapters.配車TableAdapter adpHt = new DSLGDataSetTableAdapters.配車TableAdapter();
            adpHt.Fill(dts.配車);

            // 配車データパス
            string cFile = global.cnfHaishaPath;

            // 日付
            DateTime dt = DateTime.Today;

            if (System.IO.File.Exists(cFile))
            {
                foreach (var t in System.IO.File.ReadAllLines(cFile, Encoding.Default))
                {
                    // カンマごとに分割し配列にセット
                    string[] hCsv = t.Split(',');

                    // ダブルコーテーションを除去
                    hCsv[0] = hCsv[0].Replace(@"""", string.Empty); // 日付
                    hCsv[1] = hCsv[1].Replace(@"""", string.Empty); // メーカー名
                    hCsv[2] = hCsv[2].Replace(@"""", string.Empty); // 伝票番号

                    string cDt = string.Empty;

                    // CSVデータの内容をチェック
                    if (!csvCheck(hCsv, out cDt))
                    {
                        continue;   // エラーのとき読み飛ばし
                    }

                    // 配車データに追加登録
                    if (DateTime.TryParse(cDt, out dt))
                    {
                        if (!dts.配車.Any(a => a.日付 == dt && a.メーカー名 == hCsv[1] &&
                                        a.伝票番号 == Utility.StrtoInt(hCsv[2])))
                        {
                            // 配車テーブルに追加登録
                            DSLGDataSet.配車Row hr = dts.配車.New配車Row();
                            hr.日付      = dt;
                            hr.メーカー名   = hCsv[1];
                            hr.伝票番号    = Utility.StrtoInt(hCsv[2]);
                            hr.照合ステータス = global.flgOff;
                            hr.画像名     = "";
                            hr.更新年月日   = DateTime.Now;
                            dts.配車.Add配車Row(hr);
                        }
                    }
                }

                // データベース更新
                adpHt.Update(dts.配車);

                return(true);
            }
            else
            {
                // 配車CSVが存在しないとき
                string msg = "配車データ:" + cFile + "が存在しません。" + Environment.NewLine + Environment.NewLine +
                             "データを選択後、再実行してください。";

                MessageBox.Show(msg, "配車データ未登録", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }
        }
Ejemplo n.º 5
0
        /// ------------------------------------------------------------
        /// <summary>
        ///     配車データ照合 </summary>
        /// ------------------------------------------------------------
        public int findHaishaData()
        {
            // 新画像名
            string newImgNm = string.Empty;

            // データセット
            DSLGDataSet dts = new DSLGDataSet();

            DSLGDataSetTableAdapters.伝票番号TableAdapter adp  = new DSLGDataSetTableAdapters.伝票番号TableAdapter();
            DSLGDataSetTableAdapters.配車TableAdapter   adpH = new DSLGDataSetTableAdapters.配車TableAdapter();
            adp.Fill(dts.伝票番号);
            adpH.Fill(dts.配車);

            // 未照合件数
            int dNum = 0;

            // OCR認識日付取得
            DateTime dt  = getOcrDate();
            string   sDt = dt.Year.ToString() + dt.Month.ToString().PadLeft(2, '0') + dt.Day.ToString().PadLeft(2, '0');

            // 未照合画像連番取得
            int unNum = getUnNumber(dt);
            int cNum  = unNum;

            // 伝票データを順次読む
            if (dts.伝票番号.Any(a => a.照合ステータス == global.STATUS_UNVERI))
            {
                foreach (var t in dts.伝票番号.Where(a => a.照合ステータス == global.STATUS_UNVERI).OrderBy(a => a.ID))
                {
                    bool   md     = false;
                    string hDate  = string.Empty;
                    string hMaker = string.Empty;

                    // 配車データを検索 2016/08/03 照合条件に日付を追加
                    // 配車データを検索 2016/08/10 照合条件の日付はOCR認識日付に変更
                    foreach (var it in dts.配車.Where(a => a.伝票番号 == t.伝票番号 && a.日付 == DateTime.Parse(dt.ToShortDateString())))
                    {
                        md     = true;
                        hDate  = it.日付.ToShortDateString();  // 日付
                        hMaker = it.メーカー名;                   // メーカー名
                        break;
                    }

                    DSLGDataSet.伝票番号Row d = dts.伝票番号.Single(a => a.ID == t.ID);

                    if (md)
                    {
                        // 配車データに該当あり

                        // 画像を処理済フォルダへ移動する
                        newImgNm = global.cnfTifPath + hDate.Replace("/", "") + hMaker + "_" + t.伝票番号.ToString() + ".tif";

                        // 再度読み込んだとき等、登録済みのときは削除する
                        if (System.IO.File.Exists(newImgNm))
                        {
                            System.IO.File.Delete(newImgNm);
                        }

                        System.IO.File.Move(Properties.Settings.Default.imgOutPath + t.画像名, newImgNm);

                        // 伝票番号テーブル情報更新
                        d.日付      = DateTime.Parse(hDate);
                        d.メーカー名   = hMaker;
                        d.照合ステータス = global.STATUS_VERIFI;
                        d.画像名     = newImgNm;
                        d.更新年月日   = DateTime.Now;
                    }
                    else
                    {
                        // 画像を未処理フォルダへ移動する
                        cNum++;
                        newImgNm = global.cnfUnmImgPath + sDt + global.UNMARK + cNum.ToString().PadLeft(4, '0') + "_" + t.伝票番号.ToString() + ".tif";
                        System.IO.File.Move(Properties.Settings.Default.imgOutPath + t.画像名, newImgNm);

                        // 伝票番号テーブルの照合ステータス更新
                        d.日付      = DateTime.Parse(dt.ToShortDateString());
                        d.照合ステータス = global.STATUS_UNFIND;
                        d.画像名     = newImgNm;
                        d.更新年月日   = DateTime.Now;

                        dNum++;
                    }
                }

                // データ更新
                adp.Update(dts.伝票番号);

                // 配車データ未登録があったとき
                if (unNum != cNum)
                {
                    // 未処理連番テーブル更新
                    setUnNumber(dt, cNum);
                }
            }

            // 後片付け
            adp.Dispose();

            // 未処理件数を返す
            return(dNum);
        }