/// <summary> /// 将Grid中选中的数据赋值给【详情】Tab内的对应控件 /// </summary> private void SetGridDataToCardCtrls() { //判断是否允许将【列表】Grid数据设置到【详情】Tab内的对应控件 if (!IsAllowSetGridDataToCard()) { return; } var activeRowIndex = gdGrid.ActiveRow.Index; //判断Grid内[唯一标识]是否为空 if (gdGrid.Rows[activeRowIndex].Cells[SystemTableColumnEnums.SD_SalesForecastOrder.Code.SFO_ID].Value == null || string.IsNullOrEmpty(gdGrid.Rows[activeRowIndex].Cells[SystemTableColumnEnums.SD_SalesForecastOrder.Code.SFO_ID].Value.ToString())) { return; } //将选中的Grid行对应数据Model赋值给[DetailDS] //******************************************************************************** //**********************************【重要说明】********************************** //*****此处和上面的条件判断必须用HeadGridDS内能唯一标识一条记录的字段作为过滤条件***** //******************************************************************************** HeadDS = HeadGridDS.FirstOrDefault(x => x.SFO_ID == gdGrid.Rows[activeRowIndex].Cells[SystemTableColumnEnums.SD_SalesForecastOrder.Code.SFO_ID].Value?.ToString()); if (HeadDS == null || string.IsNullOrEmpty(HeadDS.SFO_ID)) { return; } //将DetailDS数据赋值给【详情】Tab内的对应控件 SetDetailDSToCardCtrls(); //选中【详情】Tab tabControlFull.Tabs[SysConst.EN_DETAIL].Selected = true; //查询明细Grid数据并绑定 QueryDetail(); //设置详情 SetDetailControl(); }
/// <summary> /// 刷新列表 /// </summary> /// <param name="paramIsDelete">是否是删除操作</param> private void RefreshList(bool paramIsDelete = false) { if (paramIsDelete) { if (tabControlFull.Tabs[SysConst.EN_LIST].Selected) { var removeList = HeadGridDS.Where(x => x.IsChecked == true).ToList(); foreach (var loopRemove in removeList) { HeadGridDS.Remove(loopRemove); } } else { var curHead = HeadGridDS.FirstOrDefault(x => x.WH_ID == HeadDS.WH_ID); if (curHead != null) { HeadGridDS.Remove(curHead); } } } else { var curHead = HeadGridDS.FirstOrDefault(x => x.WH_ID == HeadDS.WH_ID); if (curHead != null) { _bll.CopyModel(HeadDS, curHead); } else { HeadGridDS.Insert(0, HeadDS); } } gdGrid.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.VisibleRows); }
/// <summary> /// 将Grid中选中的数据赋值给【详情】Tab内的对应控件 /// </summary> private void SetGridDataToCardCtrls() { //判断是否允许将【列表】Grid数据设置到【详情】Tab内的对应控件 if (!IsAllowSetGridDataToCard()) { return; } SetCardCtrlsToDetailDS(); base.NewUIModel = HeadDS; var activeRowIndex = gdGrid.ActiveRow.Index; //判断Grid内[唯一标识]是否为空 if (gdGrid.Rows[activeRowIndex].Cells[SystemTableColumnEnums.PIS_Warehouse.Code.WH_ID].Value == null || string.IsNullOrEmpty(gdGrid.Rows[activeRowIndex].Cells[SystemTableColumnEnums.PIS_Warehouse.Code.WH_ID].Value.ToString())) { return; } //将选中的Grid行对应数据Model赋值给[DetailDS] //******************************************************************************** //**********************************【重要说明】********************************** //*****此处和上面的条件判断必须用GridDS内能唯一标识一条记录的字段作为过滤条件***** //******************************************************************************** HeadDS = HeadGridDS.FirstOrDefault(x => x.WH_ID == gdGrid.Rows[activeRowIndex].Cells[SystemTableColumnEnums.PIS_Warehouse.Code.WH_ID].Value); if (HeadDS == null || string.IsNullOrEmpty(HeadDS.WH_ID)) { return; } if (txtWH_ID.Text != HeadDS.WH_ID || (txtWH_ID.Text == HeadDS.WH_ID && txtWH_VersionNo.Text != HeadDS.WH_VersionNo?.ToString())) { if (txtWH_ID.Text == HeadDS.WH_ID && txtWH_VersionNo.Text != HeadDS.WH_VersionNo?.ToString()) { //数据版本已过期,将加载最新详情。 MessageBoxs.Show(Trans.PIS, ToString(), MsgHelp.GetMsg(MsgCode.I_0000, new object[] { MsgParam.DataHasOverdue }), MessageBoxButtons.OKCancel, MessageBoxIcon.Information); } else if (ViewHasChanged() || _warehouseBinList.InsertList.Count > 0 || _warehouseBinList.UpdateList.Count > 0 || _warehouseBinList.DeleteList.Count > 0) { //将放弃之前的修改,是否继续? DialogResult dialogResult = MessageBoxs.Show(Trans.PIS, ToString(), MsgHelp.GetMsg(MsgCode.I_0000, new object[] { MsgParam.ConfirmGiveUpEdit }), MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dialogResult != DialogResult.OK) { //选中【详情】Tab tabControlFull.Tabs[SysConst.EN_DETAIL].Selected = true; return; } } //将DetailDS数据赋值给【详情】Tab内的对应控件 SetDetailDSToCardCtrls(); } //选中【详情】Tab tabControlFull.Tabs[SysConst.EN_DETAIL].Selected = true; //将最新的值Copy到初始UIModel this.AcceptUIModelChanges(); //设置详情是否可编辑 SetDetailControl(); //查询仓位 QueryWarehouseBin(); }