/// <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); } }
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, "查询绿色通道,允许查询所有数据"); } } }