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;
        }
Ejemplo n.º 2
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();
            }
        }