private void tbtFilter_Click(object sender, EventArgs e) { SetViewFilter frm = new SetViewFilter(); frm.m_View = View; if (frm.ShowDialog() != DialogResult.OK) { return; } m_TempViewFilterMgr = frm.m_ViewFilterMgr; LoadData(); }
void GetData() { string sData = ""; int iCount = 0; if (Session["ViewFilterMgr"] != null) { SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; ViewFilterMgr.IsLoad = true; //避免从数据库装载 List <CBaseObject> lstObj = ViewFilterMgr.GetList(); foreach (CBaseObject obj in lstObj) { CViewFilter ViewFilter = (CViewFilter)obj; CColumn col = (CColumn)m_Table.ColumnMgr.Find(ViewFilter.FW_Column_id); if (col == null) { continue; } sData += string.Format("{{ \"id\": \"{0}\",\"AndOr\":\"{1}\",\"Column\":\"{2}\",\"Sign\":\"{3}\", \"Val\":\"{4}\" }}," , ViewFilter.Id , ViewFilter.AndOr.Equals("and", StringComparison.OrdinalIgnoreCase) ? "与" : "或" , col.Name , ViewFilter.GetSignName() , ViewFilter.Val); iCount++; } } } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}" , sData, iCount); Response.Write(sJson); }
protected void btAdd_Click(object sender, EventArgs e) { if (Session["ViewFilterMgr"] == null) { SortedList <Guid, CViewFilterMgr> sortObj0 = new SortedList <Guid, CViewFilterMgr>(); CViewFilterMgr ViewFilterMgr0 = new CViewFilterMgr(); ViewFilterMgr0.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); sortObj0.Add(m_View.Id, ViewFilterMgr0); Session["ViewFilterMgr"] = sortObj0; } SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (!sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr0 = new CViewFilterMgr(); ViewFilterMgr0.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); sortObj.Add(m_View.Id, ViewFilterMgr0); } CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; CViewFilter Filter = new CViewFilter(); Filter.Ctx = ViewFilterMgr.Ctx; Filter.UI_View_id = m_View.Id; Filter.AndOr = cbAndOr.SelectedItem.Value; Filter.FW_Table_id = m_Table.Id; Filter.FW_Column_id = new Guid(cbColumn.SelectedItem.Value); Filter.Sign = (CompareSign)cbSign.SelectedIndex; Filter.Val = txtVal.Text.Trim(); Filter.Idx = m_View.ViewFilterMgr.GetList().Count; ViewFilterMgr.AddNew(Filter); txtVal.Text = ""; }
void Delete() { string delid = Request["delid"]; if (string.IsNullOrEmpty(delid)) { Response.Write("请选择一项!"); return; } if (Session["ViewFilterMgr"] == null) { return; } SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; ViewFilterMgr.Delete(new Guid(delid)); } }
//带临时过滤条件的过滤 public List <CBaseObject> FilterByView(CView view, CViewFilterMgr ViewFilterMgr) { List <CViewFilter> sortFilter = new List <CViewFilter>(); List <CBaseObject> lstFilter = ViewFilterMgr.GetList(); foreach (CBaseObject objF in lstFilter) { CViewFilter vf = (CViewFilter)objF; sortFilter.Add(vf); } sortFilter.Sort();//按索引idx排序 List <CBaseObject> lstRet = new List <CBaseObject>(); List <CBaseObject> lstObj = FilterByView(view); if (sortFilter.Count == 0) { return(lstObj); } foreach (CBaseObject obj in lstObj) { bool bPass = false; //所有通过 bool bPassAnd = true; //上一个and通过 if (sortFilter.Count == 0) { bPass = true; } else { for (int i = 0; i < sortFilter.Count; i++) { CViewFilter vf = (CViewFilter)sortFilter[i]; if (i == 0)//第一个忽略and or { if (!obj.FilterByView(vf)) { bPassAnd = false; } } else { if (vf.AndOr.Equals("and", StringComparison.OrdinalIgnoreCase)) { if (!bPassAnd) //本段落不通过,转向下一个段落 { continue; } if (!obj.FilterByView(vf)) { bPassAnd = false; } } else // or { if (bPassAnd) //本段落全部通过,则无需检验其他段落 { bPass = true; break; } bPassAnd = true;//一个段落开始 if (!obj.FilterByView(vf)) { bPassAnd = false; } } } if (i == sortFilter.Count - 1) //最后一个 { if (bPassAnd) { bPass = true; } break; } } } if (bPass) { lstRet.Add(obj); } } return(lstRet); }
void OutPut() { DateTime dtNow = DateTime.Now; string sNewFile = string.Format("{0}{1}{2}{3}{4}{5}.xls", dtNow.Year, dtNow.Month, dtNow.Day, dtNow.Hour, dtNow.Minute, dtNow.Second); string sDir = Server.MapPath(ConfigurationManager.AppSettings["VirtualDir"] + "/uploadfiles/"); if (!Directory.Exists(sDir)) { Directory.CreateDirectory(sDir); } string sFileSrc = Server.MapPath("templet/grid.xls"); string sFileDst = sDir + sNewFile; if (File.Exists(sFileDst)) { File.Delete(sFileDst); } File.Copy(sFileSrc, sFileDst); string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties='Excel 8.0;HDR=YES;IMEX=0';" + "data source=" + sFileDst; OleDbConnection conn = new OleDbConnection(connStr); try { conn.Open(); } catch { return; } int page = Convert.ToInt32(Request.Params["page"]); int pageSize = Convert.ToInt32(Request.Params["pagesize"]); CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId); if (BaseObjectMgr == null) { BaseObjectMgr = new CBaseObjectMgr(); BaseObjectMgr.TbCode = m_Table.Code; BaseObjectMgr.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); } List <CBaseObject> lstObj; if (Request["Filter"] == null || Session["ViewFilterMgr"] == null) { lstObj = BaseObjectMgr.FilterByView(m_View); //清空过滤条件 Session["ViewFilterMgr"] = null; } else { //过滤查询 SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; lstObj = BaseObjectMgr.FilterByView(m_View, ViewFilterMgr); } else { lstObj = BaseObjectMgr.FilterByView(m_View); } } int totalPage = lstObj.Count % pageSize == 0 ? lstObj.Count / pageSize : lstObj.Count / pageSize + 1; // 计算总页数 string sCols = ""; string sColV = ""; //创建表 string sCreate = string.Format("CREATE TABLE [{0}] (", m_Table.Name); List <CColumn> lstCols = GetColList(); SortedList <string, CColumn> sortCols = new SortedList <string, CColumn>(); foreach (CColumn col in lstCols) { sortCols.Add(col.Name, col); sCols += string.Format("[{0}],", col.Name); sColV += "?,"; sCreate += string.Format("[{0}] varchar(255),", col.Name); } sCols = sCols.TrimEnd(",".ToCharArray()); sColV = sColV.TrimEnd(",".ToCharArray()); sCreate = sCreate.TrimEnd(",".ToCharArray()); sCreate += ")"; OleDbCommand cmdC = new OleDbCommand(sCreate, conn); try { cmdC.ExecuteNonQuery(); } catch { conn.Close(); return; } int index = (page - 1) * pageSize; // 开始记录数 for (int i = index; i < pageSize + index && i < lstObj.Count; i++) { CBaseObject obj = (CBaseObject)lstObj[i]; string sIns = string.Format("insert into [{0}] ({1}) values ({2})", m_Table.Name, sCols, sColV); CCompany Company = (CCompany)Global.GetCtx(Session["TopCompany"].ToString()).CompanyMgr.Find(m_User.B_Company_id); OleDbCommand cmd = new OleDbCommand(sIns, conn); foreach (CBaseObject objC in m_Table.ColumnMgr.GetList()) { CColumn col = (CColumn)objC; if (!sortCols.ContainsKey(col.Name)) { continue; } //判断禁止权限字段 if (m_sortRestrictColumnAccessType.ContainsKey(col.Id)) { AccessType accessType = m_sortRestrictColumnAccessType[col.Id]; if (accessType == AccessType.forbide) { string sVal = ""; cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); continue; } } // if (col.ColType == ColumnType.object_type) { string sVal = ""; if (obj.GetColValue(col) != null) { sVal = "long byte"; } cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); } else if (col.ColType == ColumnType.ref_type) { CTable RefTable = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(col.RefTable); if (RefTable == null) { continue; } CColumn RefCol = (CColumn)RefTable.ColumnMgr.Find(col.RefCol); CColumn RefShowCol = (CColumn)RefTable.ColumnMgr.Find(col.RefShowCol); object objVal = obj.GetColValue(col); string sVal = ""; Guid guidParentId = Guid.Empty; if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal) { object objVal2 = BaseObjectMgr.m_Parent.GetColValue(RefShowCol); if (objVal2 != null) { sVal = objVal2.ToString(); } } else { CBaseObjectMgr objRefMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(RefTable.Code, guidParentId); if (objRefMgr != null) { CBaseObject objCache = objRefMgr.FindByValue(RefCol, objVal); if (objCache != null) { object objVal2 = objCache.GetColValue(RefShowCol); if (objVal2 != null) { sVal = objVal2.ToString(); } } } else { objRefMgr = new CBaseObjectMgr(); objRefMgr.TbCode = RefTable.Code; objRefMgr.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); string sWhere = string.Format(" {0}=?", RefCol.Code); List <DbParameter> cmdParas = new List <DbParameter>(); cmdParas.Add(new DbParameter(RefCol.Code, obj.GetColValue(col))); List <CBaseObject> lstObj2 = objRefMgr.GetList(sWhere, cmdParas); if (lstObj2.Count > 0) { CBaseObject obj2 = lstObj2[0]; object objVal2 = obj2.GetColValue(RefShowCol); if (objVal2 != null) { sVal = objVal2.ToString(); } } } } cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); } else { string sVal = ""; object objVal = obj.GetColValue(col); if (objVal != null) { sVal = objVal.ToString(); } //转义特殊字符 Util.ConvertJsonSymbol(ref sVal); cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); } } try { cmd.ExecuteNonQuery(); } catch { conn.Close(); return; } } conn.Close(); Response.Write(sNewFile); }
void GetData() { int page = Convert.ToInt32(Request.Params["page"]); int pageSize = Convert.ToInt32(Request.Params["pagesize"]); m_iCurPage = page; m_iCurPageSize = pageSize; CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId); if (BaseObjectMgr == null) { BaseObjectMgr = new CBaseObjectMgr(); BaseObjectMgr.TbCode = m_Table.Code; BaseObjectMgr.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); } string sData = ""; List <CBaseObject> lstObj; if (Request["Filter"] == null || Session["ViewFilterMgr"] == null) { lstObj = BaseObjectMgr.FilterByView(m_View); //清空过滤条件 Session["ViewFilterMgr"] = null; } else { //过滤查询 SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; lstObj = BaseObjectMgr.FilterByView(m_View, ViewFilterMgr); } else { lstObj = BaseObjectMgr.FilterByView(m_View); } } int totalPage = lstObj.Count % pageSize == 0 ? lstObj.Count / pageSize : lstObj.Count / pageSize + 1; // 计算总页数 int index = (page - 1) * pageSize; // 开始记录数 for (int i = index; i < pageSize + index && i < lstObj.Count; i++) { CBaseObject obj = (CBaseObject)lstObj[i]; string sRow = ""; foreach (CBaseObject objC in m_Table.ColumnMgr.GetList()) { CColumn col = (CColumn)objC; //判断禁止权限字段 if (m_sortRestrictColumnAccessType.ContainsKey(col.Id)) { AccessType accessType = m_sortRestrictColumnAccessType[col.Id]; if (accessType == AccessType.forbide) { string sVal = ""; sRow += string.Format("\"{0}\":\"{1}\",", col.Code, sVal); continue; } } // if (col.ColType == ColumnType.object_type) { string sVal = ""; if (obj.GetColValue(col) != null) { sVal = "long byte"; } sRow += string.Format("\"{0}\":\"{1}\",", col.Code, sVal); } else if (col.ColType == ColumnType.ref_type) { CTable RefTable = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(col.RefTable); if (RefTable == null) { continue; } CColumn RefCol = (CColumn)RefTable.ColumnMgr.Find(col.RefCol); CColumn RefShowCol = (CColumn)RefTable.ColumnMgr.Find(col.RefShowCol); object objVal = obj.GetColValue(col); string sVal = ""; Guid guidParentId = Guid.Empty; if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal) { object objVal2 = BaseObjectMgr.m_Parent.GetColValue(RefShowCol); if (objVal2 != null) { sVal = objVal2.ToString(); } } else { CBaseObjectMgr objRefMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(RefTable.Code, guidParentId); if (objRefMgr != null) { CBaseObject objCache = objRefMgr.FindByValue(RefCol, objVal); if (objCache != null) { object objVal2 = objCache.GetColValue(RefShowCol); if (objVal2 != null) { sVal = objVal2.ToString(); } } } else { objRefMgr = new CBaseObjectMgr(); objRefMgr.TbCode = RefTable.Code; objRefMgr.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); string sWhere = string.Format(" {0}=?", RefCol.Code); List <DbParameter> cmdParas = new List <DbParameter>(); cmdParas.Add(new DbParameter(RefCol.Code, obj.GetColValue(col))); List <CBaseObject> lstObj2 = objRefMgr.GetList(sWhere, cmdParas); if (lstObj2.Count > 0) { CBaseObject obj2 = lstObj2[0]; object objVal2 = obj2.GetColValue(RefShowCol); if (objVal2 != null) { sVal = objVal2.ToString(); } } } } sRow += string.Format("\"{0}\":\"{1}\",", col.Code, sVal); } else { string sVal = ""; object objVal = obj.GetColValue(col); if (objVal != null) { sVal = objVal.ToString(); } //转义特殊字符 Util.ConvertJsonSymbol(ref sVal); sRow += string.Format("\"{0}\":\"{1}\",", col.Code, sVal); } } sRow = sRow.TrimEnd(",".ToCharArray()); sRow = "{" + sRow + "},"; sData += sRow; } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}" , sData, lstObj.Count); Response.Write(sJson); }