Пример #1
0
        /// <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);
            }
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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;
 }
Пример #8
0
        /// <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, "保存动态聚组设定失败");
            }
        }
Пример #9
0
        /// <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()));
            }
        }
Пример #10
0
        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);
        }
Пример #11
0
        /// <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
        }
Пример #12
0
        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));
        }
Пример #13
0
        public FrmEditChart(string itemName, IClientRuleQueryBase clientRule, ChartTemplateInfo template, object dataSource)
        {
            InitializeComponent();

            _ItemName             = itemName;
            _ClientRule           = clientRule;
            _DataSource           = dataSource;
            _CurrentChartTemplate = template;
        }
Пример #14
0
        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);
        }
Пример #15
0
        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);
     }
 }
Пример #17
0
 /// <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获取动态聚组汇总条件出错");
     }
 }
Пример #18
0
        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);
        }
Пример #19
0
 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);
         }
     }
 }
Пример #20
0
        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);
     }
 }
Пример #22
0
        /// <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, "清空动态聚组设定失败");
            }
        }
Пример #23
0
        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;
        }
Пример #24
0
        /// <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获取动态聚组配置出错");
            }
        }
Пример #25
0
        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);
            }
        }
Пример #26
0
        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;
            }
        }
Пример #27
0
        /// <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, "恢复动态聚组设定失败");
            }
        }
Пример #28
0
        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);
            }
        }
Пример #29
0
        //创建查询过滤对象
        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);
            }
        }
Пример #30
0
        /// <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));
            }
        }