using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using BP.DA; using BP.Difference; using BP.En; namespace BP.Difference { /// /// 获得IP /// public static class Glo { public static string DealExp(string exp, Hashtable ht) { if (exp == null) exp = string.Empty; exp = exp.Replace("~", "'"); exp = exp.Replace("/#", "+"); //为什么? exp = exp.Replace("/$", "-"); //为什么? if (exp.Contains("@WebUser.No")) exp = exp.Replace("@WebUser.No", BP.Web.WebUser.No); if (exp.Contains("@WebUser.Name")) exp = exp.Replace("@WebUser.Name", BP.Web.WebUser.Name); if (exp.Contains("@WebUser.FK_DeptName")) exp = exp.Replace("@WebUser.FK_DeptName", BP.Web.WebUser.DeptName); if (exp.Contains("@WebUser.FK_Dept")) exp = exp.Replace("@WebUser.FK_Dept", BP.Web.WebUser.DeptNo); if (exp.Contains("@") == true && ht != null) { foreach (string key in ht.Keys) { //值为空或者null不替换 if (ht[key] == null || ht[key].Equals("") == true) continue; if (exp.Contains("@" + key)) exp = exp.Replace("@" + key, ht[key].ToString()); //不包含@则返回SQL语句 if (exp.Contains("@") == false) break; } } if (exp.Contains("@") && BP.Difference.SystemConfig.isBSsystem == true) { /*如果是bs*/ foreach (string key in HttpContextHelper.RequestParamKeys) { if (string.IsNullOrEmpty(key)) continue; exp = exp.Replace("@" + key, HttpContextHelper.RequestParams(key)); } } //if (exp.Contains("@") == true) // throw new Exception("@外键类型SQL错误," + exp + "部分查询条件没有被替换."); return exp; } public static string DealSQLStringEnumFormat(string cfgString) { //把这个string,转化SQL. @tuanyuan=团员@dangyuan=党员 AtPara ap = new AtPara(cfgString); string sql = ""; foreach (string item in ap.HisHT.Keys) { sql += " SELECT '" + item + "' as No, '" + ap.GetValStrByKey(item) + "' as Name FROM Port_Emp WHERE No = 'admin' UNION "; } sql = sql.Substring(0, sql.Length - 6); return sql; } /// /// 获得ID地址 /// public static string GetIP { get { return HttpContextHelper.Request.ServerVariables["REMOTE_ADDR"].ToString(); } } public static string RequestParas { get { string urlExt = ""; string rawUrl = System.Web.HttpContext.Current.Request.RawUrl; rawUrl = "&" + rawUrl.Substring(rawUrl.IndexOf('?') + 1); string[] paras = rawUrl.Split('&'); foreach (string para in paras) { if (para == null || para.Equals("") || para.Contains("=") == false) continue; urlExt += "&" + para; } return urlExt; } } } }