private void InitialExtHelpObj(string helpid) { CommonHelpEntity item = proxy.GetCommonHelpItem(helpid); ViewBag.Flag = helpid; ViewBag.JsonTemplate = proxy.GetJsonTemplate(helpid); }
private string BuildInputQuery(string helpid, string queryValue) { CommonHelpEntity item = proxy.GetCommonHelpItem(helpid); StringBuilder strb = new StringBuilder(); //无奈 NG3.Data.Service.DbHelper.Open(); NG3.Data.DbVendor vender = NG3.Data.Service.DbHelper.Vendor; NG3.Data.Service.DbHelper.Close(); //获取汉字拼音首字母函数 string functionName = "dbo.fun_getPY"; if (vender == NG3.Data.DbVendor.Oracle) { functionName = "fun_getPY"; } strb.Append(item.CodeField); strb.Append(" like '%"); strb.Append(queryValue); strb.Append("%' or "); strb.Append(item.NameField); strb.Append(" like '%"); strb.Append(queryValue); strb.Append("%' or "); strb.Append(functionName + "("); strb.Append(item.NameField); strb.Append(") like '%"); strb.Append(queryValue); strb.Append("%'"); return(strb.ToString()); }
public string GetHelpInfo(string helpid) { bool ORMMode = System.Web.HttpContext.Current.Request.Params["ORMMode"] == "true" ? true : false; CommonHelpEntity item = proxy.GetCommonHelpItem(helpid, ORMMode); JObject jo = new JObject(); jo.Add("Title", item.Title); jo.Add("HeadText", item.HeadText); if (ORMMode) { jo.Add("AllField", item.AllProperty); jo.Add("codeField", item.CodeProperty); jo.Add("nameField", item.NameProperty); } else { jo.Add("AllField", item.AllField); jo.Add("codeField", item.CodeField); jo.Add("nameField", item.NameField); } string str = JsonConvert.SerializeObject(jo); return("{status : \"ok\", data:" + str + "}"); }
/// <summary> /// 得到帮助字段的CodeField,和NameField /// </summary> /// <param name="helpId"></param> /// <returns></returns> public KeyValuePair <string, string> GetHelpData(string helpId) { CommonHelpEntity helper = helpdac.GetHelpItem(helpId); KeyValuePair <string, string> dic = new KeyValuePair <string, string>(helper.CodeField, helper.NameField); return(dic); }
/// <summary> /// 取得列表的模板信息 /// </summary> /// <param name="helpid"></param> /// <returns></returns> public string GetListTemplate(string helpid) { CommonHelpEntity item = this.GetCommonHelpItem(helpid); //return string.Format("<TreeList>{0}</TreeList>", item.List.InnerXml); return(GetHelpTemplate(item.ListTemplate)); }
/// <summary> /// 获取查询区模板 /// </summary> /// <param name="helpid"></param> /// <returns></returns> public string GetQueryTemplate(string helpid) { CommonHelpEntity item = this.GetCommonHelpItem(helpid); //return item.Query.ToTemplate(); return(GetHelpTemplate(item.QueryTemplate)); }
public ActionResult ExtHelp(string helpid) { CommonHelpEntity item = proxy.GetCommonHelpItem(helpid); ViewBag.Flag = helpid; ViewBag.JsonTemplate = proxy.GetJsonTemplate(helpid); return(View("ExtCommonHelp")); }
private void InitialHelpObj(string helpid) { CommonHelpEntity item = proxy.GetCommonHelpItem(helpid); ViewBag.Flag = helpid; ViewBag.HelpTitle = item.Title; ViewBag.Icon = string.Empty; ViewBag.CodeField = item.CodeField; ViewBag.NameField = item.NameField; ViewBag.SelectMode = 1; ViewBag.T0 = string.Empty; ViewBag.T1 = proxy.GetQueryTemplate(helpid); ViewBag.T2 = proxy.GetListTemplate(helpid); }
public string GetHelpTemplate(string helpid) { CommonHelpEntity item = proxy.GetCommonHelpItem(helpid); //JObject jo = new JObject(); //jo.Add("Title", item.Title); //jo.Add("Template", proxy.GetJsonTemplate(helpid)); //string str = JsonConvert.SerializeObject(jo); string str = proxy.GetJsonTemplate(helpid); //StreamReader sr = new StreamReader() str.Replace("\\\n", ""); //str.Replace((char)13, ' '); return("{status : \"ok\", Title:\"" + item.Title + "\",template:" + str + "}"); }
public string GetHelpInfo(string helpid) { bool ORMMode = System.Web.HttpContext.Current.Request.Params["ORMMode"] == "true" ? true : false; CommonHelpEntity item = proxy.GetCommonHelpItem(helpid); JArray arr = proxy.GetRichQueryItems(helpid); JObject queryObj = proxy.GetQueryFilter(helpid, AppInfoBase.OCode, AppInfoBase.LoginID); JObject jo = new JObject(); jo.Add("Title", item.Title); jo.Add("HeadText", item.HeadText); jo.Add("detailHeadText", item.DetailTableHeaders); if (ORMMode) { jo.Add("AllField", item.AllProperty); jo.Add("codeField", item.CodeProperty); jo.Add("nameField", item.NameProperty); jo.Add("detailTableFields", item.DetailTablePropertys); jo.Add("masterTableKey", item.MasterTableKeyProperty); } else { jo.Add("AllField", item.AllField); jo.Add("codeField", item.CodeField); jo.Add("nameField", item.NameField); jo.Add("detailTableFields", item.DetailTableFields); jo.Add("masterTableKey", item.MasterTableKey); } jo.Add("queryProperty", JsonConvert.SerializeObject(item.QueryPropertyItem)); jo.Add("existQueryProp", item.ExistQueryProperty); jo.Add("showTree", item.ShowTree); jo.Add("richQueryItem", JsonConvert.SerializeObject(arr)); jo.Add("queryFilter", JsonConvert.SerializeObject(queryObj)); string str = JsonConvert.SerializeObject(jo); return("{status : \"ok\", data:" + str + "}"); }
public string GetHelpObject(string helpid) { CommonHelpDac dac = new CommonHelpDac(); CommonHelpEntity item = dac.GetCommonHelpItem(helpid); var sb = new StringBuilder("var helpObj={"); sb.Append("title:'" + item.Title + "',"); sb.Append("icon:'" + string.Empty + "',"); sb.Append("codeField:'" + item.CodeField + "',"); sb.Append("nameField:'" + item.NameField + "',"); sb.Append("selectMode:" + 1 + ","); sb.Append("t0:'"); sb.Append(string.Empty); sb.Append("',t1:'"); sb.Append(dac.GetQueryTemplate(helpid).Replace("\r\n", string.Empty).Replace("'", "''")); sb.Append("',t2:'"); sb.Append(dac.GetListTemplate(helpid).Replace("\r\n", string.Empty).Replace("'", "''")); sb.Append("'\r\n};"); return(sb.ToString()); }
/// <summary> /// 获取列表数据 /// </summary> /// <param name="helpid">帮助标记</param> /// <param name="clientQuery">客户端查询条件</param> /// <param name="pageSize"></param> /// <param name="pageIndex"></param> /// <param name="totalRecord"></param> /// <param name="clientSqlFilter">客户端传来的sql查询条件</param> /// <param name="isAutoComplete">联想搜索</param> /// <returns></returns> public DataTable GetList(string helpid, int pageSize, int pageIndex, ref int totalRecord, string clientQuery, string outJsonQuery, string leftLikeJsonQuery, string clientSqlFilter, bool isAutoComplete, bool ormMode) { DataTable dt = null; CommonHelpEntity item = ormMode ? this.GetHelpItem(helpid) : this.GetCommonHelpItem(helpid); //拼装sql语句方式 if (item.Mode == HelpMode.Default) { StringBuilder sql = new StringBuilder(); if (item.AllField.Length > 0) { sql.Append("select " + item.Distinct + item.AllField) .Append(" from " + item.TableName) .Append(" where "); } else { sql.Append("select " + item.Distinct + item.CodeField + " " + item.CodeProperty + " , " + item.NameField + " " + item.NameProperty) .Append(" from " + item.TableName) .Append(" where "); } #region where if (!string.IsNullOrEmpty(item.SqlFilter)) { sql.Append(item.SqlFilter); } else { sql.Append(" 1=1 "); } if (!string.IsNullOrEmpty(clientSqlFilter)) { sql.Append(" and " + clientSqlFilter); } //if(!string.IsNullOrEmpty(clientQuery)) //{ // sql.Append(" and " + clientQuery); //} #endregion #region 分页 string sortString = string.Empty; if (!string.IsNullOrEmpty(item.SortField)) { sortString = item.SortField.Trim().IndexOf(" ") > 0 ? item.SortField : item.SortField + " asc "; } else { sortString = item.CodeField + " asc "; } if (string.IsNullOrEmpty(clientQuery) && string.IsNullOrEmpty(outJsonQuery)) { string strSql = PaginationAdapter.GetPageDataSql(sql.ToString(), pageSize, ref pageIndex, ref totalRecord, sortString, null); dt = DbHelper.GetDataTable(strSql); } else { string query = string.Empty; IDataParameter[] p = null; if (isAutoComplete) { p = this.BuildInputQuery(helpid, clientQuery, item.PYField, outJsonQuery, leftLikeJsonQuery, ref query); } else { p = DataConverterHelper.BuildQueryWithParam(clientQuery, outJsonQuery, leftLikeJsonQuery, ref query); } if (!string.IsNullOrEmpty(query)) { sql.Append(" and " + query); } string strSql = PaginationAdapter.GetPageDataSql(sql.ToString(), pageSize, ref pageIndex, ref totalRecord, sortString, p); dt = DbHelper.GetDataTable(strSql, p); } #endregion } else if (item.Mode == HelpMode.GetHelpResult)//插件模式通过反射获取帮助列表 { string fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "I6Rules" + Path.DirectorySeparatorChar + item.Assembly); if (!File.Exists(fullpath)) { fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Rules" + Path.DirectorySeparatorChar + item.Assembly); } if (File.Exists(fullpath)) { Assembly assem = Assembly.LoadFile(fullpath); object instance = assem.CreateInstance(item.ClassName); ICommonHelp help = instance as ICommonHelp; if (help != null) { dt = help.GetHelpList(pageSize, pageIndex, ref totalRecord, clientQuery, outJsonQuery, isAutoComplete); } else { throw new Exception(string.Format("程序集{0}中的{1}类未实现SUP.Common.Base.ICommonHelp接口", item.Assembly, item.ClassName)); } } else { throw new Exception(string.Format("服务端Rules目录下找不到程序集{0}", item.Assembly)); } } if (ormMode) { dt.TableName = item.TableName; return(ConvertFieldColToPropertyCol(dt, item.FieldPropertyDic, item.FieldDic)); } return(dt); }
public string GetJsonTemplate(string helpid) { CommonHelpEntity item = this.GetCommonHelpItem(helpid); return(GetXmlContent(item.JsonTemplate, "gb2312")); }
//----------新实现,注册信息放在数据库中------- public override CommonHelpEntity GetHelpItem(string helpid) { if (string.IsNullOrEmpty(helpid)) { throw new ArgumentException("helpid is null"); } CommonHelpEntity item = HttpRuntime.Cache.Get(COMMONHELPORMKEY + helpid) as CommonHelpEntity; if (item == null) { DataTable dt = this.GetMasterInfo(helpid); DataRow dr = dt.Rows[0]; item = new CommonHelpEntity(); string mode = dr["modetype"].ToString(); item.AllField = this.GetFields(helpid); item.AllProperty = this.GetProperties(helpid, item.FieldPropertyDic, item.FieldDic); item.HeadText = this.GetHeader(helpid); switch (mode) { case "0": item.Mode = HelpMode.Default; break; case "1": item.Mode = HelpMode.GetHelpResult; break; default: item.Mode = HelpMode.Default; break; } item.CodeField = dr["codefield"].ToString(); item.CodeProperty = DataConverterHelper.FieldToProperty(dr["tablename"].ToString(), item.CodeField); item.NameField = dr["namefield"].ToString(); item.NameProperty = DataConverterHelper.FieldToProperty(dr["tablename"].ToString(), item.NameField); if (item.Mode == HelpMode.Default) { //item.ID = helpflag; item.TableName = dr["tablename"].ToString(); item.SqlFilter = dr["sqlfilter"].ToString(); item.SortField = dr["sortfield"].ToString(); string distinct = dr["needdistinct"].ToString(); if (distinct == "1") { item.Distinct = " DISTINCT "; } } else if (item.Mode == HelpMode.GetHelpResult) { item.Assembly = dr["assemblyname"].ToString(); item.ClassName = dr["classname"].ToString(); } item.Title = dr["title"].ToString(); item.ShowTree = dr["showtree"].ToString(); item.TreePid = dr["treepid"].ToString(); item.TreeChildId = dr["treechildid"].ToString(); //缓存起来 HttpRuntime.Cache.Add(COMMONHELPKEY + helpid, item, null, DateTime.Now.AddDays(1), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); } return(item); }
/// <summary> /// 取得帮助节点信息 /// </summary> /// <param name="helpid"></param> /// <returns></returns> public override CommonHelpEntity GetCommonHelpItem(string helpid) { if (string.IsNullOrEmpty(helpid)) { throw new ArgumentException("helpid is null"); } CommonHelpEntity item = HttpRuntime.Cache.Get(COMMONHELPKEY + helpid) as CommonHelpEntity; if (item == null) { string fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NG3Config" + Path.DirectorySeparatorChar + "NG3CommonHelp.xml"); //@"Config\CommonHelp.xml"); //读取通用帮助文档 XmlDocument doc = HttpRuntime.Cache.Get(COMMONHELPKEY) as XmlDocument; if (doc == null) { try { doc = new XmlDocument(); doc.Load(fullpath); HttpRuntime.Cache.Add(COMMONHELPKEY, doc, new CacheDependency(fullpath), DateTime.Now.AddDays(30), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); } catch (Exception ex) { throw ex; } } //取配置节 string xPath = string.Format("/CommonHelp/Help[HelpID='{0}']", helpid); try { DbHelper.Open(); if (DbHelper.Vendor == DbVendor.Oracle) { xPath = string.Format("/CommonHelp/Help[HelpID='{0}']", helpid + "_orcale"); //先尝试找oracle节点 XmlNode tempnode = doc.DocumentElement.SelectSingleNode(xPath); if (tempnode == null) { xPath = string.Format("/CommonHelp/Help[HelpID='{0}']", helpid); //找不到就找正常节点 } } } catch (Exception) { throw; } finally { DbHelper.Close(); } XmlNode node = doc.DocumentElement.SelectSingleNode(xPath); if (node == null) { throw new Exception(string.Format("commonhelp.xml文件中无法找到{0}配置节,请注意区分大小写", helpid)); } item = new CommonHelpEntity(); string mode = GetSubNode(node, "Mode", string.Empty); item.AllField = GetSubNode(node, "AllField", string.Empty); item.HeadText = GetSubNode(node, "HeadText", string.Empty); switch (mode) { case "0": item.Mode = HelpMode.Default; break; case "1": item.Mode = HelpMode.GetHelpSql; break; case "2": item.Mode = HelpMode.GetHelpResult; break; default: item.Mode = HelpMode.Default; break; } item.CodeField = GetSubNode(node, "CodeField", string.Empty); item.NameField = GetSubNode(node, "NameField", string.Empty); item.TableName = GetSubNode(node, "TableName", string.Empty); if (item.Mode == HelpMode.Default) { //item.ID = helpflag; item.SqlFilter = GetSubNode(node, "SqlFilter", string.Empty); item.SortField = GetSubNode(node, "SortField", string.Empty); string distinct = GetSubNode(node, "Distinct", string.Empty); if (distinct == "1") { item.Distinct = " DISTINCT "; } } else if (item.Mode == HelpMode.GetHelpSql) { item.Assembly = GetSubNode(node, "Assembly", string.Empty); item.ClassName = GetSubNode(node, "ClassName", string.Empty); } else { item.Assembly = GetSubNode(node, "Assembly", string.Empty); item.ClassName = GetSubNode(node, "ClassName", string.Empty); item.GetListMethod = GetSubNode(node, "GetListMethod", string.Empty); item.GetNameMethod = GetSubNode(node, "GetNameMethod", string.Empty); item.CodeToNameMethod = GetSubNode(node, "CodeToNameMethod", string.Empty); } item.Title = GetSubNode(node, "Title", string.Empty); item.QueryTemplate = GetSubNode(node, "QueryTemplate", string.Empty); item.ListTemplate = GetSubNode(node, "ListTemplate", string.Empty); item.JsonTemplate = GetSubNode(node, "JsonTemplate", string.Empty); //var queryNode = node.SelectSingleNode("Query"); //if (queryNode != null) //{ // item.Query = new CommHelpQuery(queryNode); //} //item.List = node.SelectSingleNode("List"); //缓存起来 HttpRuntime.Cache.Add(COMMONHELPKEY + helpid, item, new CacheDependency(fullpath), DateTime.Now.AddDays(30), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); } //过滤条件宏定义替换,不能再缓存里面做,否则组织切换了,缓存还在数据就不正确了 string filter = item.SqlFilter; if (filter != null) { if (filter.IndexOf("@ocode@") > 0) { item.SqlFilter = filter.Replace("@ocode@", AppInfoBase.OCode); } if (filter.IndexOf("@orgid@") > 0) { item.SqlFilter = filter.Replace("@orgid@", AppInfoBase.OrgID.ToString()); } if (filter.IndexOf("@version@") > 0)//fastdp用到 { item.SqlFilter = filter.Replace("@version@", AppInfoBase.Version); } } return(item); }
public IList <TreeJSONBase> GetTreeList(string helpid, string clientQuery, string outJsonQuery, string leftLikeJsonQuery, string clientSqlFilter, string nodeid, bool ormMode) { string filter = string.Empty; CommonHelpEntity item = richDac.GetCommonHelpItem(helpid); TreeListBuilder builder = new TreeListBuilder(); string treePid = item.TreePid; string treeChildId = item.TreeChildId; if (ormMode) { string tableName = item.TableName; string[] s = item.TableName.Split(' ');//有别名 if (s.Length > 0) { tableName = s[s.Length - 1].Trim(); } builder.ID = DataConverterHelper.FieldToProperty(tableName, item.CodeField); //item.CodeField; builder.Text = DataConverterHelper.FieldToProperty(tableName, item.NameField); //item.NameField; treePid = DataConverterHelper.FieldToProperty(tableName, item.TreePid); item.TreeChildId = DataConverterHelper.FieldToProperty(tableName, item.TreeChildId); } else { builder.ID = item.CodeField; builder.Text = item.NameField; } DataTable dt = richDac.GetTreeList(helpid, clientQuery, outJsonQuery, leftLikeJsonQuery, clientSqlFilter, nodeid, ormMode); string sort = string.Empty; if (!string.IsNullOrWhiteSpace(item.SortProperty)) { sort = item.SortProperty + " asc "; } if (string.IsNullOrEmpty(treePid)) { throw new Exception("树节点pid未设置,请在通用帮助注册设置[父节点id]和[子节点id]!"); } Type type = dt.Columns[treePid].DataType; if ("root" == nodeid)//首次加载 { if (type == typeof(Int64) || type == typeof(Int32)) { filter = "(" + treePid + "=0 or " + treePid + " is null)"; } else { filter = "(" + treePid + "='' or " + treePid + "is null)"; } return(builder.GetExtTreeList(dt, treePid, treeChildId, filter, sort, TreeDataLevelType.TopLevel, 2)); } else//懒加载 { //return builder.GetExtTreeList(dt, item.TreePid, item.TreeChildId, filter, TreeDataLevelType.LazyLevel); return(builder.LazyLoadTreeList(dt, treePid, treeChildId, nodeid)); } }