/// <summary> /// 根据业务类获取对应的业务类属性配置信息。 /// </summary> /// <param name="clientRule">客户端业务</param> /// <returns>业务类的配置信息。</returns> public RuleClientLayoutAttribute GetClientRuleSettingAtt(MB.WinBase.IFace.IClientRuleConfig clientRule) { RuleClientLayoutAttribute att = Attribute.GetCustomAttribute(clientRule.GetType(), typeof(RuleClientLayoutAttribute)) as RuleClientLayoutAttribute; if (att == null) { return(null); } return(att); }
/// <summary> /// 单据操作状态改变记录跟踪。 /// </summary> /// <param name="clientRule"></param> public BusinessOperateTrace(MB.WinBase.IFace.IClientRuleConfig clientRule) { _ClientRule = clientRule; var att = MB.WinBase.Atts.AttributeConfigHelper.Instance.GetClientRuleSettingAtt(clientRule); _ContextMenuStrip = new ContextMenuStrip(); _MenuBinding = new Dictionary <GeneralOperateMenus, ToolStripMenuItem>(); _OperateTypes = new Dictionary <ToolStripMenuItem, MB.Util.Model.DocOperateType>(); createMenuItems(att.GeneralMenus); }
public UIRuleXmlConfigInfo(MB.WinBase.IFace.IClientRuleConfig clientRuleConfig) { _ClientRuleConfig = clientRuleConfig; }
/// <summary> /// 加载动态列的配置文件 /// </summary> /// <param name="ruleConfig"></param> /// <returns></returns> public DynamicGroupCfgInfo LoadDynamicGroupCfg(MB.WinBase.IFace.IClientRuleConfig ruleConfig) { RuleClientLayoutAttribute rAtt = ruleConfig.ClientLayoutAttribute; if (rAtt == null || !rAtt.IsDynamicGroupEnabled) { throw new MB.Util.APPException(string.Format("要使用动态聚组,必须配置RuleClientLayoutAttribute中的DynamicGroupXmlConfig属性。请检查:{0}是否已经配置!", ruleConfig.GetType().FullName)); } string xmlCfgFile = rAtt.UIXmlConfigFile; DynamicGroupCfgHelper cfgHelper = new DynamicGroupCfgHelper(xmlCfgFile); //将最终呈现聚组的列信息汇总到 聚组配置的列信息上 Dictionary <string, ColumnPropertyInfo> resultCols = cfgHelper.GetResultColPropertys(); DynamicGroupCfgInfo cfg = new DynamicGroupCfgInfo(); cfg.MainEntityColInfo = cfgHelper.GetColProInfos(true); cfg.DetailEntityColInfo = cfgHelper.GetColProInfos(false); cfg.MainEntityInfo = cfgHelper.GetEntityInfo(true); cfg.DetailEntityInfo = cfgHelper.GetEntityInfo(false); cfg.RelationInfo = cfgHelper.GetRelationInfo(); if (cfg.RelationInfo == null) { MB.Util.TraceEx.Write("[动态聚组配置]-由于RelationInfo的信息没有配置,DetailEntityInfo强制设置为空"); cfg.DetailEntityInfo = null; } #region 配置验证 if (cfg.MainEntityColInfo != null) { validateColInfo(cfg.MainEntityColInfo); } if (cfg.DetailEntityColInfo != null) { validateColInfo(cfg.DetailEntityColInfo); } if (cfg.RelationInfo != null) { foreach (DynamicGroupRelationInfo relationInfo in cfg.RelationInfo.Values) { if (string.IsNullOrEmpty(relationInfo.Column) || string.IsNullOrEmpty(relationInfo.WithColumn)) { throw new MB.Util.APPException("动态聚组配置Relation中的Column和WithColumn属性不能为空"); } } } if (cfg.MainEntityInfo != null) { if (string.IsNullOrEmpty(cfg.MainEntityInfo.Name)) { throw new MB.Util.APPException("动态聚组配置MainEntity中的Name属性不能为空"); } } if (cfg.DetailEntityInfo != null) { if (string.IsNullOrEmpty(cfg.DetailEntityInfo.Name)) { throw new MB.Util.APPException("动态聚组配置DetailEntity中的Name属性不能为空"); } } #endregion return(cfg); }