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); }
/// <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); } }
//创建查询过滤对象 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); } }