/// <summary> /// 現在保存している外注出来高データをDBから読取り表示する /// </summary> /// <param name="reportDate"></param> /// <param name="costCode"></param> /// <param name="officeCode"></param> /// <param name="department"></param> private void selectPaymentData(DataGridView dgv, DateTime reportDate, string officeCode, string department) { readyPro = true; dgv.Enabled = true; dgv.Rows.Clear(); dgv.Rows.Add(iniRCnt); opd = new OsPaymentData(); DataTable dt = opd.SelectPayment(reportDate.EndOfMonth(), officeCode, department); if (dt == null || dt.Rows.Count < 1) { labelMsg.Text = "表示できるデータはありません。"; seqNoReNumbering(dgv); this.dataGridView1.CurrentCell = null; readyPro = false; return; } labelMsg.Text = ""; if (dt.Rows.Count > iniRCnt) { dgv.Rows.Add(dt.Rows.Count - iniRCnt + 5); } TaskData tdp = new TaskData(); ListFormDataOp lo = new ListFormDataOp(); DataRow dr; string taskCode; for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; if (i == 0) { string[] ckItems = new string[] { "AdminCheck", "DirectorCheck", "PresidentCheck" }; string[] dtItems = new string[] { "ACheckDate", "DCheckDate", "PCheckDate" }; for (int j = 0; j < ckItems.Length; j++) { int checkStat = Convert.ToInt32(dr[ckItems[j]]); ckArray[j].Checked = (checkStat == 1) ? true : false; dtArray[j] = (checkStat == 1) ? Convert.ToDateTime(dr[dtItems[j]]) : DateTime.MinValue; lbArray[j].Text = (checkStat == 1) ? dtArray[j].ToLongDateString() : ""; } if (ckArray[2].Checked) { buttonDisEnabled(); } else if (ckArray[1].Checked) { buttonDisEnabled(); buttonCost.Enabled = true; } else if (ckArray[0].Checked) { buttonEnabled(); buttonCost.Enabled = false; } } dgv.Rows[i].Cells["ItemCode"].Value = Convert.ToString(dr["ItemCode"]); dgv.Rows[i].Cells["Item"].Value = Convert.ToString(dr["Item"]); dgv.Rows[i].Cells["OrderNo"].Value = Convert.ToString(dr["OrderNo"]); taskCode = Convert.ToString(dr["TaskCode"]); dgv.Rows[i].Cells["TaskCode"].Value = taskCode; if (Convert.ToString(dr["OrderAmount"]) == "" || Convert.ToString(dr["OrderAmount"]) == "0.00") { dgv.Rows[i].Cells["OAmount"].Value = opd.SelectOAmountPayment(Convert.ToString(dr["ItemCode"]), taskCode, Conv.OfficeCode, Conv.DepartCode, dateTimePickerEx1.Value); } else { dgv.Rows[i].Cells["OAmount"].Value = Convert.ToDecimal(dr["OrderAmount"]); } dgv.Rows[i].Cells["SAmount"].Value = opd.SelectSumAmountPayment(Convert.ToString(dr["ItemCode"]), taskCode, Conv.OfficeCode, Conv.DepartCode, dateTimePickerEx1.Value); dgv.Rows[i].Cells["Amount"].Value = Convert.ToDecimal(dr["Amount"]); calculateInvolvedItems(dgv.Rows[i]); dgv.Rows[i].Cells["LeaderMCode"].Value = Convert.ToString(dr["LeaderMCode"]); dgv.Rows[i].Cells["SlipNo"].Value = Convert.ToInt32(dr["SlipNo"]) == 0 ? "" : Convert.ToString(dr["SlipNo"]); dgv.Rows[i].Cells["CostReportID"].Value = Convert.ToInt32(dr["CostReportID"]) == 0 ? "" : Convert.ToString(dr["CostReportID"]); dgv.Rows[i].Cells["PaymentID"].Value = Convert.ToString(dr["OsPaymentID"]); dgv.Rows[i].Cells["Check"].Value = false; TaskCodeNameData tcnd = lo.SelectTaskCodeNameData(taskCode, Conv.OfficeCode); if (tcnd != null) { dgv.Rows[i].Cells["TaskName"].Value = tcnd.TaskName; tdp = tdp.SelectTaskData(taskCode); dgv.Rows[i].Cells["SalesMCode"].Value = "0" + tdp.SalesMCode; dgv.Rows[i].Cells["PartnerCode"].Value = tdp.PartnerCode; } } seqNoReNumbering(dgv); this.dataGridView1.CurrentCell = null; readyPro = false; }
// [Ctrl]と組み合わせたDataGridViewの操作用Short-Cut Key // 前提:コントロールがDataGridViewにある時 private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (iniPro) { return; } if (!this.dataGridView1.Focused) { return; } DataGridView dgv = ( DataGridView )sender; if (dgv.CurrentCellAddress.Y < 0) { return; } if (ckArray[0].Checked) { return; // 確認済なら入力不可とする } switch (e.KeyCode) { case Keys.Right: case Keys.Tab: break; case Keys.Left: break; default: break; } if ((e.Modifiers & Keys.Control) != Keys.Control) { return; // Ctrlキーが押下された時のみ以下処理 } switch (e.KeyCode) { case Keys.A: if (dgv.CurrentCellAddress.X == 2 || dgv.CurrentCellAddress.X == 3) { chooseCostData(dgv.Rows[dgv.CurrentCellAddress.Y]); dgv.CurrentCell = dgv[5, dgv.CurrentCellAddress.Y]; return; } if (dgv.CurrentCellAddress.X == 5 || dgv.CurrentCellAddress.X == 6) { chooseTaskCodeNameData(dgv.Rows[dgv.CurrentCellAddress.Y]); dgv.Rows[dgv.CurrentCellAddress.Y].Cells["OAmount"].Value = opd.SelectOAmountPayment(Convert.ToString(dgv.Rows[dgv.CurrentCellAddress.Y].Cells["ItemCode"].Value), Convert.ToString(dgv.Rows[dgv.CurrentCellAddress.Y].Cells["TaskCode"].Value), Conv.OfficeCode, Conv.DepartCode, dateTimePickerEx1.Value); dgv.Rows[dgv.CurrentCellAddress.Y].Cells["SAmount"].Value = opd.SelectSumAmountPayment(Convert.ToString(dgv.Rows[dgv.CurrentCellAddress.Y].Cells["ItemCode"].Value), Convert.ToString(dgv.Rows[dgv.CurrentCellAddress.Y].Cells["TaskCode"].Value), Conv.OfficeCode, Conv.DepartCode, dateTimePickerEx1.Value); dgv.CurrentCell = dgv[9, dgv.CurrentCellAddress.Y]; return; } break; case Keys.C: Clipboard.SetDataObject(dgv.GetClipboardContent()); break; case Keys.I: case Keys.D: seqNoReNumbering(dgv); break; case Keys.R: break; default: break; } }