// 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);
        }
Esempio n. 2
0
        /// <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;
        }
Esempio n. 3
0
        /// <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();
        }