using System; using System.Data; using BP.DA; using BP.Sys; namespace BP.WF.HttpHandler { /// /// 页面功能实体 /// public class WF_Admin_FoolFormDesigner_StyletDfine : BP.WF.HttpHandler.DirectoryPageBase { /// /// 构造函数 /// public WF_Admin_FoolFormDesigner_StyletDfine() { } #region GloValStyles.htm public string GloValStyles_PinYin() { string name = this.GetRequestVal("TB_Name"); //表单No长度最大100,因有前缀CCFrm_,因此此处设置最大94,added by liuxc,2017-9-25 string str = BP.Sys.CCFormAPI.ParseStringToPinyinField(name, true, true, 94); GloVar en = new GloVar(); en.No = str; if (en.RetrieveFromDBSources() == 0) return str; return "err@标签:" + str + "已经被使用."; } public string GloValStyles_Init() { string val = this.GetRequestVal("CSS"); if (DataType.IsNullOrEmpty(val) == true) return ""; BP.Sys.GloVar en = new GloVar(val); //生成风格文件. string docs = GenerStyleDocs(en); //内容. docs = docs.Replace(en.No, "GloValsTemp"); //要去掉. docs = docs.Replace("!important", ""); //保存一个临时文件, string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/GloVarsCSSTemp.css"; BP.DA.DataType.SaveAsFile(path, docs); return "风格文件已经生成:" + path; } /// /// 应用. /// /// public string GloValStyles_App() { BP.Sys.GloVars ens = new GloVars(); ens.Retrieve(GloVarAttr.GroupKey, "CSS"); string html = ""; foreach (BP.Sys.GloVar item in ens) { //生成风格文件. html += GenerStyleDocs(item); } //保存一个临时文件, string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/GloVarsCSS.css"; BP.DA.DataType.SaveAsFile(path, html); return "执行成功."; } #endregion #region Default.htm 风格设计页面.. /// /// 保存为模版. /// /// public string Default_SaveAsTemplate() { try { BP.Sys.GloVars ens = new GloVars(); ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx"); string myName = this.GetRequestVal("TemplateName"); if (DataType.IsNullOrEmpty(myName) == true) myName = DateTime.Now.ToString("MM月dd日HH时mm分ss秒"); string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/" + myName + ".xml"; ens.SaveToXml(path); return "模版创建成功."; } catch (Exception ex) { return "err@" + ex.Message; } } /// /// 模版选择 /// /// public string Default_Template_Selected() { return Default_Selected_Ext(false); } /// /// 初始化表单风格 /// /// public string Default_GenerGloVars() { //获得标准的配置文件,用于比较缺少或者删除的标记. string path = BP.Difference.SystemConfig.PathOfWebApp + "WF/Admin/FoolFormDesigner/StyletDfine/DefaultStyle.xml"; DataSet ds = new DataSet(); ds.ReadXml(path); DataTable dt = ds.Tables[0]; GloVars ens = new GloVars(); ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx"); #region 检查是否有新增的标签,如果有就 insert 一个。 int idx = 0; foreach (DataRow dr in dt.Rows) { idx++; string no = dr[0].ToString(); string name = dr[1].ToString(); string val = dr[2].ToString(); if (ens.Contains(no) == false) { GloVar myen = new GloVar(); myen.No = no; myen.Name = name; myen.Val = val; myen.GroupKey = "FoolFrmStyle"; myen.Idx = idx; myen.Insert(); ens.AddEntity(myen); } } #endregion 检查是否有新增的标签,如果有就insert一个。 #region 检查是否有 多余 的标签,如果有就 Delete . bool isChange = false; foreach (GloVar item in ens) { bool isHave = false; foreach (DataRow dr in dt.Rows) { string no = dr[0].ToString(); if (item.No.Equals(no) == false) continue; isHave = true; } if (isHave == false) { item.Delete(); isChange = true; } } //如果发生了变化,就重新查询. if (isChange == true) ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx"); #endregion 检查是否有 多余 的标签,如果有就Delete 。 Default_App_Ext(ens, false); return ens.ToJson(); } /// /// 应用 /// /// public string Default_App() { string docs = ""; //查询出来所有的. BP.Sys.GloVars ens = new GloVars(); ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx"); return Default_App_Ext(ens, true); } /// /// 生成 /// /// /// /// public string Default_App_Ext(GloVars ens, bool isApp = false) { string docs = ""; foreach (GloVar en in ens) { docs += GenerStyleDocs(en); } //保存. if (isApp == true) { string pathDefault = BP.Difference.SystemConfig.PathOfDataUser + "Style/FoolFrmStyle/Default.css"; BP.DA.DataType.SaveAsFile(pathDefault, docs); GloVar gen = new GloVar(); // gen.No = "Sys"; //gen.Nem } //保存一个临时文件, string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/FoolFrmStyle/DefaultPreview.css"; BP.DA.DataType.SaveAsFile(path, docs); return "info@风格文件已经生成:" + path; } private string GenerStyleDocs(GloVar en) { string docs = ""; docs += "\t\n/* " + en.Name + " */"; docs += "\t\n." + en.No; docs += "\t\n{ "; AtPara ap = new AtPara(en.Val); foreach (string item in ap.HisHT.Keys) { //特殊标记. if (item.Contains("_Temp") == true) continue; docs += "\t\n " + item + ":" + ap.GetValStrByKey(item).Trim().Replace(" ", "") + " !important;"; //docs += "\t\n " + item + ":" + ap.GetValStrByKey(item).Trim().Replace(" ", "") + " ;"; } docs += "\t\n }"; return docs; } #endregion 风格设计页面.. #region Template.htm 模版页面. /// /// 应用 /// /// public string Template_App() { string str = Default_Selected_Ext(true); return str; } /// /// 删除文件. /// /// public string Default_Template_Delete() { string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/"; System.IO.File.Delete(path + this.Name); return "删除成功."; } /// /// 初始化数据 /// /// public string Default_GenerTemplate() { string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/"; string[] fls = BP.Tools.BaseFileUtils.getFiles(path); DataTable dt = new DataTable(); dt.Columns.Add("No"); dt.Columns.Add("Name"); foreach (string item in fls) { System.IO.FileInfo info = new System.IO.FileInfo(item); DataRow dr = dt.NewRow(); string name = info.Name; if (name.Contains("Default") == true) continue; if (name.Contains("Sys.xml") == true) name = info.Name.Replace("Sys.xml", "[系统]"); else name = info.Name.Replace(".xml", "[自定义]"); dr[1] = name; dr[0] = info.Name; dt.Rows.Add(dr); } return BP.Tools.Json.ToJson(dt); } /// /// 模版选择. /// /// public string Default_Selected_Ext(bool isApp) { string filePath = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/" + this.Name; DataSet ds = new DataSet(); ds.ReadXml(filePath); DataTable dt = ds.Tables[0]; BP.Sys.GloVars ens = new GloVars(); int idx = 0; foreach (DataRow dr in dt.Rows) { string key = dr["No"].ToString(); string name = dr["Name"].ToString(); string val = dr["Val"].ToString(); idx++; BP.Sys.GloVar en = new GloVar(); en.No = key; en.Name = name; en.GroupKey = "FoolFrmStyle"; en.Val = val; en.Idx = idx; ens.AddEntity(en); } ens.Delete("GroupKey", "FoolFrmStyle"); foreach (BP.Sys.GloVar en in ens) en.Insert(); //生成临时文件. 如果是 isApp==true ,就生成正式的风格文件. Default_App_Ext(ens, isApp); return "执行成功."; } #endregion 模版页面. } }