Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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 = "";
    }
Exemplo n.º 4
0
    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));
        }
    }
Exemplo n.º 5
0
        //带临时过滤条件的过滤
        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);
        }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
0
    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);
    }