// Override the Clone method so that the Enabled property is copied. public override object Clone() { DataGridViewDisableButtonCell cell = (DataGridViewDisableButtonCell)base.Clone(); cell.Enabled = this.Enabled; return(cell); }
/// <summary> /// 明細表示 /// </summary> private void dgvDisply() { StringBuilder sql = new StringBuilder(); sql.Append(" SELECT "); sql.Append(" TRN_CHECK_B.SAGYO_CD"); sql.Append(" ,MST_SAGYO.NAME"); sql.Append(" ,MST_SAGYO.PARENT_FLG"); sql.Append(" ,TRN_CHECK_B.SAGYO_STATUS"); sql.Append(" ,TRN_CHECK_B.SAGYO_STATUS"); sql.Append(" ,CASE WHEN MST_SAGYO.PARENT_FLG = '1' THEN ''"); sql.Append(" WHEN trn_check_B.SAGYO_STATUS = '0' THEN '未着手'"); sql.Append(" WHEN trn_check_B.SAGYO_STATUS = '1' THEN '処理中'"); sql.Append(" ELSE '完了' END"); sql.Append(" ,START_USER.MST_SHAIN_CODE"); sql.Append(" ,START_USER.MST_SHAIN_CODE"); sql.Append(" ,START_USER.MST_SHAIN_NAME"); sql.Append(" ,TRN_CHECK_B.SAGYO_START_DATE"); sql.Append(" ,TRN_CHECK_B.SAGYO_START_DATE"); sql.Append(" ,END_USER.MST_SHAIN_CODE"); sql.Append(" ,END_USER.MST_SHAIN_CODE"); sql.Append(" ,END_USER.MST_SHAIN_NAME"); sql.Append(" ,TRN_CHECK_B.SAGYO_END_DATE"); sql.Append(" ,TRN_CHECK_B.SAGYO_END_DATE"); sql.Append(" ,TRN_CHECK_B.BIKOU"); sql.Append(" ,TRN_CHECK_B.BIKOU"); sql.Append(" FROM TRN_CHECK_B"); sql.Append(" LEFT JOIN MST_SAGYO"); sql.Append(" ON TRN_CHECK_B.SAGYO_CD = MST_SAGYO.CD"); sql.Append(" LEFT JOIN mst_shain START_USER"); sql.Append(" ON START_USER.MST_SHAIN_CODE = TRN_CHECK_B.SAGYO_START_USER"); sql.Append(" LEFT JOIN mst_shain END_USER"); sql.Append(" ON END_USER.MST_SHAIN_CODE = TRN_CHECK_B.SAGYO_END_USER"); sql.Append(" WHERE MST_SAGYO.DEL_FLG = 0"); sql.Append(" AND (TRN_CHECK_B.DISUSE_FLG = 1 OR MST_SAGYO.PARENT_FLG = 1 )"); sql.Append($" AND TRN_CHECK_B.GYOMU_CD = {gyomuCd}"); sql.Append($" AND TRN_CHECK_B.SAGYO_YYMM = {sagyoYYMM}"); sql.Append(" ORDER BY MST_SAGYO.HYOJI_JUN"); DataSet ds = new DataSet(); if (!comU.CSerch(sql.ToString(), ref ds)) { this.Close(); return; } if (ds.Tables["Table1"].Rows.Count == 0) { MessageBox.Show("指定した業務の作業が登録されていません。\n\r作業マスタの登録を行ってください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } dgvIchiran.DataSource = ds.Tables[0]; //セルボタン作成 DataGridViewDisableButtonColumn dgvBtnStrat = new DataGridViewDisableButtonColumn(); dgvBtnStrat.Text = "開始"; dgvBtnStrat.UseColumnTextForButtonValue = true; dgvBtnStrat.Width = 60; dgvIchiran.Columns.Insert((int)column.START_BUTTON, dgvBtnStrat); DataGridViewDisableButtonColumn dgvBtnEnd = new DataGridViewDisableButtonColumn(); dgvBtnEnd.Text = "終了"; dgvBtnEnd.UseColumnTextForButtonValue = true; dgvBtnEnd.Width = 60; dgvIchiran.Columns.Insert((int)column.END_BUTTON, dgvBtnEnd); DataGridViewDisableButtonColumn dgvBtnFix = new DataGridViewDisableButtonColumn(); dgvBtnFix.Text = "状況訂正"; dgvBtnFix.UseColumnTextForButtonValue = true; dgvBtnFix.Width = 80; dgvIchiran.Columns.Insert((int)column.COLLECT_BUTTON, dgvBtnFix); //変更確認チェックボックス作成 DataGridViewCheckBoxColumn dgvcbc = new DataGridViewCheckBoxColumn(); dgvIchiran.Columns.Insert((int)column.CHANGE_FLG, dgvcbc); dgvcbc.TrueValue = true; dgvcbc.FalseValue = false; //作業名列固定 dgvIchiran.RowTemplate.Height = 70; dgvIchiran.Columns[(int)column.MST_SAGYO_NAME].Frozen = true; dgvIchiran.Columns[(int)column.MST_SAGYO_NAME].Width = 400; dgvIchiran.Columns[(int)column.STATUS_NAME].Width = 60; dgvIchiran.Columns[(int)column.START_EMPLOYEE_NAME].Width = 80; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_START_DATE].Width = 113; dgvIchiran.Columns[(int)column.END_EMPLOYEE_NAME].Width = 80; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_END_DATE].Width = 113; dgvIchiran.Columns[(int)column.TRN_CHECK_B_BIKOU].Width = 100; dgvIchiran.Columns[(int)column.MST_SAGYO_NAME].HeaderText = ""; dgvIchiran.Columns[(int)column.STATUS_NAME].HeaderText = "状況"; dgvIchiran.Columns[(int)column.START_EMPLOYEE_NAME].HeaderText = "作業開始者"; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_START_DATE].HeaderText = "開始日時"; dgvIchiran.Columns[(int)column.END_EMPLOYEE_NAME].HeaderText = "作業終了者"; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_END_DATE].HeaderText = "終了日時"; dgvIchiran.Columns[(int)column.TRN_CHECK_B_BIKOU].HeaderText = "備考"; dgvIchiran.Columns[(int)column.MST_SAGYO_NAME].ReadOnly = true; dgvIchiran.Columns[(int)column.STATUS_NAME].ReadOnly = true; dgvIchiran.Columns[(int)column.START_EMPLOYEE_NAME].ReadOnly = true; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_START_DATE].ReadOnly = true; dgvIchiran.Columns[(int)column.END_EMPLOYEE_NAME].ReadOnly = true; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_END_DATE].ReadOnly = true; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_CD].Visible = false; dgvIchiran.Columns[(int)column.MST_SAGYO_PARENT_FLG].Visible = false; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_STATUS].Visible = false; dgvIchiran.Columns[(int)column.START_EMPLOYEE_ID].Visible = false; dgvIchiran.Columns[(int)column.END_EMPLOYEE_ID].Visible = false; dgvIchiran.Columns[(int)column.CHANGE_FLG].Visible = false; dgvIchiran.Columns[(int)column.END_EMPLOYEE_ID_OLD].Visible = false; dgvIchiran.Columns[(int)column.START_EMPLOYEE_ID_OLD].Visible = false; dgvIchiran.Columns[(int)column.TRN_CHECK_B_BIKOU_OLD].Visible = false; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_START_DATE_OLD].Visible = false; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_END_DATE_OLD].Visible = false; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_STATUS_OLD].Visible = false; dgvIchiran.Columns[(int)column.STATUS_NAME].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvIchiran.Columns[(int)column.START_EMPLOYEE_NAME].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_START_DATE].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvIchiran.Columns[(int)column.END_EMPLOYEE_NAME].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_END_DATE].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; ((DataGridViewTextBoxColumn)dgvIchiran.Columns[(int)column.TRN_CHECK_B_BIKOU]).MaxInputLength = 100; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_START_DATE].DefaultCellStyle.Format = "yyyy/MM/dd HH:mm"; dgvIchiran.Columns[(int)column.TRN_CHECK_B_SAGYO_END_DATE].DefaultCellStyle.Format = "yyyy/MM/dd HH:mm"; //実施要否チェック済み for (int i = 0; i < dgvIchiran.RowCount; i++) { if (i % 2 == 1) { dgvIchiran.Rows[i].DefaultCellStyle.BackColor = Color.LightBlue; } DataGridViewDisableButtonCell startButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[i].Cells[(int)column.START_BUTTON]; DataGridViewDisableButtonCell endButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[i].Cells[(int)column.END_BUTTON]; DataGridViewDisableButtonCell collectButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[i].Cells[(int)column.COLLECT_BUTTON]; if ((bool)dgvIchiran[(int)column.MST_SAGYO_PARENT_FLG, i].Value) { dgvIchiran[(int)column.START_BUTTON, i] = new DataGridViewTextBoxCell(); dgvIchiran[(int)column.END_BUTTON, i] = new DataGridViewTextBoxCell(); dgvIchiran[(int)column.COLLECT_BUTTON, i] = new DataGridViewTextBoxCell(); dgvIchiran.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen; dgvIchiran.Rows[i].ReadOnly = true; } else if ((String)dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, i].Value == "0") { endButtonCell.Enabled = false; collectButtonCell.Enabled = false; dgvIchiran[(int)column.CHANGE_FLG, i].Value = false; } else if ((String)dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, i].Value == "1") { startButtonCell.Enabled = false; dgvIchiran[(int)column.CHANGE_FLG, i].Value = false; } else if ((String)dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, i].Value == "2") { startButtonCell.Enabled = false; endButtonCell.Enabled = false; dgvIchiran[(int)column.CHANGE_FLG, i].Value = false; } } //ソートの不可 foreach (DataGridViewColumn column in this.dgvIchiran.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } dgvIchiran.SelectionMode = DataGridViewSelectionMode.FullRowSelect; }
/// <summary> /// 各種ボタン押下 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgvIchiran_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView dgv = (DataGridView)sender; if (e.RowIndex == -1) { return; } if ((bool)dgvIchiran[(int)column.MST_SAGYO_PARENT_FLG, e.RowIndex].Value) { return; } String status = (String)dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value; String sagyoNm = (String)dgvIchiran[(int)column.MST_SAGYO_NAME, e.RowIndex].Value; //開始押下 if (e.ColumnIndex == (int)column.START_BUTTON) { //ボタンが非活性の場合処理終了 DataGridViewDisableButtonCell startButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[e.ColumnIndex]; if (!startButtonCell.Enabled) { return; } GC0060 Gc0060 = new GC0060(status, sagyoNm, gyomuNm, sagyoYYMM); Gc0060.ShowDialog(); if (Gc0060.returnFlg) { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value = "1"; dgvIchiran[(int)column.STATUS_NAME, e.RowIndex].Value = "処理中"; dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_START_DATE, e.RowIndex].Value = Gc0060.returnStartDateTime; dgvIchiran[(int)column.START_EMPLOYEE_ID, e.RowIndex].Value = user.Id; dgvIchiran[(int)column.START_EMPLOYEE_NAME, e.RowIndex].Value = user.Name; //活性制御 DataGridViewDisableButtonCell endButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[(int)column.END_BUTTON]; DataGridViewDisableButtonCell collectButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[(int)column.COLLECT_BUTTON]; endButtonCell.Enabled = true; collectButtonCell.Enabled = true; startButtonCell.Enabled = false; } } //終了押下 else if (e.ColumnIndex == (int)column.END_BUTTON) { //ボタンが非活性の場合処理終了 DataGridViewDisableButtonCell endButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[e.ColumnIndex]; if (!endButtonCell.Enabled) { return; } DateTime sagyoStart = DateTime.Parse(dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_START_DATE, e.RowIndex].Value.ToString()); GC0060 Gc0060 = new GC0060(status, sagyoNm, gyomuNm, sagyoYYMM, sagyoStart, false); Gc0060.ShowDialog(); if (Gc0060.returnFlg) { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value = "2"; dgvIchiran[(int)column.STATUS_NAME, e.RowIndex].Value = "完了"; dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_END_DATE, e.RowIndex].Value = Gc0060.returnEndDateTime; dgvIchiran[(int)column.END_EMPLOYEE_ID, e.RowIndex].Value = user.Id; dgvIchiran[(int)column.END_EMPLOYEE_NAME, e.RowIndex].Value = user.Name; //活性制御 DataGridViewDisableButtonCell collectButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[(int)column.COLLECT_BUTTON]; endButtonCell.Enabled = false; collectButtonCell.Enabled = true; } } //訂正押下 else if (e.ColumnIndex == (int)column.COLLECT_BUTTON) { //ボタンが非活性の場合処理終了 DataGridViewDisableButtonCell collectButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[e.ColumnIndex]; if (!collectButtonCell.Enabled) { return; } GC0060 Gc0060 = null; DateTime sagyoStart = DateTime.Parse(dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_START_DATE, e.RowIndex].Value.ToString()); //進捗が進行中の場合 if ((String)dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value == "1") { Gc0060 = new GC0060(status, sagyoNm, gyomuNm, sagyoYYMM, sagyoStart, true); } //進捗が完了の場合 else if ((String)dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value == "2") { DateTime sagyoEnd = DateTime.Parse(dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_END_DATE, e.RowIndex].Value.ToString()); Gc0060 = new GC0060(status, sagyoNm, gyomuNm, sagyoYYMM, sagyoStart, sagyoEnd); } Gc0060.ShowDialog(); if (Gc0060.returnFlg) { DataGridViewDisableButtonCell startButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[(int)column.START_BUTTON]; DataGridViewDisableButtonCell endButtonCell = (DataGridViewDisableButtonCell)dgvIchiran.Rows[e.RowIndex].Cells[(int)column.END_BUTTON]; //未実施の場合 if (Gc0060.mStatus == "0") { dgvIchiran[(int)column.STATUS_NAME, e.RowIndex].Value = "未着手"; dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value = "0"; dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_START_DATE, e.RowIndex].Value = DBNull.Value; dgvIchiran[(int)column.START_EMPLOYEE_ID, e.RowIndex].Value = null; dgvIchiran[(int)column.START_EMPLOYEE_NAME, e.RowIndex].Value = null; dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_END_DATE, e.RowIndex].Value = DBNull.Value; dgvIchiran[(int)column.END_EMPLOYEE_ID, e.RowIndex].Value = null; dgvIchiran[(int)column.END_EMPLOYEE_NAME, e.RowIndex].Value = null; //活性制御 startButtonCell.Enabled = true; endButtonCell.Enabled = false; collectButtonCell.Enabled = false; } //処理中の場合 else if (Gc0060.mStatus == "1") { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value = "1"; dgvIchiran[(int)column.STATUS_NAME, e.RowIndex].Value = "処理中"; if (Gc0060.startChangeFlg) { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_START_DATE, e.RowIndex].Value = Gc0060.returnStartDateTime; dgvIchiran[(int)column.START_EMPLOYEE_ID, e.RowIndex].Value = user.Id; dgvIchiran[(int)column.START_EMPLOYEE_NAME, e.RowIndex].Value = user.Name; } dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_END_DATE, e.RowIndex].Value = DBNull.Value; dgvIchiran[(int)column.END_EMPLOYEE_ID, e.RowIndex].Value = null; dgvIchiran[(int)column.END_EMPLOYEE_NAME, e.RowIndex].Value = null; //活性制御 endButtonCell.Enabled = true; } //完了の場合 else { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_STATUS, e.RowIndex].Value = "2"; dgvIchiran[(int)column.STATUS_NAME, e.RowIndex].Value = "完了"; if (Gc0060.startChangeFlg) { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_START_DATE, e.RowIndex].Value = Gc0060.returnStartDateTime; dgvIchiran[(int)column.START_EMPLOYEE_ID, e.RowIndex].Value = user.Id; dgvIchiran[(int)column.START_EMPLOYEE_NAME, e.RowIndex].Value = user.Name; } if (Gc0060.endChangeFlg) { dgvIchiran[(int)column.TRN_CHECK_B_SAGYO_END_DATE, e.RowIndex].Value = Gc0060.returnEndDateTime; dgvIchiran[(int)column.END_EMPLOYEE_ID, e.RowIndex].Value = user.Id; dgvIchiran[(int)column.END_EMPLOYEE_NAME, e.RowIndex].Value = user.Name; } //活性制御 collectButtonCell.Enabled = true; } } } dgvIchiran.Invalidate(); }