예제 #1
0
        ///--------------------------------------------------------------------------------------
        /// <summary>
        ///     楽商受入データ作成</summary>
        ///--------------------------------------------------------------------------------------
        public void SaveData()
        {
            // 楽商データ作成先パス取得
            var    ss     = dts.環境設定.Single(a => a.ID == 1);
            string okPath = ss.受け渡しデータ作成パス;

            // 事前に入力された日付を採用する 2017/10/23
            _numDate = ss.当日日付;
            dtSeq    = ss.連番;

            //if (ss.Is当日日付Null())
            //{
            //    _numDate = DateTime.Today;
            //    dtSeq = 0;
            //}
            //else if (ss.当日日付 != DateTime.Today)
            //{
            //    _numDate = DateTime.Today;
            //    dtSeq = 0;
            //}
            //else
            //{
            //    _numDate = ss.当日日付;
            //    dtSeq = ss.連番;
            //}

            #region 出力配列
            string[] arrayCsv = null;     // 出力配列
            #endregion

            #region 出力件数変数
            int sCnt = 0;   // 社員出力件数
            #endregion

            StringBuilder sb = new StringBuilder();
            global        gl = new global();

            // 出力先フォルダがあるか?なければ作成する
            if (!System.IO.Directory.Exists(okPath))
            {
                System.IO.Directory.CreateDirectory(okPath);
            }

            DateTime dt = DateTime.Now;
            string   ts = dt.Year + dt.Month.ToString().PadLeft(2, '0') + dt.Day.ToString().PadLeft(2, '0') + dt.Hour.ToString().PadLeft(2, '0') + dt.Minute.ToString().PadLeft(2, '0') + dt.Second.ToString().PadLeft(2, '0');

            try
            {
                //オーナーフォームを無効にする
                _preForm.Enabled = false;

                //プログレスバーを表示する
                frmPrg frmP = new frmPrg();
                frmP.Owner = _preForm;
                frmP.Show();

                int rCnt = 1;

                // 発注書データ取得
                var s = _hTbl.OrderBy(a => a.ID);
                foreach (var r in s)
                {
                    // プログレスバー表示
                    frmP.Text          = "楽商データ作成中です・・・" + rCnt.ToString() + "/" + s.Count().ToString();
                    frmP.progressValue = rCnt * 100 / s.Count();
                    frmP.ProgressStep();

                    // 共通データを作成する
                    string uCSV = getHeadCsv(r, ts, rCnt, ss);

                    // 商品パターン・注文数クラスインスタンス作成
                    hinSuu[] hS = new hinSuu[40];
                    setHinSuuArray(ref hS, r);

                    int iX = 1;

                    for (int i = 0; i < hS.Length; i++)
                    {
                        if (Utility.StrtoInt(hS[i].Suu) != 0)
                        {
                            sb.Clear();
                            sb.Append(iX.ToString()).Append("\t");
                            sb.Append(hS[i].hin.ToString().PadLeft(8, '0')).Append("\t");
                            sb.Append(getHinName(hS[i].hin.ToString().PadLeft(8, '0'))).Append("\t");
                            sb.Append(hS[i].Suu).Append("\t");
                            sb.Append(DateTime.Now);

                            // 配列にデータを格納します
                            sCnt++;
                            Array.Resize(ref arrayCsv, sCnt);
                            arrayCsv[sCnt - 1] = uCSV + sb.ToString();

                            iX++;
                        }
                    }

                    rCnt++;
                }

                // CSVファイル出力
                if (arrayCsv != null)
                {
                    txtFileWrite(okPath, arrayCsv);
                }

                // いったんオーナーをアクティブにする
                _preForm.Activate();

                // 進行状況ダイアログを閉じる
                frmP.Close();

                // オーナーのフォームを有効に戻す
                _preForm.Enabled = true;

                // 当日連番を更新
                //ss.当日日付 = _numDate;   // 2017/10/23
                ss.連番 = dtSeq;
                cnfAdp.Update(dts.環境設定);
            }
            catch (Exception e)
            {
                MessageBox.Show("楽商データ作成中" + Environment.NewLine + e.Message, "エラー", MessageBoxButtons.OK);
            }
            finally
            {
                //if (OutData.sCom.Connection.State == ConnectionState.Open) OutData.sCom.Connection.Close();
            }
        }
예제 #2
0
        ///--------------------------------------------------------------------------------------
        /// <summary>
        ///     楽商受入データ作成:キャンペーン発注書</summary>
        ///--------------------------------------------------------------------------------------
        public void SaveData(clsCamData [] camArray)
        {
            // 楽商データ作成先パス取得
            var ss = dts.環境設定.Single(a => a.ID == 1);

            string okPath = ss.受け渡しデータ作成パス;

            // 事前に入力された日付を採用する 2017/10/23
            _numDate = ss.当日日付;
            dtSeq    = ss.連番;

            //if (ss.Is当日日付Null())
            //{
            //    _numDate = DateTime.Today;
            //    dtSeq = 0;
            //}
            //else if (ss.当日日付 != DateTime.Today)
            //{
            //    _numDate = DateTime.Today;
            //    dtSeq = 0;
            //}
            //else
            //{
            //    _numDate = ss.当日日付;
            //    dtSeq = ss.連番;
            //}

            #region 出力配列
            string[] arrayCsv = null;     // 出力配列
            #endregion

            #region 出力件数変数
            int sCnt = 0;   // 社員出力件数
            #endregion

            StringBuilder sb = new StringBuilder();
            global        gl = new global();

            // 出力先フォルダがあるか?なければ作成する
            if (!System.IO.Directory.Exists(okPath))
            {
                System.IO.Directory.CreateDirectory(okPath);
            }

            DateTime dt = DateTime.Now;
            string   ts = dt.Year + dt.Month.ToString().PadLeft(2, '0') + dt.Day.ToString().PadLeft(2, '0') + dt.Hour.ToString().PadLeft(2, '0') + dt.Minute.ToString().PadLeft(2, '0') + dt.Second.ToString().PadLeft(2, '0');

            try
            {
                //オーナーフォームを無効にする
                _preForm.Enabled = false;

                //プログレスバーを表示する
                frmPrg frmP = new frmPrg();
                frmP.Owner = _preForm;
                frmP.Show();

                int rCnt = 1;

                // キャンペーンデータ配列取得
                for (int n = 0; n < camArray.Length; n++)
                {
                    // プログレスバー表示
                    frmP.Text          = "楽商データ作成中です・・・" + n + "/" + camArray.Length;
                    frmP.progressValue = n * 100 / camArray.Length;
                    frmP.ProgressStep();

                    // 社内伝票番号連番インクリメント
                    dtSeq++;

                    // 0が商品、1がプレゼント
                    for (int sp = 0; sp < 2; sp++)
                    {
                        int r = 0;  // 行番号

                        // 共通データを作成する
                        string uCSV = getHeadCsv(camArray, n, ts, rCnt, ss, sp);

                        for (int iX = 0; iX < 15; iX++)
                        {
                            if (camArray[n].cCheck[iX])
                            {
                                // 2017/11/19
                                //r++;
                                //sb.Clear();
                                //sb.Append(r.ToString()).Append("\t");

                                if (sp == 0)
                                {
                                    if (camArray[n].cSSu[iX] > 0) // 数量有りを登録対象にする 2017/11/19
                                    {
                                        r++;
                                        sb.Clear();
                                        sb.Append(r.ToString()).Append("\t");

                                        sb.Append(camArray[n].cSCode[iX].ToString().PadLeft(8, '0')).Append("\t");
                                        sb.Append(camArray[n].cSName[iX].PadLeft(8, '0')).Append("\t");
                                        sb.Append(camArray[n].cSSu[iX].ToString()).Append("\t");

                                        // 2017.11.19
                                        sb.Append(DateTime.Now);

                                        // 配列にデータを格納します: 2017.11.19
                                        sCnt++;
                                        Array.Resize(ref arrayCsv, sCnt);
                                        arrayCsv[sCnt - 1] = uCSV + sb.ToString();
                                    }
                                }
                                else
                                {
                                    if (camArray[n].cPSu[iX] > 0) // 数量有りを登録対象にする 2017/11/19
                                    {
                                        r++;
                                        sb.Clear();
                                        sb.Append(r.ToString()).Append("\t");

                                        sb.Append(camArray[n].cPCode[iX].ToString().PadLeft(8, '0')).Append("\t");
                                        sb.Append(camArray[n].cPName[iX].PadLeft(8, '0')).Append("\t");
                                        sb.Append(camArray[n].cPSu[iX].ToString()).Append("\t");

                                        // 2017.11.19
                                        sb.Append(DateTime.Now);

                                        // 配列にデータを格納します: 2017.11.19
                                        sCnt++;
                                        Array.Resize(ref arrayCsv, sCnt);
                                        arrayCsv[sCnt - 1] = uCSV + sb.ToString();
                                    }
                                }

                                // 2017.11.19
                                //sb.Append(DateTime.Now);

                                //// 配列にデータを格納します
                                //sCnt++;
                                //Array.Resize(ref arrayCsv, sCnt);
                                //arrayCsv[sCnt - 1] = uCSV + sb.ToString();
                            }
                        }

                        rCnt++;
                    }
                }

                // 楽商受入CSVファイル出力
                if (arrayCsv != null)
                {
                    txtFileWrite(okPath, arrayCsv);
                }

                // いったんオーナーをアクティブにする
                _preForm.Activate();

                // 進行状況ダイアログを閉じる
                frmP.Close();

                // オーナーのフォームを有効に戻す
                _preForm.Enabled = true;

                // 当日連番を更新
                //ss.当日日付 = _numDate;   // 2017/10/23
                ss.連番 = dtSeq;
                cnfAdp.Update(dts.環境設定);
            }
            catch (Exception e)
            {
                MessageBox.Show("楽商データ作成中" + Environment.NewLine + e.Message, "エラー", MessageBoxButtons.OK);
            }
            finally
            {
                //if (OutData.sCom.Connection.State == ConnectionState.Open) OutData.sCom.Connection.Close();
            }
        }