Example #1
0
    public string GetColumnRefDefaultVal(CColumnDefaultValInView cdviv, CColumn col)
    {
        CTable         RefTable      = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(col.RefTable);
        CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(RefTable.Code, Guid.Empty);

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

        CColumn            RefCol     = (CColumn)RefTable.ColumnMgr.Find(col.RefCol);
        CColumn            RefShowCol = (CColumn)RefTable.ColumnMgr.Find(col.RefShowCol);
        List <CBaseObject> lstObjRef  = BaseObjectMgr.GetList();
        string             defval     = GetColumnDefaultVal(cdviv, col).ToString();

        foreach (CBaseObject objRef in lstObjRef)
        {
            string val = objRef.GetColValue(RefCol).ToString();
            if (defval == val)
            {
                return(objRef.GetColValue(RefShowCol).ToString());
            }
        }
        return("");
    }
Example #2
0
        void LoadGridView()
        {
            if (cbTable.SelectedIndex == -1)
            {
                return;
            }
            DataItem item  = (DataItem)cbTable.SelectedItem;
            CTable   table = (CTable)item.Data;

            m_SelTable = table;
            List <CBaseObject> lstObj = table.ColumnMgr.GetList();

            dataGridView.Rows.Clear();
            foreach (CBaseObject obj in lstObj)
            {
                CColumn col = (CColumn)obj;
                if (col.Code.Equals("id", StringComparison.OrdinalIgnoreCase) ||
                    col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase) ||
                    col.Code.Equals("Created", StringComparison.OrdinalIgnoreCase) ||
                    col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase) ||
                    col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }
                if (table.Id == m_View.FW_Table_id) //主表
                {
                    CColumnDefaultValInView cdviv = m_View.ColumnDefaultValInViewMgr.FindByColumn(col.Id);

                    dataGridView.Rows.Add(1);
                    DataGridViewRow rowNew = dataGridView.Rows[dataGridView.Rows.Count - 1];
                    rowNew.Cells[0].Value    = col.Name;
                    rowNew.Cells[0].ReadOnly = true;
                    if (cdviv != null)
                    {
                        rowNew.Cells[1].Value = cdviv.DefaultVal;
                        rowNew.Cells[2].Value = cdviv.ReadOnly;
                    }
                    rowNew.Tag = col;
                }
                else //从表
                {
                    CViewDetail ViewDetail = m_View.ViewDetailMgr.FindByTable(table.Id);
                    CColumnDefaultValInViewDetail cdvivd = ViewDetail.ColumnDefaultValInViewDetailMgr.FindByColumn(col.Id);

                    dataGridView.Rows.Add(1);
                    DataGridViewRow rowNew = dataGridView.Rows[dataGridView.Rows.Count - 1];
                    rowNew.Cells[0].Value    = col.Name;
                    rowNew.Cells[0].ReadOnly = true;
                    if (cdvivd != null)
                    {
                        rowNew.Cells[1].Value = cdvivd.DefaultVal;
                        rowNew.Cells[2].Value = cdvivd.ReadOnly;
                    }
                    rowNew.Tag = col;
                }
            }
        }
    void GetData()
    {
        string table_id = Request["table_id"];
        CTable table    = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(new Guid(table_id));

        string sData = "";

        List <CBaseObject> lstObj = table.ColumnMgr.GetList();

        int iCount = 0;

        foreach (CBaseObject obj in lstObj)
        {
            CColumn col = (CColumn)obj;
            if (col.Code.Equals("id", StringComparison.OrdinalIgnoreCase) ||
                col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase) ||
                col.Code.Equals("Created", StringComparison.OrdinalIgnoreCase) ||
                col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase) ||
                col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase))
            {
                continue;
            }
            if (table.Id == m_View.FW_Table_id) //主表
            {
                CColumnDefaultValInView cdviv = m_View.ColumnDefaultValInViewMgr.FindByColumn(col.Id);
                string DefaultVal             = cdviv != null ? cdviv.DefaultVal : "";
                string ReadOnly = (cdviv != null && cdviv.ReadOnly) ? "1" : "0";

                sData += string.Format("{{ \"id\": \"{0}\",\"ColName\":\"{1}\",\"DefaultVal\":\"{2}\",\"ReadOnly\":\"{3}\"}},"
                                       , col.Id, col.Name, DefaultVal, ReadOnly);
            }
            else //从表
            {
                CViewDetail ViewDetail = m_View.ViewDetailMgr.FindByTable(table.Id);
                CColumnDefaultValInViewDetail cdvivd = ViewDetail.ColumnDefaultValInViewDetailMgr.FindByColumn(col.Id);
                string DefaultVal = cdvivd != null ? cdvivd.DefaultVal : "";
                string ReadOnly   = (cdvivd != null && cdvivd.ReadOnly) ? "1" : "0";

                sData += string.Format("{{ \"id\": \"{0}\",\"ColName\":\"{1}\",\"DefaultVal\":\"{2}\",\"ReadOnly\":\"{3}\"}},"
                                       , col.Id, col.Name, DefaultVal, ReadOnly);
            }
            iCount++;
        }

        sData = sData.TrimEnd(",".ToCharArray());
        sData = "[" + sData + "]";
        string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}"
                                     , sData, iCount);

        Response.Write(sJson);
    }
Example #4
0
    public string GetColumnDefaultVal(CColumnDefaultValInView cdviv, CColumn col)
    {
        //外面传进来的默认值,比设置的优先
        if (m_sortDefVal.ContainsKey(col.Code))
        {
            return(m_sortDefVal[col.Code]);
        }
        //

        if (cdviv == null || cdviv.DefaultVal.Trim() == "")
        {
            return("");
        }
        //变量
        if (cdviv.DefaultVal.Length > 2 && cdviv.DefaultVal[0] == '[' && cdviv.DefaultVal[cdviv.DefaultVal.Length - 1] == ']')
        {
            CVariable Variable = new CVariable();
            return(Variable.GetVarValue(cdviv.DefaultVal));
        }
        //sql语句
        else if (cdviv.DefaultVal.Length > 4 && cdviv.DefaultVal.Substring(0, 4).Equals("sql:", StringComparison.OrdinalIgnoreCase))
        {
            string sSql = cdviv.DefaultVal.Substring(4);
            object obj  = Global.GetCtx(Session["TopCompany"].ToString()).MainDB.GetSingle(sSql);
            if (obj == null)
            {
                return("");
            }
            else
            {
                return(obj.ToString());
            }
        }
        //常量
        else
        {
            return(cdviv.DefaultVal);
        }
    }
 object GetColumnDefaultVal(CColumnDefaultValInView cdviv)
 {
     if (cdviv.DefaultVal.Trim() == "")
     {
         return("");
     }
     //变量
     if (cdviv.DefaultVal.Length > 2 && cdviv.DefaultVal[0] == '[' && cdviv.DefaultVal[cdviv.DefaultVal.Length - 1] == ']')
     {
         CVariable Variable = new CVariable();
         return(Variable.GetVarValue(cdviv.DefaultVal));
     }
     //sql语句
     else if (cdviv.DefaultVal.Length > 4 && cdviv.DefaultVal.Substring(0, 4).Equals("sql:", StringComparison.OrdinalIgnoreCase))
     {
         string sSql = cdviv.DefaultVal.Substring(4);
         return(Program.Ctx.MainDB.GetSingle(sSql));
     }
     //常量
     else
     {
         return(cdviv.DefaultVal);
     }
 }
        void LoadUI()
        {
            if (View == null)
            {
                return;
            }
            if (BaseObjectMgr == null)
            {
                return;
            }

            m_sortRestrictColumnAccessType = Program.User.GetRestrictColumnAccessTypeList(BaseObjectMgr.Table);

            if (BaseObject == null) //新建
            {
                BaseObject        = BaseObjectMgr.CreateBaseObject();
                BaseObject.Ctx    = BaseObjectMgr.Ctx;
                BaseObject.TbCode = BaseObjectMgr.TbCode;
                m_bIsNew          = true;
            }

            this.Controls.Clear();
            List <CBaseObject> lstCIV = View.ColumnInViewMgr.GetList();
            int nTop = 5;

            foreach (CBaseObject obj in lstCIV)
            {
                CColumnInView civ = (CColumnInView)obj;
                CColumn       col = (CColumn)BaseObjectMgr.Table.ColumnMgr.Find(civ.FW_Column_id);
                if (col == null)
                {
                    continue;
                }
                //判断禁止权限字段
                bool bReadOnly = false;
                if (m_sortRestrictColumnAccessType.ContainsKey(col.Id))
                {
                    AccessType accessType = m_sortRestrictColumnAccessType[col.Id];
                    if (accessType == AccessType.forbide)
                    {
                        continue;
                    }
                    else if (accessType == AccessType.read)
                    {
                        bReadOnly = true;
                    }
                }
                //

                Control ctrl = ColumnMapControl(col);
                if (ctrl != null)
                {
                    ctrl.Name = col.Code;
                    ctrl.Left = 10;
                    ctrl.Top  = nTop;
                    //ctrl.Width = lbCaption.Width;
                    //ctrl.Height = lbCaption.Height;
                    this.Controls.Add(ctrl);
                    //只读权限
                    if (bReadOnly)
                    {
                        ctrl.Enabled = false;
                    }
                }
                nTop = ctrl.Bottom + 5;
            }

            //具有默认值的字段
            List <CBaseObject> lstObj = View.ColumnDefaultValInViewMgr.GetList();

            foreach (CBaseObject obj in lstObj)
            {
                CColumnDefaultValInView cdviv = (CColumnDefaultValInView)obj;
                CColumn col = (CColumn)baseObjectMgr.Table.ColumnMgr.Find(cdviv.FW_Column_id);
                if (col == null)
                {
                    continue;
                }
                if (View.ColumnInViewMgr.FindByColumn(col.Id) != null) //在视图列中
                {
                    Control[] ctrls = this.Controls.Find(col.Code, true);
                    if (ctrls.Length > 0)
                    {
                        if (m_bIsNew) //新建
                        {
                            ((IColumnCtrl)ctrls[0]).SetValue(GetColumnDefaultVal(cdviv));
                        }
                        if (cdviv.ReadOnly)
                        {
                            ctrls[0].Enabled = false;
                        }
                    }
                }
                else  //不在视图列中
                {
                    Control ctrl = ColumnMapControl(col);
                    if (ctrl != null)
                    {
                        ctrl.Name = col.Code;
                        if (m_bIsNew) //新建
                        {
                            ((IColumnCtrl)ctrl).SetValue(GetColumnDefaultVal(cdviv));
                        }
                        ctrl.Visible = false; //作为隐藏字段
                        this.Controls.Add(ctrl);
                    }
                }
            }
            //
            //明细
            CViewDetail    vd  = (CViewDetail)View.ViewDetailMgr.GetFirstObj();
            ViewDetailGrid vdg = new ViewDetailGrid();

            vdg.ViewDetail = vd;
            CTable tb = (CTable)Program.Ctx.TableMgr.Find(vd.FW_Table_id);

            if (tb != null)
            {
                CBaseObjectMgr objMgr = BaseObject.GetSubObjectMgr(tb.Code, typeof(CBaseObjectMgr));
                vdg.BaseObjectMgr = objMgr;
            }
            vdg.ShowTitleBar    = false;
            vdg.m_bShowWorkflow = false;
            vdg.Left            = 10;
            vdg.Top             = nTop;
            vdg.Width           = this.Width - 20;
            vdg.Height          = 300;
            this.Controls.Add(vdg);

            nTop        = vdg.Bottom + 5;
            this.Height = nTop;
        }
Example #7
0
        void LoadUI()
        {
            if (View == null)
            {
                return;
            }
            if (BaseObjectMgr == null)
            {
                return;
            }
            m_sortRestrictColumnAccessType = Program.User.GetRestrictColumnAccessTypeList(BaseObjectMgr.Table);

            this.Controls.Clear();
            List <CBaseObject> lstCIV = View.ColumnInViewMgr.GetList();
            int nTop = 5;

            foreach (CBaseObject obj in lstCIV)
            {
                CColumnInView civ = (CColumnInView)obj;
                CColumn       col = (CColumn)BaseObjectMgr.Table.ColumnMgr.Find(civ.FW_Column_id);
                if (col == null)
                {
                    continue;
                }
                //判断禁止权限字段
                bool bReadOnly = false;
                if (m_sortRestrictColumnAccessType.ContainsKey(col.Id))
                {
                    AccessType accessType = m_sortRestrictColumnAccessType[col.Id];
                    if (accessType == AccessType.forbide)
                    {
                        continue;
                    }
                    else if (accessType == AccessType.read)
                    {
                        bReadOnly = true;
                    }
                }
                //

                Control ctrl = ColumnMapControl(col);
                if (ctrl != null)
                {
                    ctrl.Name = col.Code;
                    ctrl.Left = 10;
                    ctrl.Top  = nTop;
                    //ctrl.Width = lbCaption.Width;
                    //ctrl.Height = lbCaption.Height;
                    this.Controls.Add(ctrl);
                    //只读权限
                    if (bReadOnly)
                    {
                        ctrl.Enabled = false;
                    }
                }
                nTop = ctrl.Bottom + 5;
            }
            //具有默认值的字段
            List <CBaseObject> lstObj = View.ColumnDefaultValInViewMgr.GetList();

            foreach (CBaseObject obj in lstObj)
            {
                CColumnDefaultValInView cdviv = (CColumnDefaultValInView)obj;
                CColumn col = (CColumn)baseObjectMgr.Table.ColumnMgr.Find(cdviv.FW_Column_id);
                if (col == null)
                {
                    continue;
                }
                if (View.ColumnInViewMgr.FindByColumn(col.Id) != null) //在视图列中
                {
                    Control[] ctrls = this.Controls.Find(col.Code, true);
                    if (ctrls.Length > 0)
                    {
                        if (baseObject == null) //新建
                        {
                            ((IColumnCtrl)ctrls[0]).SetValue(GetColumnDefaultVal(cdviv));
                        }
                        if (cdviv.ReadOnly)
                        {
                            ctrls[0].Enabled = false;
                        }
                    }
                }
                else  //不在视图列中
                {
                    Control ctrl = ColumnMapControl(col);
                    if (ctrl != null)
                    {
                        ctrl.Name = col.Code;
                        if (baseObject == null) //新建
                        {
                            ((IColumnCtrl)ctrl).SetValue(GetColumnDefaultVal(cdviv));
                        }
                        ctrl.Visible = false; //作为隐藏字段
                        this.Controls.Add(ctrl);
                    }
                }
            }
            //
            this.Height = nTop;
        }
Example #8
0
 //在切换表前把旧表设置保存
 void UpdateGridView()
 {
     if (m_SelTable == null)
     {
         return;
     }
     if (m_SelTable.Id == m_View.FW_Table_id) //主表
     {
         for (int i = 0; i < dataGridView.Rows.Count; i++)
         {
             DataGridViewRow row = dataGridView.Rows[i];
             CColumn         col = (CColumn)row.Tag;
             if (row.Cells[1].Value == null || row.Cells[1].Value.ToString().Trim() == "")
             {
                 m_View.ColumnDefaultValInViewMgr.RemoveByColumn(col.Id);
             }
             else
             {
                 CColumnDefaultValInView cdviv = m_View.ColumnDefaultValInViewMgr.FindByColumn(col.Id);
                 if (cdviv == null)
                 {
                     cdviv              = new CColumnDefaultValInView();
                     cdviv.Ctx          = Program.Ctx;
                     cdviv.FW_Table_id  = m_SelTable.Id;
                     cdviv.FW_Column_id = col.Id;
                     cdviv.DefaultVal   = row.Cells[1].Value.ToString().Trim();
                     cdviv.ReadOnly     = (row.Cells[2].Value != null)? (bool)row.Cells[2].Value:false;
                     cdviv.UI_View_id   = m_View.Id;
                     m_View.ColumnDefaultValInViewMgr.AddNew(cdviv);
                 }
                 else
                 {
                     cdviv.DefaultVal = row.Cells[1].Value.ToString().Trim();
                     cdviv.ReadOnly   = (row.Cells[2].Value != null) ? (bool)row.Cells[2].Value : false;
                     m_View.ColumnDefaultValInViewMgr.Update(cdviv);
                 }
             }
         }
     }
     else //从表
     {
         CViewDetail ViewDetail = m_View.ViewDetailMgr.FindByTable(m_SelTable.Id);
         for (int i = 0; i < dataGridView.Rows.Count; i++)
         {
             DataGridViewRow row = dataGridView.Rows[i];
             CColumn         col = (CColumn)row.Tag;
             if (row.Cells[1].Value == null || row.Cells[1].Value.ToString().Trim() == "")
             {
                 ViewDetail.ColumnDefaultValInViewDetailMgr.RemoveByColumn(col.Id);
             }
             else
             {
                 CColumnDefaultValInViewDetail cdvivd = ViewDetail.ColumnDefaultValInViewDetailMgr.FindByColumn(col.Id);
                 if (cdvivd == null)
                 {
                     cdvivd                  = new CColumnDefaultValInViewDetail();
                     cdvivd.Ctx              = Program.Ctx;
                     cdvivd.FW_Table_id      = m_SelTable.Id;
                     cdvivd.FW_Column_id     = col.Id;
                     cdvivd.DefaultVal       = row.Cells[1].Value.ToString().Trim();
                     cdvivd.ReadOnly         = (row.Cells[2].Value != null) ? (bool)row.Cells[2].Value : false;
                     cdvivd.UI_ViewDetail_id = ViewDetail.Id;
                     ViewDetail.ColumnDefaultValInViewDetailMgr.AddNew(cdvivd);
                 }
                 else
                 {
                     cdvivd.DefaultVal = row.Cells[1].Value.ToString().Trim();
                     cdvivd.ReadOnly   = (row.Cells[2].Value != null) ? (bool)row.Cells[2].Value : false;
                     ViewDetail.ColumnDefaultValInViewDetailMgr.Update(cdvivd);
                 }
             }
         }
     }
 }
    void PostData()
    {
        string table_id = Request["table_id"];
        CTable table    = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(new Guid(table_id));

        string GridData = Request["GridData"];

        if (table.Id == m_View.FW_Table_id) //主表
        {
            string[] arr1 = GridData.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < arr1.Length; i++)
            {
                string[] arr2  = arr1[i].Split(":".ToCharArray());
                Guid     colid = new Guid(arr2[0]);

                if (arr2[1].Trim() == "")
                {
                    m_View.ColumnDefaultValInViewMgr.RemoveByColumn(colid);
                }
                else
                {
                    CColumnDefaultValInView cdviv = m_View.ColumnDefaultValInViewMgr.FindByColumn(colid);
                    if (cdviv == null)
                    {
                        cdviv              = new CColumnDefaultValInView();
                        cdviv.Ctx          = Global.GetCtx(Session["TopCompany"].ToString());
                        cdviv.FW_Table_id  = table.Id;
                        cdviv.FW_Column_id = colid;
                        cdviv.DefaultVal   = arr2[1].Trim();
                        cdviv.ReadOnly     = (arr2[2] != "1") ? true : false;
                        cdviv.UI_View_id   = m_View.Id;
                        m_View.ColumnDefaultValInViewMgr.AddNew(cdviv);
                    }
                    else
                    {
                        cdviv.DefaultVal = arr2[1].Trim();
                        cdviv.ReadOnly   = (arr2[2] != "1") ? true : false;
                        m_View.ColumnDefaultValInViewMgr.Update(cdviv);
                    }
                }
            }
        }
        else
        {
            CViewDetail ViewDetail = m_View.ViewDetailMgr.FindByTable(table.Id);

            string[] arr1 = GridData.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < arr1.Length; i++)
            {
                string[] arr2  = arr1[i].Split(":".ToCharArray());
                Guid     colid = new Guid(arr2[0]);

                if (arr2[1].Trim() == "")
                {
                    ViewDetail.ColumnDefaultValInViewDetailMgr.RemoveByColumn(colid);
                }
                else
                {
                    CColumnDefaultValInViewDetail cdvivd = ViewDetail.ColumnDefaultValInViewDetailMgr.FindByColumn(colid);
                    if (cdvivd == null)
                    {
                        cdvivd                  = new CColumnDefaultValInViewDetail();
                        cdvivd.Ctx              = Global.GetCtx(Session["TopCompany"].ToString());
                        cdvivd.FW_Table_id      = table.Id;
                        cdvivd.FW_Column_id     = colid;
                        cdvivd.DefaultVal       = arr2[1].Trim();
                        cdvivd.ReadOnly         = (arr2[2] != "1") ? true : false;
                        cdvivd.UI_ViewDetail_id = ViewDetail.Id;
                        ViewDetail.ColumnDefaultValInViewDetailMgr.AddNew(cdvivd);
                    }
                    else
                    {
                        cdvivd.DefaultVal = arr2[1].Trim();
                        cdvivd.ReadOnly   = (arr2[2] != "1") ? true : false;
                        ViewDetail.ColumnDefaultValInViewDetailMgr.Update(cdvivd);
                    }
                }
            }
        }
    }