/// <summary> /// 取得内容を各コントロールに設定 /// </summary> /// <param name="ds"></param> private void SetTblData(DataSet ds) { // 移動ヘッダ情報設定 DataTable tblHd = ds.Tables[T05_HEADER_TABLE_NAME]; SearchHeader = tblHd.Rows[0]; SearchHeader.AcceptChanges(); // 移動明細情報設定 DataTable tblDtl = ds.Tables[T05_DETAIL_TABLE_NAME]; SearchDetail = tblDtl; SearchDetail.AcceptChanges(); // データ状態から編集状態を設定 if (SearchDetail.Select("金種コード > 0").Count() == 0) { // 新規行を追加 for (int i = 0; i < 10; i++) { DataRow row = SearchDetail.NewRow(); row["伝票番号"] = AppCommon.IntParse(tblHd.Rows[0]["伝票番号"].ToString()); row["行番号"] = (i + 1); SearchDetail.Rows.Add(row); } this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD; this.txt入金日.Focus(); } else { this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT; // 金種名称を設定 int rIdx = 0; foreach (DataRow row in SearchDetail.Rows) { if (string.IsNullOrEmpty(row["金種コード"].ToString())) { continue; } setSpreadGridValue(rIdx, GridColumnsMapping.金種名, 金種Dic[int.Parse(row["金種コード"].ToString())]); rIdx++; } // 不足分レコードを追加 for (int i = SearchDetail.Rows.Count; i < 10; i++) { DataRow row = SearchDetail.NewRow(); row["伝票番号"] = AppCommon.IntParse(tblHd.Rows[0]["伝票番号"].ToString()); row["行番号"] = (i + 1); SearchDetail.Rows.Add(row); } this.gcSpreadGrid.Focus(); this.gcSpreadGrid.ActiveCellPosition = new CellPosition(0, GridColumnsMapping.金種コード.GetHashCode()); } }
/// <summary> /// データ受信処理 /// </summary> /// <param name="message"></param> public override void OnReceivedResponseData(CommunicationObject message) { try { this.ErrorMessage = string.Empty; var data = message.GetResultData(); DataTable tbl = (data is DataTable) ? (data as DataTable) : null; switch (message.GetMessageName()) { case UpdateData_StockCheck: // No-222 Add Start // 在庫数チェック結果受信 Dictionary <string, string> updateList = data as Dictionary <string, string>; string zaiUpdateMessage = AppConst.CONFIRM_UPDATE; var zaiMBImage = MessageBoxImage.Question; foreach (DataRow row in SearchDetail.Select("", "", DataViewRowState.CurrentRows)) { if (updateList.Count > 0) { zaiMBImage = MessageBoxImage.Warning; zaiUpdateMessage = "在庫がマイナスになる品番が存在しますが、\r\n登録してもよろしいでしょうか?"; break; } } if (MessageBox.Show(zaiUpdateMessage, "登録確認", MessageBoxButton.YesNo, zaiMBImage, MessageBoxResult.Yes) == MessageBoxResult.No) { return; } // No-222 Add End Update(); // 致命的なエラーの場合、以降の処理を中止する if (blnCloseFlg == false) { return; } // 警告がない場合、当該画面を終了する if (blnWarningFlg == true) { // 処理続行確認メッセージを表示する var yesno = MessageBox.Show("警告がありますが処理を続行しますか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (yesno == MessageBoxResult.No) { return; } CloseDataEdited(); } else { CloseDataEdited(); } break; case SearchTableToShin: // セット品で検索された場合 SetHin = tbl.Copy(); break; case MasterCode_MyProduct: #region 自社品番手入力時 DataTable ctbl = data as DataTable; int columnIdx = gridDtb.ActiveColumnIndex; int rIdx = gridDtb.ActiveRowIndex; // フォーカス移動後の項目が異なる場合または編集行が異なる場合は処理しない。 if ((columnIdx != (int)GridColumnsMapping.色コード) || _編集行 != rIdx) { return; } if (ctbl == null || ctbl.Rows.Count == 0) { // 対象データなしの場合 gridDtb.SetCellValue((int)GridColumnsMapping.品番コード, 0); gridDtb.SetCellValue((int)GridColumnsMapping.自社品番, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.自社品名, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.数量, 0m); gridDtb.SetCellValue((int)GridColumnsMapping.単位, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.商品分類, (int)商品分類.その他); gridDtb.SetCellValue((int)GridColumnsMapping.色コード, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.色名称, string.Empty); // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品番); // No.425 Add } else if (tbl.Rows.Count > 1) { int cIdx = gcInnerSpreadGrid.ActiveColumnIndex; var colVal = gridDtb.GetCellValueToString((int)GridColumnsMapping.自社品番); int code = int.Parse(SearchHeader["外注先コード"].ToString()); int eda = int.Parse(SearchHeader["外注先枝番"].ToString()); // 自社品番の場合 SCHM09_MYHIN myhin = new SCHM09_MYHIN(code, eda); myhin.TwinTextBox = new UcLabelTwinTextBox(); myhin.txtCode.Text = colVal; myhin.txtCode.IsEnabled = false; myhin.TwinTextBox.LinkItem = 2; if (myhin.ShowDialog(this) == true) { gridDtb.SetCellValue((int)GridColumnsMapping.品番コード, myhin.SelectedRowData["品番コード"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品番, myhin.SelectedRowData["自社品番"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品名, myhin.SelectedRowData["自社品名"]); gridDtb.SetCellValue((int)GridColumnsMapping.数量, 1m); gridDtb.SetCellValue((int)GridColumnsMapping.単位, myhin.SelectedRowData["単位"]); gridDtb.SetCellValue((int)GridColumnsMapping.商品分類, myhin.SelectedRowData["商品分類"]); gridDtb.SetCellValue((int)GridColumnsMapping.色コード, myhin.SelectedRowData["自社色"]); gridDtb.SetCellValue((int)GridColumnsMapping.色名称, myhin.SelectedRowData["自社色名"]); // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品名); // No.425 Add } else { // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品番); // No.425 Add } } else { // 対象データありの場合 DataRow drow = ctbl.Rows[0]; gcInnerSpreadGrid.BeginEdit(); gridDtb.SetCellValue((int)GridColumnsMapping.品番コード, drow["品番コード"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品番, drow["自社品番"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品名, drow["自社品名"]); gridDtb.SetCellValue((int)GridColumnsMapping.数量, 1m); gridDtb.SetCellValue((int)GridColumnsMapping.単位, drow["単位"]); gridDtb.SetCellValue((int)GridColumnsMapping.商品分類, drow["商品分類"]); gridDtb.SetCellValue((int)GridColumnsMapping.色コード, drow["自社色"]); gridDtb.SetCellValue((int)GridColumnsMapping.色名称, drow["色名称"]); // 自社品番のセルをロック // 数量以外はロック gridDtb.SetCellLocked((int)GridColumnsMapping.品番コード, true); gridDtb.SetCellLocked((int)GridColumnsMapping.自社品番, true); gridDtb.SetCellLocked((int)GridColumnsMapping.自社品名, false); // No.391 Add gridDtb.SetCellLocked((int)GridColumnsMapping.単位, true); gridDtb.SetCellLocked((int)GridColumnsMapping.商品分類, true); gridDtb.SetCellLocked((int)GridColumnsMapping.色コード, true); gridDtb.SetCellLocked((int)GridColumnsMapping.色名称, true); // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品名); // No.425 Add } InnerDetail.Rows[rIdx].EndEdit(); #endregion break; default: break; } } catch (Exception ex) { ErrorMessage = ex.Message; } }