void viewGrid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (View == null)
            {
                return;
            }
            if (viewGrid.dataGridView.CurrentRow == null)
            {
                return;
            }
            CViewDetail vd = (CViewDetail)View.ViewDetailMgr.GetFirstObj();

            viewDetailGrid.ViewDetail = vd;
            CTable table = (CTable)Program.Ctx.TableMgr.Find(vd.FW_Table_id);

            if (table == null)
            {
                return;
            }
            CBaseObject    obj    = (CBaseObject)viewGrid.dataGridView.CurrentRow.Tag;
            CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, obj.Id);

            if (objMgr == null)
            {
                objMgr = obj.GetSubObjectMgr(table.Code, typeof(CBaseObjectMgr));
            }
            if (objMgr == null)
            {
                CColumn colP = (CColumn)obj.Table.ColumnMgr.Find(vd.PrimaryKey);
                if (colP == null)
                {
                    return;
                }
                CColumn colF = (CColumn)table.ColumnMgr.Find(vd.ForeignKey);
                if (colF == null)
                {
                    return;
                }
                object objVal = obj.GetColValue(colP);
                string sVal   = objVal.ToString();
                bool   bIsStr = false;
                if (colP.ColType == ColumnType.string_type ||
                    colP.ColType == ColumnType.text_type ||
                    colP.ColType == ColumnType.ref_type ||
                    colP.ColType == ColumnType.guid_type ||
                    colP.ColType == ColumnType.datetime_type)
                {
                    sVal   = string.Format("'{0}'", sVal);
                    bIsStr = true;
                }

                objMgr          = new CBaseObjectMgr();
                objMgr.Ctx      = Program.Ctx;
                objMgr.TbCode   = table.Code;
                objMgr.m_Parent = obj;
                string sWhere = string.Format(" {0}={1}", colF.Code, bIsStr ? sVal : objVal);
                objMgr.Load(sWhere, false);
            }
            viewDetailGrid.BaseObjectMgr = objMgr;
        }
Beispiel #2
0
        //界面公式取值
        public object GetSelectValue(string sColCode)
        {
            if (treeView.SelectedNode == null)
            {
                return(null);
            }
            CBaseObject obj = (CBaseObject)treeView.SelectedNode.Tag;

            CColumn col = obj.Table.ColumnMgr.FindByCode(sColCode);

            if (col == null)
            {
                return(null);
            }
            return(obj.GetColValue(col));
        }
Beispiel #3
0
        //界面公式取值
        public object GetSelectValue(string sColCode)
        {
            if (dataGridView.CurrentRow == null)
            {
                return(null);
            }
            CColumn col = BaseObjectMgr.Table.ColumnMgr.FindByCode(sColCode);

            if (col == null)
            {
                return(null);
            }
            CBaseObject obj = (CBaseObject)dataGridView.CurrentRow.Tag;

            return(obj.GetColValue(col));
        }
Beispiel #4
0
        //界面公式取值
        public object GetSelectValue(string sColCode)
        {
            if (comboBox.SelectedItem == null)
            {
                return(null);
            }
            DataItem    item = (DataItem)comboBox.SelectedItem;
            CBaseObject obj  = (CBaseObject)item.Data;

            CColumn col = obj.Table.ColumnMgr.FindByCode(sColCode);

            if (col == null)
            {
                return(null);
            }
            return(obj.GetColValue(col));
        }
Beispiel #5
0
    void GetDetail()
    {
        CBaseObject objP  = (CBaseObject)Session["AddMasterDetailViewRecord"];
        CViewDetail vd    = (CViewDetail)m_View.ViewDetailMgr.GetFirstObj();
        CTable      table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(vd.FW_Table_id);

        //判断表权限
        AccessType tableAccessType = m_User.GetTableAccess(table.Id);

        if (tableAccessType == AccessType.forbide)
        {
            Response.Write("没有表权限!");
            return;
        }
        else if (tableAccessType == AccessType.read)
        {
        }
        else
        {
        }
        m_sortDetailRestrictColumnAccessType = m_User.GetRestrictColumnAccessTypeList(table);
        //
        CBaseObjectMgr objMgr = objP.GetSubObjectMgr(table.Code, typeof(CBaseObjectMgr));

        string  sData = "";
        CColumn colF  = (CColumn)table.ColumnMgr.Find(vd.ForeignKey);

        if (colF == null)
        {
            return;
        }
        List <CBaseObject> lstObj = objMgr.GetList();

        foreach (CBaseObject obj in lstObj)
        {
            string sRow = "";
            foreach (CBaseObject objC in table.ColumnMgr.GetList())
            {
                CColumn col = (CColumn)objC;
                //判断禁止权限字段
                if (m_sortDetailRestrictColumnAccessType.ContainsKey(col.Id))
                {
                    AccessType accessType = m_sortDetailRestrictColumnAccessType[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;
                    }
                    CBaseObjectMgr objRefMgr = new CBaseObjectMgr();
                    objRefMgr.TbCode = RefTable.Code;
                    objRefMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());

                    CColumn            RefCol     = (CColumn)RefTable.ColumnMgr.Find(col.RefCol);
                    CColumn            RefShowCol = (CColumn)RefTable.ColumnMgr.Find(col.RefShowCol);
                    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);
                    string             sVal    = "";
                    if (lstObj2.Count > 0)
                    {
                        CBaseObject obj2   = lstObj2[0];
                        object      objVal = obj2.GetColValue(RefShowCol);
                        if (objVal != null)
                        {
                            sVal = objVal.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);
    }
Beispiel #6
0
        private void tbtNew_Click(object sender, EventArgs e)
        {
            SelViewType frmVT = new SelViewType();

            if (frmVT.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            CView obj = null;

            if (frmVT.m_enumViewType == enumViewType.Single)
            {
                SingleViewInfo frm = new SingleViewInfo();
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                obj = frm.m_View;
            }
            else if (frmVT.m_enumViewType == enumViewType.MasterDetail)
            {
                MasterDetailViewInfo frm = new MasterDetailViewInfo();
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                obj = frm.m_View;
            }
            else
            {
                MultMasterDetailViewInfo frm = new MultMasterDetailViewInfo();
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                obj = frm.m_View;
            }

            CBaseObjectMgr BaseObjectMgr = Program.Ctx.ViewMgr;

            dataGridView.Rows.Add(1);
            DataGridViewRow row = dataGridView.Rows[dataGridView.Rows.Count - 1];

            row.Tag = obj;
            foreach (DataGridViewColumn column in dataGridView.Columns)
            {
                CColumn col = (CColumn)column.Tag;
                if (col.ColType == ColumnType.object_type)
                {
                    if (obj.GetColValue(col) != null)
                    {
                        row.Cells[column.Name].Value = "long byte";
                    }
                }
                else if (col.ColType == ColumnType.ref_type)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                    if (table == null)
                    {
                        continue;
                    }
                    CColumn RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                    CColumn RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                    object  objVal     = obj.GetColValue(col);


                    Guid guidParentId = Guid.Empty;
                    if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal)
                    {
                        row.Cells[column.Name].Value = BaseObjectMgr.m_Parent.GetColValue(RefShowCol);
                    }
                    else
                    {
                        CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                        if (objMgr != null)
                        {
                            CBaseObject objCache = objMgr.FindByValue(RefCol, objVal);
                            if (objCache != null)
                            {
                                row.Cells[column.Name].Value = objCache.GetColValue(RefShowCol);
                            }
                        }
                        else
                        {
                            objMgr        = new CBaseObjectMgr();
                            objMgr.TbCode = table.Code;
                            objMgr.Ctx    = Program.Ctx;

                            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 = objMgr.GetList(sWhere, cmdParas);
                            if (lstObj2.Count > 0)
                            {
                                CBaseObject obj2 = lstObj2[0];
                                row.Cells[column.Name].Value = obj2.GetColValue(RefShowCol);
                            }
                        }
                    }
                }
                else
                {
                    row.Cells[column.Name].Value = obj.GetColValue(col);
                }
            }
            dataGridView.ClearSelection();
            row.Selected          = true;
            row.Cells[1].Selected = true;
        }
        public bool Save()
        {
            if (!Validate())
            {
                return(false);
            }

            if (baseObject == null) //新建
            {
                baseObject        = BaseObjectMgr.CreateBaseObject();
                baseObject.Ctx    = BaseObjectMgr.Ctx;
                baseObject.TbCode = BaseObjectMgr.TbCode;
                bool bHasVisible = false;
                foreach (CBaseObject obj in ViewDetail.ColumnInViewDetailMgr.GetList())
                {
                    CColumnInViewDetail civd = (CColumnInViewDetail)obj;
                    CColumn             col  = (CColumn)BaseObjectMgr.Table.ColumnMgr.Find(civd.FW_Column_id);
                    if (col == null)
                    {
                        continue;
                    }
                    //判断禁止和只读权限字段
                    if (m_sortRestrictColumnAccessType.ContainsKey(col.Id))
                    {
                        AccessType accessType = m_sortRestrictColumnAccessType[col.Id];
                        if (accessType == AccessType.forbide)
                        {
                            continue;
                        }
                        else if (accessType == AccessType.read)
                        {
                            continue;
                        }
                    }
                    //

                    if (col.Code.Equals("id", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    else if (col.Code.Equals("Created", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase))
                    {
                        baseObject.SetColValue(col, Program.User.Id);
                        continue;
                    }
                    else if (col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    else if (col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase))
                    {
                        baseObject.SetColValue(col, Program.User.Id);
                        continue;
                    }


                    Control[] ctrls = this.Controls.Find(col.Code, false);
                    if (ctrls.Length > 0)
                    {
                        IColumnCtrl ctrl = (IColumnCtrl)ctrls[0];
                        baseObject.SetColValue(col, ctrl.GetValue());
                        bHasVisible = true;
                    }
                }
                //外键关联
                CBaseObject objP = BaseObjectMgr.m_Parent;
                CColumn     colP = (CColumn)objP.Table.ColumnMgr.Find(viewDetail.PrimaryKey);
                CColumn     colF = (CColumn)BaseObjectMgr.Table.ColumnMgr.Find(viewDetail.ForeignKey);
                BaseObject.SetColValue(colF, objP.GetColValue(colP));

                if (!bHasVisible)
                {
                    MessageBox.Show("没有可修改字段!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return(false);
                }
                if (!BaseObjectMgr.AddNew(baseObject, true))
                {
                    MessageBox.Show("添加失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return(false);
                }
            }
            else //修改
            {
                List <CBaseObject> lstCol = BaseObjectMgr.Table.ColumnMgr.GetList();
                bool bHasVisible          = false;
                foreach (CBaseObject obj in lstCol)
                {
                    CColumn col = (CColumn)obj;
                    //判断禁止和只读权限字段
                    if (m_sortRestrictColumnAccessType.ContainsKey(col.Id))
                    {
                        AccessType accessType = m_sortRestrictColumnAccessType[col.Id];
                        if (accessType == AccessType.forbide)
                        {
                            continue;
                        }
                        else if (accessType == AccessType.read)
                        {
                            continue;
                        }
                    }
                    //

                    if (col.Code.Equals("id", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    else if (col.Code.Equals("Created", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    else if (col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase))
                    {
                        baseObject.SetColValue(col, DateTime.Now);
                        continue;
                    }
                    else if (col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase))
                    {
                        baseObject.SetColValue(col, Program.User.Id);
                        continue;
                    }


                    Control[] ctrls = this.Controls.Find(col.Code, false);
                    if (ctrls.Length > 0)
                    {
                        IColumnCtrl ctrl = (IColumnCtrl)ctrls[0];
                        baseObject.SetColValue(col, ctrl.GetValue());
                        bHasVisible = true;
                    }
                }
                if (!bHasVisible)
                {
                    MessageBox.Show("没有可修改字段!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return(false);
                }
                if (!BaseObjectMgr.Update(baseObject, true))
                {
                    MessageBox.Show("修改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return(false);
                }
            }
            return(true);
        }
Beispiel #8
0
        private void tbtNew_Click(object sender, EventArgs e)
        {
            RecordWindow frm = new RecordWindow(BaseObjectMgr, null);

            if (frm.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            CBaseObject obj = frm.BaseObject;

            dataGridView.Rows.Add(1);
            DataGridViewRow row = dataGridView.Rows[dataGridView.Rows.Count - 1];

            row.Tag = obj;
            foreach (DataGridViewColumn column in dataGridView.Columns)
            {
                //工作流
                if (column.Name.Equals("workflow"))
                {
                    continue;
                }
                //
                CColumn col = (CColumn)column.Tag;
                if (col.ColType == ColumnType.object_type)
                {
                    if (obj.GetColValue(col) != null)
                    {
                        row.Cells[column.Name].Value = "long byte";
                    }
                }
                else if (col.ColType == ColumnType.ref_type)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                    if (table == null)
                    {
                        continue;
                    }
                    CColumn RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                    CColumn RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                    object  objVal     = obj.GetColValue(col);


                    Guid guidParentId = Guid.Empty;
                    if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal)
                    {
                        row.Cells[column.Name].Value = BaseObjectMgr.m_Parent.GetColValue(RefShowCol);
                    }
                    else
                    {
                        CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                        if (objMgr != null)
                        {
                            CBaseObject objCache = objMgr.FindByValue(RefCol, objVal);
                            if (objCache != null)
                            {
                                row.Cells[column.Name].Value = objCache.GetColValue(RefShowCol);
                            }
                        }
                        else
                        {
                            objMgr        = new CBaseObjectMgr();
                            objMgr.TbCode = table.Code;
                            objMgr.Ctx    = Program.Ctx;

                            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 = objMgr.GetList(sWhere, cmdParas);
                            if (lstObj2.Count > 0)
                            {
                                CBaseObject obj2 = lstObj2[0];
                                row.Cells[column.Name].Value = obj2.GetColValue(RefShowCol);
                            }
                        }
                    }
                }
                else
                {
                    row.Cells[column.Name].Value = obj.GetColValue(col);
                }
            }
        }
Beispiel #9
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);
    }
Beispiel #10
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);
    }
Beispiel #11
0
        public void LoadData()
        {
            if (BaseObjectMgr == null)
            {
                return;
            }
            if (dataGridView.Columns.Count == 0)
            {
                return;
            }
            dataGridView.Rows.Clear();
            List <CBaseObject> lstObj = BaseObjectMgr.GetList();

            if (lstObj.Count == 0)
            {
                return;
            }
            dataGridView.Rows.Add(lstObj.Count);
            int nRowIdx = 0;

            foreach (CBaseObject obj in lstObj)
            {
                DataGridViewRow row = dataGridView.Rows[nRowIdx];
                row.Tag = obj;
                foreach (DataGridViewColumn column in dataGridView.Columns)
                {
                    //工作流
                    if (column.Name.Equals("workflow"))
                    {
                        continue;
                    }
                    //

                    CColumn col = (CColumn)column.Tag;
                    if (col.ColType == ColumnType.object_type)
                    {
                        if (obj.GetColValue(col) != null)
                        {
                            row.Cells[column.Name].Value = "long byte";
                        }
                    }
                    else if (col.ColType == ColumnType.ref_type)
                    {
                        CTable table = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                        if (table == null)
                        {
                            continue;
                        }
                        CColumn RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                        CColumn RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                        object  objVal     = obj.GetColValue(col);


                        Guid guidParentId = Guid.Empty;
                        if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal)
                        {
                            row.Cells[column.Name].Value = BaseObjectMgr.m_Parent.GetColValue(RefShowCol);
                        }
                        else
                        {
                            CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                            if (objMgr != null)
                            {
                                CBaseObject objCache = objMgr.FindByValue(RefCol, objVal);
                                if (objCache != null)
                                {
                                    row.Cells[column.Name].Value = objCache.GetColValue(RefShowCol);
                                }
                            }
                            else
                            {
                                objMgr        = new CBaseObjectMgr();
                                objMgr.TbCode = table.Code;
                                objMgr.Ctx    = Program.Ctx;

                                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 = objMgr.GetList(sWhere, cmdParas);
                                if (lstObj2.Count > 0)
                                {
                                    CBaseObject obj2 = lstObj2[0];
                                    row.Cells[column.Name].Value = obj2.GetColValue(RefShowCol);
                                }
                            }
                        }
                    }
                    else
                    {
                        row.Cells[column.Name].Value = obj.GetColValue(col);
                    }
                }
                UpdateRowWorkflow(row);

                nRowIdx++;
            }
        }
Beispiel #12
0
        public void LoadData()
        {
            if (dataGridView == null)
            {
                return;
            }
            if (dataGridView.Columns.Count == 0)
            {
                return;
            }
            dataGridView.Rows.Clear();
            CBaseObjectMgr     BaseObjectMgr = Program.Ctx.ViewMgr;
            List <CBaseObject> lstObj        = BaseObjectMgr.GetList();

            if (lstObj.Count == 0)
            {
                return;
            }

            foreach (CBaseObject obj in lstObj)
            {
                CView view = (CView)obj;
                if (catalog == null)
                {
                    if (view.UI_ViewCatalog_id != Guid.Empty)
                    {
                        continue;
                    }
                }
                else
                {
                    if (view.UI_ViewCatalog_id != catalog.Id)
                    {
                        continue;
                    }
                }

                dataGridView.Rows.Add(1);
                DataGridViewRow row = dataGridView.Rows[dataGridView.Rows.Count - 1];
                row.Tag = obj;
                foreach (DataGridViewColumn column in dataGridView.Columns)
                {
                    CColumn col = (CColumn)column.Tag;
                    if (col.ColType == ColumnType.object_type)
                    {
                        if (obj.GetColValue(col) != null)
                        {
                            row.Cells[column.Name].Value = "long byte";
                        }
                    }
                    else if (col.ColType == ColumnType.ref_type)
                    {
                        CTable table = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                        if (table == null)
                        {
                            continue;
                        }
                        CColumn RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                        CColumn RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                        object  objVal     = obj.GetColValue(col);


                        Guid guidParentId = Guid.Empty;
                        if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal)
                        {
                            row.Cells[column.Name].Value = BaseObjectMgr.m_Parent.GetColValue(RefShowCol);
                        }
                        else
                        {
                            CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                            if (objMgr != null)
                            {
                                CBaseObject objCache = objMgr.FindByValue(RefCol, objVal);
                                if (objCache != null)
                                {
                                    row.Cells[column.Name].Value = objCache.GetColValue(RefShowCol);
                                }
                            }
                            else
                            {
                                objMgr        = new CBaseObjectMgr();
                                objMgr.TbCode = table.Code;
                                objMgr.Ctx    = Program.Ctx;

                                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 = objMgr.GetList(sWhere, cmdParas);
                                if (lstObj2.Count > 0)
                                {
                                    CBaseObject obj2 = lstObj2[0];
                                    row.Cells[column.Name].Value = obj2.GetColValue(RefShowCol);
                                }
                            }
                        }
                    }
                    else
                    {
                        row.Cells[column.Name].Value = obj.GetColValue(col);
                    }
                }
            }
        }
Beispiel #13
0
    void PostData()
    {
        if (!ValidateData())
        {
            return;
        }

        List <CBaseObject> lstCol = m_Table.ColumnMgr.GetList();
        bool bHasVisible          = false;

        foreach (CBaseObject obj in lstCol)
        {
            CColumn col = (CColumn)obj;
            //判断禁止和只读权限字段
            if (m_sortRestrictColumnAccessType.ContainsKey(col.Id))
            {
                AccessType accessType = m_sortRestrictColumnAccessType[col.Id];
                if (accessType == AccessType.forbide)
                {
                    continue;
                }
                //只读只在界面控制,有些默认值需要只读也需要保存数据
                //else if (accessType == AccessType.read)
                //    continue;
            }
            //


            if (col.Code.Equals("id", StringComparison.OrdinalIgnoreCase))
            {
                continue;
            }
            else if (col.Code.Equals("Created", StringComparison.OrdinalIgnoreCase))
            {
                continue;
            }
            else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase))
            {
                //BaseObject.SetColValue(col, Program.User.Id);
                continue;
            }
            else if (col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase))
            {
                m_BaseObject.SetColValue(col, DateTime.Now);
                continue;
            }
            else if (col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase))
            {
                CUser u = (CUser)Session["User"];
                m_BaseObject.SetColValue(col, u.Id);
                continue;
            }

            if (col.ColType == ColumnType.object_type)
            {
                string ckVal = Request.Params["ckClear_" + col.Code];
                if (!string.IsNullOrEmpty(ckVal) && ckVal.ToLower() == "on")
                {
                    //清空附件
                    m_BaseObject.SetColValue(col, null);
                }
                else
                {
                    HttpPostedFile postfile = Request.Files.Get("_" + col.Code);
                    if (postfile != null && postfile.ContentLength > 0)
                    {
                        string sFileName = postfile.FileName;
                        if (sFileName.LastIndexOf('\\') > -1)//有些浏览器不带路径
                        {
                            sFileName = sFileName.Substring(sFileName.LastIndexOf('\\'));
                        }

                        byte[] byteFileName = System.Text.Encoding.Default.GetBytes(sFileName);
                        byte[] byteValue    = new byte[254 + postfile.ContentLength];
                        byte[] byteData     = new byte[postfile.ContentLength];
                        postfile.InputStream.Read(byteData, 0, postfile.ContentLength);

                        Array.Copy(byteFileName, byteValue, byteFileName.Length);
                        Array.Copy(byteData, 0, byteValue, 254, byteData.Length);

                        m_BaseObject.SetColValue(col, byteValue);
                    }
                }
            }
            else if (col.ColType == ColumnType.path_type)
            {
                string sUploadPath = col.UploadPath;
                if (sUploadPath[sUploadPath.Length - 1] != '\\')
                {
                    sUploadPath += "\\";
                }
                if (!Directory.Exists(sUploadPath))
                {
                    Directory.CreateDirectory(sUploadPath);
                }

                string ckVal = Request.Params["ckClear_" + col.Code];
                if (!string.IsNullOrEmpty(ckVal) && ckVal.ToLower() == "on")
                {
                    //清空附件
                    m_BaseObject.SetColValue(col, "");
                }
                else
                {
                    HttpPostedFile postfile = Request.Files.Get("_" + col.Code);
                    if (postfile != null && postfile.ContentLength > 0)
                    {
                        string sFileName = postfile.FileName;
                        if (sFileName.LastIndexOf('\\') > -1)//有些浏览器不带路径
                        {
                            sFileName = sFileName.Substring(sFileName.LastIndexOf('\\'));
                        }

                        FileInfo fi        = new FileInfo(sUploadPath + sFileName);
                        Guid     guid      = Guid.NewGuid();
                        string   sDestFile = string.Format("{0}{1}", guid.ToString().Replace("-", ""), fi.Extension);
                        postfile.SaveAs(sUploadPath + sDestFile);

                        string sVal = string.Format("{0}|{1}", sDestFile, sFileName);
                        m_BaseObject.SetColValue(col, sVal);
                    }
                }
            }
            else if (col.ColType == ColumnType.bool_type)
            {
                string val = Request.Params["_" + col.Code];
                if (!string.IsNullOrEmpty(val) && val.ToLower() == "on")
                {
                    m_BaseObject.SetColValue(col, true);
                }
                else
                {
                    m_BaseObject.SetColValue(col, false);
                }
            }
            else if (col.ColType == ColumnType.datetime_type)
            {
                string val = Request.Params["_" + col.Code];
                if (!string.IsNullOrEmpty(val))
                {
                    m_BaseObject.SetColValue(col, Convert.ToDateTime(val));
                }
            }
            else
            {
                m_BaseObject.SetColValue(col, Request.Params["_" + col.Code]);
            }
            bHasVisible = true;
        }
        if (!bHasVisible)
        {
            //Response.Write("没有可修改字段!");
            Response.Write("<script>alert('没有可修改字段!');</script>");
            return;
        }

        SortedList <Guid, CBaseObject> arrP = (SortedList <Guid, CBaseObject>)Session["EditMasterDetailViewRecord"];
        CBaseObject objP = arrP.Values[0];
        //外键关联
        CColumn colP = (CColumn)objP.Table.ColumnMgr.Find(m_ViewDetail.PrimaryKey);
        CColumn colF = (CColumn)m_Table.ColumnMgr.Find(m_ViewDetail.ForeignKey);

        m_BaseObject.SetColValue(colF, objP.GetColValue(colP));

        CUser user = (CUser)Session["User"];

        m_BaseObject.Updator = user.Id;
        m_BaseObjectMgr.Update(m_BaseObject);
        if (!m_BaseObjectMgr.Save(true))
        {
            //Response.Write("修改失败!");
            Response.Write("<script>alert('修改失败!');</script>");
            return;
        }
        //在iframe里访问外面,需要parent.parent.
        //Response.Write("<script>parent.parent.grid.loadData(true);parent.parent.$.ligerDialog.close();</script>");
        Response.Write("<script>parent.parent.onOkEditDetailRecord2();</script>");
    }
    void GetData()
    {
        string             sData         = "";
        CBaseObjectMgr     BaseObjectMgr = m_BaseObjectMgr;
        List <CBaseObject> lstObj        = BaseObjectMgr.GetList();

        foreach (CBaseObject obj in lstObj)
        {
            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);


                    Guid guidParentId = Guid.Empty;
                    if (BaseObjectMgr.m_Parent != null && col.Code.Equals(BaseObjectMgr.m_Parent.TbCode + "_id", StringComparison.OrdinalIgnoreCase))
                    {
                        guidParentId = BaseObjectMgr.m_Parent.Id;
                    }
                    CBaseObjectMgr objRefMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(RefTable.Code, guidParentId);
                    string         sVal      = "";
                    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);
    }
    void GetData()
    {
        int    page       = Convert.ToInt32(Request.Params["page"]);
        int    pageSize   = Convert.ToInt32(Request.Params["pagesize"]);
        string catalog_id = Request["catalog_id"];

        string             sData         = "";
        List <CBaseObject> lstObj        = new List <CBaseObject>();
        CBaseObjectMgr     BaseObjectMgr = m_Company.ReportMgr;
        List <CBaseObject> lstRpt        = BaseObjectMgr.GetList();

        foreach (CBaseObject objRpt in lstRpt)
        {
            CReport Report = (CReport)objRpt;
            if (!string.IsNullOrEmpty(catalog_id))
            {
                Guid guid = new Guid(catalog_id);
                if (Report.RPT_ReportCatalog_id == guid)
                {
                    lstObj.Add(Report);
                }
            }
            else
            {
                //所有目录不存在的都放置根目录
                CBaseObject objCatalog = m_Company.ReportCatalogMgr.Find(Report.RPT_ReportCatalog_id);
                if (objCatalog == null)
                {
                    lstObj.Add(Report);
                }
            }
        }

        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 (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);
    }
Beispiel #16
0
        private void tbtNew_Click(object sender, EventArgs e)
        {
            ReportWizard frm        = new ReportWizard();
            Guid         Catalog_id = (catalog == null)?Guid.Empty:catalog.Id;

            frm.m_Catalog_id = Catalog_id;
            frm.m_Company    = Company;
            if (frm.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            CBaseObjectMgr BaseObjectMgr = Company.ReportMgr;
            CReport        obj           = (CReport)frm.m_Report;

            dataGridView.Rows.Add(1);
            DataGridViewRow row = dataGridView.Rows[dataGridView.Rows.Count - 1];

            row.Tag = obj;
            foreach (DataGridViewColumn column in dataGridView.Columns)
            {
                CColumn col = (CColumn)column.Tag;
                if (col.ColType == ColumnType.object_type)
                {
                    if (obj.GetColValue(col) != null)
                    {
                        row.Cells[column.Name].Value = "long byte";
                    }
                }
                else if (col.ColType == ColumnType.ref_type)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                    if (table == null)
                    {
                        continue;
                    }
                    CColumn RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                    CColumn RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                    object  objVal     = obj.GetColValue(col);


                    Guid guidParentId = Guid.Empty;
                    if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal)
                    {
                        row.Cells[column.Name].Value = BaseObjectMgr.m_Parent.GetColValue(RefShowCol);
                    }
                    else
                    {
                        CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                        if (objMgr != null)
                        {
                            CBaseObject objCache = objMgr.FindByValue(RefCol, objVal);
                            if (objCache != null)
                            {
                                row.Cells[column.Name].Value = objCache.GetColValue(RefShowCol);
                            }
                        }
                        else
                        {
                            objMgr        = new CBaseObjectMgr();
                            objMgr.TbCode = table.Code;
                            objMgr.Ctx    = Program.Ctx;

                            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 = objMgr.GetList(sWhere, cmdParas);
                            if (lstObj2.Count > 0)
                            {
                                CBaseObject obj2 = lstObj2[0];
                                row.Cells[column.Name].Value = obj2.GetColValue(RefShowCol);
                            }
                        }
                    }
                }
                else
                {
                    row.Cells[column.Name].Value = obj.GetColValue(col);
                }
            }
            dataGridView.ClearSelection();
            row.Selected          = true;
            row.Cells[1].Selected = true;
        }
Beispiel #17
0
    void GetData()
    {
        int page     = Convert.ToInt32(Request.Params["page"]);
        int pageSize = Convert.ToInt32(Request.Params["pagesize"]);

        string             sData  = "";
        List <CBaseObject> lstObj = m_Company.OrgMgr.GetList();

        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 (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;
                    }
                    CBaseObjectMgr objRefMgr = new CBaseObjectMgr();
                    objRefMgr.TbCode = RefTable.Code;
                    objRefMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());

                    CColumn            RefCol     = (CColumn)RefTable.ColumnMgr.Find(col.RefCol);
                    CColumn            RefShowCol = (CColumn)RefTable.ColumnMgr.Find(col.RefShowCol);
                    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);
                    string             sVal    = "";
                    if (lstObj2.Count > 0)
                    {
                        CBaseObject obj2   = lstObj2[0];
                        object      objVal = obj2.GetColValue(RefShowCol);
                        if (objVal != null)
                        {
                            sVal = objVal.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);
    }
Beispiel #18
0
        private void tbtEdit_Click(object sender, EventArgs e)
        {
            if (dataGridView.CurrentRow == null)
            {
                MessageBox.Show("请选择一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            CView obj = (CView)dataGridView.CurrentRow.Tag;

            if (obj.VType == enumViewType.Single)
            {
                SingleViewInfo frm = new SingleViewInfo();
                frm.m_View       = obj;
                frm.m_Catalog_id = obj.UI_ViewCatalog_id;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
            }
            else if (obj.VType == enumViewType.MasterDetail)
            {
                MasterDetailViewInfo frm = new MasterDetailViewInfo();
                frm.m_View       = obj;
                frm.m_Catalog_id = obj.UI_ViewCatalog_id;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
            }
            else
            {
                MultMasterDetailViewInfo frm = new MultMasterDetailViewInfo();
                frm.m_View       = obj;
                frm.m_Catalog_id = obj.UI_ViewCatalog_id;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
            }

            CBaseObjectMgr BaseObjectMgr = Program.Ctx.ViewMgr;

            DataGridViewRow row = dataGridView.CurrentRow;

            foreach (DataGridViewColumn column in dataGridView.Columns)
            {
                CColumn col = (CColumn)column.Tag;
                if (col.ColType == ColumnType.object_type)
                {
                    if (obj.GetColValue(col) != null)
                    {
                        row.Cells[column.Name].Value = "long byte";
                    }
                }
                else if (col.ColType == ColumnType.ref_type)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                    if (table == null)
                    {
                        continue;
                    }
                    CColumn RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                    CColumn RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                    object  objVal     = obj.GetColValue(col);


                    Guid guidParentId = Guid.Empty;
                    if (BaseObjectMgr.m_Parent != null && BaseObjectMgr.m_Parent.Id == (Guid)objVal)
                    {
                        row.Cells[column.Name].Value = BaseObjectMgr.m_Parent.GetColValue(RefShowCol);
                    }
                    else
                    {
                        CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                        if (objMgr != null)
                        {
                            CBaseObject objCache = objMgr.FindByValue(RefCol, objVal);
                            if (objCache != null)
                            {
                                row.Cells[column.Name].Value = objCache.GetColValue(RefShowCol);
                            }
                        }
                        else
                        {
                            objMgr        = new CBaseObjectMgr();
                            objMgr.TbCode = table.Code;
                            objMgr.Ctx    = Program.Ctx;

                            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 = objMgr.GetList(sWhere, cmdParas);
                            if (lstObj2.Count > 0)
                            {
                                CBaseObject obj2 = lstObj2[0];
                                row.Cells[column.Name].Value = obj2.GetColValue(RefShowCol);
                            }
                        }
                    }
                }
                else
                {
                    row.Cells[column.Name].Value = obj.GetColValue(col);
                }
            }
        }
Beispiel #19
0
    void GetDetail()
    {
        string pid = Request["pid"];

        if (string.IsNullOrEmpty(pid))
        {
            return;
        }
        CViewDetail vd    = (CViewDetail)m_View.ViewDetailMgr.GetFirstObj();
        CTable      table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(vd.FW_Table_id);

        //判断表权限
        AccessType tableAccessType = m_User.GetTableAccess(table.Id);

        if (tableAccessType == AccessType.forbide)
        {
            Response.Write("没有表权限!");
            return;
        }
        else if (tableAccessType == AccessType.read)
        {
        }
        else
        {
        }
        m_sortDetailRestrictColumnAccessType = m_User.GetRestrictColumnAccessTypeList(table);
        //
        CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, new Guid(pid));

        if (BaseObjectMgr == null)
        {
            BaseObjectMgr        = new CBaseObjectMgr();
            BaseObjectMgr.TbCode = table.Code;
            BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());

            CColumn colF = (CColumn)table.ColumnMgr.Find(vd.ForeignKey);
            if (colF == null)
            {
                return;
            }
            string sWhere0 = string.Format(" {0}='{1}'", colF.Code, pid);
            BaseObjectMgr.GetList(sWhere0);
        }
        List <CBaseObject> lstObj = BaseObjectMgr.GetList();

        string sData = "";

        foreach (CBaseObject obj in lstObj)
        {
            string sRow = "";
            foreach (CBaseObject objC in table.ColumnMgr.GetList())
            {
                CColumn col = (CColumn)objC;
                //判断禁止权限字段
                if (m_sortDetailRestrictColumnAccessType.ContainsKey(col.Id))
                {
                    AccessType accessType = m_sortDetailRestrictColumnAccessType[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);
    }