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