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