public string GetColumnRefDefaultVal(CColumnDefaultValInViewDetail cdvivd, 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(cdvivd, col).ToString(); foreach (CBaseObject objRef in lstObjRef) { string val = objRef.GetColValue(RefCol).ToString(); if (defval == val) { return(objRef.GetColValue(RefShowCol).ToString()); } } return(""); }
void Delete() { string delid = Request["delid"]; if (string.IsNullOrEmpty(delid)) { Response.Write("请选择记录!"); 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()); string sWhere = string.Format(" id='{0}'", delid); BaseObjectMgr.GetList(sWhere); } if (!BaseObjectMgr.Delete(new Guid(delid), true)) { Response.Write("删除失败!"); return; } }
//获取引用字段的显示值 public object GetRefShowColVal(CColumn col) { CTable RefTable = (CTable)Ctx.TableMgr.Find(col.RefTable); CColumn RefCol = (CColumn)RefTable.ColumnMgr.Find(col.RefCol); CColumn RefShowCol = (CColumn)RefTable.ColumnMgr.Find(col.RefShowCol); object localVal = GetColValue(col); //缓存数据优先 CBaseObjectMgr BaseObjectMgr = Ctx.FindBaseObjectMgrCache(RefTable.Code, Guid.Empty); if (BaseObjectMgr == null) { BaseObjectMgr = new CBaseObjectMgr(); BaseObjectMgr.TbCode = RefTable.Code; BaseObjectMgr.Ctx = Ctx; string sWhere = string.Format("{0}=", RefCol.Code); string sVal = localVal.ToString(); if (col.ColType == ColumnType.string_type || col.ColType == ColumnType.guid_type || col.ColType == ColumnType.ref_type || col.ColType == ColumnType.enum_type || col.ColType == ColumnType.datetime_type || col.ColType == ColumnType.text_type || col.ColType == ColumnType.path_type) { sVal = string.Format("'{0}'", sVal); } sWhere += sVal; BaseObjectMgr.Load(sWhere); List <CBaseObject> lstObjRef = BaseObjectMgr.GetList(); if (lstObjRef.Count == 0) { return(null); } return(lstObjRef[0].GetColValue(RefShowCol)); } else { List <CBaseObject> lstObjRef = BaseObjectMgr.GetList(); var varObj = from objRef in lstObjRef where (localVal.ToString().Equals(objRef.GetColValue(RefCol).ToString(), StringComparison.OrdinalIgnoreCase)) select objRef; if (varObj.Count() == 0) { return(null); } CBaseObject obj = varObj.ToList().First(); return(obj.GetColValue(RefShowCol)); } }
void Delete() { string ids = Request["ids"]; if (string.IsNullOrEmpty(ids)) { Response.Write("请选择行!"); return; } if (m_ViewAccessType != AccessType.write) { Response.Write("没有写权限!"); return; } if (m_TableAccessType != AccessType.write) { Response.Write("没有写权限!"); 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()); string sWhere = string.Format(" id in ('{0}')", ids.TrimEnd(",".ToCharArray())); BaseObjectMgr.GetList(sWhere); } string[] arr = ids.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string sId in arr) { if (!BaseObjectMgr.Delete(new Guid(sId))) { Response.Write(BaseObjectMgr.Ctx.LastError); return; } } if (!BaseObjectMgr.Save(true)) { Response.Write("删除失败!"); return; } }
private void tbtDel_Click(object sender, EventArgs e) { //if (dataGridView.CurrentRow == null) //{ // MessageBox.Show("请选择一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; //} //if (MessageBox.Show("是否确认删除?", "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) // return; CBaseObject obj = (CBaseObject)dataGridView.CurrentRow.Tag; BaseObjectMgr.Delete(obj); //if (!BaseObjectMgr.Delete(obj,true)) //{ // MessageBox.Show("删除失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); // return ; //} dataGridView.Rows.Remove(dataGridView.CurrentRow); }
public void LoadData() { if (BaseObjectMgr == null) { return; } if (TableInWindowControl == null) { return; } comboBox.Items.Clear(); foreach (CBaseObject obj in BaseObjectMgr.GetList()) { string sText = TableInWindowControl.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 = BaseObjectMgr.Table.ColumnMgr.FindByCode(sCode); if (column == null) { continue; } string sVal = obj.GetColValue(column).ToString(); sText = sText.Replace(sCodeN, sVal); } } DataItem item = new DataItem(); item.name = sText; item.Data = obj; comboBox.Items.Add(item); } }
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["AddMasterDetailViewRecord"] == 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["AddMasterDetailViewRecord"] = 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["AddMasterDetailViewRecord"] = null; Response.End(); } else if (Request.Params["Action"] == "GetDetail") { GetDetail(); Response.End(); } else if (Request.Params["Action"] == "PostData") { PostData(); Response.End(); } }
public bool Save() { if (!Validate()) { return(false); } if (baseObject == null) //新建 { baseObject = BaseObjectMgr.CreateBaseObject(); baseObject.Ctx = BaseObjectMgr.Ctx; baseObject.TbCode = BaseObjectMgr.TbCode; bool bHasVisible = false; foreach (CBaseObject obj in ViewDetail.ColumnInViewDetailMgr.GetList()) { CColumnInViewDetail civd = (CColumnInViewDetail)obj; CColumn col = (CColumn)BaseObjectMgr.Table.ColumnMgr.Find(civd.FW_Column_id); 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)) { continue; } else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase)) { baseObject.SetColValue(col, Program.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; } Control[] ctrls = this.Controls.Find(col.Code, false); if (ctrls.Length > 0) { IColumnCtrl ctrl = (IColumnCtrl)ctrls[0]; baseObject.SetColValue(col, ctrl.GetValue()); bHasVisible = true; } } //外键关联 CBaseObject objP = BaseObjectMgr.m_Parent; CColumn colP = (CColumn)objP.Table.ColumnMgr.Find(viewDetail.PrimaryKey); CColumn colF = (CColumn)BaseObjectMgr.Table.ColumnMgr.Find(viewDetail.ForeignKey); BaseObject.SetColValue(colF, objP.GetColValue(colP)); if (!bHasVisible) { MessageBox.Show("没有可修改字段!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return(false); } if (!BaseObjectMgr.AddNew(baseObject, true)) { MessageBox.Show("添加失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return(false); } } else //修改 { List <CBaseObject> lstCol = BaseObjectMgr.Table.ColumnMgr.GetList(); bool bHasVisible = false; foreach (CBaseObject obj in lstCol) { CColumn col = (CColumn)obj; //判断禁止和只读权限字段 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)) { continue; } else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase)) { continue; } else if (col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase)) { baseObject.SetColValue(col, DateTime.Now); continue; } else if (col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase)) { baseObject.SetColValue(col, Program.User.Id); continue; } Control[] ctrls = this.Controls.Find(col.Code, false); if (ctrls.Length > 0) { IColumnCtrl ctrl = (IColumnCtrl)ctrls[0]; baseObject.SetColValue(col, ctrl.GetValue()); bHasVisible = true; } } if (!bHasVisible) { MessageBox.Show("没有可修改字段!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return(false); } if (!BaseObjectMgr.Update(baseObject, true)) { MessageBox.Show("修改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return(false); } } return(true); }
void OutPut() { DateTime dtNow = DateTime.Now; string sNewFile = string.Format("{0}{1}{2}{3}{4}{5}.xls", dtNow.Year, dtNow.Month, dtNow.Day, dtNow.Hour, dtNow.Minute, dtNow.Second); string sDir = Server.MapPath(ConfigurationManager.AppSettings["VirtualDir"] + "/uploadfiles/"); if (!Directory.Exists(sDir)) { Directory.CreateDirectory(sDir); } string sFileSrc = Server.MapPath("templet/grid.xls"); string sFileDst = sDir + sNewFile; if (File.Exists(sFileDst)) { File.Delete(sFileDst); } File.Copy(sFileSrc, sFileDst); string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties='Excel 8.0;HDR=YES;IMEX=0';" + "data source=" + sFileDst; OleDbConnection conn = new OleDbConnection(connStr); try { conn.Open(); } catch { return; } 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()); } 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; // 计算总页数 string sCols = ""; string sColV = ""; //创建表 string sCreate = string.Format("CREATE TABLE [{0}] (", m_Table.Name); List <CColumn> lstCols = GetColList(); SortedList <string, CColumn> sortCols = new SortedList <string, CColumn>(); foreach (CColumn col in lstCols) { sortCols.Add(col.Name, col); sCols += string.Format("[{0}],", col.Name); sColV += "?,"; sCreate += string.Format("[{0}] varchar(255),", col.Name); } sCols = sCols.TrimEnd(",".ToCharArray()); sColV = sColV.TrimEnd(",".ToCharArray()); sCreate = sCreate.TrimEnd(",".ToCharArray()); sCreate += ")"; OleDbCommand cmdC = new OleDbCommand(sCreate, conn); try { cmdC.ExecuteNonQuery(); } catch { conn.Close(); return; } int index = (page - 1) * pageSize; // 开始记录数 for (int i = index; i < pageSize + index && i < lstObj.Count; i++) { CBaseObject obj = (CBaseObject)lstObj[i]; string sIns = string.Format("insert into [{0}] ({1}) values ({2})", m_Table.Name, sCols, sColV); CCompany Company = (CCompany)Global.GetCtx(Session["TopCompany"].ToString()).CompanyMgr.Find(m_User.B_Company_id); OleDbCommand cmd = new OleDbCommand(sIns, conn); foreach (CBaseObject objC in m_Table.ColumnMgr.GetList()) { CColumn col = (CColumn)objC; if (!sortCols.ContainsKey(col.Name)) { continue; } //判断禁止权限字段 if (m_sortRestrictColumnAccessType.ContainsKey(col.Id)) { AccessType accessType = m_sortRestrictColumnAccessType[col.Id]; if (accessType == AccessType.forbide) { string sVal = ""; cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); continue; } } // if (col.ColType == ColumnType.object_type) { string sVal = ""; if (obj.GetColValue(col) != null) { sVal = "long byte"; } cmd.Parameters.Add(new OleDbParameter(col.Name, 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(); } } } } cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); } else { string sVal = ""; object objVal = obj.GetColValue(col); if (objVal != null) { sVal = objVal.ToString(); } //转义特殊字符 Util.ConvertJsonSymbol(ref sVal); cmd.Parameters.Add(new OleDbParameter(col.Name, sVal)); } } try { cmd.ExecuteNonQuery(); } catch { conn.Close(); return; } } conn.Close(); Response.Write(sNewFile); }
void GetData() { int page = Convert.ToInt32(Request.Params["page"]); int pageSize = Convert.ToInt32(Request.Params["pagesize"]); m_iCurPage = page; m_iCurPageSize = 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 pid = Request["pid"]; if (string.IsNullOrEmpty(pid)) { return; } CBaseObjectMgr BaseObjectMgr = Global.GetCtx(Session["TopCompany"].ToString()).FindBaseObjectMgrCache(m_Table.Code, new Guid(pid)); if (BaseObjectMgr == null) { BaseObjectMgr = new CBaseObjectMgr(); BaseObjectMgr.TbCode = m_Table.Code; BaseObjectMgr.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); CColumn colF = (CColumn)m_Table.ColumnMgr.Find(m_ViewDetail.ForeignKey); if (colF == null) { return; } string sWhere0 = string.Format(" {0}='{1}'", colF.Code, pid); BaseObjectMgr.GetList(sWhere0); } List <CBaseObject> lstObj = BaseObjectMgr.GetList(); string sData = ""; 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); 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); }
public bool Save() { if (!Validate()) { return(false); } List <CBaseObject> lstCol = BaseObjectMgr.Table.ColumnMgr.GetList(); bool bHasVisible = false; foreach (CBaseObject obj in lstCol) { CColumn col = (CColumn)obj; //判断禁止和只读权限字段 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)) { continue; } else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase)) { continue; } else if (col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase)) { BaseObject.SetColValue(col, DateTime.Now); continue; } else if (col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase)) { BaseObject.SetColValue(col, Program.User.Id); continue; } Control[] ctrls = this.Controls.Find(col.Code, false); if (ctrls.Length > 0) { IColumnCtrl ctrl = (IColumnCtrl)ctrls[0]; BaseObject.SetColValue(col, ctrl.GetValue()); bHasVisible = true; } } if (!bHasVisible) { MessageBox.Show("没有可修改字段!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return(false); } if (m_bIsNew) { BaseObjectMgr.AddNew(BaseObject); } else { BaseObjectMgr.Update(BaseObject); } if (!BaseObjectMgr.Save()) { MessageBox.Show("修改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return(false); } return(true); }
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(); } }
void LoadUI() { 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; } List <CBaseObject> lstCol = BaseObjectMgr.Table.ColumnMgr.GetList(); int nTop = 5; foreach (CBaseObject obj in lstCol) { CColumn col = (CColumn)obj; //判断禁止权限字段 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; } } // if (col.Code.Equals("id", StringComparison.OrdinalIgnoreCase)) { continue; } else if (col.Code.Equals("Created", StringComparison.OrdinalIgnoreCase)) { continue; } else if (col.Code.Equals("Creator", StringComparison.OrdinalIgnoreCase)) { continue; } else if (col.Code.Equals("Updated", StringComparison.OrdinalIgnoreCase)) { continue; } else if (col.Code.Equals("Updator", StringComparison.OrdinalIgnoreCase)) { continue; } //if (!col.IsVisible) // continue; if (m_sortNotShowCol.ContainsKey(col.Code.ToLower())) { continue; } 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; } if (m_sortDisableCol.ContainsKey(col.Code.ToLower())) { ctrl.Enabled = false; } } nTop = ctrl.Bottom + 5; } this.Height = nTop; }
public void LoadData() { if (BaseObjectMgr == null) { return; } if (dataGridView.Columns.Count == 0) { return; } dataGridView.Rows.Clear(); 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) { 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); } } nRowIdx++; } }
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 = (CBaseObject)Session["AddMasterDetailViewRecord"]; 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; } Session["AddMasterDetailViewRecord"] = null; //在iframe里访问外面,需要parent.parent. //Response.Write("<script>parent.parent.grid.loadData(true);parent.parent.$.ligerDialog.close();</script>"); Response.Write("<script>parent.parent.onOkAddMasterDetailViewRecord();</script>"); }
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; }
public void LoadData() { if (BaseObjectMgr == null) { return; } if (dataGridView.Columns.Count == 0) { return; } dataGridView.Rows.Clear(); //检查权限 if (!CheckAccess()) { return; } m_TempViewFilterMgr.IsLoad = true;//避免临时数据从数据库装载 List <CBaseObject> lstObj = BaseObjectMgr.FilterByView(View, m_TempViewFilterMgr); 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++; } }