示例#1
0
 private bool filterObjectsByInput(MB.Util.Model.QueryParameterInfo[] filterParameters)
 {
     if (createFilterObject())
     {
         int docType = _ClientQueryRule.MainDataTypeInDoc != null ? (int)_ClientQueryRule.MainDataTypeInDoc : 0;
         List <MB.Util.Model.QueryParameterInfo> filterParamaters = new List <MB.Util.Model.QueryParameterInfo>(filterParameters);
         var lstData = _FrmDataAssistant.GetFilterObjects(docType, filterParamaters);
         if (lstData != null && lstData.Count > 0)
         {
             if (lstData.Count == 1)
             {
                 return(setSelectValue(new object[] { lstData[0] }, true));
             }
             else
             {
                 _FrmDataAssistant.HideFilterPane = true;
                 _FrmDataAssistant.FilterParametersIfNoFiterPanel = filterParamaters;
                 (_FrmDataAssistant as Form).ShowDialog();
             }
         }
         else
         {
             if (_ColumnEditCfgInfo.ClickButtonShowForm != null &&
                 _ColumnEditCfgInfo.ClickButtonShowForm.ShowMessageOnValidated)
             {
                 throw new MB.Util.APPException("输入有误,请重新输入!", Util.APPMessageType.DisplayToUser);
             }
         }
     }
     return(false);
 }
        private bool filterObjectsByInput(bool isKeyDown)
        {
            try
            {
                if (!checkCanQueryData())
                {
                    return(false);
                }

                if (_FrmDataAssistant == null || _ColumnEditCfgInfo.NeedCreate)
                {
                    createFilterObjectData();
                }

                if (_ErrorProvider != null)
                {
                    _ErrorProvider.SetError(this, string.Empty);
                }

                int docType = 0;

                bool needValidation = true;//需要验证输入数据

                // 生成查询条件,默认为Equal,该查询仅仅用于验证
                List <MB.Util.Model.QueryParameterInfo> lst = new List <MB.Util.Model.QueryParameterInfo>();
                var queryPara = new QueryParameterInfo(_ColumnEditCfgInfo.TextFieldName, this.btnEdit.Text, DataFilterConditions.Equal);
                lst.Add(queryPara);

                // 在查询窗口或者获取对象助手窗口中,需要根据FilterElementInfo信息进一步处理
                if (this.ParentForm is IQueryFilterForm || this.ParentForm is IGetObjectDataAssistant)
                {
                    if (this.FilterElementInfo != null)
                    {
                        // 多选,进行验证
                        if ((this.FilterElementInfo.FilterCondition == Util.DataFilterConditions.In ||
                             this.FilterElementInfo.FilterCondition == Util.DataFilterConditions.Equal) &&
                            this.MultiSelect)
                        {
                            queryPara.Condition = Util.DataFilterConditions.In;
                        }
                        else if (this.FilterElementInfo.FilterCondition == Util.DataFilterConditions.BenginsWith ||
                                 this.FilterElementInfo.FilterCondition == Util.DataFilterConditions.EndsWith ||
                                 this.FilterElementInfo.FilterCondition == Util.DataFilterConditions.Like)
                        {
                            // 模糊查询,不进行验证
                            needValidation = false;
                        }
                    }
                }

                // 验证输入的值是否正确
                if (needValidation)
                {
                    var lstData = _FrmDataAssistant.GetFilterObjects(docType, lst);

                    if (lstData == null || lstData.Count == 0)
                    {
                        if (_ErrorProvider == null)
                        {
                            _ErrorProvider = new ErrorProvider();
                        }

                        if (isKeyDown)
                        {
                            _ErrorProvider.SetError(this, "当前输入不是合法的数据,请重新输入!");
                        }
                        else
                        {
                            btnEdit.Text = string.Empty;
                        }
                    }
                    else
                    {
                        setSelectValue(lstData, isKeyDown);

                        if (_ErrorProvider != null)
                        {
                            _ErrorProvider = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex);
                return(false);
            }
            return(true);
        }