Ejemplo n.º 1
0
        protected override void LoadObjectData(MB.Util.Model.QueryParameterInfo[] queryParams)
        {
            if (_ClientRuleObject == null)
            {
                throw new MB.Util.APPException("在加载浏览窗口<DefaultViewForm>时 需要配置对应的ClientRule 类!");
            }

            if (_ClientRuleObject.ClientLayoutAttribute == null)
            {
                throw new MB.Util.APPException(string.Format("对于客户段逻辑类 {0} ,需要配置 RuleClientLayoutAttribute.", _ClientRuleObject.GetType().FullName));
            }

            try {
                //添加右键菜单扩展  add by aifang 2012-07-19 begin
                if (_ClientRuleObject.ReSetContextMenu != null && _ClientRuleObject.ReSetContextMenu.MenuItems.Count > 0)
                {
                    grdCtlMain.ContextMenu = _ClientRuleObject.ReSetContextMenu;
                }
                //end

                gridViewMain.RowHeight = MB.WinBase.LayoutXmlConfigHelper.Instance.GetMainGridViewRowHeight(_ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile);
                using (MB.WinBase.WaitCursor cursor = new MB.WinBase.WaitCursor(this)) {
                    using (MB.Util.MethodTraceWithTime timeTrack = new  MethodTraceWithTime(null)) {
                        if (!tabCtlMain.SelectedTab.Equals(tPageDynamicGroup))
                        {
                            #region 非动态聚组下的查询

                            //特殊说明 2009-02-20 在这里需要增加 RefreshLookupDataSource 以便在加载数据ID 时能得到对应的描述信息。
                            int    rowCount         = 0;
                            int    dbRecordCount    = 0;
                            string messageHeaderKey = string.Empty;


                            //添加动态列消息头
                            XtraGridDynamicHelper.Instance.AppendQueryBehaviorColumns(_ClientRuleObject);

                            Dictionary <string, ColumnPropertyInfo> bindingPropertys = XtraGridDynamicHelper.Instance.GetDynamicColumns(_ClientRuleObject);

                            //加载额外的列,通过继承当前窗口有并重写方法LoadExtraColumns的方式去加载
                            Dictionary <string, ColumnPropertyInfo> extraColumns = LoadExtraColumns();
                            if (extraColumns != null && extraColumns.Count > 0)
                            {
                                foreach (KeyValuePair <string, ColumnPropertyInfo> extraCol in extraColumns)
                                {
                                    if (!bindingPropertys.ContainsKey(extraCol.Key))
                                    {
                                        bindingPropertys.Add(extraCol.Key, extraCol.Value);
                                    }
                                }
                            }

                            if (_ClientRuleObject.ClientLayoutAttribute.LoadType == ClientDataLoadType.ReLoad)
                            {
                                messageHeaderKey = _ClientRuleObject.ClientLayoutAttribute.MessageHeaderKey;
                            }

                            if (_ClientRuleObject.ClientLayoutAttribute.CommunicationDataType == CommunicationDataType.DataSet)
                            {
                                DataSet dsData = null;
                                try
                                {
                                    using (QueryBehaviorScope scope = new QueryBehaviorScope(_ClientRuleObject.CurrentQueryBehavior, messageHeaderKey))
                                    {
                                        //指定是否需要显示页数
                                        QueryBehaviorScope.CurQueryBehavior.IsTotalPageDisplayed = this.IsTotalPageDisplayed;

                                        dsData = _ClientRuleObject.GetObjectAsDataSet((int)_ClientRuleObject.MainDataTypeInDoc, queryParams);
                                        string queryRefreshTotalPage = getTotalPageAndCurrentpage(dsData.Tables[0].Rows.Count, out dbRecordCount);
                                        AppMessenger.DefaultMessenger.Publish(QUERY_REFRESH_TOTAL_PAGE_ID, queryRefreshTotalPage);

                                        #region 得到自定义网格页脚汇总列的信息
                                        if (dsData.Tables[0].Rows.Count > 0)
                                        {
                                            _CustomFootSummaryCols = getCustomSummaryColValues(queryParams);
                                        }
                                        #endregion
                                    }
                                }
                                catch (Exception ex)
                                {
                                    throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, " GetObjectAsDataSet 出错!");
                                }
                                rowCount = dsData.Tables[0].Rows.Count;
                                MB.XWinLib.XtraGrid.XtraGridHelper.Instance.BindingToXtraGrid(grdCtlMain, dsData, bindingPropertys,
                                                                                              _ClientRuleObject.UIRuleXmlConfigInfo.ColumnsCfgEdit, _ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile, true);
                            }
                            else
                            {
                                IList lstDatas = null;
                                try
                                {
                                    MB.WinBase.InvokeMethodWithWaitCursor.InvokeWithWait(() =>
                                    {
                                        using (QueryBehaviorScope scope = new QueryBehaviorScope(_ClientRuleObject.CurrentQueryBehavior, messageHeaderKey))
                                        {
                                            //指定是否需要显示页数
                                            QueryBehaviorScope.CurQueryBehavior.IsTotalPageDisplayed = this.IsTotalPageDisplayed;

                                            lstDatas = _ClientRuleObject.GetObjects((int)_ClientRuleObject.MainDataTypeInDoc, queryParams);

                                            string queryRefreshTotalPage = getTotalPageAndCurrentpage(lstDatas.Count, out dbRecordCount);
                                            AppMessenger.DefaultMessenger.Publish(QUERY_REFRESH_TOTAL_PAGE_ID, queryRefreshTotalPage);
                                            #region 得到自定义网格页脚汇总列的信息
                                            if (lstDatas.Count > 0)
                                            {
                                                _CustomFootSummaryCols = getCustomSummaryColValues(queryParams);
                                            }
                                            #endregion
                                        }
                                    });
                                }
                                catch (Exception ex)
                                {
                                    throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, " GetObjects 出错!");
                                }
                                rowCount = lstDatas.Count;

                                if (_BindingSource == null || _IsReloadData)
                                {
                                    IBindingList bl = _ClientRuleObject.CreateMainBindList(lstDatas);
                                    _BindingSource            = new MB.WinBase.Binding.BindingSourceEx();
                                    _BindingSource.DataSource = bl;

                                    MB.XWinLib.XtraGrid.XtraGridHelper.Instance.BindingToXtraGrid(grdCtlMain, _BindingSource, bindingPropertys,
                                                                                                  _ClientRuleObject.UIRuleXmlConfigInfo.ColumnsCfgEdit, _ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile, true);
                                    //每次重新加载完以后,清空动态列的条件,比避免重复加载
                                    this._IsReloadData = false;
                                }
                                else
                                {
                                    MB.XWinLib.XtraGrid.XtraGridHelper.Instance.RefreshDataGrid(grdCtlMain, lstDatas);
                                }
                            }

                            _ClientRuleObject.BindingSource = _BindingSource;

                            var msg = string.Format("查询花费:{0} 毫秒,返回 {1} 记录,查询时间:{2}", timeTrack.GetExecutedTimes(), rowCount, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                            AppMessenger.DefaultMessenger.Publish(QUERY_REFRESH_MSG_ID, msg);
                            validatedPageControl(rowCount, dbRecordCount);

                            #endregion
                        }
                        else
                        {
                            var dynamicGroupSetting = _DynamicGroupSettings;
                            if (dynamicGroupSetting == null)
                            {
                                throw new APPException("动态聚组查询,聚组条件不能为空");
                            }
                            DataSet ds = _ClientRuleObject.GetDynamicGroupQueryData(dynamicGroupSetting, queryParams);
                            ucDynamicGroupResultInQuery.BindDynamicResultQueryResult(ds, _ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile);
                        }
                    }
                }
            }
            catch (MB.Util.APPException aex) {
                throw aex;
            }
            catch (Exception ex) {
                throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "在浏览窗口Form_Load 时出错!");
            }

            if ((_ClientRuleObject.ClientLayoutAttribute.DataViewStyle & DataViewStyle.Multi) == 0)
            {
                tabCtlMain.TabPages.Remove(tPageMultiView);
            }
        }
Ejemplo n.º 2
0
        private DataSet getDataObjects(DoWorkEventArgs e)
        {
            MemoryStream stream = new MemoryStream();
            int          count  = 0;

            _WorkThread.ReportProgress(0, LoadDataProcessState.BeginInvoke);

            //添加动态列消息头
            XtraGridDynamicHelper.Instance.AppendQueryBehaviorColumns(_AsynQueryRule);

            try {
                //添加动态列消息头信息
                string messageHeaderKey = string.Empty;
                if (_AsynQueryRule.ClientLayoutAttribute.LoadType == ClientDataLoadType.ReLoad)
                {
                    messageHeaderKey = _AsynQueryRule.ClientLayoutAttribute.MessageHeaderKey;
                }
                using (QueryBehaviorScope scope = new QueryBehaviorScope(_AsynQueryRule.CurrentQueryBehavior, messageHeaderKey))
                {
                    QueryBehaviorScope.CurQueryBehavior.IsTotalPageDisplayed = _IsTotalPageDisplayed;
                    QueryBehaviorScope.CurQueryBehavior.IsQueryAll           = _IsQueryAll;
                    _AsynQueryRule.BeginRunWorker(e.Argument as MB.Util.Model.QueryParameterInfo[]);
                    if (QueryBehaviorScope.ResponseInfo != null)
                    {
                        _TotalRecordCount = QueryBehaviorScope.ResponseInfo.TotalRecordCount;
                    }
                }
            }
            catch (Exception ex) {
                //  System.Threading.Thread.Sleep(100);
                throw new MB.Util.APPException("数据库初始化查询条件出错,可能超时引起,请尽可能输入过滤条件以免引起大量数据 (关闭连接通道 可能需要一会时间,请耐心等待)", MB.Util.APPMessageType.DisplayToUser, ex);
            }



            count = _AsynQueryRule.GetBufferCount();

            if (count == 0)
            {
                return(null);
            }

            _WorkThread.ReportProgress(count, LoadDataProcessState.HasCount);

            IAsyncResult[] res = new IAsyncResult[count];
            for (int i = 0; i < count; i++)
            {
                if (e.Cancel)
                {
                    return(null);
                }

                res[i] = _AsynQueryRule.BeginGetBufferByIndex(i, null, i);
            }
            for (int i = 0; i < count; i++)
            {
                if (e.Cancel)
                {
                    return(null);
                }

                if (res[i].IsCompleted)
                {
                    byte[] bts = _AsynQueryRule.EndGetBufferByIndex(res[i]);
                    _DataList.Add(i, bts);

                    _WorkThread.ReportProgress(i, LoadDataProcessState.HasSingleData);
                }
                else
                {
                    System.Threading.Thread.Sleep(100);
                    //通过这种变态的方式 等待直到接收到数据为止。
                    i--;
                }
            }

            _WorkThread.ReportProgress(0, LoadDataProcessState.BeginUnZip);

            byte[] buffer;
            for (int i = 0; i < count; i++)
            {
                if (e.Cancel)
                {
                    return(null);
                }

                stream.Write(_DataList[i], 0, _DataList[i].Length);
            }

            stream.Position = 0;
            buffer          = new byte[stream.Length];
            stream.Read(buffer, 0, buffer.Length);
            stream.Close();
            //解压压缩流 edit by cdc 2011-01-04 由于统一在通道上进行解压缩处理,这里不需要
            byte[] bytes = buffer;// MB.Util.Compression.Instance.UnZip(buffer);// Compression(buffer, CompressionMode.Decompress);

            _WorkThread.ReportProgress(0, LoadDataProcessState.BeginDeserialize);

            stream = new MemoryStream(bytes);
            IFormatter formatter = new BinaryFormatter();
            //反序列化
            DataSet ds = (DataSet)formatter.Deserialize(stream);

            stream.Close();
            return(ds);
        }
        private void queryFilterData()
        {
            try
            {
                ucFilterCondition filterCtl = _StepShowControlPane[PaneViewType.FilterPane] as ucFilterCondition;
                MB.Util.Model.QueryParameterInfo[] filters = filterCtl.GetQueryParameters();

                List <QueryParameterInfo> tempFilters = new List <QueryParameterInfo>(filters);

                //判断如果是自定义的条件,在查询的时候,需要再加上这个条件
                if (_FilterParametersIfNoFiterPanel != null && _FilterParametersIfNoFiterPanel.Count > 0)
                {
                    tempFilters.AddRange(_FilterParametersIfNoFiterPanel);
                    filters = tempFilters.ToArray();
                }


                if (filters == null || filters.Length == 0)
                {
                    if (!filterCtl.AllowEmptyFilter)
                    {
                        MB.WinBase.MessageBoxEx.Show("请至少输入一个数据过滤的条件!");
                        return;
                    }
                    else
                    {
                        MB.Util.Model.QueryParameterInfo allFilter = new MB.Util.Model.QueryParameterInfo("0", "0", MB.Util.DataFilterConditions.Special);
                        filters = new MB.Util.Model.QueryParameterInfo[] { allFilter };
                    }
                }
                //modify by aifang 2012-04-17 支持树型控件数据助手选择
                //ucDataCheckListView listView = _StepShowControlPane[PaneViewType.DataSelect] as ucDataCheckListView;
                IDataAssistantListControl listView = _StepShowControlPane[PaneViewType.DataSelect] as IDataAssistantListControl;
                //modify by aifang 2012-04-17 支持树型控件数据助手选择

                listView.MultiSelect       = _MultiSelect;
                listView.ColumnEditCfgInfo = _ClumnEditCfgInfo;
                lnkChecked.Visible         = _MultiSelect;

                using (MB.WinBase.WaitCursor cursor = new MB.WinBase.WaitCursor(this))
                {
                    int mainType = 0;
                    if (_ClientRule.MainDataTypeInDoc != null)
                    {
                        mainType = (int)_ClientRule.MainDataTypeInDoc;
                    }

                    //获得动态列的MessageKey
                    string messageHeaderKey = string.Empty;
                    if (_ClientRule.ClientLayoutAttribute.LoadType == ClientDataLoadType.ReLoad)
                    {
                        messageHeaderKey = _ClientRule.ClientLayoutAttribute.MessageHeaderKey;
                    }

                    //添加动态列消息头
                    MB.XWinLib.XtraGrid.XtraGridDynamicHelper.Instance.AppendQueryBehaviorColumns(_ClientRule);

                    using (QueryBehaviorScope scope = new QueryBehaviorScope(_ClientRule.CurrentQueryBehavior, messageHeaderKey))
                    {
                        var lstDatas = this.GetFilterObjects(mainType, new List <MB.Util.Model.QueryParameterInfo>(filters));
                        if (lstDatas != null && lstDatas.Count > 0)
                        {
                            listView.SetDataSource(_ClientRule, lstDatas);
                            _StepShowControlPane[PaneViewType.DataSelect].BringToFront();
                            validateButton(PaneViewType.DataSelect);
                            validatedPageControl((lstDatas as IList).Count);
                        }
                        else
                        {
                            MB.WinBase.MessageBoxEx.Show("根据该条件查找不到数据,请重试!");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex);
            }
        }
Ejemplo n.º 4
0
        protected override void LoadObjectData(MB.Util.Model.QueryParameterInfo[] queryParams)
        {
            if (_ClientRuleObject == null)
            {
                throw new MB.Util.APPException("在加载浏览窗口<DefaultViewForm>时 需要配置对应的ClientRule 类!");
            }

            if (_ClientRuleObject.ClientLayoutAttribute == null)
            {
                throw new MB.Util.APPException(string.Format("对于客户段逻辑类 {0} ,需要配置 RuleClientLayoutAttribute.", _ClientRuleObject.GetType().FullName));
            }



            try {
                //添加右键菜单扩展
                if (_ClientRuleObject.ReSetContextMenu != null)
                {
                    grdCtlMain.ContextMenu = _ClientRuleObject.ReSetContextMenu;
                    //else {
                    //    grdCtlMain.ContextMenu.MenuItems.Add(new MenuItem("-"));
                    //    foreach (MenuItem item in _ClientRuleObject.ReSetContextMenu.MenuItems) {
                    //        grdCtlMain.ContextMenu.MenuItems.Add(item);
                    //    }
                    //}
                }

                string messageHeaderKey = string.Empty;

                if (_ClientRuleObject.ClientLayoutAttribute.LoadType == ClientDataLoadType.ReLoad)
                {
                    messageHeaderKey = _ClientRuleObject.ClientLayoutAttribute.MessageHeaderKey;
                }


                gridViewMain.RowHeight = MB.WinBase.LayoutXmlConfigHelper.Instance.GetMainGridViewRowHeight(_ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile);
                using (MB.WinBase.WaitCursor cursor = new MB.WinBase.WaitCursor(this)) {
                    using (MethodTraceWithTime timeTrack = new MethodTraceWithTime(null)) {
                        //特殊说明 2009-02-20 在这里需要增加 RefreshLookupDataSource 以便在加载数据ID 时能得到对应的描述信息。
                        if (_ClientRuleObject.ClientLayoutAttribute.CommunicationDataType == CommunicationDataType.DataSet)
                        {
                            throw new MB.Util.APPException("当前不支持基于DataSet 的网格编辑", MB.Util.APPMessageType.SysErrInfo);
                        }
                        else
                        {
                            IList lstDatas = null;
                            try {
                                using (QueryBehaviorScope scope = new QueryBehaviorScope(_ClientRuleObject.CurrentQueryBehavior, messageHeaderKey)) {
                                    lstDatas = _ClientRuleObject.GetObjects((int)_ClientRuleObject.MainDataTypeInDoc, queryParams);
                                }
                            }
                            catch (Exception ex) {
                                throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, " 在加载编辑网格窗口获取数据时执行业务类的 GetObjects 出错");
                            }

                            //IGridViewEditRule gridViewEditRule = _ClientRuleObject as IGridViewEditRule;
                            //if (gridViewEditRule == null)
                            //    throw new MB.Util.APPException("所有基于Mid 子窗口网格编辑的业务类必须实现IGridViewEditRule 接口", MB.Util.APPMessageType.SysErrInfo);

                            if (_BindingSource == null)
                            {
                                IBindingList bl = _ClientRuleObject.CreateMainBindList(lstDatas);
                                _BindingSource              = new MB.WinBase.Binding.BindingSourceEx();
                                _BindingSource.ListChanged += new ListChangedEventHandler(_BindingSource_ListChanged);
                                _BindingSource.AddingNew   += new AddingNewEventHandler(_BindingSource_AddingNew);
                                _BindingSource.DataSource   = bl;

                                MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo = MB.WinBase.LayoutXmlConfigHelper.Instance.GetGridColumnLayoutInfo(_ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile, string.Empty);
                                var detailBindingParams = new MB.XWinLib.GridDataBindingParam(grdCtlMain, _BindingSource, false);
                                MB.XWinLib.XtraGrid.XtraGridEditHelper.Instance.CreateEditXtraGrid(detailBindingParams, _ClientRuleObject.UIRuleXmlConfigInfo.GetDefaultColumns(), _ClientRuleObject.UIRuleXmlConfigInfo.ColumnsCfgEdit, gridViewLayoutInfo);
                            }
                            else
                            {
                                MB.XWinLib.XtraGrid.XtraGridHelper.Instance.RefreshDataGrid(grdCtlMain, lstDatas);
                            }
                            #region 刷新status strip

                            int    rowCount = (lstDatas == null ? 0 : lstDatas.Count);
                            var    msg      = string.Format("查询花费:{0} 毫秒,返回 {1} 记录,查询时间:{2}", timeTrack.GetExecutedTimes(), rowCount, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                            string totalPageandCurrentPage = GetTotalPageAndCurrentpage(rowCount);

                            //刷新查询消息
                            labTitleMsg.Text = msg;

                            //刷新上一页/下一页
                            lnkNextPage.Enabled     = rowCount >= _ClientRuleObject.CurrentQueryBehavior.PageSize;
                            lnkPreviousPage.Enabled = _ClientRuleObject.CurrentQueryBehavior.PageIndex > 0;

                            //刷新总页数
                            labTotalPageNumber.Visible   = IsTotalPageDisplayed;
                            labCurrentPageNumber.Visible = IsTotalPageDisplayed;
                            if (this.IsTotalPageDisplayed)
                            {
                                string[] totalPage_currentPage = totalPageandCurrentPage.Split(',');
                                labTotalPageNumber.Text   = string.Format("共{0}页", totalPage_currentPage[0]);
                                labCurrentPageNumber.Text = string.Format("第{0}页", totalPage_currentPage[1]);
                            }


                            #endregion
                            _ClientRuleObject.BindingSource = _BindingSource;
                        }
                        panTitle.Visible = false;
                    }
                }

                //在GRIDVIEW创建完成以后
                //根据UI RULE来判断GRID的编辑状态,是否允许新增,修改,删除
                DevExpress.XtraGrid.Views.Grid.GridView mainView = grdCtlMain.MainView as DevExpress.XtraGrid.Views.Grid.GridView;
                if (_ClientRuleObject != null)
                {
                    var rejectCfg = MB.WinBase.Atts.AttributeConfigHelper.Instance.GetModuleRejectCommands(_ClientRuleObject.GetType());
                    if (rejectCfg != null)
                    {
                        if ((rejectCfg.RejectCommands & UICommandType.AddNew) != 0)
                        {
                            mainView.OptionsBehavior.AllowAddRows   = DevExpress.Utils.DefaultBoolean.False;
                            mainView.OptionsView.NewItemRowPosition = DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.None;
                        }
                        else
                        {
                            mainView.OptionsBehavior.AllowAddRows   = DevExpress.Utils.DefaultBoolean.True;
                            mainView.OptionsView.NewItemRowPosition = DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.Bottom;
                        }

                        if ((rejectCfg.RejectCommands & UICommandType.Edit) != 0)
                        {
                            mainView.OptionsBehavior.ReadOnly = true;
                            mainView.OptionsBehavior.Editable = false;
                        }
                        else
                        {
                            mainView.OptionsBehavior.ReadOnly = false;
                            mainView.OptionsBehavior.Editable = true;
                        }

                        if ((rejectCfg.RejectCommands & UICommandType.Delete) != 0)
                        {
                            mainView.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.False;
                        }
                        else
                        {
                            mainView.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.True;
                        }
                    }
                }
            }
            catch (MB.Util.APPException aex) {
                throw aex;
            }
            catch (Exception ex) {
                throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "加载网格浏览编辑窗口Form_Load 时出错");
            }
        }
        void FrmGetObjectDataAssistant_Load(object sender, EventArgs e)
        {
            if (MB.Util.General.IsInDesignMode())
            {
                return;
            }

            if (_ClientRule == null)
            {
                string[] tps = this.InvokeDataSourceDesc.Type.Split(',');
                if (string.IsNullOrEmpty(this.InvokeDataSourceDesc.TypeConstructParams))
                {
                    _ClientRule = MB.Util.DllFactory.Instance.LoadObject(tps[0], tps[1]) as MB.WinBase.IFace.IClientRuleQueryBase;
                }
                else
                {
                    var conPars = this.InvokeDataSourceDesc.TypeConstructParams.Split(',');
                    _ClientRule = MB.Util.DllFactory.Instance.LoadObject(tps[0], conPars, tps[1]) as MB.WinBase.IFace.IClientRuleQueryBase;
                }
            }
            if (_ClientRule == null)
            {
                throw new MB.Util.APPException("没有得到客户端业务控制类!", MB.Util.APPMessageType.SysErrInfo);
            }

            //增加分页  add by aifang 2012-07-26 begin
            MB.WinBase.AppMessenger.DefaultMessenger.Subscribe <string>(QUERY_REFRESH_MSG_ID, o =>
            {
                labTitleMsg.Text = o;
            });
            if (_QueryObject == null && pnlQry.Visible)
            {
                lnkNextPage.Click     += new EventHandler(lnkNextPage_Click);
                lnkPreviousPage.Click += new EventHandler(lnkPreviousPage_Click);

                lnkPreviousPage.Enabled = false;
                lnkNextPage.Enabled     = false;
            }
            //增加分页  add by aifang 2012-07-26 end

            if (_StepShowControlPane == null)
            {
                _StepShowControlPane = new Dictionary <PaneViewType, Control>();
                _StepShowControlPane.Add(PaneViewType.FilterPane, CreateFilterControl(_ClientRule, ClumnEditCfgInfo.FilterCfgName));

                ITreeListViewHoster treeViewRule = _ClientRule as ITreeListViewHoster;
                if (treeViewRule == null)
                {
                    _ListView = new ucDataCheckListView();
                }
                else
                {
                    _ListView = new ucDataTreeListView();
                }

                _ListView.AfterSelectData += new GetObjectDataAssistantEventHandle(listView_AfterSelectData);
                _StepShowControlPane.Add(PaneViewType.DataSelect, _ListView as Control);

                foreach (Control ctl in _StepShowControlPane.Values)
                {
                    ctl.Dock = DockStyle.Fill;
                    panMain.Controls.Add(ctl);
                }
            }

            if (_HideFilterPane)
            {
                _StepShowControlPane[PaneViewType.DataSelect].BringToFront();
                _ListView.MultiSelect       = _MultiSelect;
                _ListView.ColumnEditCfgInfo = _ClumnEditCfgInfo;
                lnkChecked.Visible          = _MultiSelect;

                try
                {
                    //获得动态列的MessageKey
                    string messageHeaderKey = string.Empty;
                    if (_ClientRule.ClientLayoutAttribute.LoadType == ClientDataLoadType.ReLoad)
                    {
                        messageHeaderKey = _ClientRule.ClientLayoutAttribute.MessageHeaderKey;
                    }

                    //添加动态列消息头
                    MB.XWinLib.XtraGrid.XtraGridDynamicHelper.Instance.AppendQueryBehaviorColumns(_ClientRule);
                    //增加分页信息
                    if (_MAX_SHOW_ROWS <= 0)
                    {
                        _MAX_SHOW_ROWS = MB.Util.MyConvert.Instance.ToInt(nubMaxShotCount.Value);
                    }
                    _ClientRule.CurrentQueryBehavior.PageSize  = _MAX_SHOW_ROWS;
                    _ClientRule.CurrentQueryBehavior.PageIndex = 0;

                    using (QueryBehaviorScope scope = new QueryBehaviorScope(_ClientRule.CurrentQueryBehavior, messageHeaderKey))
                    {
                        List <MB.Util.Model.QueryParameterInfo> filterParas;
                        if (_FilterParametersIfNoFiterPanel != null)
                        {
                            filterParas = _FilterParametersIfNoFiterPanel;
                        }
                        else
                        {
                            filterParas = new List <MB.Util.Model.QueryParameterInfo>();
                        }

                        var lstDatas = this.GetFilterObjects(0, filterParas);
                        _ListView.SetDataSource(_ClientRule, lstDatas);

                        validateButton(PaneViewType.DataSelect);
                        butNext.Enabled      = false;
                        butPreviouss.Enabled = false;
                        validatedPageControl((lstDatas as IList).Count);
                    }
                }
                catch (Exception ex)
                {
                    MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex);
                }
            }
            else
            {
                _StepShowControlPane[PaneViewType.FilterPane].BringToFront();
                validateButton(PaneViewType.FilterPane);
            }
            ucFilterCondition filterCtl = _StepShowControlPane[PaneViewType.FilterPane] as ucFilterCondition;

            if (filterCtl != null)
            {
                //panBottom.BackColor = filterCtl.AllowEmptyFilter ? System.Drawing.Color.FromArgb(212, 228, 248) : Color.White;
                if (filterCtl.AllowEmptyFilter)
                {
                    _ToolTip.SetToolTip(panBottom, "查询绿色通道,允许查询所有数据");
                }
            }
        }