private void btn_barcode_Click(object sender, EventArgs e)
        {
            DataTable w_dt = new DataTable();
            string    w_bcr_moji; //戻り値のバーコード文字列

            frm_bcr frm_bcr = new frm_bcr();

            //バーコード読込画面への受け渡しデータ
            frm_bcr.pub_form_text          = "生産指示日報 バーコード読み込み";
            frm_bcr.pub_msg1               = "生産指示日報のバーコードをスキャンしてください。";
            frm_bcr.pub_msg2               = "";
            frm_bcr.pub_msg3               = "";
            frm_bcr.pub_msg4               = "";
            frm_bcr.pub_bcr_identification = "SJ1";
            frm_bcr.pub_length             = 64;
            //バーコード読込画面表示
            frm_bcr.ShowDialog(this);
            //バーコード読込画面が閉じられた後の処理
            w_bcr_moji = frm_bcr.pub_bcr_moji;
            frm_bcr.Dispose();

            if (w_bcr_moji == "CANCEL")
            {
                //バーコード読込画面でキャンセルされた
                return;
            }
            if (w_bcr_moji == null)
            {
                //バーコード読込画面でエラーが発生した
                return;
            }
            //読み込んだバーコード文字列を分解し画面に表示
            tb_bcr.Text               = w_bcr_moji;
            tb_seisanbi.Text          = tss.StringMidByte(w_bcr_moji, 3, 10).TrimEnd();
            tb_busyo_cd.Text          = tss.StringMidByte(w_bcr_moji, 13, 4).TrimEnd();
            tb_busyo_name.Text        = tss.get_busyo_name(tb_busyo_cd.Text);
            tb_koutei_cd.Text         = tss.StringMidByte(w_bcr_moji, 17, 3).TrimEnd();
            tb_koutei_name.Text       = tss.get_koutei_name(tb_koutei_cd.Text);
            tb_line_cd.Text           = tss.StringMidByte(w_bcr_moji, 20, 3).TrimEnd();
            tb_line_name.Text         = tss.get_line_name(tb_line_cd.Text);
            tb_schedule_seq.Text      = tss.StringMidByte(w_bcr_moji, 23, 3).TrimEnd();
            tb_torihikisaki_cd.Text   = tss.StringMidByte(w_bcr_moji, 26, 6).TrimEnd();
            tb_torihikisaki_name.Text = tss.get_torihikisaki_name(tb_torihikisaki_cd.Text);
            tb_juchu_cd1.Text         = tss.StringMidByte(w_bcr_moji, 32, 16).TrimEnd();
            tb_juchu_cd2.Text         = tss.StringMidByte(w_bcr_moji, 48, 16).TrimEnd();
            tb_juchu_su.Text          = tss.get_juchu_juchu_su(tb_torihikisaki_cd.Text, tb_juchu_cd1.Text, tb_juchu_cd2.Text);
            tb_seisan_zumi_su.Text    = tss.get_seisan_su(tb_torihikisaki_cd.Text, tb_juchu_cd1.Text, tb_juchu_cd2.Text);
            tb_seisankisyu.Text       = tss.get_seisankisyu(tb_seihin_cd.Text, tb_koutei_cd.Text);
            //同一バーコードの生産実績があるか確認
            w_dt = read_seisan_jisseki();
            if (w_dt.Rows.Count >= 1)
            {
                //同一のバーコードが生産実績に存在する場合
                //「既に入力済み」であることを表示し、選択画面で選択させる(選択=修正、選択しない=新規(別の行として)入力、戻る=キャンセル)
                //選択画面へ
                jisseki_select(w_dt);
            }
            else
            {
                //同一バーコードが生産実績に存在しない場合
                //新規に入力
                tb_seihin_cd.Text   = tss.get_juchu_to_seihin_cd(tb_torihikisaki_cd.Text, tb_juchu_cd1.Text, tb_juchu_cd2.Text);
                tb_seihin_name.Text = tss.get_seihin_name(tb_seihin_cd.Text);
                tb_seisankisyu.Text = tss.get_seisankisyu(tb_seihin_cd.Text, tb_koutei_cd.Text);
                disp_schedule();
                clear_seisan_jisseki();
                tb_busyo_cd.Focus();
            }
        }
Ejemplo n.º 2
0
        private void dgv_m_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            DataGridView dgv = (DataGridView)sender;

            //新しい行のセルでなく、セルの内容が変更されている時だけ検証する
            if (e.RowIndex == dgv.NewRowIndex || !dgv.IsCurrentCellDirty)
            {
                return;
            }

            //受注コード2
            if (e.ColumnIndex == 5)
            {
                int    w_juchu_cd1_flg = 0; //0:未入力 1:入力済
                int    w_juchu_cd2_flg = 0; //0:未入力 1:入力済
                string w_seihin_cd;

                if (dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString() != null && dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString() != "")
                {
                    w_juchu_cd1_flg = 1;
                }
                if (dgv_m.Rows[e.RowIndex].Cells[5].Value.ToString() != null && dgv_m.Rows[e.RowIndex].Cells[5].Value.ToString() != "")
                {
                    w_juchu_cd2_flg = 1;
                }
                //受注コード1または受注コード2のどちらかが入力されていたら、受注マスタを読み製品名を表示する
                if (w_juchu_cd1_flg == 1 || w_juchu_cd2_flg == 1)
                {
                    w_seihin_cd = tss.get_juchu_to_seihin_cd(tb_torihikisaki_cd.Text.ToString(), dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString(), e.FormattedValue.ToString());
                    dgv_m.Rows[e.RowIndex].Cells[6].Value  = w_seihin_cd;
                    dgv_m.Rows[e.RowIndex].Cells[7].Value  = tss.get_seihin_name(dgv_m.Rows[e.RowIndex].Cells[6].Value.ToString());
                    dgv_m.Rows[e.RowIndex].Cells[9].Value  = tss.get_seihin_tanka(dgv_m.Rows[e.RowIndex].Cells[6].Value.ToString());
                    dgv_m.Rows[e.RowIndex].Cells[19].Value = get_uriage_su(tb_torihikisaki_cd.Text.ToString(), dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString(), e.FormattedValue.ToString());
                    dgv_m.Rows[e.RowIndex].Cells[20].Value = get_juchu_su(tb_torihikisaki_cd.Text.ToString(), dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString(), e.FormattedValue.ToString());
                }
                else
                {
                    dgv_m.Rows[e.RowIndex].Cells[19].Value = "";
                    dgv_m.Rows[e.RowIndex].Cells[20].Value = "";
                }
            }

            //製品コード
            if (e.ColumnIndex == 6)
            {
                //未入力は許容する
                if (e.FormattedValue.ToString() != null || e.FormattedValue.ToString() != "")
                {
                    //受注コードが入力されている場合、製品コードは変更不可
                    int w_juchu_cd1_flg = 0;    //0:未入力 1:入力済
                    int w_juchu_cd2_flg = 0;    //0:未入力 1:入力済

                    if (dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString() != null && dgv_m.Rows[e.RowIndex].Cells[4].Value.ToString() != "")
                    {
                        w_juchu_cd1_flg = 1;
                    }
                    if (dgv_m.Rows[e.RowIndex].Cells[5].Value.ToString() != null && dgv_m.Rows[e.RowIndex].Cells[5].Value.ToString() != "")
                    {
                        w_juchu_cd2_flg = 1;
                    }
                    //受注コード1または受注コード2のどちらかが入力されていた
                    if (w_juchu_cd1_flg == 1 || w_juchu_cd2_flg == 1)
                    {
                        if (dgv_m.Rows[e.RowIndex].Cells[6].Value.ToString() != e.FormattedValue.ToString())
                        {
                            MessageBox.Show("受注情報に登録されている製品コードは変更できません。");
                            e.Cancel = true;
                            return;
                        }
                    }
                    dgv_m.Rows[e.RowIndex].Cells[7].Value = tss.get_seihin_name(e.FormattedValue.ToString());
                    dgv_m.Rows[e.RowIndex].Cells[9].Value = tss.get_seihin_tanka(e.FormattedValue.ToString());
                    if (dgv_m.Rows[e.RowIndex].Cells[7].Value.ToString() == "")
                    {
                        MessageBox.Show("入力された製品コードは存在しません。");
                        e.Cancel = true;
                        return;
                    }
                }
            }

            //売上数
            if (e.ColumnIndex == 8)
            {
                if (chk_uriage_su(e.FormattedValue.ToString()) == false)
                {
                    MessageBox.Show("売上数は-999999999.99~9999999999.99の範囲で入力してください。");
                    e.Cancel = true;
                    return;
                }
            }
            //販売単価
            if (e.ColumnIndex == 9)
            {
                if (chk_hanbai_tanka(e.FormattedValue.ToString()) == false)
                {
                    MessageBox.Show("販売単価は-999999999.99~9999999999.99の範囲で入力してください。");
                    e.Cancel = true;
                    return;
                }
            }
        }