Beispiel #1
0
        /// <summary>
        /// 构造函数...
        /// </summary>
        /// <param name="buiObj"></param>
        /// <param name="xtraGrid"></param>
        /// <param name="importProvider"></param>
        /// <param name="ignoreObjectKey"></param>
        public ImportEngine(Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editColumns, DevExpress.XtraGrid.GridControl xtraGrid,
                            MB.WinEIDrive.Import.IImportProvider importProvider)
        {
            _EditColumns = editColumns;
            _LookUpData  = convertTableToHasTable(_EditColumns);

            _GridView = xtraGrid.DefaultView as DevExpress.XtraGrid.Views.Grid.GridView;
            if (_GridView == null)
            {
                throw new MB.Util.APPException("目前只支持对GridView 控件的导入处理。", MB.Util.APPMessageType.DisplayToUser);
            }

            _ImportProvider = importProvider;
            _ImportProvider.DataProgress += new MB.WinEIDrive.Import.ImportProgressEventHandler(_ImportProvider_DataProgress);

            MB.XWinLib.XtraGrid.GridControlEx gEx = xtraGrid as MB.XWinLib.XtraGrid.GridControlEx;
            if (gEx != null)
            {
                _DataIOControl = gEx.DataIOControl;
            }
            if (_DataIOControl == null)
            {
                _DataIOControl = new MB.XWinLib.XtraGrid.GridExDataIOControl(true);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 创建可编辑的卡片网格编辑控件。
        /// </summary>
        /// <param name="xtraGrid"></param>
        /// <param name="dataSource"></param>
        /// <param name="buiObj"></param>
        /// <param name="editCols"></param>
        /// <returns></returns>
        public bool CreateCardEdit(MB.XWinLib.XtraGrid.GridControlEx xtraGrid,
                                   object dataSource, MB.WinBase.IFace.IClientRule buiObj, Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols)
        {
            string viewTypeName = xtraGrid.MainView.GetType().Name;

            if (viewTypeName != "CardView")
            {
                xtraGrid.MainView = new DevExpress.XtraGrid.Views.Card.CardView();
            }
            editCardGrid(xtraGrid, dataSource, buiObj, editCols);
            return(true);
        }
Beispiel #3
0
        //卡片编辑
        private bool editCardGrid(MB.XWinLib.XtraGrid.GridControlEx xtraGCtl,
                                  object dataSource, MB.WinBase.IFace.IClientRule buiObj, Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols)
        {
            MB.WinBase.Atts.RuleClientLayoutAttribute layoutAtt = MB.WinBase.Atts.AttributeConfigHelper.Instance.GetClientRuleSettingAtt(buiObj);
            Dictionary <string, MB.WinBase.Common.ColumnPropertyInfo> colPropertys = MB.WinBase.LayoutXmlConfigHelper.Instance.GetColumnPropertys(layoutAtt.UIXmlConfigFile);

            MB.XWinLib.XtraGrid.XtraGridViewHelper.Instance.SetEditGridAutoInfo(xtraGCtl);

            DevExpress.XtraGrid.Views.Card.CardView cardView = xtraGCtl.MainView as DevExpress.XtraGrid.Views.Card.CardView;

            if (colPropertys == null || colPropertys.Count == 0)
            {
                throw new MB.Util.APPException(string.Format("业务对象 {0} 没有配置对应的XML文件Columns 信息。", layoutAtt.UIXmlConfigFile));
            }
            //	设置控件的显示样式
            XtraGridViewHelper.Instance.SetCardView(xtraGCtl);

            if (cardView.Columns.Count > 0)
            {
                cardView.Columns.Clear();
            }
            //根据业务处理对象得到对应的 UI 编辑设置信息。
            int i = 0;

            foreach (MB.WinBase.Common.ColumnPropertyInfo fInfo in colPropertys.Values)
            {
                DevExpress.XtraGrid.Columns.GridColumn bdc = new DevExpress.XtraGrid.Columns.GridColumn();
                //判断该列是否可以进行编辑
                DevExpress.XtraEditors.Repository.RepositoryItem rEdit = null;
                if (editCols != null && editCols.ContainsKey(fInfo.Name))
                {
                    rEdit = CreateEditItemByEditInfo(editCols[fInfo.Name], fInfo.CanEdit, fInfo.DataType);//根据用户XML配置的信息获取一个编辑的列。
                }
                else
                {
                    rEdit = CreateEditItemByCol(fInfo, true);
                }

                bdc.ColumnEdit = rEdit;
                xtraGCtl.RepositoryItems.Add(rEdit);

                SetEditColumn(bdc, fInfo, null);

                cardView.Columns.Add(bdc);
                i++;
            }
            xtraGCtl.DataSource = dataSource;
            return(true);
        }
Beispiel #4
0
        //绑定到GridView 数据源。
        private bool createGridView(DevExpress.XtraGrid.GridControl xtraGrid, object dataSource, Dictionary <string, MB.WinBase.Common.ColumnPropertyInfo> colPropertys,
                                    bool imageDockRow, Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols, MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo)
        {
            object pictureEdit;

            MB.XWinLib.XtraGrid.GridControlEx grdEx = xtraGrid as MB.XWinLib.XtraGrid.GridControlEx;
            if (grdEx != null)
            {
                grdEx.ShowOptionMenu = true;
                if (grdEx.ContextMenu == null)
                {
                    grdEx.ReSetContextMenu(XtraContextMenuType.SaveGridState | XtraContextMenuType.Export | XtraContextMenuType.ColumnsAllowSort | XtraContextMenuType.Copy | XtraContextMenuType.Chart);
                }
            }
            if (xtraGrid.RepositoryItems.Count > 0)
            {
                if (imageDockRow)
                {
                    pictureEdit = xtraGrid.RepositoryItems[0] as DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit;
                }
                else
                {
                    pictureEdit = xtraGrid.RepositoryItems[0] as DevExpress.XtraEditors.Repository.RepositoryItemImageEdit;
                }
            }
            else
            {
                if (imageDockRow)
                {
                    pictureEdit = new DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit();
                    (pictureEdit as DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit).SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom;
                }
                else
                {
                    pictureEdit = new DevExpress.XtraEditors.Repository.RepositoryItemImageEdit();
                }
                if (imageDockRow)
                {
                    xtraGrid.RepositoryItems.Add(pictureEdit as DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit);
                }
                else
                {
                    xtraGrid.RepositoryItems.Add(pictureEdit as DevExpress.XtraEditors.Repository.RepositoryItemImageEdit);
                }
            }
            DevExpress.XtraGrid.Views.Grid.GridView gridView = xtraGrid.MainView as DevExpress.XtraGrid.Views.Grid.GridView;

            XtraGridViewHelper.Instance.SetGridView(gridView, colPropertys);

            XtraGridViewHelper.Instance.CreateViewColumns(xtraGrid, dataSource, colPropertys, pictureEdit, editCols, gridViewLayoutInfo);


            //if (colPropertys != null) {
            //    XtraGridViewHelper.Instance.SetGroupSummary(gridView, colPropertys);
            //}

            //增加保存Grid UI 操作状态而增加的。
            XtraGridViewHelper.Instance.RestoreXtraGridState(xtraGrid);
            DataView dv = MB.Util.MyConvert.Instance.ToDataView(dataSource, null);

            if (dv != null)
            {
                xtraGrid.DataSource = dv;
            }
            else
            {
                xtraGrid.DataSource = dataSource;
            }
            return(true);
        }