<%@ WebHandler Language="C#" Class="DataShow" Debug="true" %> using System; using System.Collections.Generic; using System.Web; using System.Data; using System.Data.Common; using System.Web.SessionState; using System.Text; using eMIS; public class DataShow : IHttpHandler , IRequiresSessionState { private int fixedcolumns=0; private int displaySubprogramCount = 0; private int openSubprogramCount = 0; private int elementsCount = 0; private int subProgramCount = 0; private string joinCellJs = ""; private int headMaxRow = 0; private int headMaxCel = 0; public void ProcessRequest (HttpContext context) { //context.Response.Redirect("ListGroup.ashx"); TimeSpan ts; DateTime beginTime = DateTime.Now; DateTime time1,time2; string runtime = ""; double[] step = new double[] { 0, 0, 0 }; time1 = DateTime.Now; int fixednum = 0; if (context.Session["userid"] == null) { LoginManager lm = new LoginManager(context); if (!lm.VerifyIdentity()) { context.Response.Write("会话丢失,请重新登陆!"); context.Response.End(); } } string userAgent = context.Request.UserAgent.ToLower(); bool isMobile=false; if (userAgent.Contains("android") || userAgent.Contains("iphone") || userAgent.Contains("ipad")) isMobile = true; string wwwroot = context.Request.ApplicationPath; string menuId = context.Request.QueryString["t"].ToString(); string pageidx = context.Request.QueryString["idx"].ToString(); string lqv = DataManager.UrlDecode(context.Request.QueryString["f"].ToString()); string[] fields=lqv.Split('\t'); string[] groups=DataManager.UrlDecode( context.Request.QueryString["g"].ToString()).Split('\t'); string[] order = context.Request.QueryString["ord"].ToString().Split(','); string action = context.Request.QueryString["ac"] == null ? "" : context.Request.QueryString["ac"].ToString(); string[] groups_cond = new string[groups.Length]; string[] groups_field = new string[groups.Length]; string userId = context.Session["userid"].ToString(); string rand = DateTime.Now.Ticks.ToString(); PageIdManager pim = new PageIdManager(); string instanceId = null; if (context.Request.QueryString["id"] != null && context.Request.QueryString["id"].ToString() != "") { pim.Init(context.Request.QueryString["id"].ToString()); menuId = pim.MenuID; instanceId = pim.Key; } string s,s2,s3,web,param,s4; //context.Response.Write(DataManager.UrlDecode( context.Request.QueryString["f"].ToString())); // context.Response.End(); if (wwwroot == "/") wwwroot = ""; string stateKey = ""; if (!DataManager.IsNumber(menuId)) { menuId = DataManager.Decrypt(menuId); stateKey = StringHelper.GetRightString(menuId); menuId = StringHelper.GetLeftString(menuId); } DataManager sysData = new DataManager(); sysData.Operator.OpenConnection(); InstanceManager instManager = new InstanceManager(context,sysData,menuId); instManager.StateKey = stateKey; instManager.AllowSaveState = true; instManager.SetStateValue("lqv", lqv); instManager.InstanceId = instanceId; string programId = instManager.ProgramID; ProgramManager pm = instManager.Program; DataTable listElements = pm.ListElements; DataRow businessDataRow = null; string def_query_cond = instManager.QueryCondition; ProgramJson programJson =Newtonsoft.Json.JsonConvert.DeserializeObject("{"+pm.Properties["json"].ToString()+"}"); string gstat = instManager.GetStateValue("gs"); string gstatf = instManager.GetStateValue("gsf"); // context.Response.Write(gstatf); //if (userId == "400002") //{ // context.Response.Write(instManager.ListSqlWhere); //context.Response.End(); // } int beginIdx = 0; string cond = ""; string url_cond; int group; string f,v,ecat,fcat; string[] a2; string orderText = ""; int i; for (i = 0; i < groups.Length; i++) groups_cond[i] = ""; DataRow[] listEles=null; DataRow gstatRow = null; if (gstat != "") { listEles = listElements.Select("kjms='" + gstat + "'"); gstatRow = listEles[0]; gstatRow["KJCX"] = 0; } listEles = listElements.Select(null, "KJCX ASC"); listElements = null; foreach(DataRow r in listEles) { if (StringHelper.GetParamValue(r["SX"].ToString(), "fixed") == "1") fixednum++; for (i = 0; i < groups.Length; i++) groups_field[i] = ""; s2 = ""; beginIdx = 0; if (order[0]!="" && orderText== "" && order[0] == r["KJID"].ToString()) { orderText = r["dyzd"].ToString() + " " + order[1] + "," + instManager.Program.PrimaryKey+ " asc"; } while (true) { beginIdx = Array.IndexOf(fields, r["KJID"].ToString(), beginIdx); if (beginIdx == -1) break; if ((beginIdx - 1) % 8 != 0) { beginIdx++; continue; } f = StringHelper.GetRightString(r["dyzd"].ToString()); ecat = r["KJLX"].ToString(); fcat = r["QZZDLX"].ToString(); group =int.Parse( fields[beginIdx + 1]); v = fields[beginIdx + 4]; if (groups_field[group] == "") { groups_field[group] += " "+ fields[beginIdx + 2]+" ("; } else { groups_field[group] += " or "; } if (fcat == "3") { groups_field[group] += GetDatetimeCondition(f, v); } else if (fcat == "2") { groups_field[group] += GetNumberCondition(f, v,fields[beginIdx + 7]); } else { groups_field[group] += GetStringCondition(f, v,fields[beginIdx + 7]); } beginIdx++; } //if (s2 != "") // cond += s2+")"; for (i = 0; i < groups.Length; i++) { if (groups_field[i] != "") groups_cond[i] += groups_field[i] + ")"; } } //if (cond != "") // cond = "1=1" + cond; //context.Response.Write(cond+"=="); //context.Response.End(); //<从表> int l = instManager.Program.Subprograms.Rows.Count; DataRow row = null; string glcxid, fk, pk,subtn,subcid,subparas="",cid; DataTable elements; InstanceManager sub; string xml,sub_cond; ControlManager cm = null; int iii, lll; for (i = 0; i< l; i++) { row = instManager.Program.Subprograms.Rows[i]; xml = row["xml"].ToString(); if (StringHelper.GetXmlValue(xml, "参与主表查询") == "1") { glcxid = row["glcxid"].ToString(); fk = StringHelper.GetXmlValue(xml, "外键"); pk = StringHelper.GetXmlValue(xml, "主键"); sub = new InstanceManager(context,instManager.BusinessDataManager , glcxid); cm = new ControlManager(sub); cm.MultiProgramKey = "p"+glcxid; subtn = sub.Program.ListTableName; elements = sub.Program.QueryElements; lll = elements.Rows.Count; cm.PageType = 1; beginIdx = 0; sub_cond = ""; for (iii = 0; iii < lll ; iii++) { cm.Init(null, elements.Rows[iii]); cid = glcxid + "_" + cm.ControlID; beginIdx = Array.IndexOf(fields, cid, 0); if (beginIdx != -1) { fcat = cm.DataType; group = int.Parse(fields[beginIdx + 1]); v = fields[beginIdx + 4]; f = cm.FieldName; if (sub_cond == "") { sub_cond += " " + fields[beginIdx + 2] + " ("; } else { sub_cond += " or "; } if (fcat == "3") { sub_cond += GetDatetimeCondition(f, v); } else if (fcat == "2") { sub_cond += GetNumberCondition(f, v, fields[beginIdx + 7]); } else { sub_cond += GetStringCondition(f, v, fields[beginIdx + 7]); } } } if (sub_cond != "") { cond += (cond==""?"":" and ")+" ("+pk+" in (select "+fk+" from "+sub.Program.ListTableName+" where "+sub_cond.Substring(sub_cond.IndexOf("("))+")))"; } } } // for (i = 0; i < groups.Length; i++) { s = groups_cond[i]; if (s != "") cond += (cond==""?"":" and ") + "("+s.Substring(s.IndexOf("("))+")"; } if(action=="search") instManager.QueryCondition = cond; if (context.Session["usercnname"].ToString() == "系统") { //context.Response.Write(instManager.QueryCondition); // context.Response.End(); } TagManager tagManger = new TagManager(); tagManger.Context = context; elementsCount = listEles.Length; subProgramCount = pm.Subprograms.Rows.Count; int j,k,ii; string tjfs; string[] arr_temp; string url="", str_bg, elementType; string primaryKeyValue; string primaryKey, foreignKey, relationDesc, relationProId,relationCondition=""; DataTable listDataTable; string subPrimaryKeyValue; DataTable dt1 = null; HttpCookie cookie = context.Request.Cookies.Get("ps" + menuId); ts = DateTime.Now - time1; runtime += "begin:[ "+ts.TotalMilliseconds.ToString()+" ]"; int PageSize; time1 = DateTime.Now; if (cookie == null) { PageSize = instManager.PageSize; } else { PageSize= int.Parse(cookie.Value); instManager.PageSize = PageSize; } instManager.CurrentPage = int.Parse(pageidx); ts = DateTime.Now - time1; runtime += ",page info:[ "+ts.TotalMilliseconds.ToString()+" ]"; /* 已选择记录 cookie = context.Request.Cookies.Get("pk" + menuId); string spk = ""; if (cookie != null) { spk = ","+cookie.Value.Replace("%2C", ",")+","; } */ StringBuilder sb = new StringBuilder(); if(orderText!="") instManager.SqlOrder=orderText; //sb.Append(instManager.GetListSqlWhere()); bool bSetBgcolor = false; string[] arr_bgcolor = new string[1]; s = pm.Properties["JLYSSZ"].ToString(); if( s!= "") { bSetBgcolor = true; arr_bgcolor = s.Split(';'); } //if(! CustomTableHead( context,sb, pm, listElements)) // GetTableHead(sb, pm, listElements); j = 2; //fujianxianshi = aco.mt.FlowMemo string guanjianziduan = pm.Properties["gjzd"].ToString(); time1 = DateTime.Now; if(gstat=="") listDataTable = instManager.GetMulitRecordDataTable(); else listDataTable = instManager.GetGroupStatDataTable(programJson.groupStat,gstat,gstatf); ts=DateTime.Now-time1; runtime += ",search db:[ "+ts.TotalMilliseconds.ToString()+" ]"; time1 = DateTime.Now; listDataTable.TableName = instManager.Program.ListTableName; int rowIndex = 0; string fieldName; string val; string elementId; string fontcolor=""; ControlManager control = new ControlManager(instManager); int c=listDataTable.Rows.Count; businessDataRow = null; string trclass,yc,ys; sb.Append("{\"page\":{\"idx\":"+pageidx+",\"count\":"+instManager.PageCount+",\"row_count\":"+instManager.RecordCount+"},"); if (fixednum == 0) fixednum = 2; sb.Append("\"eles\":[{\"fixed\":"+(isMobile?"1":fixednum.ToString())+"}"); ts=DateTime.Now-time1; runtime += ",s-list-1:[ "+ts.TotalMilliseconds.ToString()+" ]"; time1 = DateTime.Now; //[id,描述,隐藏,宽度,控件类型,对齐方式,格式化] string stat = ""; string statSql = "",sql; int statCount = 0; string cs; string[] a; string eid; string width; string titles,groupStat,QZZDLX; string cusTableHead = "0"; bool isDisplay; string desc,sx,sx_stat,para,search_def,search_all; bool groupstat = false; string eleidx = ""; int elec=0; string mergeCells = ""; for (i = 0; i < elementsCount; i++) { row = listEles[i]; desc = row["KJMS"].ToString(); isDisplay = (gstat == "" ? row["YC"].ToString() != "1":(gstat==desc||Array.IndexOf(programJson.groupStat.statColumns,desc)!=-1)); if (isDisplay) { eid = row["KJID"].ToString(); elec++; eleidx += ",\"e" + eid + "\":"+elec.ToString(); ys = StringHelper.ConvertToJson(row["YS"].ToString()); sx = StringHelper.ConvertToJson(row["SX"].ToString()); search_def = row["LBKJCX"].ToString(); search_all = row["CXXS"].ToString(); width = getStyle(ys, "width", "100").Replace("px", ""); if (width=="" || !DataManager.IsNumber(width)) width = "100"; //自定义表头 titles = row["ExtAttr"].ToString(); //groupStat=StringHelper.GetXmlValue2(titles, "groupStat"); groupStat = StringHelper.GetParamValue(sx,"group"); sx_stat = StringHelper.GetParamValue(sx,"stat"); if (!groupstat && groupStat != "") groupstat = true; titles = StringHelper.GetXmlValue2(titles, "titles"); if (titles != "") { if(cusTableHead=="0") cusTableHead = (titles.Split('\t').Length-1).ToString(); titles = titles.Replace("\t", "\\t"); } QZZDLX = row["QZZDLX"].ToString(); if (row["HB"].ToString() == "1") { mergeCells += (mergeCells == "" ? "" : ",") + elec; } sb.Append(",[" + eid + ",\"" + StringHelper.ConvertToJson(row["KJMS"].ToString()) + "\"," + row["YC"].ToString() + "," + width + "," + row["KJLX"].ToString() + ",\"" + getStyle(ys, "text-align", (QZZDLX == "2" && row["GXZD"].ToString() == "" && row["KJLX"].ToString() != "3" ? "right" : "left")) + "\",\"" + GetFormat(ys) + "\",\"" + titles + "\",{\"style\":\"" + ys + "\",\"groupStat\":" + (groupStat == "true" ? "true" : "false") + ",\"stat\":\"" + sx_stat + "\",\"paras\":\"" + StringHelper.ConvertToJson(sx) + "\",\"defSec\":" + search_def + ",\"allSec\":" + search_all + ",\"dataType\":" + QZZDLX + "}]"); cs = sx_stat; if (cs!="") { a = cs.Split(','); foreach (string st in a) { if (!stat.Contains(st)) { stat += (stat == "" ? "" : ",") + st; statCount++; } statSql += (statSql == "" ? "" : ",") + st + "(" + row["DYZD"].ToString() + ") as "+st+"_"+eid; } } } } sb.Append("]" + eleidx + ",\"mergeCells\":[" + mergeCells + "],\"cusTableHead\":" + cusTableHead + ",\"stat\":{\"methods\":\"" + stat + "\",\"count\":" + statCount.ToString() + ",\"group\":" + (groupstat ? "true" : "false") + ""); if (stat != "" && pageidx == "1") { sql = "select " + statSql + " from " + pm.ListTableName + " where " + instManager.ListSqlWhere; DataTable dt = instManager.BusinessDataManager.DmExecuteTable(sql); foreach (DataColumn col in dt.Columns) { sb.Append(",\"" + col.ColumnName + "\":\"" + dt.Rows[0][col.ColumnName].ToString() + "\""); } } else { statSql=""; } sb.Append(",\"server\":\""+DataManager.Encrypt(statSql+";"+pm.PrimaryKey+";"+pm.ListTableName+";"+instManager.ListSqlWhere+";"+PageSize.ToString())+"\""); ts=DateTime.Now-time1; runtime += ",s-list-2:[ "+ts.TotalMilliseconds.ToString()+" ]"; time1 = DateTime.Now; sb.Append("},\"sub\":[[]"); string subopen,subdisplay; l = pm.Subprograms.Rows.Count; string sub_open = "false"; //同页显示和合并不同时存成 if (mergeCells == "") { for (i = 0; i < l; i++) { row = pm.Subprograms.Rows[i]; xml = row["xml"].ToString(); subopen = StringHelper.GetXmlValue(xml, "同页显示"); if (subopen == "1") sub_open = "true"; relationDesc = row["glms"].ToString(); subdisplay = StringHelper.GetXmlValue(xml, "弹出窗口"); sb.Append(",[[],\"" + relationDesc + "\",\"" + subopen + "\",\"" + subdisplay + "\"]"); } } sb.Append("],\"sub_open\":"+sub_open+",\"data\":[[]"); ts=DateTime.Now-time1; runtime += ",s-l:[ "+ts.TotalMilliseconds.ToString()+" ]"; //foreach list time1 = DateTime.Now; for (int idx = 0; idx < c;idx++ ) { businessDataRow = listDataTable.Rows[idx]; tagManger.BusinessDataRow = businessDataRow; str_bg = "#000000"; primaryKeyValue = businessDataRow[guanjianziduan].ToString(); trclass = (rowIndex % 2 == 0 ? "list_table_tr_odd" : "list_table_tr_eve"); time2 = DateTime.Now; if (bSetBgcolor) { for (i = 0; i < arr_bgcolor.Length; i++) { arr_temp = arr_bgcolor[i].Split(new string[] { ",#" }, StringSplitOptions.None); if (instManager.MeetTheCondition(tagManger.ReplaceExpression(arr_temp[0], ""), primaryKeyValue)) { str_bg = "#"+arr_temp[1]; break; } } } ts = DateTime.Now - time2; step[0] += ts.TotalMilliseconds; //数据行=[0:"pk",1:"背景色",2:"值",3:"弹出关联程序",4:"同页显示关联程序"] //同页显示关联程序=[0:"关联描述",1:"行索引",2:"关联程序id",3:"关联条件"]"; sb.Append(",[\"" + escapeJson(primaryKeyValue) + "\",\"" + str_bg + "\",[["); if (gstat != "") { control.Init(businessDataRow, gstatRow); f = control.FieldName; s = control.Text; sb.Append("\""+DataManager.Encrypt(""+f+"='"+control.Value+"'")+"\",\""+(s.Length>4?s.Substring(0,4)+"...":s)+"\""); } sb.Append("]"); time2 = DateTime.Now; for (i = 0; i < elementsCount; i++) { row = listEles[i]; desc = row["KJMS"].ToString(); isDisplay = (gstat == "" ? row["YC"].ToString() != "1":(gstat==desc||Array.IndexOf(programJson.groupStat.statColumns,desc)!=-1)); if ( isDisplay) { control.Init(businessDataRow, row); elementType = control.ControlType; elementId = control.ControlID; fieldName = control.FieldName; tjfs = row["TJFS"].ToString(); control.Display = true; yc = ""; if (instManager.FieldPopedom.AllowRead(fieldName)) val = control.Text; else val = "******"; s = control.GetParamValue("setcolor", ""); if (s != "") { arr_temp = s.Split(','); s = tagManger.ReplaceExpression(arr_temp[1], "COLVAL"); dt1 = new DataTable(); if ((bool)dt1.Compute(s, "")) { fontcolor = "color:" + arr_temp[0] + ";"; } else { fontcolor = ""; } } else { fontcolor = ""; } if (elementType == "3") { sb.Append(",[\"em_lt_c3\",\"" + escapeJson(control.Value) + "\",\"" + escapeJson(val) + "\"," + control.GetDataField + "]"); } else if (elementType == "42") { sb.Append(",[\"em_lt_c42\",\"" + escapeJson(control.Value) + "\"]"); } else if (fieldName.ToLower() == "ztms") { sb.Append(",[\"em_lt_ztms\",\"" + primaryKeyValue + "\",\"" + escapeJson(val) + "\"]"); } else { s = control.GetParamValue("url", ""); url_cond = control.GetParamValue("cond", ""); para=control.GetParamValue("para", ""); if (para != "") { para = para.Replace("&", ";"); para = "&cpara=" + DataManager.UrlEncode(tagManger.ReplaceExpression(para, "ColVal")); } s += para; if (s == "") { sb.Append(",\"" + escapeJson(val) + "\""); } else { s = tagManger.ReplaceExpression(s, "ColVal"); if (url_cond != "") { url_cond=tagManger.ReplaceExpression(url_cond, "ColVal"); s += "&cond=" + DataManager.Encrypt(url_cond); } sb.Append(",[\"em_lt_openurl\",\"" +escapeJson(val) + "\",\"" + escapeJson(s) + "\"]"); } } } } ts = DateTime.Now - time2; step[1] += ts.TotalMilliseconds; sb.Append("],[[]"); /* l = pm.Subprograms.Rows.Count; for (i = 0; i < l; i++) { row = pm.Subprograms.Rows[i]; xml = row["xml"].ToString(); if (StringHelper.GetXmlValue(xml, "弹出窗口") == "1") { relationDesc = row["glms"].ToString(); relationProId=row["glcxid"].ToString(); sb.Append(",[\""+row["id"].ToString()+"\",\""+relationDesc+"\",\""+relationProId+"\"]"); } } */ sb.Append("],[[]"); if (displaySubprogramCount == 0) { //sb.Append(""); //sb.Append("["); l = pm.Subprograms.Rows.Count; for (i = 0; i < l; i++) { row = pm.Subprograms.Rows[i]; xml = row["xml"].ToString(); if (StringHelper.GetXmlValue(xml, "弹出窗口") == "1") { //sb.Append(",[\""+pm.Subprograms.Rows[i]["glms"].ToString()+"\",\""+rowIndex.ToString()+"\",\""+pm.Subprograms.Rows[i]["glcxid"].ToString()+"\",\""+row["id"].ToString()+"\"]"); relationDesc = row["glms"].ToString(); relationProId=row["glcxid"].ToString(); sb.Append(",[\""+row["id"].ToString()+"\",\""+relationDesc+"\",\""+relationProId+"\"]"); } } } else { sb.Append(", null"); } sb.Append("]"); sb.Append("]"); rowIndex++; } ts = DateTime.Now - time1; runtime += ",foreach list:[ "+ts.TotalMilliseconds.ToString()+" ]"; sysData.Operator.CloseConnection(); ts=DateTime.Now-beginTime; runtime += ",bgcolor:[ "+step[0].ToString()+" ]"; runtime += ",element:[ "+step[1].ToString()+" ]"; runtime += ",all:"+ts.TotalMilliseconds.ToString(); sb.Append("],\"runTime\":\""+runtime+"\"}"); context.Response.ContentType = "text/plain"; context.Response.ContentEncoding = System.Text.Encoding.UTF8; context.Response.Write(sb.ToString()); } private string GetFormat(string formatString) { int i = formatString.IndexOf("format:("); if (i == -1) return ""; string s = formatString.Substring(i + 8, formatString.IndexOf(")", i) - i - 8); return s; } private string Format(string formatString, string valueString) { int i = formatString.IndexOf("format:("); if (i == -1) return valueString; if (valueString == "") return ""; string s = formatString.Substring(i + 8, formatString.IndexOf(")", i) - i - 8); string[] a = s.Split(','); string ret = valueString; switch (a[0]) { case "datetime": ret = DateTime.Parse(valueString).ToString(a[1]); break; case "number": double d; if (double.TryParse(valueString, out d)) ret = d.ToString(a[1]); else ret = ""; break; default: break; } return ret; } public void setDisplayFormat(int idx,string s) { //dim s1,fn,ft,i,k //if s= "" then // fn = "" //else // i = instr(s,"displayformat") // if i <1 then // fn= "" // else // i = i + 14 // k = instr(i,s,"(") // fn = mid(s,i,k-i) // i = instr(k,s,")") - 1 // ft = mid(s,k+1,i-k) // end if //end if //displayFormat(idx,0) = fn //displayFormat(idx,1) = ft } private string getDisplay(int idx,string v) { string r=v; //if displayFormat(idx,0) = "" then // r = v //else // select case displayFormat(idx,0) // case "date" // r = emisformatdate(displayFormat(idx,1),v) // case "money" // r = emisformatmoney(displayFormat(idx,1),v) // end select //end if return r; } private string emisformatmoney(string ft,string v) { string r; r = v; if (v != "") { string f = ft + ",,,"; string[] a = f.Split(','); if (a[0] == "") a[0] = "¥"; if (a[1] == "") a[1] = "1"; if (a[2] == "") a[2] = "-1"; if (a[1] == "1") r = Math.Round(Convert.ToDecimal(r),Convert.ToInt16(a[1])).ToString(); r = a[0] + r; } return r; } private string GetItemValue(string itemsString,string itemName) { int i = itemsString.IndexOf("\"" + itemName + "\" : \"") + itemName.Length + 6; int j = itemsString.IndexOf("\"",i); return itemsString.Substring(i, j - i); } private void GetTableHead(StringBuilder sb,ProgramManager pm,DataTable listElements) { sb.Append(""); if (displaySubprogramCount > 0) sb.Append(""); string[,] displayformat = new string[elementsCount,1]; string s,xml; string yc; int i; for(i=0;i< elementsCount;i++) { if (listElements.Rows[i]["YC"].ToString() != "1") { s = listElements.Rows[i]["YS"].ToString(); yc = ""; if (listElements.Rows[i]["HB"].ToString() == "1") joinCellJs = "UniteCol(" + (i + 1).ToString() + ",0);" + joinCellJs; sb.Append(""); setDisplayFormat(i, s); } } for(i =0;i" + pm.Subprograms.Rows[i]["glms"].ToString() + ""); else sb.Append(""); openSubprogramCount++; ; } } sb.Append(""); } public bool CustomTableHead(HttpContext context,StringBuilder sb,ProgramManager pm,DataTable listElements) { //================================================== //自定义表头 int i,ii; string[,] arr_head = new string[elementsCount,5]; string[] arr_temp; string s,xml; string desc; for(i=0;i< elementsCount;i++) { if (listElements.Rows[i]["YC"].ToString() != "1") { s = listElements.Rows[i]["ExtAttr"].ToString(); headMaxCel++; if (s != "") { s = StringHelper.GetXmlValue2(s, "titles"); if (s != "") { arr_temp = s.Split(new char[] { '\t'},StringSplitOptions.RemoveEmptyEntries); if (arr_temp.Length > headMaxRow) headMaxRow = arr_temp.Length; for (ii = 0; ii < arr_temp.Length; ii++) arr_head[i, ii] = arr_temp[ii]; } } } } if (headMaxRow == 0) return false; //context.Response.Write(headMaxRow.ToString()); //context.Response.End(); if (headMaxRow != 0) { for (i = 0; i < headMaxRow; i++) { sb.Append(""); if (i == 0) { sb.Append(""); } else { sb.Append(""); } for (ii = 0; ii < elementsCount; ii++) { if (listElements.Rows[i]["YC"].ToString() != "1") { desc = arr_head[ii, i]; if (desc == "") desc = listElements.Rows[ii]["kjms"].ToString(); if (i == headMaxRow - 1) { sb.Append(""); } else { sb.Append(""); } } } if (i == 0) { for (ii = 0; ii < subProgramCount; ii++) { xml = pm.Subprograms.Rows[ii]["xml"].ToString(); if (StringHelper.GetXmlValue(xml, "弹出窗口") == "1") { sb.Append(""); } } } sb.Append(""); } } return true; //===================================================== } public string getStyle(string styleText,string name,string defaultValue) { string s=styleText.ToLower()+";"; int i = s.IndexOf(name + ":"); if(i==-1) { return defaultValue; } else { i+=name.Length+1; int i2=s.IndexOf(";",i); return s.Substring(i,i2-i); } } public string escapeJson(string text) { string r = text.Replace("\\", "\\\\"); r = r.Replace("\r", "\\r"); r = r.Replace("\n", "\\n"); r = r.Replace("\"", "\\\""); r = r.Replace("/", "\\/"); r = r.Replace("\t", "\\t"); return r; } private string GetDatetimeCondition(string f,string v) { string s3=""; string[] a2 = v.Split(','); if (a2[0] != "") s3 = f + ">='" + a2[0] + "'"; if (a2[2] != "") s3 +=(s3==""?"":" and ")+ f + "<='" + a2[2] + " 23:59:00'"; if (s3 != "") s3= " (" + s3 + ") "; return s3; } private string GetNumberCondition(string f,string v,string c) { if (v == "") return f +" is null"; string[] a2 = v.Split(new char[] { '-', '-' }); string s3=""; if (a2.Length == 1) { switch (c) { case "notequ": s3=f + "<>" + v; break; case "equ": s3=f + "=" + v; break; case "gre": s3=f + ">" + v ; break; case "les": s3=f + "<" + v; break; case "greequ": s3=f + ">=" + v ; break; case "lesequ": s3=f + "<=" + v; break; default: s3=f + "=" + v; break; } } else { if (a2[0] != "") s3 = f + ">=" + a2[0]; if ( a2[1]!="") s3= (s3==""?"":s3 + " and ") + f + "<=" + a2[1]; } return s3; } private string GetStringCondition(string f,string v,string comp) { string r=null; if (v == "") return f +" is null"; switch (comp) { case "notequ": r=f + "<>'" + v + "'"; break; case "equ": r=f + "='" + v + "'"; break; case "gre": r=f + ">'" + v + "'"; break; case "les": r=f + "<'" + v + "'"; break; case "greequ": r=f + ">='" + v + "'"; break; case "lesequ": r=f + "<='" + v + "'"; break; case "notlik": r=f + " not like '%" + v + "%'"; break; default: r=f + " like '%" + v + "%'"; break; } return r; } public bool IsReusable { get { return false; } } }
" + listElements.Rows[i]["kjms"].ToString() + "" + pm.Subprograms.Rows[i]["glms"].ToString() + "
"); sb.Append(desc + ""); sb.Append("" + desc + ""+pm.Subprograms.Rows[i]["glms"].ToString()+"