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