Esempio n. 1
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
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
 /// <summary>
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 /// </summary>
 private void InitializeComponent()
 {
     this.gridControlEx1 = new Ultra.FASControls.GridControlEx();
     this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
     ((System.ComponentModel.ISupportInitialize)(this.pnlMain)).BeginInit();
     this.pnlMain.SuspendLayout();
     ((System.ComponentModel.ISupportInitialize)(this.pnlFill)).BeginInit();
     this.pnlFill.SuspendLayout();
     ((System.ComponentModel.ISupportInitialize)(this.pnlBottom)).BeginInit();
     this.pnlBottom.SuspendLayout();
     ((System.ComponentModel.ISupportInitialize)(this.gridControlEx1)).BeginInit();
     ((System.ComponentModel.ISupportInitialize)(this.gridView1)).BeginInit();
     this.SuspendLayout();
     //
     // pnlMain
     //
     this.pnlMain.Size = new System.Drawing.Size(704, 430);
     //
     // pnlFill
     //
     this.pnlFill.Controls.Add(this.gridControlEx1);
     this.pnlFill.Size = new System.Drawing.Size(704, 384);
     //
     // pnlBottom
     //
     this.pnlBottom.Location = new System.Drawing.Point(0, 384);
     this.pnlBottom.Size = new System.Drawing.Size(704, 46);
     //
     // gridControlEx1
     //
     this.gridControlEx1.ColorFieldName = null;
     this.gridControlEx1.Dock = System.Windows.Forms.DockStyle.Fill;
     this.gridControlEx1.Location = new System.Drawing.Point(2, 2);
     this.gridControlEx1.MainView = this.gridView1;
     this.gridControlEx1.Name = "gridControlEx1";
     this.gridControlEx1.ShowIndicator = true;
     this.gridControlEx1.ShowRowNumber = true;
     this.gridControlEx1.Size = new System.Drawing.Size(700, 380);
     this.gridControlEx1.TabIndex = 0;
     this.gridControlEx1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
     this.gridView1});
     //
     // gridView1
     //
     this.gridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(80)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
     this.gridView1.Appearance.FocusedRow.Options.UseBackColor = true;
     this.gridView1.Appearance.SelectedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(80)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
     this.gridView1.Appearance.SelectedRow.Options.UseBackColor = true;
     this.gridView1.GridControl = this.gridControlEx1;
     this.gridView1.Name = "gridView1";
     this.gridView1.OptionsBehavior.Editable = false;
     this.gridView1.OptionsView.ShowAutoFilterRow = true;
     this.gridView1.OptionsView.ShowGroupPanel = false;
     //
     // BasePopupView
     //
     this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     this.ClientSize = new System.Drawing.Size(704, 430);
     this.Name = "BasePopupView";
     this.Text = "BasePopupView";
     ((System.ComponentModel.ISupportInitialize)(this.pnlMain)).EndInit();
     this.pnlMain.ResumeLayout(false);
     ((System.ComponentModel.ISupportInitialize)(this.pnlFill)).EndInit();
     this.pnlFill.ResumeLayout(false);
     ((System.ComponentModel.ISupportInitialize)(this.pnlBottom)).EndInit();
     this.pnlBottom.ResumeLayout(false);
     ((System.ComponentModel.ISupportInitialize)(this.gridControlEx1)).EndInit();
     ((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit();
     this.ResumeLayout(false);
 }
Esempio n. 4
0
        /// <summary>
        /// 根据Grid得到动态聚组的最终结果,用来传递到服务端
        /// </summary>
        /// <param name="dyUIColumns">用来保存Grid的当前状态</param>
        /// <returns>动态聚组设定,用来传递到服务端的</returns>
        public MB.Util.Model.DynamicGroupSetting GetDynamicGroupSetting(ref List <DynamicGroupUIColumns> dyUIColumns)
        {
            //用到的全局变量
            DynamicGroupCfgInfo dyConfigInfo = _DynamicCfgInfo;
            GridControlEx       grid         = _GirdControl;

            DynamicGroupSetting setting = new DynamicGroupSetting();

            //设置实体
            setting.EntityInfos.MainEntity   = dyConfigInfo.MainEntityInfo;
            setting.EntityInfos.DetailEntity = dyConfigInfo.DetailEntityInfo;

            //设置关系
            if (_DynamicCfgInfo.RelationInfo != null)
            {
                setting.RelationInfos = _DynamicCfgInfo.RelationInfo.Values.ToList <DynamicGroupRelationInfo>();
            }

            BindingList <DynamicGroupUIColumns> uiColList = grid.DataSource as BindingList <DynamicGroupUIColumns>;

            foreach (DynamicGroupUIColumns column in uiColList)
            {
                dyUIColumns.Add(column);

                if (!column.SELECTED)
                {
                    continue;
                }

                string entityName = column.ENTITY_NAME;
                string colName    = column.COLUMN_NAME;
                if (string.IsNullOrEmpty(column.AGG_TYPE))
                {
                    //对分组列做处理
                    if (setting.GroupFields.ContainsKey(entityName))
                    {
                        setting.GroupFields[entityName].Add(colName);
                    }
                    else
                    {
                        var list = new List <string>();
                        list.Add(colName);
                        setting.GroupFields.Add(entityName, list);
                    }
                }
                else
                {
                    //对聚组列做处理
                    DataAreaField dataField = new DataAreaField();
                    dataField.Name            = colName;
                    dataField.Description     = column.COLUMN_DESCRIPTION;
                    dataField.SummaryItemType = (MB.Util.Model.SummaryItemType)Enum.Parse(typeof(MB.Util.Model.SummaryItemType), column.AGG_TYPE.ToString(), true);

                    if (string.Compare(dyConfigInfo.MainEntityInfo.Name, entityName) == 0)
                    {
                        dataField.DataType          = dyConfigInfo.MainEntityColInfo[colName].DataType;
                        dataField.EntityName        = entityName;
                        dataField.EntityDescription = dyConfigInfo.MainEntityInfo.Description;
                        if (!string.IsNullOrEmpty(column.AGG_CONDITION_OPERATOR) && !string.IsNullOrEmpty(column.AGG_VALUE))
                        {
                            dataField.ConditionOperator = (DynamicGroupConditionOperator)Enum.Parse(typeof(DynamicGroupConditionOperator), column.AGG_CONDITION_OPERATOR);
                            dataField.ConditionValue    = column.AGG_VALUE;
                        }
                    }
                    else
                    {
                        if (dyConfigInfo.DetailEntityInfo != null)
                        {
                            dataField.DataType          = dyConfigInfo.DetailEntityColInfo[colName].DataType;
                            dataField.EntityName        = entityName;
                            dataField.EntityDescription = dyConfigInfo.DetailEntityInfo.Description;
                            if (!string.IsNullOrEmpty(column.AGG_CONDITION_OPERATOR) && !string.IsNullOrEmpty(column.AGG_VALUE))
                            {
                                dataField.ConditionOperator = (DynamicGroupConditionOperator)Enum.Parse(typeof(DynamicGroupConditionOperator), column.AGG_CONDITION_OPERATOR);
                                dataField.ConditionValue    = column.AGG_VALUE;
                            }
                        }
                    }

                    if (setting.DataAreaFields.ContainsKey(entityName))
                    {
                        setting.DataAreaFields[entityName].Add(dataField);
                    }
                    else
                    {
                        var list = new List <DataAreaField>();
                        list.Add(dataField);
                        setting.DataAreaFields.Add(entityName, list);
                    }
                }
            }

            return(setting);
        }