private void list_make() { //製品構成情報を部品コードでグループ化し部品毎の合計使用数のdtを作成する DataTable w_dt_seihin_kousei = new DataTable(); w_dt_seihin_kousei = tss.get_seihin_kousei_mattan(tb_seihin_cd.Text.ToString(), tb_seihin_kousei_no.Text.ToString()); if (w_dt_seihin_kousei.Rows.Count == 0) { MessageBox.Show("製品構成の部品明細が読み込めませんでした。"); return; } //使用数dtを使ってdgvを手動で作成する //w_dt_mの空枠の作成 w_dt_m.Rows.Clear(); w_dt_m.Columns.Clear(); w_dt_m.Clear(); //列の定義 w_dt_m.Columns.Add("buhin_cd"); w_dt_m.Columns.Add("buhin_name"); w_dt_m.Columns.Add("siyou_su"); w_dt_m.Columns.Add("free_zaiko_su"); w_dt_m.Columns.Add("lot_zaiko_su"); w_dt_m.Columns.Add("sonota_zaiko_su"); w_dt_m.Columns.Add("ttl_zaiko_su"); w_dt_m.Columns.Add("syori_su"); w_dt_m.Columns.Add("final_zaiko_su"); //行追加 DataRow w_dt_row; string w_dt_buhin_cd; //部品コード string w_dt_buhin_name; //部品名 string w_dt_siyou_su; //使用数 string w_dt_free_zaiko_su; //フリー在庫数 string w_dt_lot_zaiko_su; //ロット在庫数 string w_dt_sonota_zaiko_su; //その他在庫数 string w_dt_ttl_zaiko_su; //合計在庫数 string w_dt_syori_su; //処理数 string w_dt_final_zaiko_su; //差 decimal w_dou_siyou_su; //必要数計算用 decimal w_dou_syori_su; //必要数計算用 decimal w_dou_ttl_zaiko_su; //差計算用 decimal w_dou_hituyou_su; //差計算用 foreach (DataRow dr in w_dt_seihin_kousei.Rows) { //dgv作成にあたり、必要な情報を集める //部品コード w_dt_buhin_cd = dr["buhin_cd"].ToString(); //部品名 w_dt_buhin_name = tss.get_buhin_name(dr["buhin_cd"].ToString()); //使用数 w_dt_siyou_su = dr[1].ToString(); //フリー在庫数 w_dt_free_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "01"); //ロット在庫数 w_dt_lot_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "02"); //その他在庫数 w_dt_sonota_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "03"); //合計在庫数 w_dt_ttl_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "**"); //処理数 if (decimal.TryParse(w_dt_siyou_su, out w_dou_siyou_su) && decimal.TryParse(tb_suuryo.Text, out w_dou_syori_su)) { w_dt_syori_su = (w_dou_siyou_su * w_dou_syori_su).ToString("0.00"); } else { w_dt_syori_su = "0.00"; } //最終在庫数 if (decimal.TryParse(w_dt_ttl_zaiko_su, out w_dou_ttl_zaiko_su) && decimal.TryParse(w_dt_syori_su, out w_dou_hituyou_su)) { if (rb_nyuuko.Checked == true) { //入庫 w_dt_final_zaiko_su = (w_dou_ttl_zaiko_su + w_dou_hituyou_su).ToString("0.00"); } else { //出庫 w_dt_final_zaiko_su = (w_dou_ttl_zaiko_su + w_dou_hituyou_su * -1).ToString("0.00"); } } else { w_dt_final_zaiko_su = "0.00"; } //w_dt_mにレコードを作成 w_dt_row = w_dt_m.NewRow(); w_dt_row["buhin_cd"] = w_dt_buhin_cd; w_dt_row["buhin_name"] = w_dt_buhin_name; w_dt_row["siyou_su"] = w_dt_siyou_su; w_dt_row["free_zaiko_su"] = w_dt_free_zaiko_su; w_dt_row["lot_zaiko_su"] = w_dt_lot_zaiko_su; w_dt_row["sonota_zaiko_su"] = w_dt_sonota_zaiko_su; w_dt_row["ttl_zaiko_su"] = w_dt_ttl_zaiko_su; w_dt_row["syori_su"] = w_dt_syori_su; w_dt_row["final_zaiko_su"] = w_dt_final_zaiko_su; w_dt_m.Rows.Add(w_dt_row); } list_disp(); }
private void list_make() { DataTable w_dt_seihin_kousei = new DataTable(); //製品構成情報を部品コードでグループ化し部品毎の合計使用数のdtを作成する w_dt_seihin_kousei = tss.get_seihin_kousei_mattan(tb_seihin_cd.Text.ToString(), tb_seihin_kousei_no.Text.ToString()); //w_dt_seihin_kousei = tss.OracleSelect("select buhin_cd,sum(siyou_su) from tss_seihin_kousei_m where seihin_cd = '" + tb_seihin_cd.Text.ToString() + "' and seihin_kousei_no = '" + tb_seihin_kousei_no.Text.ToString() + "' and oya_buhin_cd is null and gokan_buhin_cd is null group by buhin_cd order by buhin_cd asc"); if (w_dt_seihin_kousei.Rows.Count == 0) { MessageBox.Show("製品構成の部品明細が読み込めませんでした。"); return; } //使用数dtを使ってdgvを手動で作成する //w_dt_mの空枠の作成 w_dt_m.Rows.Clear(); w_dt_m.Columns.Clear(); w_dt_m.Clear(); //w_dt_m = null; //列の定義 w_dt_m.Columns.Add("buhin_cd"); w_dt_m.Columns.Add("buhin_name"); w_dt_m.Columns.Add("siyou_su"); w_dt_m.Columns.Add("free_zaiko_su"); w_dt_m.Columns.Add("sitei_lot_zaiko_su"); w_dt_m.Columns.Add("lot_zaiko_su"); w_dt_m.Columns.Add("sonota_zaiko_su"); w_dt_m.Columns.Add("ttl_zaiko_su"); w_dt_m.Columns.Add("hituyou_su"); w_dt_m.Columns.Add("sa"); //行追加 DataRow w_dt_row; string w_dt_buhin_cd; //部品コード string w_dt_buhin_name; //部品名 string w_dt_siyou_su; //使用数 string w_dt_free_zaiko_su; //フリー在庫数 string w_dt_sitei_lot_zaiko_su; //指定ロット在庫数 string w_dt_lot_zaiko_su; //ロット在庫数 string w_dt_sonota_zaiko_su; //その他在庫数 string w_dt_ttl_zaiko_su; //合計在庫数 string w_dt_hituyou_su; //必要数 string w_dt_sa; //差 decimal w_dou_siyou_su; //必要数計算用 decimal w_dou_seisan_su; //必要数計算用 decimal w_dou_ttl_zaiko_su; //差計算用 decimal w_dou_hituyou_su; //差計算用 decimal w_seisan_kanou_su; //生産可能数計算用 decimal w_seisan_kanou_su2; //生産可能数計算用 w_seisan_kanou_su = decimal.Parse("9999999999.99"); foreach (DataRow dr in w_dt_seihin_kousei.Rows) { //dgv作成にあたり、必要な情報を集める //部品コード w_dt_buhin_cd = dr["buhin_cd"].ToString(); //部品名 w_dt_buhin_name = tss.get_buhin_name(dr["buhin_cd"].ToString()); //使用数 w_dt_siyou_su = dr[1].ToString(); //フリー在庫数 w_dt_free_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "01"); //指定ロット在庫数 if (tb_juchu_cd2.Text == "") { w_dt_sitei_lot_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "02", tb_torihikisaki_cd.Text.ToString(), tb_juchu_cd1.Text.ToString(), "9999999999999999"); } else { w_dt_sitei_lot_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "02", tb_torihikisaki_cd.Text.ToString(), tb_juchu_cd1.Text.ToString(), tb_juchu_cd2.Text.ToString()); } //ロット在庫数 w_dt_lot_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "02"); //その他在庫数 w_dt_sonota_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "03"); //合計在庫数 w_dt_ttl_zaiko_su = tss.get_zaiko(dr["buhin_cd"].ToString(), "**"); //必要数 if (decimal.TryParse(w_dt_siyou_su, out w_dou_siyou_su) && decimal.TryParse(tb_seisan_sitai_daisuu.Text, out w_dou_seisan_su)) { w_dt_hituyou_su = (w_dou_siyou_su * w_dou_seisan_su).ToString("0.00"); } else { w_dt_hituyou_su = "0.00"; } //差 if (decimal.TryParse(w_dt_ttl_zaiko_su, out w_dou_ttl_zaiko_su) && decimal.TryParse(w_dt_hituyou_su, out w_dou_hituyou_su)) { w_dt_sa = (w_dou_ttl_zaiko_su - w_dou_hituyou_su).ToString("0.00"); } else { w_dt_sa = "0.00"; } //w_dt_mにレコードを作成 w_dt_row = w_dt_m.NewRow(); w_dt_row["buhin_cd"] = w_dt_buhin_cd; w_dt_row["buhin_name"] = w_dt_buhin_name; w_dt_row["siyou_su"] = w_dt_siyou_su; w_dt_row["free_zaiko_su"] = w_dt_free_zaiko_su; w_dt_row["sitei_lot_zaiko_su"] = w_dt_sitei_lot_zaiko_su; w_dt_row["lot_zaiko_su"] = w_dt_lot_zaiko_su; if (w_dt_sitei_lot_zaiko_su != "" && w_dt_lot_zaiko_su != "") { w_dt_row["lot_zaiko_su"] = (decimal.Parse(w_dt_lot_zaiko_su) - decimal.Parse(w_dt_sitei_lot_zaiko_su)).ToString(); } else { //w_dt_row["lot_zaiko_su"] = (decimal.Parse(w_dt_lot_zaiko_su) - decimal.Parse(w_dt_sitei_lot_zaiko_su)).ToString(); } //w_dt_row["lot_zaiko_su"] = w_dt_lot_zaiko_su; w_dt_row["sonota_zaiko_su"] = w_dt_sonota_zaiko_su; w_dt_row["ttl_zaiko_su"] = w_dt_ttl_zaiko_su; w_dt_row["hituyou_su"] = w_dt_hituyou_su; w_dt_row["sa"] = w_dt_sa; w_dt_m.Rows.Add(w_dt_row); //生産可能数の算出 if (w_dou_ttl_zaiko_su == 0) { w_seisan_kanou_su2 = 0; } else { if (w_dou_siyou_su == 0) { w_seisan_kanou_su2 = w_dou_ttl_zaiko_su; } else { w_seisan_kanou_su2 = Math.Truncate(w_dou_ttl_zaiko_su / w_dou_siyou_su); } } if (w_seisan_kanou_su > w_seisan_kanou_su2) { w_seisan_kanou_su = w_seisan_kanou_su2; } } list_disp(); tb_seisan_kanou_daisuu.Text = w_seisan_kanou_su.ToString(); }