/// <summary> /// 设置控件数据源。 /// </summary> /// <param name="clientRule"></param> /// <param name="dataSource"></param> public void SetDataSource(IClientRuleQueryBase clientRule, object dataSource) { IList lstDatas = dataSource as IList; if (lstDatas == null) { throw new MB.Util.APPException("目前树型浏览列表只支持IList 数据类型", MB.Util.APPMessageType.SysErrInfo); } _TreeListHoster = clientRule as ITreeListViewHoster; if (_TreeListHoster == null) { throw new MB.Util.APPException("获取树型列表数据的业务对象必须继承 ITreeListViewHoster 接口。", MB.Util.APPMessageType.SysErrInfo); } MB.WinBase.Binding.BindingSourceEx bindingSource = new MB.WinBase.Binding.BindingSourceEx(); bindingSource.DataSource = dataSource; _TreeListHoster.CreateTreeListViewDataBinding(trvLstMain, bindingSource); trvLstMain.DataSource = lstDatas; //add by aifang 2012-04-17 数据绑定无效,重新对控件数据源赋值 trvLstMain.RefreshDataSource(); if (trvLstMain.Nodes.Count > 0) { trvLstMain.Nodes[0].Expanded = true; trvLstMain.FocusedNode = trvLstMain.Nodes[0]; } }
/// <summary> /// 获取模板列表 /// </summary> /// <param name="clientRuleObject"></param> /// <returns></returns> public static IList GetDynamicColumnSettings(IClientRuleQueryBase clientRuleObject) { try { var gridColumnSettings = new MB.Util.Serializer.DataContractFileSerializer <List <GridColumnSettingInfo> >(GRID_COLUMN_SETTING_FULLNAME).Read(); if (gridColumnSettings == null) { return(null); } string sectionName = clientRuleObject.GetType().FullName + " " + clientRuleObject.ClientLayoutAttribute.UIXmlConfigFile; var dynamicColumnSettings = gridColumnSettings.Find(o => o.Name.Equals(sectionName)); if (dynamicColumnSettings == null || dynamicColumnSettings.DynamicColumns.Count == 0) { return(null); } return(dynamicColumnSettings.DynamicColumns); } catch (Exception ex) { MB.Util.TraceEx.Write(ex.Message, Util.APPMessageType.SysErrInfo); return(null); } }
/// <summary> /// 保存列配置信息 /// </summary> /// <param name="clientRuleObject"></param> /// <param name="templateName"></param> /// <param name="cols"></param> /// <param name="settings"></param> public static void SaveDynamicColumnSettings(IClientRuleQueryBase clientRuleObject, string templateName, List <DynamicColumnInfo> cols, List <GridColumnSettingInfo> settings) { try { //保存列配置信息 if (!Directory.Exists(GRID_FILE_PATH)) { Directory.CreateDirectory(GRID_FILE_PATH); } if (!string.IsNullOrEmpty(templateName)) { string sectionName = clientRuleObject.GetType().FullName + " " + clientRuleObject.ClientLayoutAttribute.UIXmlConfigFile + " " + templateName + ".xml"; var dynamicColumn = new MB.Util.Serializer.DataContractFileSerializer <List <DynamicColumnInfo> >(GRID_FILE_PATH + sectionName); dynamicColumn.Write(cols); } //保存主配置信息 var gridSetting = new MB.Util.Serializer.DataContractFileSerializer <List <GridColumnSettingInfo> >(GRID_COLUMN_SETTING_FULLNAME); gridSetting.Write(settings); } catch (Exception ex) { throw new MB.Util.APPException(ex.Message, Util.APPMessageType.SysErrInfo); } }
/// <summary> /// 得到列信息,用于加载与呈现UI Grid时使用 /// </summary> /// <param name="clientRuleObject"></param> /// <returns></returns> public Dictionary <string, ColumnPropertyInfo> GetDynamicColumns(IClientRuleQueryBase clientRuleObject) { Dictionary <string, ColumnPropertyInfo> bindingPropertys = new Dictionary <string, ColumnPropertyInfo>(); try { Dictionary <string, ColumnPropertyInfo> propertys = clientRuleObject.UIRuleXmlConfigInfo.GetDefaultColumns(); if (clientRuleObject.CurrentQueryBehavior.Columns != null && clientRuleObject.CurrentQueryBehavior.Columns.Length > 0) { string[] cols = clientRuleObject.CurrentQueryBehavior.Columns.Split(','); foreach (string col in cols) { if (propertys.Keys.Contains(col)) { bindingPropertys.Add(col, propertys[col]); } } } else { bindingPropertys = propertys; } } catch (Exception ex) { MB.Util.TraceEx.Write(string.Format("执行方法 GetDynamicColumns 出错,获取动态列异常,错误信息为:{0}", ex.Message)); bindingPropertys = clientRuleObject.UIRuleXmlConfigInfo.GetDefaultColumns(); } return(bindingPropertys); }
/// <summary> /// 根据Rule的全名得到保存在客户端动态聚组配置的sectionName /// </summary> /// <returns></returns> private string getDynamicSettingSectionName() { IClientRuleQueryBase clientRuleObject = _ClientRuleObject; string sectionName = clientRuleObject.GetType().FullName; return(sectionName); }
/// <summary> /// 创建高级查询控件。 /// </summary> /// <param name="viewGridForm"></param> public void IniLoadFilterControl(IClientRuleQueryBase clientRuleObject, DevExpress.XtraGrid.GridControl mainGridCtl) { try { if (_FilterControl == null) { DevExpress.XtraGrid.Views.Grid.GridView gridView = mainGridCtl.DefaultView as DevExpress.XtraGrid.Views.Grid.GridView; _FilterControl = new XGridFilterControl(clientRuleObject.UIRuleXmlConfigInfo.GetDefaultColumns()); DevExpress.XtraEditors.Filtering.FilterColumnCollection filterColumns = new DevExpress.XtraGrid.FilterEditor.ViewFilterColumnCollection(gridView); var createColumns = createFilterColumn(clientRuleObject, filterColumns); _FilterControl.SortFilterColumns = false; _FilterControl.SetFilterColumnsCollection(createColumns, mainGridCtl.MenuManager); _FilterControl.ShowOperandTypeIcon = gridView.OptionsFilter.UseNewCustomFilterDialog; _FilterControl.Dock = DockStyle.Fill; panMain.Controls.Add(_FilterControl); _TemplateEditHelper = new FilterTemplateEditHelper(clientRuleObject, cobFilterTemplate); //加载模板 _FilterTemplates = _TemplateEditHelper.LoadFilterTemplate(); } _FilterControl.BringToFront(); } catch (Exception e) { MB.Util.TraceEx.Write("加载高级查询出错:" + e.Message); throw new MB.Util.APPException("当前模块可能还没有提供相应的高级查询功能,请检查相应的配置信息!", MB.Util.APPMessageType.DisplayToUser); } }
public InvokeDataAssistantHosterEventArgs(IClientRuleQueryBase clientRule, ColumnEditCfgInfo clumnEditCfgInfo, object currentEditObject, List <QueryParameterInfo> filterParameters) { _ClientRule = clientRule; _FilterParameters = filterParameters; _ClumnEditCfgInfo = clumnEditCfgInfo; _CurrentEditObject = currentEditObject; }
/// <summary> /// 保存配置信息 /// </summary> public void SaveDynamicGroupSettings(List <DynamicGroupUIColumns> dynamicGroupColumns) { IClientRuleQueryBase clientRuleObject = _ClientRuleObject; try { //保存列配置信息 if (!Directory.Exists(DYNAMIC_GROUP_DIR)) { Directory.CreateDirectory(DYNAMIC_GROUP_DIR); } if (dynamicGroupColumns != null && dynamicGroupColumns.Count > 0) { //string sectionName = clientRuleObject.GetType().FullName + "~" + pivotGrid.Name; string sectionName = getDynamicSettingSectionName(); string fullFileName = string.Format(DYNAMIC_GROUP_SETTING_FULLNAME, sectionName); if (File.Exists(fullFileName)) { File.Delete(fullFileName); } var serializer = new MB.Util.Serializer.DataContractFileSerializer <List <DynamicGroupUIColumns> >(fullFileName); serializer.Write(dynamicGroupColumns); } } catch (Exception ex) { throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "保存动态聚组设定失败"); } }
/// <summary> /// 构造函数 /// </summary> /// <param name="dynamicGroupViewHost">打开动态聚组窗口的HOST窗口</param> /// <param name="clientRule">客户端UI RULE</param> /// <param name="filterForm">数据筛选窗口,证明在查询时打开动态聚组窗口</param> public FrmDynamicGroupSetting(IViewDynamicGroupGridForm dynamicGroupViewHost, IClientRuleQueryBase clientRule, IQueryFilterForm filterForm) { InitializeComponent(); try { if (clientRule == null) { throw new MB.Util.APPException("clientRule不能为空"); } if (dynamicGroupViewHost == null) { throw new MB.Util.APPException("dynamicGroupViewForm不能为空"); } _DynamicGroupGridHost = dynamicGroupViewHost; _ClientRule = clientRule; _QueryFilterFrm = filterForm; _DynamicGroupUIHelper = new DynamicGroupUIHelper(_ClientRule, gridControl); _DynamicGroupUIHelper.BindDynamicGroupColumnsToGrid(); } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex, string.Format("动态聚组设定构造函数出错:{0}", ex.ToString())); } }
public void CreateDataBinding(IClientRuleQueryBase clientRule, object dataSource) { DataSet dsData = dataSource as DataSet; if (_Chart == null) { _Chart = new ucChartControl(); ChartViewCfgInfo chartViewCfg; string viewType = string.Empty; var cfgs = clientRule.UIRuleXmlConfigInfo.GetDefaultChartViewCfg(); if (cfgs != null && cfgs.Count > 0) { chartViewCfg = cfgs[CHART_VIEW_CFG]; viewType = chartViewCfg.ViewType; _Chart.ArgumentType = chartViewCfg.ChartMapping.ArgumentType; _Chart.ChartMapping = chartViewCfg.ChartMapping; _Chart.SeriesColumn = chartViewCfg.ChartMapping.SeriesColumn; _Chart.Title = chartViewCfg.Title; _Chart.ViewType = chartViewCfg.ViewType; _Chart.XColumn = chartViewCfg.ChartMapping.XColumn; _Chart.YColumn = chartViewCfg.ChartMapping.YColumn; _Chart.Dock = DockStyle.Fill; this.panel.Controls.Add(_Chart); } else { throw new MB.Util.APPException("请检查是否在XML配置了节点 Entity/Charts/Chart"); } } _Chart.RefreshBindingData(dsData); }
/// <summary> /// 把汇总条件绑定到网格上,让用户能自由操作 /// 每次动态聚组窗口加载是调用 /// </summary> public void BindDynamicGroupColumnsToGrid() { //用到的全局变量 DynamicGroupCfgInfo dyConfigInfo = _DynamicCfgInfo; GridControlEx grid = _GirdControl; IClientRuleQueryBase clientRuleObject = _ClientRuleObject; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(DynamicGroupUIHelper.DYNAMIC_CONDITION_UI_XML_CONTENT); var cols = _UIXmlHelper.GetColumnPropertys(xmlDoc); var colEdits = _UIXmlHelper.GetColumnEdits(cols, xmlDoc); var gridViewLayoutInfo = _UIXmlHelper.GetGridColumnLayoutInfo(xmlDoc, string.Empty); #region 准备数据源 //先从缓存的地方恢复设置,如果没有 List <DynamicGroupUIColumns> columns = RestoreDynamicGroupSetting(); if (columns == null) { //从配置重初始化 columns = GetDynamicGroupColumnsFromConfig(); } BindingList <DynamicGroupUIColumns> bindingList = new BindingList <DynamicGroupUIColumns>(columns); bindingList.AllowNew = false; bindingList.AllowRemove = false; #endregion var detailBindingParams = new MB.XWinLib.GridDataBindingParam(grid, bindingList); MB.XWinLib.XtraGrid.XtraGridEditHelper gridEditHelper = MB.XWinLib.XtraGrid.XtraGridEditHelper.Instance; gridEditHelper.CreateEditXtraGrid(detailBindingParams, cols, colEdits, gridViewLayoutInfo); gridEditHelper.AppendEditSelectedColumn(grid, "选择", DynamicGroupUIHelper.DYMANIC_GROUP_COL_SELECTED); GridView mainView = grid.MainView as GridView; if (mainView != null) { mainView.OptionsView.NewItemRowPosition = NewItemRowPosition.None; mainView.OptionsSelection.MultiSelect = true; mainView.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.False; mainView.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.False; } #region 对聚合的字段加载样式,前景色蓝色 var aggTypeCol = mainView.Columns.ColumnByFieldName(DynamicGroupUIHelper.DYMANIC_GROUP_AGG_TYPE); if (aggTypeCol != null) { StyleFormatCondition formatCondition = new StyleFormatCondition( DevExpress.XtraGrid.FormatConditionEnum.NotEqual, aggTypeCol, "列类型", string.Empty, null, true); formatCondition.Appearance.ForeColor = Color.Blue; if (formatCondition != null) { mainView.FormatConditions.Add(formatCondition); } } #endregion }
public DataSet InvokeChartDataSource(string ruleName, string filterString) { string[] assembleName = ruleName.Split('~'); IClientRuleQueryBase clientRule = (IClientRuleQueryBase)MB.Util.DllFactory.Instance.LoadObject(assembleName[0], assembleName[1] + ".dll"); MB.Util.Model.QueryParameterInfo[] filterParams = MB.Util.Serializer.QueryParameterXmlSerializer.DefaultInstance.DeSerializer(filterString); return(clientRule.GetObjectAsDataSet(0, filterParams)); }
public FrmEditChart(string itemName, IClientRuleQueryBase clientRule, ChartTemplateInfo template, object dataSource) { InitializeComponent(); _ItemName = itemName; _ClientRule = clientRule; _DataSource = dataSource; _CurrentChartTemplate = template; }
private DynamicGroupCfgInfo _DynamicCfgInfo; //动态聚组的配置 #region 构造函数 /// <summary> /// 构造实例 /// </summary> /// <param name="clientRuleObject">客户端UI Rule</param> /// <param name="girdControl">用于显示的Grid Control</param> public DynamicGroupUIHelper(IClientRuleQueryBase clientRuleObject, MB.XWinLib.XtraGrid.GridControlEx girdControl) { _ClientRuleObject = clientRuleObject; _GirdControl = girdControl; _UIXmlHelper = LayoutXmlConfigHelper.Instance; _DynamicGroupConfigHelper = new DynamicGroupCfgHelper(_ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile); _DynamicCfgInfo = _DynamicGroupConfigHelper.LoadDynamicGroupCfg(_ClientRuleObject); }
public FrmTemplateManager(IClientRuleQueryBase clientRule, string gridName, TemplateLoadType templateType) { InitializeComponent(); _ClientRule = clientRule; _GridName = gridName; _TemplateType = templateType; setGridMenu(); }
/// <summary> /// 根据模板名称获取列配置信息 /// </summary> /// <param name="clientRuleObject"></param> /// <param name="templateName"></param> /// <returns></returns> public static List <DynamicColumnInfo> GetDynamicColumnByTemplateName(IClientRuleQueryBase clientRuleObject, string templateName) { try { string sectionName = clientRuleObject.GetType().FullName + " " + clientRuleObject.ClientLayoutAttribute.UIXmlConfigFile + " " + templateName + ".xml"; var dynamicColumn = new MB.Util.Serializer.DataContractFileSerializer <List <DynamicColumnInfo> >(GRID_FILE_PATH + sectionName); return(dynamicColumn.Read()); } catch (Exception ex) { throw new MB.Util.APPException(ex.Message, Util.APPMessageType.SysErrInfo); } }
/// <summary> /// 恢复汇总列的信息 /// </summary> public static List <DynamicGroupCondition> GetDynamicGroupSettingCondition(IClientRuleQueryBase clientRuleObject) { try { var settings = GetDynamicGroupSetting(clientRuleObject); if (settings != null) { return(ConvertDynamicGroupSettingToDataAreaConditions(settings)); } return(null); } catch (Exception ex) { throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "根据UI Rule获取动态聚组汇总条件出错"); } }
private object loadTemplateType() { string[] arrType = TemplateSource.Type.Split(new char[] { ',' }); string[] arrMethod = TemplateSource.Method.Split(new char[] { ',' }); string[] arrParams = null; if (arrMethod.Length > 1) { arrParams = arrMethod[1].Split(new char[] { ';' }); } IClientRuleQueryBase clientRule = (IClientRuleQueryBase)MB.Util.DllFactory.Instance.LoadObject(arrType[0], arrType[1]); var data = MyReflection.Instance.InvokeMethod(clientRule, arrMethod[0], arrParams); return(data); }
public static void InitChartControl(IClientRuleQueryBase clientRule, object datasource, ChartTemplateInfo template) { if (Instance.CurrentModuleBase != null) { ChartModuleBase chartModule = Instance.CurrentModuleBase.TModule as ChartModuleBase; if (chartModule != null) { chartModule.Template = template; chartModule.InitChartControl(clientRule); //绑定数据源 chartModule.BindingChartControl(datasource); } } }
private DataSet getRegionSource(InvokeDataSourceDescInfo invokeDataSourceDescInfo) { string[] arrType = invokeDataSourceDescInfo.Type.Split(new char[] { ',' }); string[] arrMethod = invokeDataSourceDescInfo.Method.Split(new char[] { ',' }); string[] arrParams = null; if (arrMethod.Length > 1) { arrParams = arrMethod[1].Split(new char[] { ';' }); } IClientRuleQueryBase clientRule = (IClientRuleQueryBase)MB.Util.DllFactory.Instance.LoadObject(arrType[0], arrType[1]); var data = MyReflection.Instance.InvokeMethod(clientRule, arrMethod[0], arrParams); DataSet ds = ((DataSet)data).Copy(); return(ds); }
/// <summary> /// 删除动态列设置信息 /// </summary> /// <param name="clientRuleObject"></param> /// <param name="templateName"></param> public static void DeleteDynamicColumnSetting(IClientRuleQueryBase clientRuleObject, string templateName) { try { string sectionName = clientRuleObject.GetType().FullName + " " + clientRuleObject.ClientLayoutAttribute.UIXmlConfigFile + " " + templateName + ".xml"; if (File.Exists(GRID_FILE_PATH + sectionName)) { File.Delete(GRID_FILE_PATH + sectionName); } } catch (Exception ex) { throw new MB.Util.APPException(ex.Message, Util.APPMessageType.SysErrInfo); } }
/// <summary> /// 清空汇总列的客户端缓存 /// </summary> public void ClearDynamicGroupSetting() { IClientRuleQueryBase clientRuleObject = _ClientRuleObject; try { string sectionName = getDynamicSettingSectionName(); string fullFileName = string.Format(DYNAMIC_GROUP_SETTING_FULLNAME, sectionName); if (File.Exists(fullFileName)) { File.Delete(fullFileName); } } catch (Exception ex) { throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "清空动态聚组设定失败"); } }
private void SetComBoxBinding(ComboBox combBox, InvokeDataSourceDescInfo invokeDataSourceDescInfo) { string[] arrType = invokeDataSourceDescInfo.Type.Split(new char[] { ',' }); string[] arrMethod = invokeDataSourceDescInfo.Method.Split(new char[] { ',' }); string[] arrParams = null; if (arrMethod.Length > 1) { arrParams = arrMethod[1].Split(new char[] { ';' }); } IClientRuleQueryBase clientRule = (IClientRuleQueryBase)MB.Util.DllFactory.Instance.LoadObject(arrType[0], arrType[1]); var data = MyReflection.Instance.InvokeMethod(clientRule, arrMethod[0], arrParams); DataSet ds = ((DataSet)data).Copy(); combBox.ValueMember = "CODE"; combBox.DisplayMember = "NAME"; combBox.DataSource = ds.Tables[0].DefaultView; }
/// <summary> /// 恢复汇总列的信息 /// </summary> public static DynamicGroupSetting GetDynamicGroupSetting(IClientRuleQueryBase clientRuleObject) { try { string sectionName = getDynamicSettingSectionName(clientRuleObject); string fullFileName = string.Format(DYNAMIC_GROUP_SETTING_FULLNAME, sectionName); if (File.Exists(fullFileName)) { var settings = new MB.Util.Serializer.DataContractFileSerializer <DynamicGroupSetting>(fullFileName).Read(); return(settings); } return(null); } catch (Exception ex) { throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "根据UI Rule获取动态聚组配置出错"); } }
public IList GetXtraGridDynamicColumns(IClientRuleQueryBase clientRuleObject) { try { var setting = GetXtraGridDynamicSettingInfo(clientRuleObject); if (setting == null) { return(null); } string templateName = setting.Name; return(DynamicColumnSettingHelper.GetDynamicColumnByTemplateName(clientRuleObject, templateName)); } catch (Exception ex) { MB.Util.TraceEx.Write(string.Format("动态列加载失败,错误信息为:{0}", ex.Message)); return(null); } }
private void resetDataAssistant(IClientRuleQueryBase clientQueryRule, ColumnEditCfgInfo columnEditCfgInfo, object currentEditObject, IInvokeDataAssistantHoster hoster, IGetObjectDataAssistant dataAssistant) { dataAssistant.HideFilterPane = columnEditCfgInfo.HideFilterPane; dataAssistant.FilterClientRule = clientQueryRule; dataAssistant.MultiSelect = columnEditCfgInfo.DefaultBatchAdd; dataAssistant.InvokeDataSourceDesc = columnEditCfgInfo.InvokeDataSourceDesc; dataAssistant.QueryObject = null; dataAssistant.ClumnEditCfgInfo = columnEditCfgInfo; dataAssistant.InvokeParentControl = this; dataAssistant.CurrentEditObject = currentEditObject; if (hoster != null) { dataAssistant.InvokeFilterParentFormHoster = hoster; } }
/// <summary> /// 恢复汇总列的信息 /// </summary> public List <DynamicGroupUIColumns> RestoreDynamicGroupSetting() { IClientRuleQueryBase clientRuleObject = _ClientRuleObject; try { string sectionName = getDynamicSettingSectionName(); string fullFileName = string.Format(DYNAMIC_GROUP_SETTING_FULLNAME, sectionName); if (File.Exists(fullFileName)) { var settings = new MB.Util.Serializer.DataContractFileSerializer <List <DynamicGroupUIColumns> >(fullFileName).Read(); return(settings); } return(null); } catch (Exception ex) { throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "恢复动态聚组设定失败"); } }
public GridDynamicColumnSettingInfo GetXtraGridDynamicSettingInfo(IClientRuleQueryBase clientRuleObject) { try { IList list = DynamicColumnSettingHelper.GetDynamicColumnSettings(clientRuleObject); if (list == null || list.Count == 0) { return(null); } List <GridDynamicColumnSettingInfo> settings = list as List <GridDynamicColumnSettingInfo>; var sort = settings.OrderByDescending(o => o.LastModifyDate).ToList(); return(sort[0]); } catch (Exception ex) { MB.Util.TraceEx.Write(string.Format("获取动态列设置模板信息失败,错误信息为:{0}", ex.Message)); return(null); } }
//创建查询过滤对象 private void createFilterObjectData() { System.Windows.Forms.Control parentHoster = MB.WinBase.ShareLib.Instance.GetInvokeDataHosterControl(this.Parent); if (parentHoster != null) { _FrmDataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, _ColumnEditCfgInfo, parentHoster); } else { MB.WinBase.IFace.IBaseDataBindingEdit editForm = getDirectnessBaseEdit(this) as MB.WinBase.IFace.IBaseDataBindingEdit; if (editForm == null) { editForm = this.ParentForm as MB.WinBase.IFace.IBaseDataBindingEdit; } object currentEditEntity = null; if (editForm != null) { currentEditEntity = editForm.CurrentEditEntity; } if (_ClientRule == null) { parentHoster = MB.WinBase.ShareLib.Instance.GetControlParentForm(this.Parent); IForm frm = parentHoster as IForm; if (frm != null) { _ClientRule = frm.ClientRuleObject; } } _FrmDataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, currentEditEntity, _ColumnEditCfgInfo, _ClientRule); } if (_FrmDataAssistant != null) { _FrmDataAssistant.MaxSelectRows = this._ColumnEditCfgInfo.MaxSelectRows; _FrmDataAssistant.MultiSelect = this.MultiSelect; _FrmDataAssistant.QueryObject = _QueryObject; _FrmDataAssistant.AfterGetObjectData += new MB.WinBase.IFace.GetObjectDataAssistantEventHandle(assistant_AfterGetObjectData); } }
/// <summary> /// 把动态列信息实现的列信息放入消息头 /// UIRule需要设定主键以保证主键列必需被加载,用于打开某一个记录时使用 /// </summary> /// <param name="clientRuleObject"></param> public void AppendQueryBehaviorColumns(IClientRuleQueryBase clientRuleObject) { try { if (clientRuleObject.ClientLayoutAttribute.LoadType == ClientDataLoadType.ReLoad) { IList list = GetXtraGridDynamicColumns(clientRuleObject); if (list != null && list.Count > 0) { string[] keys = clientRuleObject.ClientLayoutAttribute.EntityKeys; clientRuleObject.CurrentQueryBehavior.Columns = string.Join(",", keys); List <DynamicColumnInfo> colList = list as List <DynamicColumnInfo>; int colListLength = colList.Count; for (int i = 0; i < colListLength - 1; i++) { if (keys.Contains(colList[i].Name)) { colList.RemoveAt(i); } } string[] cols = (from a in colList select a.Name).ToArray(); clientRuleObject.CurrentQueryBehavior.Columns += "," + string.Join(",", cols); } else { clientRuleObject.CurrentQueryBehavior.Columns = string.Empty; } } } catch (Exception ex) { MB.Util.TraceEx.Write(string.Format("执行方法 AppendQueryBehaviorColumns 出错,添加动态列信息异常,错误信息为:{0}", ex.Message)); } }