Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public object Clone()
        {
            GridColumnLayoutInfo        clone       = base.MemberwiseClone() as GridColumnLayoutInfo;
            List <GridColumnLayoutInfo> cloneChilds = new List <GridColumnLayoutInfo>();

            foreach (var child in _Childs)
            {
                cloneChilds.Add((GridColumnLayoutInfo)child.Clone());
            }

            clone.Childs = cloneChilds;
            return(clone);
        }
Пример #2
0
        /// <summary>
        /// 通过XML布局的配置信息创建布局列.
        /// </summary>
        /// <param name="bandGridView"></param>
        /// <param name="gridBand"></param>
        /// <param name="colPropertys"></param>
        /// <param name="editCols"></param>
        /// <param name="gridViewLayoutInfo"></param>
        /// <param name="columnLayoutInfo"></param>
        public void CreateBandedGridViewColumns(DevExpress.XtraGrid.Views.BandedGrid.BandedGridView bandGridView,
                                                DevExpress.XtraGrid.Views.BandedGrid.GridBand gridBand,
                                                Dictionary <string, MB.WinBase.Common.ColumnPropertyInfo> colPropertys,
                                                Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols,
                                                MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo,
                                                MB.WinBase.Common.GridColumnLayoutInfo columnLayoutInfo)
        {
            if (string.Compare(columnLayoutInfo.Type, XtraGridViewHelper.BAND_TYPE_NAME, true) == 0)
            {
                createGridBand(bandGridView, gridBand, colPropertys, editCols, gridViewLayoutInfo, columnLayoutInfo);
            }
            else
            {
                DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn bColumn = new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn();

                if (!colPropertys.ContainsKey(columnLayoutInfo.ColumnXmlCfgName))
                {
                    return;
                }

                createBandColumn(bandGridView, gridBand, colPropertys, editCols, gridViewLayoutInfo, columnLayoutInfo, bColumn);
            }
        }
Пример #3
0
        /// <summary>
        /// 根据配置的XML文件设置列的信息。
        /// </summary>
        /// <param name="pColumn"></param>
        /// <param name="pFieldInfo"></param>
        public void SetEditColumn(DevExpress.XtraGrid.Columns.GridColumn gridColumn, MB.WinBase.Common.ColumnPropertyInfo columnPropertyInfo,
                                  MB.WinBase.Common.GridColumnLayoutInfo columnLayoutInfo,
                                  MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo)
        {
            gridColumn.Caption = columnPropertyInfo.Description;
            if (columnLayoutInfo != null)
            {
                gridColumn.FieldName = columnLayoutInfo.Name;
            }
            else
            {
                gridColumn.FieldName = columnPropertyInfo.Name;
            }

            gridColumn.Name  = "XtCol" + columnPropertyInfo.Name;
            gridColumn.Width = columnPropertyInfo.VisibleWidth;

            if (columnPropertyInfo.Visibled && columnPropertyInfo.VisibleWidth > 0)
            {
                gridColumn.VisibleIndex = columnPropertyInfo.OrderIndex;
            }
            else
            {
                gridColumn.VisibleIndex = -1;
            }
            if (columnPropertyInfo.DataType == "Systen.Byte[]")   //目前先假设System.Byte[] 类型都是 System.Image

            {
            }
            else
            {
                gridColumn.OptionsColumn.AllowSort = columnPropertyInfo.CanSort ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False;

                gridColumn.OptionsColumn.AllowGroup = columnPropertyInfo.CanGroup ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False;
            }
            if (gridViewLayoutInfo != null && gridViewLayoutInfo.ReadOnly)
            {
                XtraGridViewHelper.Instance.SetColumn(gridColumn, columnPropertyInfo, columnLayoutInfo.Name);
            }
            else
            {
                gridColumn.OptionsColumn.ReadOnly = !columnPropertyInfo.CanEdit;
                if (columnPropertyInfo.CanEdit)
                {
                    if (columnPropertyInfo.IsKey)
                    {
                        gridColumn.AppearanceHeader.Font      = new Font(gridColumn.AppearanceHeader.Font, System.Drawing.FontStyle.Bold);
                        gridColumn.AppearanceHeader.ForeColor = Color.Red;  //不可重复项目为红色而且是粗体。
                    }
                    else if (!columnPropertyInfo.IsNull)
                    {
                        gridColumn.AppearanceHeader.ForeColor = Color.Red;  //红色为必填项
                    }
                    else
                    {
                        gridColumn.AppearanceHeader.ForeColor = Color.Blue;  //蓝色为可编辑项
                    }
                }
                else
                {
                    //gridColumn.OptionsColumn.AllowFocus = true;
                    gridColumn.OptionsColumn.AllowEdit  = false;
                    gridColumn.AppearanceCell.Font      = new Font(gridColumn.AppearanceCell.Font, System.Drawing.FontStyle.Bold);
                    gridColumn.AppearanceCell.BackColor = Color.WhiteSmoke;
                }
            }
            if (columnLayoutInfo != null)
            {
                XtraGridViewHelper.Instance.SetColumnDisplayFormat(gridColumn, columnPropertyInfo, columnLayoutInfo);
            }
        }
Пример #4
0
 /// <summary>
 /// 根据配置的XML文件设置列的信息。
 /// </summary>
 /// <param name="gridColumn"></param>
 /// <param name="columnPropertyInfo"></param>
 /// <param name="columnLayoutInfo"></param>
 /// <param name="gridViewLayoutInfo"></param>
 public void SetEditColumn(DevExpress.XtraGrid.Columns.GridColumn gridColumn, MB.WinBase.Common.ColumnPropertyInfo columnPropertyInfo,
                           MB.WinBase.Common.GridColumnLayoutInfo columnLayoutInfo)
 {
     SetEditColumn(gridColumn, columnPropertyInfo, columnLayoutInfo, null);
 }
Пример #5
0
        //创建BandColumn
        private void createBandColumn(DevExpress.XtraGrid.Views.BandedGrid.BandedGridView bandGridView, DevExpress.XtraGrid.Views.BandedGrid.GridBand gridBand, Dictionary <string, MB.WinBase.Common.ColumnPropertyInfo> colPropertys, Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols, MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo, MB.WinBase.Common.GridColumnLayoutInfo columnLayoutInfo, DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn bColumn)
        {
            MB.WinBase.Common.ColumnPropertyInfo fInfo = colPropertys[columnLayoutInfo.ColumnXmlCfgName];
            //判断该列是否可以进行编辑
            DevExpress.XtraEditors.Repository.RepositoryItem rEdit = null;
            if (editCols != null && editCols.ContainsKey(columnLayoutInfo.ColumnXmlCfgName))
            {
                rEdit = CreateEditItemByEditInfo(editCols[columnLayoutInfo.ColumnXmlCfgName], fInfo.CanEdit, fInfo.DataType);//根据用户XML配置的信息获取一个编辑的列。
            }
            else
            {
                rEdit = CreateEditItemByCol(fInfo, false);
            }

            rEdit.Name         = fInfo.Name;
            bColumn.ColumnEdit = rEdit;
            bColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

            //  bColumn.DisplayFormat = new DevExpress.Utils.FormatInfo

            bandGridView.GridControl.RepositoryItems.Add(rEdit);

            //这句代码必须添加上,否则顺序的调整将会出现问题。
            bandGridView.Columns.Add(bColumn);
            if (gridBand != null)
            {
                gridBand.Columns.Add(bColumn);
            }

            SetEditColumn(bColumn, fInfo, columnLayoutInfo, gridViewLayoutInfo);
        }
Пример #6
0
        //创建网格的GridBand。
        private void createGridBand(DevExpress.XtraGrid.Views.BandedGrid.BandedGridView bandGridView,
                                    DevExpress.XtraGrid.Views.BandedGrid.GridBand gridBand,
                                    Dictionary <string, MB.WinBase.Common.ColumnPropertyInfo> colPropertys,
                                    Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols,
                                    MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo,
                                    MB.WinBase.Common.GridColumnLayoutInfo columnLayoutInfo)
        {
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bdc = new DevExpress.XtraGrid.Views.BandedGrid.GridBand();
            if (!string.IsNullOrEmpty(columnLayoutInfo.Name))
            {
                bdc.Name = columnLayoutInfo.Name;
            }

            if (gridBand == null)
            {
                bandGridView.Bands.Add(bdc);
            }
            else
            {
                gridBand.Children.Add(bdc);
            }

            bdc.Width   = columnLayoutInfo.VisibleWidth;
            bdc.Caption = columnLayoutInfo.Text;
            bdc.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            // bdc.Index  = columnLayoutInfo.Index;
            //背景颜色处理
            if (!string.IsNullOrEmpty(columnLayoutInfo.BackColor))
            {
                Color bc = MB.Util.MyConvert.Instance.ToColor(columnLayoutInfo.BackColor);
                if (bc != Color.Empty)
                {
                    bdc.AppearanceHeader.BackColor2 = bc;
                }
            }
            //字体颜色
            if (!string.IsNullOrEmpty(columnLayoutInfo.ForeColor))
            {
                Color fc = MB.Util.MyConvert.Instance.ToColor(columnLayoutInfo.ForeColor);
                if (fc != Color.Empty)
                {
                    bdc.AppearanceHeader.ForeColor = fc;
                }
            }
            //字体颜色
            if (columnLayoutInfo.ForeFontSize > 1)
            {
                bdc.AppearanceHeader.Font = new Font(bdc.AppearanceHeader.Font.FontFamily, columnLayoutInfo.ForeFontSize);
            }

            if (columnLayoutInfo.Childs != null && columnLayoutInfo.Childs.Count > 0)
            {
                {
                    foreach (var childLayoutInfo in columnLayoutInfo.Childs)
                    {
                        CreateBandedGridViewColumns(bandGridView, bdc, colPropertys, editCols, gridViewLayoutInfo, childLayoutInfo);
                    }
                }
            }
            if (columnLayoutInfo.Fixed != MB.WinBase.Common.FixedStyle.None)
            {
                if (columnLayoutInfo.Fixed == MB.WinBase.Common.FixedStyle.Left)
                {
                    bdc.Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left;
                }
                else
                {
                    bdc.Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Right;
                }
            }
        }
Пример #7
0
        /// <summary>
        /// 创建当前不带Childs 的副表。
        /// </summary>
        /// <returns></returns>
        public GridColumnLayoutInfo CloneWithoutChilds()
        {
            GridColumnLayoutInfo clone = base.MemberwiseClone() as GridColumnLayoutInfo;

            return(clone);
        }