Exemple #1
0
        /// <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]);
                }
            }
        }