예제 #1
0
        private void tb_buhin_cd_DoubleClick(object sender, EventArgs e)
        {
            //選択画面へ
            string w_buhin_cd;

            w_buhin_cd = tss.search_buhin("2", tb_buhin_cd.Text);
            if (w_buhin_cd == "")
            {
                return;
            }
            else
            {
                tb_buhin_cd.Text   = w_buhin_cd;
                tb_buhin_name.Text = tss.get_buhin_name(w_buhin_cd);
                kensaku();
            }
        }
        private void dgv_idou_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int i = e.ColumnIndex;

            if (i == 0)
            {
                //選択画面へ
                string w_buhin_cd;
                w_buhin_cd = tss.search_buhin("2", "");
                if (w_buhin_cd != "")
                {
                    dgv_idou.CurrentCell.Value = w_buhin_cd;
                    dgv_idou.Rows[e.RowIndex].Cells[i + 1].Value = tss.get_buhin_name(w_buhin_cd);
                    dgv_idou.EndEdit();
                }
            }

            if (i == 3)
            {
                if (dgv_idou.CurrentRow.Cells[2].Value == null || dgv_idou.CurrentRow.Cells[2].Value.ToString() != "01")
                {
                    //torihikisaki_dc_ck();

                    //選択画面へ
                    string w_cd;
                    w_cd = tss.search_torihikisaki("2", "");
                    if (w_cd != "")
                    {
                        dgv_idou.CurrentCell.Value = w_cd;



                        if (dgv_idou.Rows[e.RowIndex].Cells[0].Value != null)
                        {
                            //torihikisaki_ckメソッド

                            string str  = dgv_idou.Rows[e.RowIndex].Cells[0].Value.ToString();
                            string str2 = w_cd;

                            DataTable dt_w2 = new DataTable();
                            dt_w2 = tss.OracleSelect("select torihikisaki_cd from tss_buhin_m where buhin_cd  =  '" + str + "'");

                            if (dt_w2.Rows.Count == 0)
                            {
                                MessageBox.Show("入力された移動先取引先コードが存在しません");
                                return;
                            }
                            else
                            {
                                string str3 = dt_w2.Rows[0][0].ToString();

                                if (str2 == str3)
                                {
                                }
                                else
                                {
                                    DialogResult result = MessageBox.Show("移動する部品コードの取引先コードと部品マスタの取引先コードが異なりますがよろしいですか?",
                                                                          "部品入移動登録",
                                                                          MessageBoxButtons.OKCancel,
                                                                          MessageBoxIcon.Exclamation,
                                                                          MessageBoxDefaultButton.Button1);

                                    if (result == DialogResult.OK)
                                    {
                                        dgv_idou.EndEdit();
                                        //dgv_seihin_kousei.EndEdit();
                                        dgv_idou.Focus();
                                    }
                                    if (result == DialogResult.Cancel)
                                    {
                                        return;
                                    }
                                }
                            }
                        }
                    }
                    dgv_idou.EndEdit();
                }

                else
                {
                    return;
                }
            }

            if (i == 7)
            {
                if (dgv_idou.CurrentRow.Cells[6].Value == null || dgv_idou.CurrentRow.Cells[6].Value.ToString() != "01")
                {
                    //選択画面へ
                    string w_cd;
                    w_cd = tss.search_torihikisaki("2", "");
                    if (w_cd != "")
                    {
                        dgv_idou.CurrentCell.Value = w_cd;



                        if (dgv_idou.Rows[e.RowIndex].Cells[0].Value != null)
                        {
                            //torihikisaki_ckメソッド

                            string str  = dgv_idou.Rows[e.RowIndex].Cells[0].Value.ToString();
                            string str2 = w_cd;

                            DataTable dt_w2 = new DataTable();
                            dt_w2 = tss.OracleSelect("select torihikisaki_cd from tss_buhin_m where buhin_cd  =  '" + str + "'");

                            if (dt_w2.Rows.Count == 0)
                            {
                                MessageBox.Show("入力された移動先取引先コードが存在しません");
                                return;
                            }
                            else
                            {
                                string str3 = dt_w2.Rows[0][0].ToString();

                                if (str2 == str3)
                                {
                                }
                                else
                                {
                                    DialogResult result = MessageBox.Show("移動する部品コードの取引先コードと部品マスタの取引先コードが異なりますがよろしいですか?",
                                                                          "部品入移動登録",
                                                                          MessageBoxButtons.OKCancel,
                                                                          MessageBoxIcon.Exclamation,
                                                                          MessageBoxDefaultButton.Button1);

                                    if (result == DialogResult.OK)
                                    {
                                        dgv_idou.EndEdit();
                                        //dgv_seihin_kousei.EndEdit();
                                        dgv_idou.Focus();
                                    }
                                    if (result == DialogResult.Cancel)
                                    {
                                        return;
                                    }
                                }
                            }
                        }
                    }
                    dgv_idou.EndEdit();
                }
                else
                {
                    return;
                }
            }

            if (i == 4)
            {
                if (dgv_idou.CurrentRow.Cells[2].Value == null)
                {
                    MessageBox.Show("取引先コードを入力してください");
                    return;
                }

                if (dgv_idou.CurrentRow.Cells[3].Value == null && dgv_idou.CurrentRow.Cells[2].Value.ToString() != "01")
                {
                    MessageBox.Show("取引先コードを入力してください");
                    return;
                }

                if (dgv_idou.CurrentRow.Cells[2].Value == null || dgv_idou.CurrentRow.Cells[2].Value.ToString() != "01")
                {
                    //選択画面へ
                    string w_juchu_cd;
                    w_juchu_cd = tss.search_juchu("2", dgv_idou.CurrentRow.Cells[3].Value.ToString(), "", "", "");

                    if (w_juchu_cd.ToString() != "")
                    {
                        string str_w2 = w_juchu_cd.Substring(6, 16).TrimEnd();
                        string str_w3 = w_juchu_cd.Substring(22).TrimEnd();

                        dgv_idou.CurrentRow.Cells[i].Value     = str_w2.ToString();
                        dgv_idou.CurrentRow.Cells[i + 1].Value = str_w3.ToString();
                        dgv_idou.EndEdit();
                    }
                }
                else
                {
                    return;
                }
            }

            if (i == 8)
            {
                if (dgv_idou.CurrentRow.Cells[6].Value == null)
                {
                    MessageBox.Show("移動先取引先コードを入力してください");
                    return;
                }

                if (dgv_idou.CurrentRow.Cells[7].Value == null && dgv_idou.CurrentRow.Cells[6].Value.ToString() != "01")
                {
                    MessageBox.Show("移動先取引先コードを入力してください");
                    return;
                }

                if (dgv_idou.CurrentRow.Cells[6].Value == null || dgv_idou.CurrentRow.Cells[6].Value.ToString() != "01")
                {
                    //選択画面へ
                    string w_juchu_cd;
                    w_juchu_cd = tss.search_juchu("2", dgv_idou.CurrentRow.Cells[7].Value.ToString(), "", "", "");

                    if (w_juchu_cd.ToString() != "")
                    {
                        string str_w2 = w_juchu_cd.Substring(6, 16).TrimEnd();
                        string str_w3 = w_juchu_cd.Substring(22).TrimEnd();

                        dgv_idou.CurrentRow.Cells[i].Value     = str_w2.ToString();
                        dgv_idou.CurrentRow.Cells[i + 1].Value = str_w3.ToString();
                        dgv_idou.EndEdit();
                    }
                }
                else
                {
                    return;
                }
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
        private void dgv_seihin_kousei_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int i = e.ColumnIndex;

            if (i == 1 || i == 4)
            {
                //選択画面へ
                string w_buhin_cd;
                dgv_seihin_kousei.EndEdit();
                w_buhin_cd = tss.search_buhin("2", dgv_seihin_kousei.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());

                if (w_buhin_cd != "")
                {
                    dgv_seihin_kousei.CurrentCell.Value = w_buhin_cd;

                    string str1;
                    string str2;

                    DataTable dt_w  = new DataTable();
                    DataTable dt_w2 = new DataTable();

                    dt_w = tss.OracleSelect("select torihikisaki_cd from TSS_SEIHIN_M WHERE seihin_cd = '" + tb_seihin_cd.Text.ToString() + "'");
                    str1 = dt_w.Rows[0][0].ToString();

                    dt_w2 = tss.OracleSelect("select torihikisaki_cd from TSS_BUHIN_M WHERE buhin_cd = '" + w_buhin_cd.ToString() + "'");

                    if (dt_w2.Rows.Count == 0)
                    {
                        return;
                    }

                    //if (w_buhin_cd.ToString() == dgv_seihin_kousei.CurrentCell.Value.ToString())
                    //{

                    //}

                    else
                    {
                        str2 = dt_w2.Rows[0][0].ToString();

                        if (str1 != str2)
                        {
                            DialogResult result = MessageBox.Show("製品マスタの取引先コードと部品マスタの取引先コードが異なりますが登録しますか?",
                                                                  "製品構成登録",
                                                                  MessageBoxButtons.OKCancel,
                                                                  MessageBoxIcon.Exclamation,
                                                                  MessageBoxDefaultButton.Button1);

                            if (result == DialogResult.OK)
                            {
                                dgv_seihin_kousei.EndEdit();
                                //dgv_seihin_kousei.EndEdit();
                                dgv_seihin_kousei.Focus();
                            }
                            if (result == DialogResult.Cancel)
                            {
                                dgv_seihin_kousei.Rows[e.RowIndex].Cells[i + 1].Value = "";
                                return;
                            }
                        }
                    }
                    dgv_seihin_kousei.Rows[e.RowIndex].Cells[i + 1].Value = tss.get_buhin_name(w_buhin_cd);
                    dgv_seihin_kousei.EndEdit();
                }
            }
        }
예제 #5
0
        //データグリッドビューのセル編集イベント
        private void dgv_siire_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            DataGridView dgv = (DataGridView)sender;
            int          i   = e.RowIndex;

            if (tss.Check_String_Escape(e.FormattedValue.ToString()) == false)
            {
                e.Cancel = true;
                return;
            }

            //部品コードが入力されたときの処理
            if (e.ColumnIndex == 0)
            {
                //部品コードがnullや空白の場合
                if ((dgv.Rows[e.RowIndex].Cells[0] != null || dgv.Rows[e.RowIndex].Cells[0].Value.ToString() != "") && (e.FormattedValue == null || e.FormattedValue.ToString() == ""))
                {
                    dgv.Rows[i].Cells[0].Value = "";
                    dgv.Rows[i].Cells[1].Value = "";
                    dgv.Rows[i].Cells[2].Value = DBNull.Value;
                    dgv.Rows[i].Cells[3].Value = DBNull.Value;
                    dgv.Rows[i].Cells[4].Value = DBNull.Value;
                    dgv.Rows[i].Cells[5].Value = "";
                    dgv.Rows[i].Cells[6].Value = "";
                    dgv.Rows[i].Cells[7].Value = "";
                }

                //部品コードに何か値が入力された
                else
                {
                    DataTable dtTmp = (DataTable)dgv_siire.DataSource;

                    //取引先マスタの
                    DataTable dt_work2 = new DataTable();

                    dt_work2 = tss.OracleSelect("select * from tss_torihikisaki_m where torihikisaki_cd = '" + tb_torihikisaki_cd.Text.ToString() + "'");
                    int j2 = dt_work2.Rows.Count;


                    //部品コードをキーに、部品名、仕入単価を引っ張ってくる

                    DataTable dt_work = new DataTable();
                    int       j       = dt_work.Rows.Count;

                    dt_work = tss.OracleSelect("select * from tss_buhin_m where buhin_cd = '" + e.FormattedValue.ToString() + "'");

                    //取引先マスタの区分を取得
                    string seikyu_simebi = dt_work2.Rows[j2 - 1][13].ToString();  //請求締日
                    string kaisyu_tuki   = dt_work2.Rows[j2 - 1][14].ToString();  //回収月
                    string kaisyu_hi     = dt_work2.Rows[j2 - 1][15].ToString();  //回収日

                    string siharai_simebi = dt_work2.Rows[j2 - 1][16].ToString(); //支払締日
                    string siharai_tuki   = dt_work2.Rows[j2 - 1][17].ToString(); //支払月
                    string siharai_hi     = dt_work2.Rows[j2 - 1][18].ToString(); //支払日

                    if (dt_work.Rows.Count <= 0)
                    {
                        MessageBox.Show("この部品コードは登録されていません。部品登録してください。");

                        dgv.Rows[i].Cells[1].Value = "";
                        dgv.Rows[i].Cells[2].Value = DBNull.Value;
                        dgv.Rows[i].Cells[3].Value = DBNull.Value;
                        dgv.Rows[i].Cells[4].Value = DBNull.Value;
                        dgv.Rows[i].Cells[5].Value = "";
                        dgv.Rows[i].Cells[6].Value = "";
                        dgv.Rows[i].Cells[7].Value = "";
                        dgv_siire.Focus();
                        dgv_siire.CurrentCell = dgv_siire[0, i];

                        e.Cancel = true;
                    }
                    else //データグリッドビューに部品マスタから取得した一行ずつ値を入れていく   ここで入力した値と、セルにある値を比較する
                    {
                        //dgv.Rows[i].Cells[0].Value = dt_work.Rows[j][0].ToString(); ここで部品コードを入れると、後の入力値比較ができないので入れない
                        dgv.Rows[i].Cells[1].Value = dt_work.Rows[j][1].ToString();
                        dgv.Rows[i].Cells[3].Value = dt_work.Rows[j][8].ToString();

                        //仕入締日計算メソッドの値をstring型に変換してデータグリッドビューに表示
                        string str_siire_simebi = (get_siire_simebi(dtp_siire_date.Value)).ToShortDateString();
                        dgv.Rows[i].Cells[5].Value = str_siire_simebi;
                    }
                    //return;
                }

                if (tb_torihikisaki_cd.Text != "")
                {
                    //選択画面へ
                    string w_buhin_cd = e.FormattedValue.ToString();

                    if (w_buhin_cd != "")
                    {
                        string str1;
                        string str2;

                        DataTable dt_w = new DataTable();

                        dt_w = tss.OracleSelect("select torihikisaki_cd from TSS_BUHIN_M WHERE buhin_cd = '" + w_buhin_cd.ToString() + "'");

                        if (dt_w.Rows.Count == 0)
                        {
                            //MessageBox.Show("この部品コードは登録されていません。部品登録してください。");
                            e.Cancel = true;
                        }

                        else
                        {
                            str1 = dt_w.Rows[0][0].ToString();
                            str2 = tb_torihikisaki_cd.Text.ToString();

                            if (dt_w.Rows.Count == 0)
                            {
                                return;
                            }

                            if (e.FormattedValue.ToString() == dgv_siire.Rows[i].Cells[0].Value.ToString())
                            {
                            }

                            else
                            {
                                if (str1 != str2)
                                {
                                    DialogResult result = MessageBox.Show("入出庫する部品コードの取引先コードと部品マスタの取引先コードが異なりますが登録しますか?",
                                                                          "部品入出庫登録",
                                                                          MessageBoxButtons.OKCancel,
                                                                          MessageBoxIcon.Exclamation,
                                                                          MessageBoxDefaultButton.Button1);

                                    if (result == DialogResult.OK)
                                    {
                                        dgv_siire.EndEdit();
                                        //dgv_seihin_kousei.EndEdit();
                                        dgv_siire.Focus();
                                    }

                                    if (result == DialogResult.Cancel)
                                    {
                                        e.Cancel = true;
                                        dgv_siire.Rows[e.RowIndex].Cells[i + 1].Value = "";
                                        return;
                                    }
                                }
                            }

                            dgv_siire.Rows[e.RowIndex].Cells[1].Value = tss.get_buhin_name(w_buhin_cd);
                            dgv_siire.EndEdit();
                        }
                    }
                }
                else
                {
                }
            }

            if (e.ColumnIndex == 1)
            {
                if (tss.Check_String_Escape(e.FormattedValue.ToString()) == false)
                {
                    e.Cancel = true;
                    return;
                }

                //未入力は許容する
                if (e.FormattedValue.ToString() != null || e.FormattedValue.ToString() != "")
                {
                    if (tss.StringByte(e.FormattedValue.ToString()) > 40)
                    {
                        MessageBox.Show("部品名は40バイト以内で入力してください。");
                        e.Cancel = true;
                        return;
                    }
                }
            }

            if (e.ColumnIndex == 2)
            {
                if (e.FormattedValue.ToString() != "")
                {
                    //仕入数量チェック
                    if (chk_siire_su(e.FormattedValue.ToString()) == false)
                    {
                        MessageBox.Show("仕入数は-999999999.99~9999999999.99の範囲で入力してください。");
                        e.Cancel = true;
                        return;
                    }
                }
            }

            if (e.ColumnIndex == 3)
            {
                if (e.FormattedValue.ToString() != "")
                {
                    //仕入数量チェック
                    if (chk_tanka(e.FormattedValue.ToString()) == false)
                    {
                        MessageBox.Show("単価は-999999999.99~9999999999.99の範囲で入力してください。");
                        e.Cancel = true;
                        return;
                    }
                }
            }

            //部品コードが入力されたときの処理
            if (e.ColumnIndex == 4)
            {
            }
        }
예제 #6
0
        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();
        }