예제 #1
0
        private void tbtEdit_Click(object sender, EventArgs e)
        {
            if (dataGridView.CurrentRow == null)
            {
                MessageBox.Show("请选择一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            CReport obj = (CReport)dataGridView.CurrentRow.Tag;

            ReportWizard frm        = new ReportWizard();
            Guid         Catalog_id = (catalog == null) ? Guid.Empty : catalog.Id;

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

            CBaseObjectMgr  BaseObjectMgr = Company.ReportMgr;
            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);
                }
            }
        }
예제 #2
0
    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);
    }
예제 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.End();
        }
        m_User = (CUser)Session["User"];

        string vid = Request["vid"];

        if (string.IsNullOrEmpty(vid))
        {
            Response.End();
        }
        m_View = (CView)Global.GetCtx(Session["TopCompany"].ToString()).ViewMgr.Find(new Guid(vid));
        if (m_View == null)
        {
            Response.End();
        }
        m_Table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(m_View.FW_Table_id);

        //检查权限
        if (!CheckAccess())
        {
            Response.End();
        }

        string ParentId = Request["ParentId"];

        if (!string.IsNullOrEmpty(ParentId))
        {
            m_guidParentId = new Guid(ParentId);
        }

        string id = Request["id"];

        if (string.IsNullOrEmpty(id))
        {
            Response.Write("请选择记录!");
            Response.End();
        }

        m_BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId);
        if (m_BaseObjectMgr == null)
        {
            m_BaseObjectMgr        = new CBaseObjectMgr();
            m_BaseObjectMgr.TbCode = m_Table.Code;
            m_BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
            string sWhere = string.Format(" id='{0}'", id);
            m_BaseObjectMgr.GetList(sWhere);
        }
        m_BaseObject = m_BaseObjectMgr.Find(new Guid(id));
        if (m_BaseObject == null)
        {
            Response.Write("请选择记录!");
            Response.End();
        }

        //保存到编辑对象
        EditObject.Add(Session.SessionID, m_BaseObject);

        if (!IsPostBack)
        {
            recordCtrl.m_View  = m_View;
            recordCtrl.m_Table = m_Table;
            recordCtrl.m_sortRestrictColumnAccessType = m_sortRestrictColumnAccessType;
            recordCtrl.m_BaseObject = m_BaseObject;
            if (!string.IsNullOrEmpty(Request["UIColCount"]))
            {
                recordCtrl.m_iUIColCount = Convert.ToInt32(Request["UIColCount"]);
            }
        }
        if (Request.Params["Action"] == "Cancel")
        {
            m_BaseObject.Cancel();
            Response.End();
        }
        else if (Request.Params["Action"] == "PostData")
        {
            PostData();
            //从编辑对象移除
            EditObject.Remove(Session.SessionID, m_BaseObject);

            Response.End();
        }
    }
예제 #4
0
        //生成自引用树节点
        List <TreeNode> SelfLoop(CTableInWindowControl tiwc, string sFilter, TreeNode pnode)
        {
            List <TreeNode> lstTreeNode = new List <TreeNode>();

            CTable table = (CTable)Program.Ctx.TableMgr.Find(tiwc.FW_Table_id);

            if (table == null)
            {
                return(lstTreeNode);
            }
            CBaseObjectMgr BaseObjectMgr = new CBaseObjectMgr();

            BaseObjectMgr.Ctx    = Program.Ctx;
            BaseObjectMgr.TbCode = table.Code;
            List <CBaseObject> lstObj = BaseObjectMgr.GetList(sFilter);

            foreach (CBaseObject obj in lstObj)
            {
                string sText  = tiwc.Text.ToLower();
                int    iStart = 0;
                while (sText.IndexOf('[', iStart) > -1)
                {
                    int idx1 = sText.IndexOf('[', iStart);
                    int idx2 = sText.IndexOf(']', idx1);
                    iStart = idx1 + 1;
                    if (idx2 > idx1)
                    {
                        string  sCodeN = sText.Substring(idx1, idx2 - idx1 + 1);
                        string  sCode  = sCodeN.Substring(1, sCodeN.Length - 2);
                        CColumn column = table.ColumnMgr.FindByCode(sCode);
                        if (column == null)
                        {
                            continue;
                        }
                        string sVal = obj.GetColValue(column).ToString();
                        sText = sText.Replace(sCodeN, sVal);
                    }
                }

                TreeNode node = new TreeNode();
                node.Text = sText;
                if (pnode == null)
                {
                    treeView.Nodes.Add(node);
                }
                else
                {
                    pnode.Nodes.Add(node);
                }

                CColumn col   = (CColumn)table.ColumnMgr.Find(tiwc.NodeIDCol);
                CColumn pcol  = (CColumn)table.ColumnMgr.Find(tiwc.PNodeIDCol);
                string  sVal2 = obj.GetColValue(col).ToString();
                if (col.ColType == ColumnType.string_type ||
                    col.ColType == ColumnType.ref_type ||
                    col.ColType == ColumnType.guid_type ||
                    col.ColType == ColumnType.datetime_type ||
                    col.ColType == ColumnType.text_type)
                {
                    sVal2 = "'" + sVal2 + "'";
                }
                string sSubFilter2 = string.Format(" {0}={1}", pcol.Code, sVal2);

                string sFilter2 = tiwc.QueryFilter;
                if (sFilter2.Trim() != "")
                {
                    sFilter2 += " and ";
                }
                sFilter2 += sSubFilter2;
                SelfLoop(tiwc, sFilter2, node);

                lstTreeNode.Add(node);
            }

            return(lstTreeNode);
        }
예제 #5
0
        public TableWindow(CBaseObjectMgr BaseObjectMgr)
        {
            InitializeComponent();

            tableCtrl.BaseObjectMgr = BaseObjectMgr;
        }
예제 #6
0
        void LoadData()
        {
            if (FormF == null)
            {
                return;
            }

            this.Width  = FormF.Width;
            this.Height = FormF.Height;

            List <CBaseObject> lstFormControl = FormF.FormControlMgr.GetList();

            foreach (CBaseObject obj in lstFormControl)
            {
                CFormControl FormControl = (CFormControl)obj;


                if (FormControl.CtrlType == (int)ControlType.TableGrid)
                {
                    if (FormControl.TableInFormControlMgr.GetList().Count == 0)
                    {
                        continue;
                    }
                    CTableInFormControl TableInFormControl = (CTableInFormControl)FormControl.TableInFormControlMgr.GetFirstObj();
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInFormControl.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }

                    CBaseObjectMgr objMgr = new CBaseObjectMgr();
                    objMgr.TbCode = table.Code;
                    objMgr.Ctx    = Program.Ctx;
                    TableGridF te = new TableGridF();
                    te.TableInFormControl = TableInFormControl;
                    te.BaseObjectMgr      = objMgr;
                    te.Name         = FormControl.Name;
                    te.ShowToolBar  = TableInFormControl.ShowToolBar;
                    te.ShowTitleBar = TableInFormControl.ShowTitleBar;
                    te.CaptionText  = FormControl.Name;
                    te.Tag          = FormControl;
                    flowPanel.Controls.Add(te);

                    te.dataGridView.CellClick += new DataGridViewCellEventHandler(dataGridView_CellClick);
                }
                else if (FormControl.CtrlType == (int)ControlType.TableTree)
                {
                    TableTreeF tt = new TableTreeF();
                    tt.CaptionText  = FormControl.Name;
                    tt.ShowTitleBar = FormControl.ShowTitleBar;
                    tt.FormControl  = FormControl;
                    tt.Name         = FormControl.Name;
                    tt.Tag          = FormControl;
                    flowPanel.Controls.Add(tt);
                    tt.Dock = DockStyle.Fill;
                    tt.BringToFront();

                    tt.treeView.NodeMouseClick += new TreeNodeMouseClickEventHandler(treeView_NodeMouseClick);
                }
                else if (FormControl.CtrlType == (int)ControlType.TableTab)
                {
                    TableTabF tab = new TableTabF();
                    tab.FormControl  = FormControl;
                    tab.CaptionText  = FormControl.Name;
                    tab.Name         = FormControl.Name;
                    tab.ShowTitleBar = FormControl.ShowTitleBar;
                    tab.Tag          = FormControl;
                    flowPanel.Controls.Add(tab);
                    tab.Dock = DockStyle.Fill;
                    tab.BringToFront();
                }
                else if (FormControl.CtrlType == (int)ControlType.ComboBox)
                {
                    if (FormControl.TableInFormControlMgr.GetList().Count == 0)
                    {
                        continue;
                    }
                    CTableInFormControl TableInFormControl = (CTableInFormControl)FormControl.TableInFormControlMgr.GetFirstObj();
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInFormControl.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }

                    CBaseObjectMgr objMgr = new CBaseObjectMgr();
                    objMgr.TbCode = table.Code;
                    objMgr.Ctx    = Program.Ctx;

                    UIComboBoxF cb = new UIComboBoxF();
                    cb.CaptionText        = FormControl.Name + ":";
                    cb.TableInFormControl = TableInFormControl;
                    cb.BaseObjectMgr      = objMgr;
                    cb.Name = FormControl.Name;
                    cb.Tag  = FormControl;
                    flowPanel.Controls.Add(cb);
                    cb.Dock = DockStyle.Top;
                    cb.BringToFront();

                    cb.comboBox.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
                }
                else if (FormControl.CtrlType == (int)ControlType.ListBox)
                {
                    if (FormControl.TableInFormControlMgr.GetList().Count == 0)
                    {
                        continue;
                    }
                    CTableInFormControl TableInFormControl = (CTableInFormControl)FormControl.TableInFormControlMgr.GetFirstObj();
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInFormControl.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }

                    CBaseObjectMgr objMgr = new CBaseObjectMgr();
                    objMgr.TbCode = table.Code;
                    objMgr.Ctx    = Program.Ctx;

                    UIListBoxF listBox = new UIListBoxF();
                    listBox.CaptionText        = FormControl.Name;
                    listBox.TableInFormControl = TableInFormControl;
                    listBox.BaseObjectMgr      = objMgr;
                    listBox.Name = FormControl.Name;
                    listBox.Tag  = FormControl;
                    flowPanel.Controls.Add(listBox);
                    listBox.Dock = DockStyle.Fill;
                    listBox.BringToFront();

                    listBox.listBox.SelectedIndexChanged += new EventHandler(listBox_SelectedIndexChanged);
                }
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.End();
        }
        m_User = (CUser)Session["User"];

        string vid = Request["vid"];

        if (string.IsNullOrEmpty(vid))
        {
            Response.End();
        }
        m_View = (CView)Global.GetCtx(Session["TopCompany"].ToString()).ViewMgr.Find(new Guid(vid));
        if (m_View == null)
        {
            Response.End();
        }
        m_Table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(m_View.FW_Table_id);

        //检查权限
        if (!CheckAccess())
        {
            Response.End();
        }

        string ParentId = Request["ParentId"];

        if (!string.IsNullOrEmpty(ParentId))
        {
            m_guidParentId = new Guid(ParentId);
        }

        string id = Request["id"];

        if (string.IsNullOrEmpty(id))
        {
            Response.Write("请选择记录!");
            Response.End();
        }
        if (Session["EditMultMasterDetailViewRecord"] != null)
        {
            SortedList <Guid, CBaseObject> arrP = (SortedList <Guid, CBaseObject>)Session["EditMultMasterDetailViewRecord"];
            CBaseObject objP = (CBaseObject)arrP.Values[0];
            if (objP.Id.ToString() != id)
            {
                Session["EditMultMasterDetailViewRecord"] = null;
            }
        }

        if (Session["EditMultMasterDetailViewRecord"] == null)
        {
            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 sWhere = string.Format(" id='{0}'", id);
                BaseObjectMgr.GetList(sWhere);
            }
            CBaseObject obj = BaseObjectMgr.Find(new Guid(id));
            if (obj == null)
            {
                Response.Write("请选择记录!");
                Response.End();
            }
            SortedList <Guid, CBaseObject> arrP = new SortedList <Guid, CBaseObject>();
            arrP.Add(obj.Id, obj);
            Session["EditMultMasterDetailViewRecord"] = arrP;
        }

        SortedList <Guid, CBaseObject> arrP2 = (SortedList <Guid, CBaseObject>)Session["EditMultMasterDetailViewRecord"];

        m_BaseObject = (CBaseObject)arrP2.Values[0];
        //保存到编辑对象
        EditObject.Add(Session.SessionID, m_BaseObject);


        if (!IsPostBack)
        {
            recordCtrl.m_View  = m_View;
            recordCtrl.m_Table = m_Table;
            recordCtrl.m_sortRestrictColumnAccessType = m_sortRestrictColumnAccessType;
            recordCtrl.m_BaseObject = m_BaseObject;
            if (!string.IsNullOrEmpty(Request["UIColCount"]))
            {
                recordCtrl.m_iUIColCount = Convert.ToInt32(Request["UIColCount"]);
            }
            //隐藏字段
            string sHideCols = Request["HideCols"];
            if (!string.IsNullOrEmpty(sHideCols))
            {
                string[] arr = sHideCols.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                foreach (string code in arr)
                {
                    recordCtrl.m_sortHideColumn.Add(code, code);
                }
            }
        }
        if (Request.Params["Action"] == "Cancel")
        {
            Session["EditMultMasterDetailViewRecord"] = null;
            m_BaseObject.Cancel();
            //从编辑对象移除
            EditObject.Remove(Session.SessionID, m_BaseObject);
            Response.End();
        }
        else if (Request.Params["Action"] == "PostData")
        {
            PostData();
            //从编辑对象移除
            EditObject.Remove(Session.SessionID, m_BaseObject);
            Response.End();
        }
    }
예제 #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("../Login.aspx");
            Response.End();
        }
        string TbCode            = Request["TbCode"];
        string id                = Request["id"];
        string WF_WorkflowDef_id = Request["WF_WorkflowDef_id"];

        if (string.IsNullOrEmpty(TbCode) ||
            string.IsNullOrEmpty(id) ||
            string.IsNullOrEmpty(WF_WorkflowDef_id))
        {
            Response.Write("数据不完整!");
            Response.End();
            return;
        }

        Guid   guidParentId = Guid.Empty;
        string ParentId     = Request["ParentId"];

        if (!string.IsNullOrEmpty(ParentId))
        {
            guidParentId = new Guid(ParentId);
        }

        CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(TbCode, guidParentId);

        if (BaseObjectMgr == null)
        {
            BaseObjectMgr        = new CBaseObjectMgr();
            BaseObjectMgr.TbCode = TbCode;
            BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
        }
        //只能存在一个运行的工作流实例
        Guid             objId = new Guid(id);
        List <CWorkflow> lstWF = BaseObjectMgr.WorkflowMgr.FindLastByRowid(objId);

        foreach (CWorkflow wf in lstWF)
        {
            if (wf.WF_WorkflowDef_id == new Guid(WF_WorkflowDef_id) &&
                wf.State == enumApprovalState.Running)
            {
                Response.Write("该工作流已经启动!");
                Response.End();
                return;
            }
        }
        //创建工作流实例并运行
        CUser     user     = (CUser)Session["User"];
        CWorkflow Workflow = new CWorkflow();

        Workflow.Ctx = Global.GetCtx(Session["TopCompany"].ToString());
        Workflow.WF_WorkflowDef_id = new Guid(WF_WorkflowDef_id);
        Workflow.State             = enumApprovalState.Init;
        Workflow.Row_id            = objId;
        Workflow.Creator           = user.Id;
        Workflow.B_Company_id      = user.B_Company_id;
        string sErr = "";

        if (!BaseObjectMgr.WorkflowMgr.StartWorkflow(Workflow, out sErr))
        {
            Response.Write(string.Format("启动工作流失败:{0}", sErr));
            Response.End();
            return;
        }
        BaseObjectMgr.WorkflowMgr.AddNew(Workflow);
        if (!BaseObjectMgr.WorkflowMgr.Save(true))
        {
            Response.Write("创建工作流失败!");
            Response.End();
            return;
        }
        Response.End();
    }
예제 #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.End();
        }
        m_User = (CUser)Session["User"];

        string vid = Request["vid"];

        if (string.IsNullOrEmpty(vid))
        {
            Response.End();
        }

        m_View = (CView)Global.GetCtx(Session["TopCompany"].ToString()).ViewMgr.Find(new Guid(vid));
        if (m_View == null)
        {
            Response.End();
        }
        m_ViewDetail = (CViewDetail)m_View.ViewDetailMgr.GetFirstObj();
        if (m_ViewDetail == null)
        {
            Response.End();
        }
        m_Table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(m_ViewDetail.FW_Table_id);

        m_sortRestrictColumnAccessType = m_User.GetRestrictColumnAccessTypeList(m_Table);

        string id = Request["id"];

        if (string.IsNullOrEmpty(id))
        {
            Response.End();
        }

        if (Session["AddMasterDetailViewRecord"] == null)
        {
            Response.End();
        }
        CBaseObject objP = (CBaseObject)Session["AddMasterDetailViewRecord"];

        m_BaseObjectMgr = objP.GetSubObjectMgr(m_Table.Code, typeof(CBaseObjectMgr));

        m_BaseObject = m_BaseObjectMgr.Find(new Guid(id));
        if (m_BaseObject == null)
        {
            Response.Write("请选择记录!");
            Response.End();
        }

        if (!IsPostBack)
        {
            recordCtrl.m_ViewDetail = m_ViewDetail;
            recordCtrl.m_Table      = m_Table;
            recordCtrl.m_sortRestrictColumnAccessType = m_sortRestrictColumnAccessType;
            recordCtrl.m_BaseObject = m_BaseObject;
            if (!string.IsNullOrEmpty(Request["UIColCount"]))
            {
                recordCtrl.m_iUIColCount = Convert.ToInt32(Request["UIColCount"]);
            }
            //隐藏字段
            string sHideCols = Request["HideCols"];
            if (!string.IsNullOrEmpty(sHideCols))
            {
                string[] arr = sHideCols.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                foreach (string code in arr)
                {
                    recordCtrl.m_sortHideColumn.Add(code, code);
                }
            }
        }
        if (Request.Params["Action"] == "Cancel")
        {
            Response.End();
        }
        else if (Request.Params["Action"] == "PostData")
        {
            PostData();
            Response.End();
        }
    }
예제 #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("../Login.aspx");
            Response.End();
        }
        m_User = (CUser)Session["User"];

        m_Company = (CCompany)Global.GetCtx(Session["TopCompany"].ToString()).CompanyMgr.Find(m_User.B_Company_id);

        string TbCode         = Request["TbCode"];
        string id             = Request["id"];
        string WF_Workflow_id = Request["WF_Workflow_id"];

        if (string.IsNullOrEmpty(TbCode) ||
            string.IsNullOrEmpty(id) ||
            string.IsNullOrEmpty(WF_Workflow_id))
        {
            Response.Write("数据不完整!");
            Response.End();
            return;
        }

        string ParentId = Request["ParentId"];

        if (!string.IsNullOrEmpty(ParentId))
        {
            m_guidParentId = new Guid(ParentId);
        }

        m_BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(TbCode, m_guidParentId);
        if (m_BaseObjectMgr == null)
        {
            m_BaseObjectMgr        = new CBaseObjectMgr();
            m_BaseObjectMgr.TbCode = TbCode;
            m_BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
        }

        m_BaseObject = m_BaseObjectMgr.Find(new Guid(id));

        m_Workflow = (CWorkflow)m_BaseObjectMgr.WorkflowMgr.Find(new Guid(WF_Workflow_id));
        if (m_Workflow.State != enumApprovalState.Running)
        {
            Response.Write("只有进行中的工作流才能审批!");
            Response.End();
            return;
        }
        m_Actives = m_Workflow.ActivesMgr.FindNotApproval();
        if (m_Actives == null)
        {
            Response.Write("没有审批的活动!");
            Response.End();
            return;
        }

        if (m_Actives.AType == "按用户")
        {
            if (m_Actives.B_User_id != m_User.Id)
            {
                Response.Write("没有权限审批!");
                Response.End();
                return;
            }
        }
        else //按角色
        {
            CRole Role = (CRole)m_Company.RoleMgr.Find(m_Actives.B_Role_id);
            if (Role == null || Role.UserInRoleMgr.FindByUserid(m_User.Id) == null)
            {
                Response.Write("没有权限审批!");
                Response.End();
                return;
            }
        }

        if (Request.Params["Action"] == "Accept")
        {
            Accept();
            Response.End();
        }
        else if (Request.Params["Action"] == "Reject")
        {
            Reject();
            Response.End();
        }
    }
예제 #11
0
        public void LoadData()
        {
            if (BaseObjectMgr == null)
            {
                return;
            }
            if (dataGridView.Columns.Count == 0)
            {
                return;
            }
            dataGridView.Rows.Clear();

            //检查权限
            if (!CheckAccess())
            {
                return;
            }

            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 (m_sortRestrictColumnAccessType.ContainsKey(col.Id))
                    {
                        AccessType accessType = m_sortRestrictColumnAccessType[col.Id];
                        if (accessType == AccessType.forbide)
                        {
                            continue;
                        }
                    }
                    //
                    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++;
            }
        }
    void GetDetail()
    {
        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 = m_BaseObject.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);
    }
예제 #13
0
        void item_Click(CMenu menu)
        {
            if (menu.MType == enumMenuType.ViewMenu)
            {
                CView view = (CView)Program.Ctx.ViewMgr.Find(menu.UI_View_id);
                if (view != null)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(view.FW_Table_id);
                    if (table == null)
                    {
                        return;
                    }
                    CBaseObjectMgr objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, Guid.Empty);
                    if (objMgr == null)
                    {
                        objMgr        = new CBaseObjectMgr();
                        objMgr.TbCode = table.Code;
                        objMgr.Ctx    = Program.Ctx;
                    }

                    if (view.VType == enumViewType.Single)
                    {
                        SingleView frm = new SingleView();
                        frm.View          = view;
                        frm.BaseObjectMgr = objMgr;
                        frm.Show();
                    }
                    else if (view.VType == enumViewType.MasterDetail)
                    {
                        MasterDetailView frm = new MasterDetailView();
                        frm.View          = view;
                        frm.BaseObjectMgr = objMgr;
                        frm.Show();
                    }
                    else
                    {
                        MultMasterDetailView frm = new MultMasterDetailView();
                        frm.View          = view;
                        frm.BaseObjectMgr = objMgr;
                        frm.Show();
                    }
                }
            }
            else if (menu.MType == enumMenuType.WindowMenu)
            {
                CWindow window = (CWindow)Program.Ctx.WindowMgr.Find(menu.UI_Window_id);
                if (window != null)
                {
                    LayoutWindow frm = new LayoutWindow();
                    frm.Window = window;
                    frm.Show();
                }
            }
            else if (menu.MType == enumMenuType.UrlMenu)
            {
                bool bIsWebUrl = menu.Url.Length > 4 && menu.Url.Substring(0, 4).Equals("http", StringComparison.OrdinalIgnoreCase);
                if (!bIsWebUrl && !File.Exists(menu.Url))
                {
                    MessageBox.Show(string.Format("{0} 不存在!", menu.Url));
                    return;
                }
                System.Diagnostics.Process.Start(menu.Url);
            }
            else if (menu.MType == enumMenuType.ReportMenu)
            {
                CCompany  Company = (CCompany)Program.Ctx.CompanyMgr.Find(Program.User.B_Company_id);
                CReport   Report  = (CReport)Company.ReportMgr.Find(menu.RPT_Report_id);
                RunReport frm     = new RunReport();
                frm.m_Report = Report;
                frm.Show();
            }
        }
예제 #14
0
    void GetData()
    {
        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());
        }

        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);
    }
    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);
    }
예제 #16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.Redirect("../Login.aspx");
            Response.End();
        }
        m_User = (CUser)Session["User"];

        m_Company = (CCompany)Global.GetCtx(Session["TopCompany"].ToString()).CompanyMgr.Find(m_User.B_Company_id);


        string TbCode = Request["TbCode"];
        string id     = Request["id"];

        if (string.IsNullOrEmpty(TbCode) ||
            string.IsNullOrEmpty(id))
        {
            Response.Write("数据不完整!");
            Response.End();
            return;
        }

        string ParentId = Request["ParentId"];

        if (!string.IsNullOrEmpty(ParentId))
        {
            m_guidParentId = new Guid(ParentId);
        }


        m_BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(TbCode, m_guidParentId);
        if (m_BaseObjectMgr == null)
        {
            m_BaseObjectMgr        = new CBaseObjectMgr();
            m_BaseObjectMgr.TbCode = TbCode;
            m_BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
        }
        m_BaseObjectMgr.GetList();

        m_BaseObject = m_BaseObjectMgr.Find(new Guid(id));

        if (Request.Params["Action"] == "GetData")
        {
            GetData();
            Response.End();
        }
        else if (Request.Params["Action"] == "GetActivesData")
        {
            GetActivesData();
            Response.End();
        }
        else if (Request.Params["Action"] == "CancelWF")
        {
            CancelWF();
            Response.End();
        }
        else if (Request.Params["Action"] == "CanApproval")
        {
            CanApproval();
            Response.End();
        }
    }
예제 #17
0
        public void LoadData()
        {
            if (Company == null)
            {
                return;
            }
            if (dataGridView == null)
            {
                return;
            }
            if (dataGridView.Columns.Count == 0)
            {
                return;
            }
            dataGridView.Rows.Clear();
            CBaseObjectMgr     BaseObjectMgr = Company.WorkflowDefMgr;
            List <CBaseObject> lstObj        = BaseObjectMgr.GetList();

            foreach (CBaseObject obj in lstObj)
            {
                CWorkflowDef WorkflowDef = (CWorkflowDef)obj;
                if (m_Table != null)
                {
                    if (WorkflowDef.FW_Table_id != m_Table.Id)
                    {
                        continue;
                    }
                }

                dataGridView.Rows.Add(1);
                int             nRowIdx = dataGridView.Rows.Count - 1;
                DataGridViewRow row     = dataGridView.Rows[nRowIdx];
                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);
                    }
                }
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["User"] == null)
        {
            Response.End();
        }
        m_User = (CUser)Session["User"];

        string vid = Request["vid"];

        if (string.IsNullOrEmpty(vid))
        {
            Response.End();
        }
        m_View = (CView)Global.GetCtx(Session["TopCompany"].ToString()).ViewMgr.Find(new Guid(vid));
        if (m_View == null)
        {
            Response.End();
        }
        m_Table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(m_View.FW_Table_id);

        //检查权限
        if (!CheckAccess())
        {
            Response.End();
        }

        string ParentId = Request["ParentId"];

        if (!string.IsNullOrEmpty(ParentId))
        {
            m_guidParentId = new Guid(ParentId);
        }

        if (Session["AddMultMasterDetailViewRecord"] == null)
        {
            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());
            }
            CBaseObject obj = BaseObjectMgr.CreateBaseObject();
            obj.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
            obj.TbCode = m_Table.Code;
            CUser user = (CUser)Session["User"];
            obj.Creator = user.Id;
            Session["AddMultMasterDetailViewRecord"] = obj;
        }

        if (!IsPostBack)
        {
            recordCtrl.m_View  = m_View;
            recordCtrl.m_Table = m_Table;
            recordCtrl.m_sortRestrictColumnAccessType = m_sortRestrictColumnAccessType;
            if (!string.IsNullOrEmpty(Request["UIColCount"]))
            {
                recordCtrl.m_iUIColCount = Convert.ToInt32(Request["UIColCount"]);
            }
            //外面传递的默认值
            foreach (CColumn col in m_Table.ColumnMgr.GetList())
            {
                if (!string.IsNullOrEmpty(Request[col.Code]))
                {
                    recordCtrl.m_sortDefVal.Add(col.Code, Request[col.Code]);
                }
            }
            //隐藏字段
            string sHideCols = Request["HideCols"];
            if (!string.IsNullOrEmpty(sHideCols))
            {
                string[] arr = sHideCols.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                foreach (string code in arr)
                {
                    recordCtrl.m_sortHideColumn.Add(code, code);
                }
            }
        }
        if (Request.Params["Action"] == "Cancel")
        {
            Session["AddMultMasterDetailViewRecord"] = null;
            Response.End();
        }
        else if (Request.Params["Action"] == "PostData")
        {
            PostData();
            Response.End();
        }
    }
예제 #19
0
        void LoadTab()
        {
            tabControl.TabPages.Clear();
            if (View == null)
            {
                return;
            }
            List <CBaseObject> lstObj = View.ViewDetailMgr.GetList();

            foreach (CBaseObject obj in lstObj)
            {
                CViewDetail vd    = (CViewDetail)obj;
                CTable      table = (CTable)Program.Ctx.TableMgr.Find(vd.FW_Table_id);
                if (table == null)
                {
                    continue;
                }

                CBaseObjectMgr objMgr = null;
                if (ParentObject != null)
                {
                    objMgr = Program.Ctx.FindBaseObjectMgrCache(table.Code, ParentObject.Id);
                    if (objMgr == null)
                    {
                        objMgr = ParentObject.GetSubObjectMgr(table.Code, typeof(CBaseObjectMgr));
                    }
                    if (objMgr == null)
                    {
                        CColumn colP = (CColumn)ParentObject.Table.ColumnMgr.Find(vd.PrimaryKey);
                        if (colP == null)
                        {
                            continue;
                        }
                        CColumn colF = (CColumn)table.ColumnMgr.Find(vd.ForeignKey);
                        if (colF == null)
                        {
                            continue;
                        }
                        object objVal = ParentObject.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 = ParentObject;
                        string sWhere = string.Format(" {0}={1}", colF.Code, bIsStr ? sVal : objVal);
                        objMgr.Load(sWhere, false);
                    }
                }

                TabPage page = new TabPage(table.Name);
                page.Tag = vd;
                tabControl.TabPages.Add(page);

                ViewDetailGrid vdg = new ViewDetailGrid();
                vdg.ViewDetail      = vd;
                vdg.BaseObjectMgr   = objMgr;
                vdg.CaptionText     = table.Name;
                vdg.ShowTitleBar    = ShowTitleBar;
                vdg.ShowToolBar     = ShowToolBar;
                vdg.m_bShowWorkflow = false;
                vdg.Tag             = View;
                page.Controls.Add(vdg);
                vdg.Dock = DockStyle.Fill;
                vdg.BringToFront();
            }
        }
예제 #20
0
        void LoadData()
        {
            if (Window == null)
            {
                return;
            }

            this.Width          = Window.Width;
            this.Height         = Window.Height;
            panelTop.Height     = Window.TopPanelHeight;
            panelBottom.Height  = Window.BottomPanelHeight;
            panelLeft.Width     = Window.LeftPanelWidth;
            panelRight.Width    = Window.RightPanelWidth;
            panelTop.Visible    = Window.TopPanelVisible;
            panelBottom.Visible = Window.BottomPanelVisible;
            panelLeft.Visible   = Window.LeftPanelVisible;
            panelRight.Visible  = Window.RightPanelVisible;

            List <CBaseObject> lstWindowControl = Window.WindowControlMgr.GetList();

            foreach (CBaseObject obj in lstWindowControl)
            {
                CWindowControl WindowControl = (CWindowControl)obj;
                Panel          panel         = null;
                if (WindowControl.Dock == (int)DockStyle.Top)
                {
                    panel = panelTop;
                }
                else if (WindowControl.Dock == (int)DockStyle.Bottom)
                {
                    panel = panelBottom;
                }
                else if (WindowControl.Dock == (int)DockStyle.Left)
                {
                    panel = panelLeft;
                }
                else if (WindowControl.Dock == (int)DockStyle.Right)
                {
                    panel = panelRight;
                }
                else
                {
                    panel = panelFill;
                }

                if (WindowControl.CtrlType == ControlType.NavBar)
                {
                    UIToolbar toolbar = new UIToolbar();
                    toolbar.WindowControl = WindowControl;
                    toolbar.Name          = WindowControl.Name;
                    panel.Controls.Add(toolbar);
                    toolbar.Dock = DockStyle.Fill;
                    toolbar.SendToBack();
                }
                else if (WindowControl.CtrlType == ControlType.TableGrid)
                {
                    if (WindowControl.TableInWindowControlMgr.GetList().Count == 0)
                    {
                        continue;
                    }
                    CTableInWindowControl TableInWindowControl = (CTableInWindowControl)WindowControl.TableInWindowControlMgr.GetFirstObj();
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInWindowControl.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }

                    CBaseObjectMgr objMgr = new CBaseObjectMgr();
                    objMgr.TbCode = table.Code;
                    objMgr.Ctx    = Program.Ctx;
                    TableGrid te = new TableGrid();
                    te.TableInWindowControl = TableInWindowControl;
                    te.BaseObjectMgr        = objMgr;
                    te.Name         = WindowControl.Name;
                    te.ShowToolBar  = TableInWindowControl.ShowToolBar;
                    te.ShowTitleBar = TableInWindowControl.ShowTitleBar;
                    te.CaptionText  = WindowControl.Name;
                    te.Tag          = WindowControl;
                    panel.Controls.Add(te);
                    te.Dock = (DockStyle)WindowControl.Dock;
                    te.BringToFront();
                    te.dataGridView.CellClick += new DataGridViewCellEventHandler(dataGridView_CellClick);
                }
                else if (WindowControl.CtrlType == ControlType.TableTree)
                {
                    TableTree tt = new TableTree();
                    tt.CaptionText   = WindowControl.Name;
                    tt.ShowTitleBar  = WindowControl.ShowTitleBar;
                    tt.WindowControl = WindowControl;
                    tt.Name          = WindowControl.Name;
                    tt.Tag           = WindowControl;
                    panel.Controls.Add(tt);
                    tt.Dock = DockStyle.Fill;
                    tt.BringToFront();

                    tt.treeView.NodeMouseClick += new TreeNodeMouseClickEventHandler(treeView_NodeMouseClick);
                }
                else if (WindowControl.CtrlType == ControlType.TableTab)
                {
                    TableTab tab = new TableTab();
                    tab.WindowControl = WindowControl;
                    tab.CaptionText   = WindowControl.Name;
                    tab.Name          = WindowControl.Name;
                    tab.ShowTitleBar  = WindowControl.ShowTitleBar;
                    tab.Tag           = WindowControl;
                    panel.Controls.Add(tab);
                    tab.Dock = DockStyle.Fill;
                    tab.BringToFront();
                }
                else if (WindowControl.CtrlType == ControlType.ComboBox)
                {
                    if (WindowControl.TableInWindowControlMgr.GetList().Count == 0)
                    {
                        continue;
                    }
                    CTableInWindowControl TableInWindowControl = (CTableInWindowControl)WindowControl.TableInWindowControlMgr.GetFirstObj();
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInWindowControl.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }

                    CBaseObjectMgr objMgr = new CBaseObjectMgr();
                    objMgr.TbCode = table.Code;
                    objMgr.Ctx    = Program.Ctx;

                    UIComboBox cb = new UIComboBox();
                    cb.CaptionText          = WindowControl.Name + ":";
                    cb.TableInWindowControl = TableInWindowControl;
                    cb.BaseObjectMgr        = objMgr;
                    cb.Name = WindowControl.Name;
                    cb.Tag  = WindowControl;
                    panel.Controls.Add(cb);
                    cb.Dock = DockStyle.Top;
                    cb.BringToFront();

                    cb.comboBox.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
                }
                else if (WindowControl.CtrlType == ControlType.ListBox)
                {
                    if (WindowControl.TableInWindowControlMgr.GetList().Count == 0)
                    {
                        continue;
                    }
                    CTableInWindowControl TableInWindowControl = (CTableInWindowControl)WindowControl.TableInWindowControlMgr.GetFirstObj();
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(TableInWindowControl.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }

                    CBaseObjectMgr objMgr = new CBaseObjectMgr();
                    objMgr.TbCode = table.Code;
                    objMgr.Ctx    = Program.Ctx;

                    UIListBox listBox = new UIListBox();
                    listBox.CaptionText          = WindowControl.Name;
                    listBox.TableInWindowControl = TableInWindowControl;
                    listBox.BaseObjectMgr        = objMgr;
                    listBox.Name = WindowControl.Name;
                    listBox.Tag  = WindowControl;
                    panel.Controls.Add(listBox);
                    listBox.Dock = DockStyle.Fill;
                    listBox.BringToFront();

                    listBox.listBox.SelectedIndexChanged += new EventHandler(listBox_SelectedIndexChanged);
                }
            }
        }
    //唯一性字段判断
    bool IsUniqueValue(CColumn col, string val)
    {
        if (col.ColType == ColumnType.string_type ||
            col.ColType == ColumnType.text_type ||
            col.ColType == ColumnType.path_type)
        {
            CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId);
            if (BaseObjectMgr != null)
            {
                List <CBaseObject> lstObj = BaseObjectMgr.GetList();
                var varObj = from obj in lstObj
                             where obj.Id != m_BaseObject.Id && obj.m_arrNewVal[col.Code.ToLower()].StrVal.EndsWith(val, StringComparison.OrdinalIgnoreCase)
                             select obj;
                if (varObj.Count() > 0)
                {
                    return(false);
                }
            }
            else
            {
                BaseObjectMgr        = new CBaseObjectMgr();
                BaseObjectMgr.TbCode = m_Table.Code;
                BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
                string             sWhere = string.Format(" [id]<>'{0}' and [{1}]='{2}'", m_BaseObject.Id, col.Code, val);
                List <CBaseObject> lstObj = BaseObjectMgr.GetList(sWhere);
                if (lstObj.Count > 0)
                {
                    return(false);
                }
            }
        }
        else if (col.ColType == ColumnType.datetime_type)
        {
            CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId);
            if (BaseObjectMgr != null)
            {
                List <CBaseObject> lstObj = BaseObjectMgr.GetList();
                var varObj = from obj in lstObj
                             where obj.Id != m_BaseObject.Id && obj.m_arrNewVal[col.Code.ToLower()].DatetimeVal == DateTime.Parse(val)
                             select obj;
                if (varObj.Count() > 0)
                {
                    return(false);
                }
            }
            else
            {
                BaseObjectMgr        = new CBaseObjectMgr();
                BaseObjectMgr.TbCode = m_Table.Code;
                BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
                string             sWhere = string.Format(" [id]<>'{0}' and [{1}]='{2}'", m_BaseObject.Id, col.Code, val);
                List <CBaseObject> lstObj = BaseObjectMgr.GetList(sWhere);
                if (lstObj.Count > 0)
                {
                    return(false);
                }
            }
        }
        else if (col.ColType == ColumnType.int_type ||
                 col.ColType == ColumnType.long_type ||
                 col.ColType == ColumnType.numeric_type)
        {
            CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId);
            if (BaseObjectMgr != null)
            {
                List <CBaseObject> lstObj = BaseObjectMgr.GetList();
                if (col.ColType == ColumnType.int_type)
                {
                    var varObj = from obj in lstObj
                                 where obj.Id != m_BaseObject.Id && obj.m_arrNewVal[col.Code.ToLower()].IntVal == Convert.ToInt32(val)
                                 select obj;
                    if (varObj.Count() > 0)
                    {
                        return(false);
                    }
                }
                else if (col.ColType == ColumnType.long_type)
                {
                    var varObj = from obj in lstObj
                                 where obj.Id != m_BaseObject.Id && obj.m_arrNewVal[col.Code.ToLower()].LongVal == Convert.ToInt64(val)
                                 select obj;
                    if (varObj.Count() > 0)
                    {
                        return(false);
                    }
                }
                else
                {
                    var varObj = from obj in lstObj
                                 where obj.Id != m_BaseObject.Id && obj.m_arrNewVal[col.Code.ToLower()].DoubleVal == Convert.ToDouble(val)
                                 select obj;
                    if (varObj.Count() > 0)
                    {
                        return(false);
                    }
                }
            }
            else
            {
                BaseObjectMgr        = new CBaseObjectMgr();
                BaseObjectMgr.TbCode = m_Table.Code;
                BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
                string             sWhere = string.Format(" [id]<>'{0}' and [{1}]={2}", m_BaseObject.Id, col.Code, val);
                List <CBaseObject> lstObj = BaseObjectMgr.GetList(sWhere);
                if (lstObj.Count > 0)
                {
                    return(false);
                }
            }
        }
        else if (col.ColType == ColumnType.guid_type ||
                 col.ColType == ColumnType.ref_type)
        {
            CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, m_guidParentId);
            if (BaseObjectMgr != null)
            {
                List <CBaseObject> lstObj = BaseObjectMgr.GetList();
                var varObj = from obj in lstObj
                             where obj.Id != m_BaseObject.Id && obj.m_arrNewVal[col.Code.ToLower()].GuidVal == new Guid(val)
                             select obj;
                if (varObj.Count() > 0)
                {
                    return(false);
                }
            }
            else
            {
                BaseObjectMgr        = new CBaseObjectMgr();
                BaseObjectMgr.TbCode = m_Table.Code;
                BaseObjectMgr.Ctx    = Global.GetCtx(Session["TopCompany"].ToString());
                string             sWhere = string.Format(" [id]<>'{0}' and [{1}]='{2}'", m_BaseObject.Id, col.Code, val);
                List <CBaseObject> lstObj = BaseObjectMgr.GetList(sWhere);
                if (lstObj.Count > 0)
                {
                    return(false);
                }
            }
        }

        return(true);
    }
예제 #22
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);
    }
예제 #23
0
        void LoopTreeNode(int iLevel, List <CBaseObject> lstTIWC, TreeNode pnode)
        {
            if (iLevel >= lstTIWC.Count)
            {
                return;
            }
            CTableInWindowControl tiwc = (CTableInWindowControl)lstTIWC[iLevel];
            CTable table = (CTable)Program.Ctx.TableMgr.Find(tiwc.FW_Table_id);

            if (table == null)
            {
                return;
            }
            if (!tiwc.IsLoop)
            {
                CBaseObjectMgr BaseObjectMgr = new CBaseObjectMgr();
                BaseObjectMgr.Ctx    = Program.Ctx;
                BaseObjectMgr.TbCode = table.Code;
                List <CBaseObject> lstObj = BaseObjectMgr.GetList(tiwc.QueryFilter);
                foreach (CBaseObject obj in lstObj)
                {
                    string sText  = tiwc.Text.ToLower();
                    int    iStart = 0;
                    while (sText.IndexOf('[', iStart) > -1)
                    {
                        int idx1 = sText.IndexOf('[', iStart);
                        int idx2 = sText.IndexOf(']', idx1);
                        iStart = idx1 + 1;
                        if (idx2 > idx1)
                        {
                            string  sCodeN = sText.Substring(idx1, idx2 - idx1 + 1);
                            string  sCode  = sCodeN.Substring(1, sCodeN.Length - 2);
                            CColumn column = table.ColumnMgr.FindByCode(sCode);
                            if (column == null)
                            {
                                continue;
                            }
                            string sVal = obj.GetColValue(column).ToString();
                            sText = sText.Replace(sCodeN, sVal);
                        }
                    }

                    TreeNode node = new TreeNode();
                    node.Text = sText;
                    if (pnode == null)
                    {
                        treeView.Nodes.Add(node);
                    }
                    else
                    {
                        pnode.Nodes.Add(node);
                    }

                    LoopTreeNode(iLevel + 1, lstTIWC, node);
                }
            }
            else
            {
                string sFilter = tiwc.QueryFilter;
                if (sFilter.Trim() != "")
                {
                    sFilter += " and ";
                }
                sFilter += tiwc.RootFilter;
                List <TreeNode> lstTreeNode = SelfLoop(tiwc, sFilter, pnode);
                foreach (TreeNode node in lstTreeNode)
                {
                    LoopTreeNode(iLevel + 1, lstTIWC, node);
                }
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        string vid = Request["vid"];

        if (string.IsNullOrEmpty(vid))
        {
            Response.End();
        }
        string vdid = Request["vdid"];

        if (string.IsNullOrEmpty(vdid))
        {
            Response.End();
        }
        m_View = (CView)Global.GetCtx(Session["TopCompany"].ToString()).ViewMgr.Find(new Guid(vid));
        if (m_View == null)
        {
            Response.End();
        }
        m_ViewDetail = (CViewDetail)m_View.ViewDetailMgr.Find(new Guid(vdid));
        if (m_ViewDetail == null)
        {
            Response.End();
        }
        m_Table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(m_ViewDetail.FW_Table_id);

        m_sortRestrictColumnAccessType = m_User.GetRestrictColumnAccessTypeList(m_Table);

        if (Session["EditMultMasterDetailViewRecord"] == null)
        {
            Response.End();
        }
        SortedList <Guid, CBaseObject> arrP = (SortedList <Guid, CBaseObject>)Session["EditMultMasterDetailViewRecord"];
        CBaseObject objP = (CBaseObject)arrP.Values[0];

        m_BaseObjectMgr = objP.GetSubObjectMgr(m_Table.Code, typeof(CBaseObjectMgr));

        if (!IsPostBack)
        {
            recordCtrl.m_ViewDetail = m_ViewDetail;
            recordCtrl.m_Table      = m_Table;
            recordCtrl.m_sortRestrictColumnAccessType = m_sortRestrictColumnAccessType;
            if (!string.IsNullOrEmpty(Request["UIColCount"]))
            {
                recordCtrl.m_iUIColCount = Convert.ToInt32(Request["UIColCount"]);
            }
            //外面传递的默认值
            foreach (CColumn col in m_Table.ColumnMgr.GetList())
            {
                if (!string.IsNullOrEmpty(Request[col.Code]))
                {
                    recordCtrl.m_sortDefVal.Add(col.Code, Request[col.Code]);
                }
            }
            //隐藏字段
            string sHideCols = Request["HideCols"];
            if (!string.IsNullOrEmpty(sHideCols))
            {
                string[] arr = sHideCols.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                foreach (string code in arr)
                {
                    recordCtrl.m_sortHideColumn.Add(code, code);
                }
            }
        }
        if (Request.Params["Action"] == "Cancel")
        {
            Response.End();
        }
        else if (Request.Params["Action"] == "PostData")
        {
            PostData();
            Response.End();
        }
    }
예제 #25
0
        Control ColumnMapControl(CColumn col)
        {
            //自扩展类优先
            if (!string.IsNullOrEmpty(col.UIControl))
            {
                try
                {
                    object      obj  = Activator.CreateInstance(Type.GetType(col.UIControl));
                    IColumnCtrl ctrl = (IColumnCtrl)obj;
                    ctrl.SetCaption(col.Name + ":");
                    if (BaseObject != null)
                    {
                        ctrl.SetValue(BaseObject.GetColValue(col));
                    }
                    return((Control)ctrl);
                }
                catch
                {
                }
            }
            switch (col.ColType)
            {
            case ColumnType.string_type:
            {
                ExTextBox ctrl = new ExTextBox();
                ctrl.Width = 300;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.text_type:
            {
                ExTextBox ctrl = new ExTextBox();
                ctrl.textBox.Multiline  = true;
                ctrl.textBox.ScrollBars = ScrollBars.Both;
                ctrl.Width  = 300;
                ctrl.Height = 100;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.int_type:
            {
                ExTextBox ctrl = new ExTextBox();
                ctrl.Width = 300;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.ref_type:
            {
                ExComboBox ctrl = new ExComboBox();
                ctrl.Width = 300;
                CTable         table         = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                CBaseObjectMgr BaseObjectMgr = new CBaseObjectMgr();
                BaseObjectMgr.TbCode = table.Code;
                BaseObjectMgr.Ctx    = Program.Ctx;

                CColumn            RefCol     = (CColumn)table.ColumnMgr.Find(col.RefCol);
                CColumn            RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                List <CBaseObject> lstObj     = BaseObjectMgr.GetList();
                foreach (CBaseObject obj in lstObj)
                {
                    DataItem item = new DataItem();
                    item.name = obj.GetColValue(RefShowCol).ToString();
                    item.Data = obj.GetColValue(RefCol);

                    ctrl.comboBox.Items.Add(item);
                }
                ctrl.comboBox.DropDownStyle = ComboBoxStyle.DropDownList;


                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.enum_type:
            {
                ExComboBox ctrl = new ExComboBox();
                ctrl.Width = 300;
                //引用显示字段优先
                if (col.RefShowCol != Guid.Empty)
                {
                    CTable         table         = (CTable)Program.Ctx.TableMgr.Find(col.RefTable);
                    CBaseObjectMgr BaseObjectMgr = new CBaseObjectMgr();
                    BaseObjectMgr.TbCode = table.Code;
                    BaseObjectMgr.Ctx    = Program.Ctx;

                    CColumn            RefShowCol = (CColumn)table.ColumnMgr.Find(col.RefShowCol);
                    List <CBaseObject> lstObj     = BaseObjectMgr.GetList();
                    foreach (CBaseObject obj in lstObj)
                    {
                        DataItem item = new DataItem();
                        item.name = obj.GetColValue(RefShowCol).ToString();

                        ctrl.comboBox.Items.Add(item);
                    }
                }
                else
                {
                    List <CBaseObject> lstObj = col.ColumnEnumValMgr.GetList();
                    foreach (CBaseObject obj in lstObj)
                    {
                        CColumnEnumVal cev  = (CColumnEnumVal)obj;
                        DataItem       item = new DataItem();
                        item.name = cev.Val;
                        item.Data = cev.Val;

                        ctrl.comboBox.Items.Add(item);
                    }
                }
                ctrl.comboBox.DropDownStyle = ComboBoxStyle.DropDown;

                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.long_type:
            {
                ExTextBox ctrl = new ExTextBox();
                ctrl.Width = 300;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);
            }

            case ColumnType.bool_type:
            {
                ExCheckBox ctrl = new ExCheckBox();
                ctrl.Width = 300;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.numeric_type:
            {
                ExTextBox ctrl = new ExTextBox();
                ctrl.Width = 300;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.datetime_type:
            {
                ExDateTimePicker ctrl = new ExDateTimePicker();
                ctrl.Width = 300;
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }

            case ColumnType.object_type:
            {
                BinaryCtrl ctrl = new BinaryCtrl();
                ctrl.SetCaption(col.Name + ":");
                if (BaseObject != null)
                {
                    ctrl.SetValue(BaseObject.GetColValue(col));
                }
                return(ctrl);

                break;
            }
            }
            return(new ExTextBox());
        }
예제 #26
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)
            {
                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);
                }
            }
        }
    void PostData()
    {
        if (!ValidateData())
        {
            return;
        }

        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());
        }

        CBaseObject BaseObject = BaseObjectMgr.CreateBaseObject();

        BaseObject.Ctx    = BaseObjectMgr.Ctx;
        BaseObject.TbCode = BaseObjectMgr.TbCode;

        bool bHasVisible = false;

        //foreach (CBaseObject objCIV in m_View.ColumnInViewMgr.GetList())
        foreach (CBaseObject objCol in m_Table.ColumnMgr.GetList())
        {
            //CColumnInView civ = (CColumnInView)objCIV;

            //CColumn col = (CColumn)m_Table.ColumnMgr.Find(civ.FW_Column_id);
            CColumn col = (CColumn)objCol;
            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))
            {
                BaseObject.SetColValue(col, DateTime.Now);
                continue;
            }
            else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase))
            {
                CUser user = (CUser)Session["User"];
                BaseObject.SetColValue(col, 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;
            }

            if (col.ColType == ColumnType.object_type)
            {
                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);

                    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);
                }

                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);
                    BaseObject.SetColValue(col, sVal);
                }
            }
            else if (col.ColType == ColumnType.bool_type)
            {
                string val = Request.Params["_" + col.Code];
                if (!string.IsNullOrEmpty(val) && val.ToLower() == "on")
                {
                    BaseObject.SetColValue(col, true);
                }
                else
                {
                    BaseObject.SetColValue(col, false);
                }
            }
            else if (col.ColType == ColumnType.datetime_type)
            {
                string val = Request.Params["_" + col.Code];
                if (!string.IsNullOrEmpty(val))
                {
                    BaseObject.SetColValue(col, Convert.ToDateTime(val));
                }
            }
            else
            {
                BaseObject.SetColValue(col, Request.Params["_" + col.Code]);
            }
            bHasVisible = true;
        }
        if (!bHasVisible)
        {
            //Response.Write("没有可修改字段!");
            Response.Write("<script>alert('没有可修改字段!');</script>");
            return;
        }
        BaseObjectMgr.AddNew(BaseObject);
        if (!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.onOkAddSingleViewRecord();</script>");
    }
예제 #28
0
        private void tbtEdit_Click(object sender, EventArgs e)
        {
            if (dataGridView.CurrentRow == null)
            {
                MessageBox.Show("请选择一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            CBaseObject obj = (CBaseObject)dataGridView.CurrentRow.Tag;

            if (View.VType == enumViewType.Single)
            {
                SingleViewRecord frm = new SingleViewRecord(BaseObjectMgr, obj);
                frm.View = View;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                obj = frm.BaseObject;
            }
            else if (View.VType == enumViewType.MasterDetail)
            {
                MasterDetailViewRecord frm = new MasterDetailViewRecord(BaseObjectMgr, obj);
                frm.View = View;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                obj = frm.BaseObject;
            }
            else
            {
                MultMasterDetailViewRecord frm = new MultMasterDetailViewRecord(BaseObjectMgr, obj);
                frm.View = View;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                obj = frm.BaseObject;
            }

            DataGridViewRow row = dataGridView.CurrentRow;

            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);
                }
            }
        }