예제 #1
0
        private bool  createFilterObject()
        {
            System.Windows.Forms.Control parentHoster = MB.WinBase.ShareLib.Instance.GetInvokeDataHosterControl(this.Parent);
            if (parentHoster != null)
            {
                // System.Windows.Forms.Form parentForm = MB.WinBase.ShareLib.Instance.GetControlParentForm(this.Parent);
                _FrmDataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, _ColumnEditCfgInfo, parentHoster, ref _ClientQueryRule);
            }
            else
            {
                Control ctl = this.Parent;
                DevExpress.XtraGrid.GridControl grdCtl = ctl as DevExpress.XtraGrid.GridControl;
                object mainEntity = null;
                if (grdCtl != null)
                {
                    DevExpress.XtraGrid.Views.Grid.GridView gridView = grdCtl.DefaultView as DevExpress.XtraGrid.Views.Grid.GridView;

                    mainEntity = gridView.GetRow(gridView.FocusedRowHandle);
                    if (mainEntity == null)
                    {
                        IBindingList bindingList = grdCtl.DataSource as IBindingList;
                        mainEntity       = bindingList.AddNew();
                        _AddedMainEntity = mainEntity;
                    }

                    //if (gridView.FocusedRowHandle < 0)
                    //{
                    //    //通过这种变态的方法自动增加一个空行,同时保证不重复增加
                    //    this.Text = "0";
                    //    this.Text = string.Empty;
                    //}
                    //mainEntity = gridView.GetFocusedRow();
                }

                parentHoster = MB.WinBase.ShareLib.Instance.GetControlParentForm(this.Parent);
                IForm frm = parentHoster as IForm;
                if (frm != null)
                {
                    _ClientQueryRule = frm.ClientRuleObject;

                    _FrmDataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, mainEntity, _ColumnEditCfgInfo, _ClientQueryRule);
                }
            }
            if (_FrmDataAssistant != null)
            {
                _FrmDataAssistant.MultiSelect         = false;
                _FrmDataAssistant.MaxSelectRows       = _ColumnEditCfgInfo.MaxSelectRows;
                _FrmDataAssistant.AfterGetObjectData += new MB.WinBase.IFace.GetObjectDataAssistantEventHandle(assistant_AfterGetObjectData);
            }
            return(_FrmDataAssistant != null);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="editForm"></param>
        /// <param name="editCols"></param>
        /// <param name="detailEntitys"></param>
        /// <param name="dataInDocType"></param>
        public void ShowBatchAppendDataToGrid()
        {
            if (_EditCols == null || _EditCols.Values.Count == 0)
            {
                return;
            }
            _ColumnEditCfgInfo = _EditCols.Values.FirstOrDefault(o => o.DefaultBatchAdd == true);
            if (_ColumnEditCfgInfo == null)
            {
                throw new MB.Util.APPException("在批量增加时,在对应的XML 配置文件中没发现配置DefaultBatchAdd 为True 的配置项!", MB.Util.APPMessageType.DisplayToUser);
            }

            System.Windows.Forms.Form       parentForm    = _EditForm as System.Windows.Forms.Form;
            System.Windows.Forms.Control    parentHoster  = MB.WinBase.ShareLib.Instance.GetInvokeDataHosterControl(parentForm);
            MB.WinBase.IFace.IDataAssistant dataAssistant = null;
            object mainEntity = null;

            if (parentHoster != null)
            {
                dataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, _ColumnEditCfgInfo, parentForm);
            }
            else
            {
                mainEntity = _DetailEntitys.AddNew();

                dataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, mainEntity, _ColumnEditCfgInfo, _EditForm.ClientRuleObject);
            }

            if (dataAssistant != null)
            {
                dataAssistant.MultiSelect         = true;
                dataAssistant.MaxSelectRows       = _ColumnEditCfgInfo.MaxSelectRows;
                dataAssistant.AfterGetObjectData += new GetObjectDataAssistantEventHandle(dataAssistant_AfterGetObjectData);
                (dataAssistant as System.Windows.Forms.Form).ShowDialog();
            }

            if (mainEntity != null)
            {
                bool exists = MB.WinBase.UIDataEditHelper.Instance.CheckExistsEntityState(mainEntity);
                if (exists)
                {
                    MB.WinBase.UIDataEditHelper.Instance.SetEntityState(mainEntity, Util.Model.EntityState.Deleted);
                }

                _DetailEntitys.Remove((T)mainEntity);
            }
        }
예제 #3
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);
            }
        }