<%@ WebHandler Language="C#" Class="DataShow" %> 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"); string ver = "2020245"; if (context.Session["userid"] == null) { LoginManager lm = new LoginManager(context); if (!lm.VerifyIdentity()) { context.Response.Write("会话丢失,请重新登陆!"); context.Response.End(); } } string wwwroot = context.Request.ApplicationPath; string menuId = context.Request.QueryString["proid"]==null?"":context.Request.QueryString["proid"].ToString(); string menups = menuId; string userId = context.Session["userid"].ToString(); string stateKey = ""; if (!DataManager.IsNumber(menuId)) { menuId = DataManager.Decrypt(menuId); stateKey = StringHelper.GetRightString(menuId); menuId = StringHelper.GetLeftString(menuId); } PageIdManager pim = new PageIdManager(); string instanceId = null; if (context.Request.QueryString["id"] != null) { pim.Init(context.Request.QueryString["id"].ToString()); menuId = pim.MenuID; instanceId = pim.Key; } string userAgent = context.Request.UserAgent.ToLower(); bool isMobile=false; if (userAgent.Contains("android") || userAgent.Contains("iphone") || userAgent.Contains("ipad")) isMobile = true; if (wwwroot == "/") wwwroot = ""; string ip = "";// HttpContext.Current.Request.UserHostAddress; string url_dt = DateTime.Now.Ticks.ToString(); string rand = DataManager.GetToken(userId,url_dt,ip); string ThemePath = wwwroot + "/Themes/" + context.Session["theme"].ToString(); string buttonGroupId = (context.Request.QueryString["bgid"] == null ? "" : context.Request.QueryString["bgid"].ToString()); DataManager sysData = new DataManager(); sysData.Operator.OpenConnection(); InstanceManager instManager = new InstanceManager(context,sysData,menuId); instManager.StateKey = stateKey; /* if (context.Session["userid"].ToString() == "400002") { context.Response.Write(instManager.GetStateValue("dc")); context.Response.End(); } */ instManager.InstanceId = instanceId; string programId = instManager.ProgramID; ProgramManager pm = instManager.Program; DataTable listElements = pm.ListElements; DataRow businessDataRow = null; TagManager tagManger = new TagManager(); tagManger.Context = context; elementsCount = listElements.Rows.Count; subProgramCount = pm.Subprograms.Rows.Count; int i,l,j,k,ii; string s,s2,s3,web,param,s4; string tjfs; string[] arr_temp; string[] arr_temp1; string url="", xml, str_bg, elementType; string primaryKeyValue; string primaryKey, foreignKey, relationDesc, relationCondition; DataTable listDataTable; string systemName = DataManager.GetSystemName(); string str1 = "", str, pagec="", reltype; int colspan; string subPrimaryKeyValue; DataTable dt1 = null; bool isExistDownload = false; bool first,last,b1; HttpCookie cookie = context.Request.Cookies.Get("ps" + menuId); int PageSize; if (cookie == null) { PageSize = instManager.PageSize; } else { PageSize= int.Parse(cookie.Value); instManager.PageSize = PageSize; } cookie = context.Request.Cookies.Get("pk" + menuId); string spk = ""; if (cookie != null) { spk = ","+cookie.Value.Replace("%2C", ",")+","; } string mini = (context.Request.QueryString["mini"]==null ? instManager.GetStateValue("mini") : context.Request.QueryString["mini"].ToString()); if (context.Request.QueryString["qcond"] != null) { s = context.Request.QueryString["qcond"].ToString(); s =DataManager.SqlDecode(s); instManager.AllowSaveState = true; instManager.QueryCondition = s; } if (context.Request.QueryString["dcond"] != null) { s = context.Request.QueryString["dcond"].ToString(); s = DataManager.SqlDecode(s); instManager.DefaultCondition = s; } if (context.Request.QueryString["dcond2"] != null) { s = context.Request.QueryString["dcond2"].ToString(); s = DataManager.SqlDecode(s); instManager.DefaultCondition2 = s; } string pageTitle = pm.Properties["bt"].ToString(); if (instManager.FlowNode != "") { //pageTitle += "-" + instManager.Flow.GetNodeProperty(instManager.Flow.CurrentNodeID, "jdmc"); } if (context.Request.QueryString["var"] != null) { instManager.SetStateValue("vr", context.Request.QueryString["var"].ToString()); } if (context.Request.QueryString["cpara"] != null) { s = context.Request.QueryString["cpara"].ToString(); s = DataManager.UrlDecode(s); instManager.SetStateValue("vr",s ); } string gstat = "",gstatf=""; if (context.Request.QueryString["gstat"] != null) { gstat = DataManager.UrlDecode( context.Request.QueryString["gstat"].ToString()); gstatf = context.Request.QueryString["gstatf"].ToString(); instManager.SetStateValue("gs", gstat); instManager.SetStateValue("gsf", gstatf); } else { gstat = instManager.GetStateValue("gs"); gstatf = instManager.GetStateValue("gsf"); } string sessionVar = instManager.GetStateValue("vr"); if (buttonGroupId != "") { instManager.ButtonGroupID = buttonGroupId; } //if (context.Session["usercnname"].ToString() == "管理员") //{ //context.Response.Write(instManager.ListSqlWhere); //context.Response.End(); //} string programJson = pm.Properties["json"].ToString(); ProgramJson progJson =Newtonsoft.Json.JsonConvert.DeserializeObject("{"+programJson+"}"); StringBuilder sb = new StringBuilder(); //if (instManager.PageCount > 1) //{ // if (instManager.CurrentPage == 1) // { // str = "disabled"; // first = true; // } // else // { // str = "style='cursor:pointer;'"; // first = false; // } // if (instManager.CurrentPage == instManager.PageCount) // { // str1 = "disabled"; // last = true; // } // else // { // str1 = "style='cursor:pointer;'"; // last = false; // } // // pagec = "
已选0 全部|首页|上页|下页|末页
"; //} //else //{ // // pagec = "
已选0 全部|首页|上页|下页|末页
"; //} s = instManager.SqlOrder; string sortColumn = ""; string sortOrder = ""; if (s != "") { //s = s.Replace(",", " "); //arr_temp = s.Split(' '); //sortColumn = arr_temp[0]; //sortOrder = arr_temp[1]; } //sb.Append(instManager.GetListSqlWhere()); /* if (context.Session["superman"].ToString() == "1") { context.Response.Write(instManager.DefaultCondition + "

"); context.Response.Write(instManager.ListSqlWhere); context.Response.End(); } */ sb.AppendLine(""); sb.AppendLine(""); string DZDYYM = pm.Properties["DZDYYM"].ToString(); sb.Append(""); sb.AppendLine(""); sb.AppendLine(""); sb.AppendLine(""); sb.AppendLine(""); sb.AppendLine(""); sb.AppendLine(""); sb.AppendLine("" + pageTitle + " - 列表"); sb.AppendLine(""); sb.AppendLine(""); sb.AppendLine(""); // string pageHeight = "0"; pageHeight = "30"; //sb.Append("
"+pageTitle+"
"); s = StringHelper.GetParamValue(sessionVar, "objlist"); if (s != "") { arr_temp = s.Split(','); BusinessObjectManager bom = new BusinessObjectManager(instManager.SystemDataManager); for (i = 0; i < arr_temp.Length; i++) { bom.MenuID = null; bom.ObjectID = arr_temp[i]; if(bom.MenuID!=menuId) sb.Append("  "); } } else { //sb.Append(" "); } //sb.Append(""); //sb.Append(pagec); if (buttonGroupId == "") buttonGroupId = instManager.ButtonGroupID; //context.Response.Write(buttonGroupId); //context.Response.End(); if (buttonGroupId != "") { //tempStr = ""; //tempStr += (mini==""?"":"")+"
"+pagec+"共" + instManager.RecordCount.ToString() + "条 " + instManager.CurrentPage + "/" + instManager.PageCount + "页转到
"; ToolBar2 toolbar = new ToolBar2(sysData); sb.Append("
"); s = progJson.rowEdit ? "134" : "112"; if(isMobile) sb.Append("
"); else sb.Append("
"); sb.Append(toolbar.GetHtml(buttonGroupId, "查询", "", wwwroot,instManager.MenuID,userId)); sb.Append("
"); //
sb.Append(""); if (!isMobile) { sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); if(progJson.rowEdit) sb.Append("
"); sb.Append("
"); sb.Append("
"); } sb.Append("
"); sb.Append("
"); } // string sTJFS = pm.Properties["TJFS"].ToString(); double[] var_sum,var_avg,var_max,var_min; double var_count,var_num; string html; var_sum = new double[elementsCount]; var_avg = new double[elementsCount]; var_max = new double[elementsCount]; var_min = new double[elementsCount]; if (sTJFS!= "") { for (i=0;i
"); string sYSF = ""; sb.Append(""); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
查询条件 
"); sb.Append("
"); s = instManager.GetStateValue("lqv").Replace("\"",""); list_ls_eles += "]"; sb.Append(""); sb.Append("
"); // sb.Append("
"); //div_content sb.Append("
"); if (isMobile) { sb.Append("
"); sb.Append("
"); sb.Append("
每页显示
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); } else { sb.Append("
每页显示
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); sb.Append("
"); } sb.Append("
"); // sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sysData.Operator.CloseConnection(); context.Response.Write(sb.ToString()); } 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("" + listElements.Rows[i]["kjms"].ToString() + ""); setDisplayFormat(i, s); } } for(i =0;i" + pm.Subprograms.Rows[i]["glms"].ToString() + ""); else sb.Append("" + pm.Subprograms.Rows[i]["glms"].ToString() + ""); 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(""); sb.Append(desc + ""); sb.Append(""); } else { sb.Append("" + desc + ""); } } } if (i == 0) { for (ii = 0; ii < subProgramCount; ii++) { xml = pm.Subprograms.Rows[ii]["xml"].ToString(); if (StringHelper.GetXmlValue(xml, "弹出窗口") == "1") { sb.Append(""+pm.Subprograms.Rows[i]["glms"].ToString()+""); } } } sb.Append(""); } } return true; //===================================================== } public bool IsReusable { get { return false; } } }