//回傳值 true.通過驗證 false.未通過驗證,會把值還原 protected override bool WfItemCheck(object sender, ItemCheckInfo e) { int chkCnts = 0; vw_glai110 masterModel = null; vw_glai110s detailModel = null; List <vw_glai110s> detailList = null; gba_tb gbaModel = null; UltraGrid uGrid = null; UltraGridRow uGridRow = null; string sqlSelect = ""; List <SqlParameter> sqlParmList = null; try { masterModel = DrMaster.ToItem <vw_glai110>(); if (e.Column.ToLower() != "gbd01" && GlobalFn.isNullRet(DrMaster["gbd01"], "") == "") { WfShowErrorMsg("請先輸入上層部門!"); return(false); } #region 單頭-vw_glai110 if (e.Row.Table.Prefix.ToLower() == "vw_glai110") { switch (e.Column.ToLower()) { case "gbd01": if (GlobalFn.isNullRet(e.Value, "") == "") { e.Row["gbd01_c"] = ""; return(true); } var babModel = BoBas.OfGetBebModel(e.Value.ToString()); if (babModel == null) { WfShowErrorMsg("無此上層部門,請檢核!"); return(false); } if (babModel.bebvali != "Y") { WfShowErrorMsg("此上層部門已失效,請檢核!"); return(false); } if (WfChkGbd01Exists(e.Value.ToString()) == true) { WfShowErrorMsg("此上層部門已存在,請檢核!"); return(false); } e.Row["gbd01_c"] = babModel.beb03; break; } } #endregion #region 單身-vw_glai110s if (e.Row.Table.Prefix.ToLower() == "vw_glai110s") { uGrid = sender as UltraGrid; uGridRow = uGrid.ActiveRow; detailModel = e.Row.ToItem <vw_glai110s>(); detailList = e.Row.Table.ToList <vw_glai110s>(); switch (e.Column.ToLower()) { case "gbd02": if (GlobalFn.isNullRet(e.Value, "") == "") { e.Row["gbd02_c"] = ""; return(true); } var babModel = BoBas.OfGetBebModel(e.Value.ToString()); if (babModel == null) { WfShowErrorMsg("無此下層部門,請檢核!"); return(false); } if (babModel.bebvali != "Y") { WfShowErrorMsg("此下層部門已失效,請檢核!"); return(false); } if (masterModel.gbd01.ToUpper() == e.Value.ToString().ToUpper()) { WfShowErrorMsg("不可與上層部門相同,請檢核!"); return(false); } chkCnts = detailList.Where(p => p.gbd02.ToUpper() == e.Value.ToString().ToUpper()).Count(); if (chkCnts > 1) { WfShowErrorMsg("下層部門不可重覆,請檢核!"); return(false); } sqlSelect = "SELECT COUNT(1) FROM gbd_tb WHERE gbd02=@gbd02 AND gbd01<>@gbd01"; sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gbd01", masterModel.gbd01)); sqlParmList.Add(new SqlParameter("@gbd02", e.Value.ToString())); chkCnts = GlobalFn.isNullRet(BoGla.OfGetFieldValue(sqlSelect, sqlParmList.ToArray()), 0); if (chkCnts > 0) { WfShowErrorMsg("此下層部門已隸屬於其他上層部門,請檢核!"); return(false); } e.Row["gbd02_c"] = babModel.beb03; break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfFormCheck() { int chkCnts = 0; vw_glai110 masterModel = null; vw_glai110s detailModel = null; List <vw_glai110s> detailList = null; UltraGrid uGrid; string msg; Control chkControl; string chkColName; int iChkDetailTab; string sqlSelect = ""; List <SqlParameter> sqlParmList = null; Result result; try { masterModel = DrMaster.ToItem <vw_glai110>(); #region 單頭資料檢查 chkColName = "gbd01"; //傳票單號 chkControl = ute_gbd01; if (GlobalFn.varIsNull(masterModel.gbd01)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } if (FormEditMode == YREditType.新增) { if (WfChkGbd01Exists(masterModel.gbd01) == true) { msg = "此上層部門已存在,請檢核!"; WfShowErrorMsg(msg); errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } } #endregion #region 單身資料檢查 iChkDetailTab = 0; uGrid = TabDetailList[iChkDetailTab].UGrid; detailList = TabDetailList[iChkDetailTab].DtSource.ToList <vw_glai110s>(); foreach (DataRow drTemp in TabDetailList[iChkDetailTab].DtSource.Rows) { if (drTemp.RowState == DataRowState.Unchanged) { continue; } detailModel = drTemp.ToItem <vw_glai110s>(); chkColName = "gbd02"; //下層部門 if (GlobalFn.varIsNull(detailModel.gbd02)) { this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab]; msg = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; WfShowErrorMsg(msg); WfFindErrUltraGridCell(uGrid, drTemp, chkColName); return(false); } if (drTemp.RowState == DataRowState.Added) { chkCnts = detailList.Where(p => p.gbd02.ToUpper() == detailModel.gbd02.ToUpper()).Count(); if (chkCnts > 1) { WfShowErrorMsg("下層部門不可重覆,請檢核!"); return(false); } sqlSelect = "SELECT COUNT(1) FROM gbd_tb WHERE gbd02=@gbd02 AND gbd01<>@gbd01"; sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gbd01", masterModel.gbd01)); sqlParmList.Add(new SqlParameter("@gbd02", detailModel.gbd02)); chkCnts = GlobalFn.isNullRet(BoGla.OfGetFieldValue(sqlSelect, sqlParmList.ToArray()), 0); if (chkCnts > 0) { WfShowErrorMsg("此下層部門已隸屬於其他上層部門,請檢核!"); return(false); } } } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfPickClickOnEditMode(object sender, string pColName, DataRow pDr) { try { vw_glai110 masterModel = null; vw_glai110s detailModel = null; MessageInfo messageModel = new MessageInfo(); #region 單頭-pick vw_glai110 if (pDr.Table.Prefix.ToLower() == "vw_glai110") { masterModel = DrMaster.ToItem <vw_glai110>(); switch (pColName.ToLower()) { case "gbd01": //上層部門 messageModel.ParamSearchList = new List <SqlParameter>(); WfShowPickUtility("p_beb1", messageModel); if (messageModel.Result == System.Windows.Forms.DialogResult.OK) { if (messageModel.DataRowList.Count > 0) { pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["beb01"], ""); } else { pDr[pColName] = ""; } } break; } } #endregion #region 單身-pick vw_glai110s if (pDr.Table.Prefix.ToLower() == "vw_glai110s") { masterModel = DrMaster.ToItem <vw_glai110>(); detailModel = pDr.ToItem <vw_glai110s>(); switch (pColName.ToLower()) { case "gbd02": //下層部門 WfShowPickUtility("p_beb1", messageModel); if (messageModel.Result == System.Windows.Forms.DialogResult.OK) { if (messageModel.DataRowList.Count > 0) { pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["beb01"], ""); } else { pDr[pColName] = ""; } } break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }