Exemplo n.º 1
0
        /// <summary>
        /// 根据指定的模块命令参数 创建Win Form 窗口。
        /// </summary>
        /// <param name="clientRule">指定的客户端业务类,可以为空。</param>
        /// <param name="commandInfo">模块命令参数</param>
        /// <returns></returns>
        public MB.WinBase.IFace.IForm CreateWinForm(MB.WinBase.IFace.IClientRuleQueryBase clientRule, MB.Util.Model.ModuleCommandInfo commandInfo)
        {
            try {
                string[] clientRuleSetting = null;
                if (!string.IsNullOrEmpty(commandInfo.ClientRule))
                {
                    clientRuleSetting = commandInfo.ClientRule.Split(',');
                }
                string[] formSetting    = commandInfo.UIView.Split(',');
                object[] ruleCreatePars = null;
                object[] formCreatePars = null;
                if (!string.IsNullOrEmpty(commandInfo.RuleCreateParams))
                {
                    ruleCreatePars = commandInfo.RuleCreateParams.Split(',');
                }
                if (!string.IsNullOrEmpty(commandInfo.UICreateParams))
                {
                    formCreatePars = commandInfo.UICreateParams.Split(',');
                }

                MB.WinBase.IFace.IClientRuleQueryBase rule = clientRule;
                if (!string.IsNullOrEmpty(commandInfo.ClientRule))
                {
                    if (clientRule == null || string.Compare(clientRuleSetting[0], clientRule.GetType().FullName, true) != 0)
                    {
                        var temp = MB.Util.DllFactory.Instance.LoadObject(clientRuleSetting[0], ruleCreatePars, clientRuleSetting[1]);
                        rule = temp as MB.WinBase.IFace.IClientRuleQueryBase;
                    }
                    MB.Util.TraceEx.WriteIf(rule != null, string.Format("请检查数据库中该功能模块对应的客户端类{0} 是否设置出错!", commandInfo.ClientRule), MB.Util.APPMessageType.SysErrInfo);
                }
                MB.WinBase.IFace.IForm winForm = MB.Util.DllFactory.Instance.LoadObject(formSetting[0], formCreatePars, formSetting[1]) as MB.WinBase.IFace.IForm;
                MB.Util.TraceEx.WriteIf(winForm != null, string.Format("请检查数据库中该功能模块对应的显示窗口{0},是否设置出错!", commandInfo.UIView), MB.Util.APPMessageType.SysErrInfo);
                winForm.ClientRuleObject = rule;
                return(winForm);
            }
            catch (MB.Util.APPException aex) {
                throw aex;
            }
            catch (Exception ex) {
                throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, MB.Util.APPMessageType.SysErrInfo);
            }
        }
Exemplo n.º 2
0
        public void IniCreateFilterElements()
        {
            if (_ClientRuleObject != null)
            {
                SimpleDataFilterControlAttribute ctlAtt = MB.WinBase.Atts.AttributeConfigHelper.Instance.GetSimpleDataFilterControl(_ClientRuleObject.GetType());
                if (ctlAtt != null)
                {
                    _SimpleFilterControl = ctlAtt.FormControlType.Assembly.CreateInstance(ctlAtt.FormControlType.FullName, true) as Control;
                }
                if (_SimpleFilterControl == null)
                {
                    _SimpleFilterEdit    = new ucFilterCondition(_ViewGridForm, _ClientRuleObject, _DataFilterElementsName);
                    _SimpleFilterControl = _SimpleFilterEdit;
                }

                _FilterConditionCtl = _SimpleFilterControl as IFilterConditionCtl;
                if (_FilterConditionCtl == null)
                {
                    throw new MB.Util.APPException(string.Format("条件过滤窗口 {0} 未继承接口 IFilterConditionCtl ,请检查!", ctlAtt.FormControlType.FullName), APPMessageType.DisplayToUser);
                }

                panQuickFilter.Controls.Add(_SimpleFilterControl);
                _SimpleFilterControl.Dock = DockStyle.Fill;

                //panFilterTop.Height = 2;
                //panFilterTop.BorderStyle = BorderStyle.FixedSingle;
                // panBottom.BackColor = _SimpleFilterEdit.AllowEmptyFilter ? System.Drawing.Color.FromArgb(212, 228, 248) : Color.White;
                if (_FilterConditionCtl.AllowEmptyFilter)
                {
                    _ToolTip.SetToolTip(panBottom, "查询绿色通道,允许查询所有数据");
                }
            }
        }