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(""); }
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); }
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; }
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; }
//在切换表前把旧表设置保存 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); } } } } }