/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcSpredGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; if (e.EditAction == SpreadEditAction.Cancel) { return; } switch (e.CellPosition.ColumnName) { case "金種コード": var target = getSpreadGridValue(e.CellPosition.Row, GridColumnsMapping.金種コード); if (target == null) { return; } int val = int.Parse(target.ToString()); setSpreadGridValue(e.CellPosition.Row, GridColumnsMapping.金種名, 金種Dic.ContainsKey(val) ? 金種Dic[val] : string.Empty); break; default: break; } }
// スプレッドCell変更前値 private void sp取引先_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { //var row = sp取引先一括データ.ActiveRowIndex; //var col = sp取引先一括データ.ActiveColumnIndex; //this.sp取引先一括データ.ActiveCellPosition = new CellPosition(20, col); if (e.EditAction == SpreadEditAction.Cancel) { return; } DataRow BeforeNum = 取引先一括期首残データ.Rows[e.CellPosition.Row]; if (Convert.ToDecimal(BeforeNum[e.CellPosition.ColumnName, DataRowVersion.Original]) != Convert.ToDecimal(this.sp取引先一括データ.ActiveCell.Value)) { this.sp取引先一括データ.Cells[e.CellPosition.Row, 1].Foreground = new SolidColorBrush(Colors.Red); 取引先一括期首残データ.Rows[e.CellPosition.Row][e.CellPosition.ColumnName + "EditFlg"] = true; } else { 取引先一括期首残データ.Rows[e.CellPosition.Row][e.CellPosition.ColumnName + "EditFlg"] = false; } // 全ての値が元に戻った場合、文字色を元に戻す if (!Convert.ToBoolean(取引先一括期首残データ.Rows[e.CellPosition.Row]["T締日期首残EditFlg"]) && !Convert.ToBoolean(取引先一括期首残データ.Rows[e.CellPosition.Row]["T月次期首残EditFlg"]) && !Convert.ToBoolean(取引先一括期首残データ.Rows[e.CellPosition.Row]["S締日期首残EditFlg"]) && !Convert.ToBoolean(取引先一括期首残データ.Rows[e.CellPosition.Row]["S月次期首残EditFlg"])) { this.sp取引先一括データ.Cells[e.CellPosition.Row, 1].Foreground = new SolidColorBrush(Colors.Black); } // 合計計算 SumCalculation(); }
/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcSpredGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; if (e.EditAction == SpreadEditAction.Cancel) { return; } //明細行が存在しない場合は処理しない if (SearchDetail == null) { return; } if (SearchDetail.Select("", "", DataViewRowState.CurrentRows).Count() == 0) { return; } _編集行 = e.CellPosition.Row; try { switch (e.CellPosition.ColumnName) { case "自社品番": var target = grid.Cells[e.CellPosition.Row, e.CellPosition.Column].Value; if (target == null) { return; } // 自社品番(または得意先品番)からデータを参照し、取得内容をグリッドに設定 base.SendRequest( new CommunicationObject( MessageType.RequestData, MasterCode_MyProduct, new object[] { target.ToString() , null , null })); break; default: break; } SearchDetail.Rows[grid.ActiveRowIndex].EndEdit(); // No-160 Add } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcInnerSpreadGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; string targetColumn = grid.ActiveCellPosition.ColumnName; if (e.EditAction == SpreadEditAction.Cancel) { return; } //明細行が存在しない場合は処理しない if (InnerDetail == null) { return; } if (InnerDetail.Select("", "", DataViewRowState.CurrentRows).Count() == 0) { return; } _編集行 = e.CellPosition.Row; switch (targetColumn) { case "自社品番": var target = gridDtb.GetCellValueToString(); if (string.IsNullOrEmpty(target)) { return; } // 自社品番からデータを参照し、取得内容をグリッドに設定 base.SendRequest( new CommunicationObject( MessageType.RequestData, MasterCode_MyProduct, new object[] { target.ToString() , string.Empty, string.Empty })); break; case "数量": case "賞味期限": InnerDetail.Rows[gridDtl.ActiveRowIndex].EndEdit(); break; default: break; } }
/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcSpreadGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; string targetColumn = grid.ActiveCellPosition.ColumnName; if (e.EditAction == SpreadEditAction.Cancel) { return; } int rIdx = gcSpreadGrid.ActiveRowIndex; switch (targetColumn) { case "自社品番": var 自社品番 = getSpreadGridValue(rIdx, GridColumnsMapping.自社品番); var 自社色 = getSpreadGridValue(rIdx, GridColumnsMapping.自社色); if (自社品番 == null || 自社色 == null) { return; } // 品番未入力時には処理しない if (string.IsNullOrEmpty(自社品番.ToString())) { // 行データをクリア ClearRowItems(rIdx); return; } // 自社品番からデータを参照し、取得内容をグリッドに設定 base.SendRequest( new CommunicationObject( MessageType.RequestData, MasterCode_MyProduct, new object[] { 自社品番.ToString(), 自社色.ToString() })); break; case "数量": // 在庫数不足チェック break; default: break; } }
/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcSpredGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; if (e.EditAction == SpreadEditAction.Cancel) { return; } //明細行が存在しない場合は処理しない if (SearchDetail == null) { return; } if (SearchDetail.Select("", "", DataViewRowState.CurrentRows).Count() == 0) { return; } switch (e.CellPosition.ColumnName) { case "単価": case "数量": // 金額の再計算 Row targetRow = grid.Rows[grid.ActiveRowIndex]; decimal cost = decimal.Parse(targetRow.Cells[GridColumnsMapping.単価.GetHashCode()].Value.ToString()); decimal qty = decimal.Parse(targetRow.Cells[GridColumnsMapping.数量.GetHashCode()].Value.ToString()); targetRow.Cells[GridColumnsMapping.金額.GetHashCode()].Value = Convert.ToInt32(decimal.Multiply(cost, qty)); // グリッド内容の再計算を実施 summaryCalculation(); SearchDetail.Rows[targetRow.Index].EndEdit(); break; default: //▼課題管理表No173-4 Add Start Arinobu 2019/10/10 if (gridCtl.ActiveRowIndex >= 0) { // EndEditが行われずに登録すると変更内容が反映されないため処理追加 SearchDetail.Rows[gridCtl.ActiveRowIndex].EndEdit(); } //▲課題管理表No173-4 Add Start Arinobu 2019/10/10 break; } }
private void sp一括_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { if (e.EditAction == SpreadEditAction.Cancel) { return; } string nm = e.CellPosition.ColumnName; DataRow BeforeNum = 一括車輌固定費データ.Rows[e.CellPosition.Row]; if (Convert.ToDecimal(BeforeNum[nm, DataRowVersion.Original]) != Convert.ToDecimal(this.sp車輌一括データ.ActiveCell.Value)) { this.sp車輌一括データ.Cells[e.CellPosition.Row, 1].Foreground = new SolidColorBrush(Colors.Red); } // 全ての値が元に戻った場合、文字色を元に戻す int DispFlg = 0; for (int Cnt = 0; Cnt < BeforeNum.ItemArray.Length; Cnt++) { string ColName = "d" + BeforeNum.Table.Columns[Cnt].ColumnName; switch (BeforeNum.Table.Columns[Cnt].ColumnName) { case "固定自動車税": case "固定重量税": case "固定取得税": case "固定自賠責保険": case "固定車輌保険": case "固定対人保険": case "固定対物保険": case "固定貨物保険": if (Convert.ToDecimal(BeforeNum[Cnt, DataRowVersion.Original]) == Convert.ToDecimal(this.sp車輌一括データ.Cells[e.CellPosition.Row, ColName].Value)) { DispFlg += 1; } break; default: break; } } if (DispFlg == 8) { this.sp車輌一括データ.Cells[e.CellPosition.Row, 1].Foreground = new SolidColorBrush(Colors.Black); } }
/// <summary> /// Spread内容変更時 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcspNyukin_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { string _originalText = null; Calculate(); AppCommon.SpreadYMDCellChecks(sender, e, _originalText); #region SpreadFChange var grid = sender as GcSpreadGrid; if (e.CellPosition.ColumnName == "摘要ID" && grid.Cells[e.CellPosition.Row, e.CellPosition.Column].Value != "") { var text = grid.Cells[e.CellPosition.Row, e.CellPosition.Column].Text; if (string.IsNullOrWhiteSpace(text) == true) { return; } int kid = AppCommon.IntParse(text); grid.Cells[e.CellPosition.Row, "摘要ID"].Value = kid; base.SendRequest(new CommunicationObject(MessageType.RequestData, GetTekiyoName, kid, e.CellPosition.Row)); } #endregion }
// スプレッドCell変更前値 private void sp削除取引先_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { if (e.EditAction == SpreadEditAction.Cancel) { return; } DataRow BeforeNum = 削除取引先データ.Rows[e.CellPosition.Row]; if (BeforeNum[e.CellPosition.ColumnName, DataRowVersion.Original] != this.sp削除取引先データ.ActiveCell.Value) { this.sp削除取引先データ.Cells[e.CellPosition.Row, "取引先名1"].Foreground = new SolidColorBrush(Colors.Blue); this.sp削除取引先データ.Cells[e.CellPosition.Row, "取引先名2"].Foreground = new SolidColorBrush(Colors.Blue); } else { this.sp削除取引先データ.Cells[e.CellPosition.Row, "取引先名1"].Foreground = new SolidColorBrush(Colors.Black); this.sp削除取引先データ.Cells[e.CellPosition.Row, "取引先名2"].Foreground = new SolidColorBrush(Colors.Black); } AppCommon.FixSpreadActiveCell(sp削除取引先データ); }
/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SearchGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; string targetColumn = grid.ActiveCellPosition.ColumnName; if (e.EditAction == SpreadEditAction.Cancel) { return; } switch (targetColumn) { case "単価": case "数量": // 金額の再計算 decimal cost = gridCtl.GetCellValueToDecimal((int)GridColumnsMapping.単価) ?? 0; decimal qty = gridCtl.GetCellValueToDecimal((int)GridColumnsMapping.数量) ?? 0; gridCtl.SetCellValue((int)GridColumnsMapping.金額, Convert.ToInt32(decimal.Multiply(cost, qty))); // グリッド内容の再計算を実施 summaryCalculation(); SearchDetail.Rows[gridCtl.ActiveRowIndex].EndEdit(); break; //▼課題管理表No173-3 Add Start Arinobu 2019/10/10 default: if (gridCtl.ActiveRowIndex >= 0) { // EndEditが行われずに登録すると変更内容が反映されないため処理追加 SearchDetail.Rows[gridCtl.ActiveRowIndex].EndEdit(); } break; //▲課題管理表No173-3 Add End Arinobu 2019/10/10 } }
private void gcSpreadGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { int col; int row; int 重量; int 距離; int 運賃; int iタリフID = 0; if (!int.TryParse(タリフID, out iタリフID)) { this.ErrorMessage = "タリフIDの入力形式が不正です。"; return; } col = gcSpreadGrid.ActiveColumnIndex; row = gcSpreadGrid.ActiveRowIndex; 距離 = Convert.ToInt32(gcSpreadGrid[row, 0].Value); 重量 = Convert.ToInt32(gcSpreadGrid[row, 1].Value); 運賃 = Convert.ToInt32(gcSpreadGrid[row, 2].Value); base.SendRequest(new CommunicationObject(MessageType.UpdateData, TargetTableNmUpdate, new object[] { iタリフID, 距離, 重量, 運賃 })); }
/// <summary> /// SPREAD セル編集がコミットされた時の処理(手入力) CellEditEnadedイベント /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gcSpredGrid_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { GcSpreadGrid grid = sender as GcSpreadGrid; int targetColumnIdx = grid.ActiveColumnIndex; int targetRowIndex = grid.ActiveRowIndex; if (e.EditAction == SpreadEditAction.Cancel) { return; } switch (targetColumnIdx) { case (int)GridColumnsMapping.取引先コード: case (int)GridColumnsMapping.枝番: string code = getSpreadGridValue(targetRowIndex, GridColumnsMapping.取引先コード).ToString(); string eda = getSpreadGridValue(targetRowIndex, GridColumnsMapping.枝番).ToString(); if (string.IsNullOrEmpty(code) || string.IsNullOrEmpty(eda)) { setSpreadGridValue(targetRowIndex, GridColumnsMapping.得意先名, string.Empty); return; } // 入力内容から取引先マスタを参照 base.SendRequest( new CommunicationObject( MessageType.RequestData, MasterCode_Supplier, new object[] { this.Subcontractor.DataAccessName, code, eda, this.Subcontractor.LinkItem })); break; case (int)GridColumnsMapping.自社品番: case (int)GridColumnsMapping.色コード: string productCode = getSpreadGridValue(targetRowIndex, GridColumnsMapping.自社品番).ToString(); if (string.IsNullOrEmpty(productCode)) { return; } // 自社品番から品番マスタを参照 base.SendRequest( new CommunicationObject( MessageType.RequestData, MasterCode_MyProductSet, new object[] { productCode })); break; case (int)GridColumnsMapping.依頼日: case (int)GridColumnsMapping.依頼数: case (int)GridColumnsMapping.仕上数: DataRow row = SearchResult.Rows[targetRowIndex]; if (row.RowState == DataRowState.Unchanged) { if (row.HasVersion(DataRowVersion.Original)) { // Remarks:テーブル列とグリッド列の並びが違うので加算して合わせる var org = row[targetColumnIdx + 1, DataRowVersion.Original]; var val = row[targetColumnIdx + 1]; if (org.ToString() != val.ToString()) { row.SetModified(); row[targetColumnIdx + 1] = val; } } } break; default: break; } }
private void sp請求データ一覧_CellEditEnded(object sender, SpreadCellEditEndedEventArgs e) { if (e.EditAction == SpreadEditAction.Cancel) { return; } var gcsp = (sender as GcSpreadGrid); if (gcsp == null) { return; } try { string cname = e.CellPosition.ColumnName; string ctext = sp請求データ一覧.Cells[e.CellPosition.Row, e.CellPosition.Column].Text; ctext = ctext == null ? string.Empty : ctext; if (cname == CellName && ctext == CellText) { // セルの値が変化していなければ何もしない return; } var row = gcsp.Rows[e.CellPosition.Row]; object val = row.Cells[e.CellPosition.Column].Value; val = val == null ? "" : val; if (cname.Contains("開始日付") == true) { AppCommon.SpreadYMDCellCheck(sender, e, this._originalText); //cname = cname.Replace("年月日", "日付"); DateTime dt; if (DateTime.TryParse(row.Cells[e.CellPosition.Column].Text, out dt) == true) { val = dt; } else { this.ErrorMessage = "正しい日付を入力してください。"; return; } } if (cname.Contains("終了日付") == true) { AppCommon.SpreadYMDCellCheck(sender, e, this._originalText); //cname = cname.Replace("年月日", "日付"); DateTime dt; if (DateTime.TryParse(row.Cells[e.CellPosition.Column].Text, out dt) == true) { val = dt; } else { this.ErrorMessage = "正しい日付を入力してください。"; return; } } } //catch (Exception ex) catch { this.ErrorMessage = "入力内容が不正です。"; } }
//SpreadでEnterを押下した時 private void KOUSHIN_KeyDown(object sender, SpreadCellEditEndedEventArgs e) { Keisan(); }