///-------------------------------------------------------------------------------------- /// <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(); } }
///-------------------------------------------------------------------------------------- /// <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(); } }