diff --git a/插件库/Lskj.PubAccraditation/FrmAccraditation.cs b/插件库/Lskj.PubAccraditation/FrmAccraditation.cs index 8eb8b05..d8f1105 100644 --- a/插件库/Lskj.PubAccraditation/FrmAccraditation.cs +++ b/插件库/Lskj.PubAccraditation/FrmAccraditation.cs @@ -157,6 +157,10 @@ namespace Lskj.PubAccraditation /// 是否执行了加载储存过程 /// public bool ProcessExists = false; + // + /// 模块对应的权限表信息 + /// + public DataTable AuthorityTable; #endregion /// @@ -1031,12 +1035,14 @@ namespace Lskj.PubAccraditation // } //} + this.AuthorityTable = PowerImpl.GetModuleAuthorityEnable(this.SysModel.ModuleCode); + if (this.AuditModelObj.DetailModifyFields != "-1") { this.gridBillInfo.SetReadOnlyAllColumn(); } //设置必填和修改字段 - this.gridBillInfo.SetFieldStatus(this.AuditModelObj.DetailModifyFields, this.AuditModelObj.RequiredDetailFields); + this.gridBillInfo.SetFieldStatus(this.AuditModelObj.DetailModifyFields, this.AuditModelObj.RequiredDetailFields, this.AuthorityTable); @@ -1067,8 +1073,8 @@ namespace Lskj.PubAccraditation { this.SetTempleteSelectedValue(this.ControlObj.GetControlValue("brpId")); } - this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); - + //this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(_drBillInfoMsg, this.BillModelObj.DetailSql)); if (this.BillModelObj.DetailTreeTable) @@ -1469,7 +1475,8 @@ namespace Lskj.PubAccraditation this.ControlObj.SetAllControlValue(this._drBillInfoMsg); // 刷新明细表 - this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + //this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(_drBillInfoMsg, this.BillModelObj.DetailSql)); this._dtSourceData.OrderBy(this.BillModelObj.DetailOrderField); if (this.BillModelObj.DetailTreeTable) { @@ -1503,8 +1510,13 @@ namespace Lskj.PubAccraditation { GridDetailModel model = this.tab_basicInfo.GetFocusTabPageGridDetailModel(); DataRow dataRow = this.BillModelObj.DetailTreeTable ? (this.gridBillInfo as TreeGridControlEx).GetViewFocusedDataRow() : this.gridBillInfo.GridView.GetFocusedDataRow(); - string sqlValue = ReplaceHelper.ReplaceRowParam(dataRow, model.DetailSql); + //string sqlValue = ReplaceHelper.ReplaceRowParam(dataRow, model.DetailSql); + //this.tab_basicInfo.SetGridDataSource(MainImpl.GetDataTableResult(sqlValue)); + bool isDetailAttach = (model.IsReadOnly || model.IsChart); + string sqlValue = isDetailAttach ? ReplaceHelper.ReplaceRowParam(dataRow, model.DetailSql) : GetSearchSql(model); + sqlValue = ReplaceHelper.ReplaceRowParam(dataRow, sqlValue); + //this.tab_basicInfo.SetGridDataSource(tabPage, MainImpl.GetDataTableResult(sqlValue)); this.tab_basicInfo.SetGridDataSource(MainImpl.GetDataTableResult(sqlValue)); } catch (Exception ex) @@ -1699,11 +1711,38 @@ namespace Lskj.PubAccraditation //改变控件状态 操作字段 if (!string.IsNullOrEmpty(billFields) && billFields != "-1") { - foreach (DataRow dr in this._dtBillInfoFiled.Rows) + + foreach (string item in billFields.Split(',')) { - string fieldName = dr["fieldName"] + ""; - this.ControlObj.SetReadOnlyControl(fieldName, !billFields.Split(',').Contains(fieldName), false); + BaseUserControl control = this.ControlObj.FindControl(item); + if (string.IsNullOrWhiteSpace(control.Model.PrivilegeOper)) + { + //没有人员权限,转成可编辑 + this.ControlObj.SetReadOnlyControl(item, false, false); + } + else + { + List targetPrivTypeIds = new List(); + foreach (string permission in control.Model.PrivilegeOper.Split(',')) + { + targetPrivTypeIds.Add(int.Parse(permission)); + } + //获取权限对应的人员名称 + string userString = string.Join(",", AuthorityTable.AsEnumerable() + .Where(row => targetPrivTypeIds.Contains(row.Field("privTypeId"))) + .Select(row => row.Field("userList")) + .Where(value => value != null) + .ToList()); + //有权限的字段,转成可编辑 + if (userString.Split(',').Contains(ERPInfo.Instance.UserName)) this.ControlObj.SetReadOnlyControl(item, false, false); + + } } + //foreach (DataRow dr in this._dtBillInfoFiled.Rows) + //{ + // string fieldName = dr["fieldName"] + ""; + // this.ControlObj.SetReadOnlyControl(fieldName, !billFields.Split(',').Contains(fieldName), true); + //} } } @@ -2606,7 +2645,8 @@ namespace Lskj.PubAccraditation if (returnValue == 1) { MessageUtil.Show(ResourceKeys.SpliterBillSuccess); - this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + //this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(_drBillInfoMsg, this.BillModelObj.DetailSql)); this._dtSourceData.OrderBy(this.BillModelObj.DetailOrderField); this._dtSpareSourceData.Clear(); return true; @@ -2994,6 +3034,9 @@ namespace Lskj.PubAccraditation string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } + + if (this.BillModelObj.SaveSuccessfullyRefresh && !save) return save;//保存成功才刷新 + // 刷新主表 this._drBillInfoMsg = BaseAuditImpl.GetCurrentFlowRowData(this.BillModelObj.MasterTable, this.BillModelObj.PrimaryKey, this.SysModel.BillDocumentId); this.ControlObj.CanExecControl = false; @@ -3001,7 +3044,8 @@ namespace Lskj.PubAccraditation this.ControlObj.CanExecControl = true; // 刷新明细表 - this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + //this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(_drBillInfoMsg, this.BillModelObj.DetailSql)); this._dtSourceData.OrderBy(this.BillModelObj.DetailOrderField); if (this.BillModelObj.DetailTreeTable) @@ -3249,7 +3293,8 @@ namespace Lskj.PubAccraditation this.ControlObj.SetAllControlValue(this._drBillInfoMsg); // 刷新明细表 - this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + //this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceParamToValue(this.BillModelObj.DetailSql, this.SysModel.BillDocumentId)); + this._dtSourceData = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(_drBillInfoMsg, this.BillModelObj.DetailSql)); this._dtSourceData.OrderBy(this.BillModelObj.DetailOrderField); if (this.BillModelObj.DetailTreeTable) {