/// <summary> /// 加载系统的公式信息 /// </summary> /// <param name="catalogs">int类型以逗号分隔的字符串</param> public static void LoadFuncs(string catalogs) { if (string.IsNullOrEmpty(catalogs)) { return; } string[] catalog = catalogs.Split(new char[] { ',' }); StringBuilder sb = new StringBuilder(); foreach (var item in catalog) { string value = FuncCache.GetCatalog(item); if (string.IsNullOrEmpty(value)) { sb.Append(item); sb.Append(","); } } if (sb.Length > 0) { sb.Remove(sb.Length - 1, 1); //去掉最后一个逗号 //缓存目录 catalog = sb.ToString().Split(new char[] { ',' }); Array.ForEach(catalog, s => { FuncCache.AddCatalog(s); }); var funcInfos = LoadFuncInfos(sb.ToString()); foreach (var key in funcInfos.Keys) { FuncCache.AddFuncInfoMetaDataByCatalog(key, funcInfos[key]); funcInfos[key].ToList().ForEach(p => { FuncCache.AddFuncInfoMetaData(p.Name, p); }); } var funcInfoRefs = LoadFuncInfoRefs(sb.ToString()); funcInfoRefs.ToList().ForEach(p => { FuncCache.AddFuncRefInfo(p.FuncName, p); }); var droplists = LoadDropDownLists(sb.ToString()); foreach (var key in droplists.Keys) { FuncCache.AddDropDownList(key, droplists[key]); } } }