///-------------------------------------------------------------------------------------- /// <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> /// <param name="hS"> /// 発注商品・数量クラス配列</param> /// <param name="r"> /// NHBR_CLIDataSet.FAX注文書Row</param> ///-------------------------------------------------------------------------- private void setHinSuuArray(ref hinSuu[] hS, NHBR_CLIDataSet.FAX注文書Row r) { // 商品パターン・注文数配列クラスのインスタンス生成 for (int i = 0; i < hS.Length; i++) { hS[i] = new hinSuu(); } hS[0].Suu = r.注文数1; hS[1].Suu = r.注文数2; hS[2].Suu = r.注文数3; hS[3].Suu = r.注文数4; hS[4].Suu = r.注文数5; hS[5].Suu = r.注文数6; hS[6].Suu = r.注文数7; hS[7].Suu = r.注文数8; hS[8].Suu = r.注文数9; hS[9].Suu = r.注文数10; hS[10].Suu = r.注文数11; hS[11].Suu = r.注文数12; hS[12].Suu = r.注文数13; hS[13].Suu = r.注文数14; hS[14].Suu = r.注文数15; hS[15].Suu = r.注文数16; hS[16].Suu = r.注文数17; hS[17].Suu = r.注文数18; hS[18].Suu = r.注文数19; hS[19].Suu = r.注文数20; hS[20].Suu = r.注文数21; hS[21].Suu = r.注文数22; hS[22].Suu = r.注文数23; hS[23].Suu = r.注文数24; hS[24].Suu = r.注文数25; hS[25].Suu = r.注文数26; hS[26].Suu = r.注文数27; hS[27].Suu = r.注文数28; hS[28].Suu = r.注文数29; hS[29].Suu = r.注文数30; hS[30].Suu = r.追加注文数1; hS[31].Suu = r.追加注文数2; hS[32].Suu = r.追加注文数3; hS[33].Suu = r.追加注文数4; hS[34].Suu = r.追加注文数5; hS[35].Suu = r.追加注文数6; hS[36].Suu = r.追加注文数7; hS[37].Suu = r.追加注文数8; hS[38].Suu = r.追加注文数9; hS[39].Suu = r.追加注文数10; // 2017/08/23 : パターンIDで発注のとき if (r.パターンID != global.flgOff) { var s = _pTbl.Single(a => a.届先番号 == r.届先番号 && a.連番 == r.パターンID); hS[0].hin = s.商品1; hS[1].hin = s.商品2; hS[2].hin = s.商品3; hS[3].hin = s.商品4; hS[4].hin = s.商品5; hS[5].hin = s.商品6; hS[6].hin = s.商品7; hS[7].hin = s.商品8; hS[8].hin = s.商品9; hS[9].hin = s.商品10; hS[10].hin = s.商品11; hS[11].hin = s.商品12; hS[12].hin = s.商品13; hS[13].hin = s.商品14; hS[14].hin = s.商品15; hS[15].hin = s.商品16; hS[16].hin = s.商品17; hS[17].hin = s.商品18; hS[18].hin = s.商品19; hS[19].hin = s.商品20; hS[20].hin = s.商品21; hS[21].hin = s.商品22; hS[22].hin = s.商品23; hS[23].hin = s.商品24; hS[24].hin = s.商品25; hS[25].hin = s.商品26; hS[26].hin = s.商品27; hS[27].hin = s.商品28; hS[28].hin = s.商品29; hS[29].hin = s.商品30; } else { hS[0].hin = Utility.StrtoInt(r.商品コード1); hS[1].hin = Utility.StrtoInt(r.商品コード2); hS[2].hin = Utility.StrtoInt(r.商品コード3); hS[3].hin = Utility.StrtoInt(r.商品コード4); hS[4].hin = Utility.StrtoInt(r.商品コード5); hS[5].hin = Utility.StrtoInt(r.商品コード6); hS[6].hin = Utility.StrtoInt(r.商品コード7); hS[7].hin = Utility.StrtoInt(r.商品コード8); hS[8].hin = Utility.StrtoInt(r.商品コード9); hS[9].hin = Utility.StrtoInt(r.商品コード10); hS[10].hin = Utility.StrtoInt(r.商品コード11); hS[11].hin = Utility.StrtoInt(r.商品コード12); hS[12].hin = Utility.StrtoInt(r.商品コード13); hS[13].hin = Utility.StrtoInt(r.商品コード14); hS[14].hin = Utility.StrtoInt(r.商品コード15); hS[15].hin = Utility.StrtoInt(r.商品コード16); hS[16].hin = Utility.StrtoInt(r.商品コード17); hS[17].hin = Utility.StrtoInt(r.商品コード18); hS[18].hin = Utility.StrtoInt(r.商品コード19); hS[19].hin = Utility.StrtoInt(r.商品コード20); hS[20].hin = Utility.StrtoInt(r.商品コード21); hS[21].hin = Utility.StrtoInt(r.商品コード22); hS[22].hin = Utility.StrtoInt(r.商品コード23); hS[23].hin = Utility.StrtoInt(r.商品コード24); hS[24].hin = Utility.StrtoInt(r.商品コード25); hS[25].hin = Utility.StrtoInt(r.商品コード26); hS[26].hin = Utility.StrtoInt(r.商品コード27); hS[27].hin = Utility.StrtoInt(r.商品コード28); hS[28].hin = Utility.StrtoInt(r.商品コード29); hS[29].hin = Utility.StrtoInt(r.商品コード30); } hS[30].hin = Utility.StrtoInt(r.追加注文商品コード1); hS[31].hin = Utility.StrtoInt(r.追加注文商品コード2); hS[32].hin = Utility.StrtoInt(r.追加注文商品コード3); hS[33].hin = Utility.StrtoInt(r.追加注文商品コード4); hS[34].hin = Utility.StrtoInt(r.追加注文商品コード5); hS[35].hin = Utility.StrtoInt(r.追加注文商品コード6); hS[36].hin = Utility.StrtoInt(r.追加注文商品コード7); hS[37].hin = Utility.StrtoInt(r.追加注文商品コード8); hS[38].hin = Utility.StrtoInt(r.追加注文商品コード9); hS[39].hin = Utility.StrtoInt(r.追加注文商品コード10); }