/// <summary> /// Translates an invocation expression, e.g. "Math.Max(10, 5)". /// </summary> public override StringBuilder VisitInvocationExpression(InvocationExpression invocationExpr) { var result = new StringBuilder(); var methodDef = invocationExpr.Annotation <MethodDefinition>() ?? invocationExpr.Annotation <MethodReference>().Resolve(); var methodName = methodDef.Name; var declType = methodDef.DeclaringType.ToType(); var args = JoinArgs(invocationExpr.Arguments).ToString(); // map method if it's a mathematical method or // map method if it's a xSLShader class' method if (ShaderMapping.Types.ContainsKey(declType)) { if (ShaderMapping.Methods.ContainsKey(methodName)) { var mappedName = ShaderMapping.Methods[methodName]; return(result.Method(mappedName, args)); } } // otherwise just call the method if (declType != typeof(xSLShader)) { RefMethods.Add(methodDef); } return(result.Method(methodDef.Name, args)); }
/// <summary> /// 实体初始化 /// </summary> /// <returns></returns> public string Entity_Init() { try { //是否是空白记录. bool isBlank = DataType.IsNullOrEmpty(this.PKVal); //if (DataType.IsNullOrEmpty(this.PKVal) == true) // return "err@主键数据丢失,不能初始化En.htm"; //初始化entity. string enName = this.EnName; Entity en = null; if (DataType.IsNullOrEmpty(enName) == true) { if (DataType.IsNullOrEmpty(this.EnsName) == true) { return("err@类名没有传递过来"); } Entities ens = ClassFactory.GetEns(this.EnsName); en = ens.GetNewEntity; } else { en = ClassFactory.GetEn(this.EnName); } if (en == null) { return("err@参数类名不正确."); } //获得描述. Map map = en.EnMap; string pkVal = this.PKVal; if (isBlank == false) { en.PKVal = pkVal; en.RetrieveFromDBSources(); } //定义容器. DataSet ds = new DataSet(); //把主数据放入里面去. DataTable dtMain = en.ToDataTableField("MainTable"); ds.Tables.Add(dtMain); #region 增加 上方法. DataTable dtM = new DataTable("dtM"); dtM.Columns.Add("No"); dtM.Columns.Add("Title"); dtM.Columns.Add("Tip"); dtM.Columns.Add("Visable"); dtM.Columns.Add("Url"); dtM.Columns.Add("Target"); dtM.Columns.Add("Warning"); dtM.Columns.Add("RefMethodType"); dtM.Columns.Add("GroupName"); dtM.Columns.Add("W"); dtM.Columns.Add("H"); dtM.Columns.Add("Icon"); dtM.Columns.Add("IsCanBatch"); dtM.Columns.Add("RefAttrKey"); //判断Func是否有参数 dtM.Columns.Add("FunPara"); RefMethods rms = map.HisRefMethods; foreach (RefMethod item in rms) { string myurl = ""; if (item.RefMethodType == RefMethodType.LinkeWinOpen || item.RefMethodType == RefMethodType.RightFrameOpen || item.RefMethodType == RefMethodType.LinkModel) { try { myurl = item.Do(null) as string; if (myurl == null) { continue; } } catch (Exception ex) { throw new Exception("err@系统错误:根据方法名生成url出现错误:@" + ex.Message + "@" + ex.InnerException + " @方法名:" + item.ClassMethodName); } } else { myurl = "../RefMethod.htm?Index=" + item.Index + "&EnName=" + en.ToString() + "&EnsName=" + en.GetNewEntities.ToString() + "&PKVal=" + this.PKVal; } DataRow dr = dtM.NewRow(); dr["No"] = item.Index; dr["Title"] = item.Title; dr["Tip"] = item.ToolTip; dr["Visable"] = item.Visable; dr["Warning"] = item.Warning; dr["RefMethodType"] = (int)item.RefMethodType; dr["RefAttrKey"] = item.RefAttrKey; dr["Url"] = myurl; dr["W"] = item.Width; dr["H"] = item.Height; dr["Icon"] = item.Icon; dr["IsCanBatch"] = item.IsCanBatch; dr["GroupName"] = item.GroupName; Attrs attrs = item.HisAttrs; if (attrs.Count == 0) { dr["FunPara"] = "false"; } else { dr["FunPara"] = "true"; } dtM.Rows.Add(dr); //增加到rows. } #endregion 增加 上方法. #region 加入一对多的实体编辑 AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM; string sql = ""; int i = 0; if (oneVsM.Count > 0) { foreach (AttrOfOneVSM vsM in oneVsM) { //判断该dot2dot是否显示? Entity enMM = vsM.EnsOfMM.GetNewEntity; enMM.SetValByKey(vsM.AttrOfOneInMM, this.PKVal); if (enMM.HisUAC.IsView == false) { continue; } DataRow dr = dtM.NewRow(); dr["No"] = enMM.ToString(); // dr["GroupName"] = vsM.GroupName; if (en.PKVal != null) { //判断模式. string url = ""; if (vsM.Dot2DotModel == Dot2DotModel.TreeDept) { //url = "Dot2DotTreeDeptModel.htm?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString(); // url = "Branches.htm?EnName=" + en.ToString() + "&AttrKey=" + vsM.EnsOfMM.ToString(); url = "Branches.htm?EnName=" + this.EnName + "&Dot2DotEnsName=" + vsM.EnsOfMM.ToString(); // url += "&PKVal=" + en.PKVal; url += "&Dot2DotEnName=" + vsM.EnsOfMM.GetNewEntity.ToString(); //存储实体类. url += "&AttrOfOneInMM=" + vsM.AttrOfOneInMM; //存储表那个与主表关联. 比如: FK_Node url += "&AttrOfMInMM=" + vsM.AttrOfMInMM; //dot2dot存储表那个与实体表. 比如:FK_Station. url += "&EnsOfM=" + vsM.EnsOfM.ToString(); //默认的B实体分组依据. 比如:FK_Station. url += "&DefaultGroupAttrKey=" + vsM.DefaultGroupAttrKey; //默认的B实体分组依据. } else if (vsM.Dot2DotModel == Dot2DotModel.TreeDeptEmp) { // url = "Dot2DotTreeDeptEmpModel.htm?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString(); // url = "Dot2Dot.aspx?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString(); url = "BranchesAndLeaf.htm?EnName=" + this.EnName + "&Dot2DotEnsName=" + vsM.EnsOfMM.ToString(); // url += "&PKVal=" + en.PKVal; url += "&Dot2DotEnName=" + vsM.EnsOfMM.GetNewEntity.ToString(); //存储实体类. url += "&AttrOfOneInMM=" + vsM.AttrOfOneInMM; //存储表那个与主表关联. 比如: FK_Node url += "&AttrOfMInMM=" + vsM.AttrOfMInMM; //dot2dot存储表那个与实体表. 比如:FK_Station. url += "&EnsOfM=" + vsM.EnsOfM.ToString(); //默认的B实体分组依据. 比如:FK_Station. url += "&DefaultGroupAttrKey=" + vsM.DefaultGroupAttrKey; //默认的B实体分组依据. 比如:FK_Station. //url += "&RootNo=" + vsM.RootNo; //默认的B实体分组依据. 比如:FK_Station. } else { // url = "Dot2Dot.aspx?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString(); url = "Dot2Dot.htm?EnName=" + this.EnName + "&Dot2DotEnsName=" + vsM.EnsOfMM.ToString(); //比如:BP.WF.Template.NodeStations url += "&AttrOfOneInMM=" + vsM.AttrOfOneInMM; //存储表那个与主表关联. 比如: FK_Node url += "&AttrOfMInMM=" + vsM.AttrOfMInMM; //dot2dot存储表那个与实体表. 比如:FK_Station. url += "&EnsOfM=" + vsM.EnsOfM.ToString(); //默认的B实体. //比如:BP.Port.Stations url += "&DefaultGroupAttrKey=" + vsM.DefaultGroupAttrKey; //默认的B实体分组依据. 比如:FK_Station. //+"&RefAttrEnsName=" + vsM.EnsOfM.ToString(); //url += "&RefAttrKey=" + vsM.AttrOfOneInMM + "&RefAttrEnsName=" + vsM.EnsOfM.ToString(); } dr["Url"] = url + "&" + en.PK + "=" + en.PKVal + "&PKVal=" + en.PKVal; dr["Icon"] = "../Img/M2M.png"; } dr["W"] = "900"; dr["H"] = "500"; dr["RefMethodType"] = (int)RefMethodType.RightFrameOpen; // 获得选择的数量. try { sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "='" + en.PKVal + "'"; i = DBAccess.RunSQLReturnValInt(sql); } catch { sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "=" + en.PKVal; try { i = DBAccess.RunSQLReturnValInt(sql); } catch { vsM.EnsOfMM.GetNewEntity.CheckPhysicsTable(); } } dr["Title"] = vsM.Desc + "(" + i + ")"; dtM.Rows.Add(dr); } } #endregion 增加 一对多. #region 从表 EnDtls enDtls = en.EnMap.Dtls; foreach (EnDtl enDtl in enDtls) { //判断该dtl是否要显示? Entity myEnDtl = enDtl.Ens.GetNewEntity; //获取他的en myEnDtl.SetValByKey(enDtl.RefKey, this.PKVal); //给refpk赋值. if (myEnDtl.HisUAC.IsView == false) { continue; } DataRow dr = dtM.NewRow(); //string url = "Dtl.aspx?EnName=" + this.EnName + "&PK=" + this.PKVal + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString() ; string url = "Dtl.htm?EnName=" + this.EnName + "&PK=" + this.PKVal + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString(); try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "='" + en.PKVal + "'"); } catch { try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "=" + en.PKVal); } catch { enDtl.Ens.GetNewEntity.CheckPhysicsTable(); } } dr["No"] = enDtl.EnsName; dr["Title"] = enDtl.Desc + "(" + i + ")"; dr["Url"] = url; dr["GroupName"] = enDtl.GroupName; dr["RefMethodType"] = (int)RefMethodType.RightFrameOpen; dtM.Rows.Add(dr); } #endregion 增加 从表. ds.Tables.Add(dtM); return(BP.Tools.Json.ToJson(ds)); } catch (Exception ex) { return("err@Entity_Init错误:" + ex.Message); } }
/// <summary> /// 实体初始化 /// </summary> /// <returns></returns> public string EntityOnly_Init() { try { //是否是空白记录. bool isBlank = DataType.IsNullOrEmpty(this.PKVal); //初始化entity. string enName = this.EnName; Entity en = null; if (isBlank == true) { if (DataType.IsNullOrEmpty(this.EnsName) == true) { return("err@类名没有传递过来"); } Entities ens = ClassFactory.GetEns(this.EnsName); en = ens.GetNewEntity; } else { en = ClassFactory.GetEn(this.EnName); } if (en == null) { return("err@参数类名不正确."); } //获得描述. Map map = en.EnMap; string pkVal = this.PKVal; if (isBlank == false) { en.PKVal = pkVal; int i = en.RetrieveFromDBSources(); if (i == 0) { return("err@数据[" + map.EnDesc + "]主键为[" + pkVal + "]不存在,或者没有保存。"); } } else { foreach (Attr attr in en.EnMap.Attrs) { en.SetValByKey(attr.Key, attr.DefaultVal); } //设置默认的数据. en.ResetDefaultVal(); en.SetValByKey("RefPKVal", this.RefPKVal); //自动生成一个编号. if (en.IsNoEntity == true && en.EnMap.IsAutoGenerNo == true) { en.SetValByKey("No", en.GenerNewNoByKey("No")); } } //定义容器. DataSet ds = new DataSet(); //定义Sys_MapData. MapData md = new MapData(); md.No = this.EnName; md.Name = map.EnDesc; //附件类型. md.SetPara("BPEntityAthType", (int)map.HisBPEntityAthType); #region 加入权限信息. //把权限加入参数里面. if (en.HisUAC.IsInsert) { md.SetPara("IsInsert", "1"); } if (en.HisUAC.IsUpdate) { md.SetPara("IsUpdate", "1"); } if (isBlank == true) { if (en.HisUAC.IsDelete) { md.SetPara("IsDelete", "0"); } } else { if (en.HisUAC.IsDelete) { md.SetPara("IsDelete", "1"); } } #endregion 加入权限信息. ds.Tables.Add(md.ToDataTableField("Sys_MapData")); //把主数据放入里面去. DataTable dtMain = en.ToDataTableField("MainTable"); ds.Tables.Add(dtMain); #region 增加上分组信息. EnCfg ec = new EnCfg(this.EnName); string groupTitle = ec.GroupTitle; if (DataType.IsNullOrEmpty(groupTitle) == true) { groupTitle = "@" + en.PK + ",基本信息," + map.EnDesc + ""; } //增加上. DataTable dtGroups = new DataTable("Sys_GroupField"); dtGroups.Columns.Add("OID"); dtGroups.Columns.Add("Lab"); dtGroups.Columns.Add("Tip"); dtGroups.Columns.Add("CtrlType"); dtGroups.Columns.Add("CtrlID"); string[] strs = groupTitle.Split('@'); foreach (string str in strs) { if (DataType.IsNullOrEmpty(str)) { continue; } string[] vals = str.Split('='); if (vals.Length == 1) { vals = str.Split(','); } if (vals.Length == 0) { continue; } DataRow dr = dtGroups.NewRow(); dr["OID"] = vals[0]; dr["Lab"] = vals[1]; if (vals.Length == 3) { dr["Tip"] = vals[2]; } dtGroups.Rows.Add(dr); } ds.Tables.Add(dtGroups); #endregion 增加上分组信息. #region 字段属性. MapAttrs attrs = en.EnMap.Attrs.ToMapAttrs; DataTable sys_MapAttrs = attrs.ToDataTableField("Sys_MapAttr"); sys_MapAttrs.Columns.Remove(MapAttrAttr.GroupID); sys_MapAttrs.Columns.Add("GroupID"); //sys_MapAttrs.Columns[MapAttrAttr.GroupID].DataType = typeof(string); //改变列类型. //给字段增加分组. string currGroupID = ""; foreach (DataRow drAttr in sys_MapAttrs.Rows) { if (currGroupID.Equals("") == true) { currGroupID = dtGroups.Rows[0]["OID"].ToString(); } string keyOfEn = drAttr[MapAttrAttr.KeyOfEn].ToString(); foreach (DataRow drGroup in dtGroups.Rows) { string field = drGroup["OID"].ToString(); if (keyOfEn.Equals(field)) { currGroupID = field; } } drAttr[MapAttrAttr.GroupID] = currGroupID; } ds.Tables.Add(sys_MapAttrs); #endregion 字段属性. #region 加入扩展属性. MapExts mapExts = new MapExts(this.EnName + "s"); DataTable Sys_MapExt = mapExts.ToDataTableField("Sys_MapExt"); ds.Tables.Add(Sys_MapExt); #endregion 加入扩展属性. #region 把外键与枚举放入里面去. //加入外键. foreach (DataRow dr in sys_MapAttrs.Rows) { string uiBindKey = dr["UIBindKey"].ToString(); string lgType = dr["LGType"].ToString(); if (lgType.Equals("2") == false) { continue; } string UIIsEnable = dr["UIVisible"].ToString(); if (UIIsEnable.Equals("0") == true) { continue; } if (DataType.IsNullOrEmpty(uiBindKey) == true) { string myPK = dr["MyPK"].ToString(); /*如果是空的*/ // throw new Exception("@属性字段数据不完整,流程:" + fl.No + fl.Name + ",节点:" + nd.NodeID + nd.Name + ",属性:" + myPK + ",的UIBindKey IsNull "); } // 检查是否有下拉框自动填充。 string keyOfEn = dr["KeyOfEn"].ToString(); string fk_mapData = dr["FK_MapData"].ToString(); // 判断是否存在. if (ds.Tables.Contains(uiBindKey) == true) { continue; } DataTable dt = BP.Sys.PubClass.GetDataTableByUIBineKey(uiBindKey); dt.TableName = keyOfEn; ds.Tables.Add(dt); } //加入sql模式的外键. foreach (Attr attr in en.EnMap.Attrs) { if (attr.IsRefAttr == true) { continue; } if (DataType.IsNullOrEmpty(attr.UIBindKey) || attr.UIBindKey.Length <= 10) { continue; } if (attr.UIIsReadonly == true) { continue; } if (attr.UIBindKey.Contains("SELECT") == true || attr.UIBindKey.Contains("select") == true) { /*是一个sql*/ string sqlBindKey = attr.UIBindKey.Clone() as string; sqlBindKey = BP.WF.Glo.DealExp(sqlBindKey, en, null); DataTable dt = DBAccess.RunSQLReturnTable(sqlBindKey); dt.TableName = attr.Key; //@杜. 翻译当前部分. if (SystemConfig.AppCenterDBType == DBType.Oracle) { dt.Columns["NO"].ColumnName = "No"; dt.Columns["NAME"].ColumnName = "Name"; } ds.Tables.Add(dt); } } //加入枚举的外键. string enumKeys = ""; foreach (Attr attr in map.Attrs) { if (attr.MyFieldType == FieldType.Enum) { enumKeys += "'" + attr.UIBindKey + "',"; } } if (enumKeys.Length > 2) { enumKeys = enumKeys.Substring(0, enumKeys.Length - 1); // Sys_Enum string sqlEnum = "SELECT * FROM Sys_Enum WHERE EnumKey IN (" + enumKeys + ")"; DataTable dtEnum = DBAccess.RunSQLReturnTable(sqlEnum); dtEnum.TableName = "Sys_Enum"; if (SystemConfig.AppCenterDBType == DBType.Oracle) { dtEnum.Columns["MYPK"].ColumnName = "MyPK"; dtEnum.Columns["LAB"].ColumnName = "Lab"; dtEnum.Columns["ENUMKEY"].ColumnName = "EnumKey"; dtEnum.Columns["INTKEY"].ColumnName = "IntKey"; dtEnum.Columns["LANG"].ColumnName = "Lang"; } ds.Tables.Add(dtEnum); } #endregion 把外键与枚举放入里面去. #region 增加 上方法. DataTable dtM = new DataTable("dtM"); dtM.Columns.Add("No"); dtM.Columns.Add("Title"); dtM.Columns.Add("Tip"); dtM.Columns.Add("Visable"); dtM.Columns.Add("Url"); dtM.Columns.Add("Target"); dtM.Columns.Add("Warning"); dtM.Columns.Add("RefMethodType"); dtM.Columns.Add("GroupName"); dtM.Columns.Add("W"); dtM.Columns.Add("H"); dtM.Columns.Add("Icon"); dtM.Columns.Add("IsCanBatch"); dtM.Columns.Add("RefAttrKey"); RefMethods rms = map.HisRefMethods; foreach (RefMethod item in rms) { string myurl = ""; if (item.RefMethodType != RefMethodType.Func) { myurl = item.Do(null) as string; if (myurl == null) { continue; } } else { myurl = "../RefMethod.htm?Index=" + item.Index + "&EnName=" + en.ToString() + "&EnsName=" + en.GetNewEntities.ToString() + "&PKVal=" + this.PKVal; } DataRow dr = dtM.NewRow(); dr["No"] = item.Index; dr["Title"] = item.Title; dr["Tip"] = item.ToolTip; dr["Visable"] = item.Visable; dr["Warning"] = item.Warning; dr["RefMethodType"] = (int)item.RefMethodType; dr["RefAttrKey"] = item.RefAttrKey; dr["Url"] = myurl; dr["W"] = item.Width; dr["H"] = item.Height; dr["Icon"] = item.Icon; dr["IsCanBatch"] = item.IsCanBatch; dr["GroupName"] = item.GroupName; dtM.Rows.Add(dr); //增加到rows. } #endregion 增加 上方法. //增加方法。 ds.Tables.Add(dtM); return(BP.Tools.Json.ToJson(ds)); } catch (Exception ex) { return("err@" + ex.Message); } }
public Entities SetDGData(int pageIdx, bool isSearch) { // this.BPToolBar1.SaveSearchState(this.EnsName, this.Key); this.ToolBar1.SaveSearchState(this.EnsName, this.Key); Entities ens = this.HisEns; Entity en = ens.GetNewEntity; QueryObject qo = new QueryObject(ens); qo = this.ToolBar1.GetnQueryObject(ens, en); string url = this.Request.RawUrl; if (url.IndexOf("PageIdx") != -1) { url = url.Substring(0, url.IndexOf("PageIdx") - 1); } this.UCSys2.Clear(); int maxPageNum = 0; try { maxPageNum = this.UCSys2.BindPageIdx(qo.GetCount(), SystemConfig.PageSize, pageIdx, "Batch.aspx?EnsName=" + this.EnsName); } catch (Exception ex) { en.CheckPhysicsTable(); throw ex; } if (isSearch) { return(null); } if (maxPageNum > 1) { this.UCSys2.Add("翻页键:← → PageUp PageDown"); } qo.DoQuery(en.PK, SystemConfig.PageSize, pageIdx); this.UCSys1.DataPanelDtlCheckBox(ens); //if (this.IsS == false) // this.UCSys3.Add("[<a href='Batch.aspx?EnsName=" + this.EnsName + "&PageIdx=" + this.PageIdx + "&IsS=1'>选择全部</a>] "); //else // this.UCSys3.Add("[<a href='Batch.aspx?EnsName=" + this.EnsName + "&PageIdx=" + this.PageIdx + "&IsS=0'>全不选</a>] "); RefMethods rms = en.EnMap.HisRefMethods; foreach (RefMethod rm in rms) { if (rm.IsCanBatch == false) { continue; } Button btn = new Button(); btn.ID = "Btn_" + rm.Index; btn.Text = rm.Title; btn.CssClass = "Btn"; if (rm.Warning == null) { btn.Attributes["onclick"] = " return confirm('您确定要执行吗?');"; } else { btn.Attributes["onclick"] = " return confirm('" + rm.Warning + "');"; } this.UCSys3.Add(btn); btn.Click += new EventHandler(btn_Click); } UAC uac = en.HisUAC; if (uac.IsDelete) { Button btn = new Button(); btn.ID = "Btn_Del"; btn.CssClass = "Btn"; btn.Text = "删除"; btn.Attributes["onclick"] = " return confirm('您确认吗?');"; btn.Attributes["class"] = "Button"; this.UCSys3.Add(btn); btn.Click += new EventHandler(btn_Click); } MoveToShowWay showWay = (MoveToShowWay)ens.GetEnsAppCfgByKeyInt("MoveToShowWay"); // 执行移动. if (showWay != MoveToShowWay.None) { string MoveTo = en.GetCfgValStr("MoveTo"); if (en.EnMap.Attrs.Contains(MoveTo) == false) { this.Alert("Moveto 字段设置错误,实体不包含字段:" + MoveTo); return(null); } Attr attr = en.EnMap.GetAttrByKey(MoveTo); if (showWay == MoveToShowWay.DDL) { Button btnM = new Button(); btnM.ID = "Btn_Move"; btnM.CssClass = "Btn"; btnM.Text = "移动到"; btnM.Attributes["onclick"] = "return confirm('您确实要移动吗?');"; this.UCSys3.Add(" "); this.UCSys3.Add(btnM); btnM.Click += new EventHandler(btn_Move_Click); DDL ddl = new DDL(); ddl.ID = "DDL_MoveTo1"; if (attr.IsEnum) { ddl.BindSysEnum(attr.Key); ddl.Items.Insert(0, new ListItem("选择" + "=>" + attr.Desc, "all")); } else { EntitiesNoName ens1 = attr.HisFKEns as EntitiesNoName; ens1.RetrieveAll(); ddl.BindEntities(ens1); ddl.Items.Insert(0, new ListItem("选择" + "=>" + attr.Desc, "all")); } this.UCSys3.Add(ddl); } if (showWay == MoveToShowWay.Panel) { if (attr.IsEnum) { SysEnums ses = new SysEnums(attr.Key); foreach (SysEnum se in ses) { Button btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Move_" + se.IntKey; btn.Text = "设置" + ":" + se.Lab; btn.Attributes["onclick"] = "return confirm('您确实要执行设置[" + se.Lab + "]吗?');"; btn.Click += new EventHandler(btn_Move_Click); this.UCSys3.Add(btn); this.UCSys3.Add(" "); } } else { EntitiesNoName ens1 = attr.HisFKEns as EntitiesNoName; ens1.RetrieveAll(); foreach (EntityNoName en1 in ens1) { Button btn = new Button(); btn.CssClass = "Btn"; btn.ID = "Btn_Move_" + en1.No; btn.Text = "设置:" + en1.Name; btn.Attributes["onclick"] = "return confirm('您确实要设置[" + en1.Name + "]吗?');"; btn.Click += new EventHandler(btn_Move_Click); this.UCSys3.Add(btn); this.UCSys3.Add(" "); } } } } int ToPageIdx = this.PageIdx + 1; int PPageIdx = this.PageIdx - 1; this.UCSys3.Add("<SCRIPT language=javascript>"); this.UCSys3.Add("\t\n document.onkeydown = chang_page;"); this.UCSys3.Add("\t\n function chang_page() {"); // this.UCSys3.Add("\t\n alert(event.keyCode); "); if (this.PageIdx == 1) { this.UCSys3.Add("\t\n if (event.keyCode == 37 || event.keyCode == 33) alert('已经是第一页');"); } else { this.UCSys3.Add("\t\n if (event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 33) "); this.UCSys3.Add("\t\n location='Batch.aspx?EnsName=" + this.EnsName + "&PageIdx=" + PPageIdx + "';"); } if (this.PageIdx == maxPageNum) { this.UCSys3.Add("\t\n if (event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 34) alert('已经是最后一页');"); } else { this.UCSys3.Add("\t\n if (event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 34) "); this.UCSys3.Add("\t\n location='Batch.aspx?EnsName=" + this.EnsName + "&PageIdx=" + ToPageIdx + "';"); } this.UCSys3.Add("\t\n } "); this.UCSys3.Add("</SCRIPT>"); return(ens); }
protected void Page_Load(object sender, EventArgs e) { Entity en = BP.DA.ClassFactory.GetEn(this.EnName); if (this.PK == null) { return; } if (en == null) { throw new Exception(this.EnsName + " " + this.EnName); } if (en.EnMap.AttrsOfOneVSM.Count + en.EnMap.Dtls.Count + en.EnMap.HisRefMethods.Count == 0) { return; } en.PKVal = this.PK; string keys = "&" + en.PK + "=" + this.PK + "&r=" + DateTime.Now.ToString("MMddhhmmss"); string titleKey = ""; if (en.EnMap.Attrs.Contains("Name")) { titleKey = "Name"; } else if (en.EnMap.Attrs.Contains("Title")) { titleKey = "Title"; } string desc = en.EnDesc; if (titleKey != "") { en.RetrieveFromDBSources(); desc = en.GetValStrByKey(titleKey); if (desc.Length > 30) { desc = en.EnDesc; } } this.AddFieldSet("<a href='UIEn.aspx?EnName=" + this.EnName + "&PK=" + this.PK + "' >" + desc + "-主页</a>"); this.AddUL(); #region 加入一对多的实体编辑 AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM; string sql = ""; int i = 0; if (oneVsM.Count > 0) { foreach (AttrOfOneVSM vsM in oneVsM) { string url = "Dot2Dot.aspx?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString() + keys; try { sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "='" + en.PKVal + "'"; i = DBAccess.RunSQLReturnValInt(sql); } catch { sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "=" + en.PKVal; try { i = DBAccess.RunSQLReturnValInt(sql); } catch { vsM.EnsOfMM.GetNewEntity.CheckPhysicsTable(); } } if (i == 0) { if (this.AttrKey == vsM.EnsOfMM.ToString()) { this.AddLi("<b><a href='" + url + "' >" + vsM.Desc + "</a></b>"); } else { this.AddLi("<a href='" + url + "' >" + vsM.Desc + "</a>"); } } else { if (this.AttrKey == vsM.EnsOfMM.ToString()) { this.AddLi("<b><a href='" + url + "' >" + vsM.Desc + "-" + i + "</a></b>"); } else { this.AddLi("<a href='" + url + "' >" + vsM.Desc + "-" + i + "</a>"); } } } } #endregion #region 加入他门的 方法 RefMethods myreffuncs = en.EnMap.HisRefMethods; string path = this.Request.ApplicationPath; foreach (RefMethod func in myreffuncs) { if (func.Visable == false) { continue; } // string url = path + "/Comm/RefMethod.aspx?Index=" + func.Index + "&EnsName=" + hisens.ToString() + keys; string url = "/WF/Comm/RefMethod.aspx?Index=" + func.Index + "&EnsName=" + en.GetNewEntities.ToString() + keys; // string urlRefFunc = "RefMethod.aspx?Index=" + func.Index + "&EnsName=" + en.GetNewEntities.ToString() + keys; if (func.Warning == null) { if (func.Target == null) { this.AddLi(func.GetIcon(path) + "<a href='" + url + "' ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); } else { this.AddLi(func.GetIcon(path) + "<a href=\"javascript:WinOpen('" + url + "','" + func.Target + "')\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); } } else { if (func.Target == null) { this.AddLi(func.GetIcon(path) + "<a href=\"javascript: if ( confirm('" + func.Warning + "') ) { window.location.href='" + url + "' }\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); } else { this.AddLi(func.GetIcon(path) + "<a href=\"javascript: if ( confirm('" + func.Warning + "') ) { WinOpen('" + url + "','" + func.Target + "') }\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); } } } #endregion #region 加入他的明细 EnDtls enDtls = en.EnMap.Dtls; foreach (EnDtl enDtl in enDtls) { string url = "Dtl.aspx?EnName=" + this.EnName + "&PK=" + this.PK + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString() + keys; try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "='" + en.PKVal + "'"); } catch { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "=" + en.PKVal); } if (i == 0) { this.AddLi("<a href=\"" + url + "\" >" + enDtl.Desc + "</a>"); } else { this.AddLi("<a href=\"" + url + "\" >" + enDtl.Desc + "-" + i + "</a>"); } } #endregion this.AddULEnd(); this.AddFieldSetEnd(); }
protected void Page_Load(object sender, EventArgs e) { Entity en = BP.En.ClassFactory.GetEn(this.EnName); if (this.PK == null) { return; } if (en == null) { throw new Exception(this.EnsName + " " + this.EnName); } if (en.EnMap.AttrsOfOneVSM.Count + en.EnMap.Dtls.Count + en.EnMap.HisRefMethods.Count == 0) { return; } en.PKVal = this.PK; string keys = "&" + en.PK + "=" + this.PK + "&r=" + DateTime.Now.ToString("MMddhhmmss"); string titleKey = ""; if (en.EnMap.Attrs.Contains("Name")) { titleKey = "Name"; } else if (en.EnMap.Attrs.Contains("Title")) { titleKey = "Title"; } string desc = en.EnDesc; if (titleKey != "") { en.RetrieveFromDBSources(); desc = en.GetValStrByKey(titleKey); if (desc.Length > 30) { desc = en.EnDesc; } } AddUL("class='navlist'"); AddLi( string.Format("<div><a href='UIEn.aspx?EnName={0}&PK={1}'><span class='nav'>{2}</span></a></div>{3}", EnName, PK, titleKey == "Title" ? "主页" : desc + " - 主页", Environment.NewLine)); #region 加入一对多的实体编辑 AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM; string sql = ""; int i = 0; if (oneVsM.Count > 0) { foreach (AttrOfOneVSM vsM in oneVsM) { string url = "Dot2Dot.aspx?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString() + keys; try { sql = "SELECT COUNT(" + vsM.AttrOfOneInMM + ") as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "='" + en.PKVal + "'"; i = DBAccess.RunSQLReturnValInt(sql); } catch { sql = "SELECT COUNT(" + vsM.AttrOfOneInMM + ") as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "=" + en.PKVal; try { i = DBAccess.RunSQLReturnValInt(sql); } catch { vsM.EnsOfMM.GetNewEntity.CheckPhysicsTable(); } } if (i == 0) { if (this.AttrKey == vsM.EnsOfMM.ToString()) { AddLi(string.Format( "<div style='font-weight:bold'><a href='{0}'><span class='nav'>{1}</span></a></div>{2}", url, vsM.Desc, Environment.NewLine)); } else { AddLi(string.Format("<div><a href='{0}'><span class='nav'>{1}</span></a></div>{2}", url, vsM.Desc, Environment.NewLine)); } } else { if (this.AttrKey == vsM.EnsOfMM.ToString()) { AddLi(string.Format( "<div style='font-weight:bold'><a href='{0}'><span class='nav'>{1} [{2}]</span></a></div>{3}", url, vsM.Desc, i, Environment.NewLine)); } else { AddLi(string.Format("<div><a href='{0}'><span class='nav'>{1} [{2}]</span></a></div>{3}", url, vsM.Desc, i, Environment.NewLine)); } } } } #endregion #region 加入方法 RefMethods myreffuncs = en.EnMap.HisRefMethods; string path = this.Request.ApplicationPath; foreach (RefMethod func in myreffuncs) { if (func.Visable == false || func.RefAttrKey != null) { continue; } if (func.RefMethodType != RefMethodType.Func) { string myurl = func.Do(null) as string; int h = func.Height; if (func.Target == null) { //this.AddLi(func.GetIcon(path) + "<a href='" + myurl + "' ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); AddLi(string.Format("<div><a href='{0}' title='{1}'><span class='nav'>{2}</span></a></div>{3}", myurl, func.ToolTip, func.Title, Environment.NewLine)); } else { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript:WinOpen('" + myurl + "','" + func.Target + "')\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); AddLi(string.Format("<div><a href=\"javascript:WinOpen('{0}','{1}')\" title='{2}'><span class='nav'>{3}</span></a></div>{4}", myurl, func.Target, func.ToolTip, func.Title, Environment.NewLine)); } continue; } string url = "../RefMethod.aspx?Index=" + func.Index + "&EnsName=" + en.GetNewEntities.ToString() + keys; if (func.Warning == null) { if (func.Target == null) { //this.AddLi(func.GetIcon(path) + "<a href='" + url + "' ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); AddLi(string.Format("<div><a href='{0}' title='{1}'><span class='nav'>{2}</span></a></div>{3}", url, func.ToolTip, func.Title, Environment.NewLine)); } else { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript:WinOpen('" + url + "','" + func.Target + "')\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); AddLi(string.Format("<div><a href=\"javascript:WinOpen('{0}','{1}')\" title='{2}'><span class='nav'>{3}</span></a></div>{4}", url, func.Target, func.ToolTip, func.Title, Environment.NewLine)); } } else { if (func.Target == null) { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript: if ( confirm('" + func.Warning + "') ) { window.location.href='" + url + "' }\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); AddLi(string.Format( "<div><a href=\"javascript: if ( confirm('{0}')){{ window.location.href='{1}' }}\" title='{2}'><span class='nav'>{3}</span></a></div>{4}", func.Warning, url, func.ToolTip, func.Title, Environment.NewLine)); } else { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript: if ( confirm('" + func.Warning + "') ) { WinOpen('" + url + "','" + func.Target + "') }\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); AddLi(string.Format( "<div><a href=\"javascript: if ( confirm('{0}')){{ WinOpen('{1}','{2}') }}\" title='{3}'><span class='nav'>{4}</span></a></div>{5}", func.Warning, url, func.Target, func.ToolTip, func.Title, Environment.NewLine)); } } } #endregion #region 加入他的明细 EnDtls enDtls = en.EnMap.Dtls; foreach (EnDtl enDtl in enDtls) { string url = "Dtl.aspx?EnName=" + this.EnName + "&PK=" + this.PK + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString() + keys; try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(" + enDtl.RefKey + ") FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "='" + en.PKVal + "'"); } catch { try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(" + enDtl.RefKey + ") FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "=" + en.PKVal); } catch { enDtl.Ens.GetNewEntity.CheckPhysicsTable(); } } if (i == 0) { //this.AddLi("<a href=\"" + url + "\" >" + enDtl.Desc + "</a>"); AddLi(string.Format("<div><a href='{0}'><span class='nav'>{1}</span></a></div>{2}", url, enDtl.Desc, Environment.NewLine)); } else { //this.AddLi("<a href=\"" + url + "\" >" + enDtl.Desc + "-" + i + "</a>"); AddLi(string.Format("<div><a href='{0}'><span class='nav'>{1} [{2}]</span></a></div>{3}", url, enDtl.Desc, i, Environment.NewLine)); } } #endregion AddULEnd(); }
protected void Page_Load(object sender, EventArgs e) { Entity en = BP.En.ClassFactory.GetEn(this.EnName); if (this.PK == null) { return; } if (en == null) { throw new Exception(this.EnsName + " " + this.EnName); } if (en.EnMap.AttrsOfOneVSM.Count + en.EnMap.Dtls.Count + en.EnMap.HisRefMethods.Count == 0) { return; } en.PKVal = this.PK; string keys = "&" + en.PK + "=" + this.PK + "&r=" + DateTime.Now.ToString("MMddhhmmss"); string titleKey = ""; if (en.EnMap.Attrs.Contains("Name")) { titleKey = "Name"; } else if (en.EnMap.Attrs.Contains("Title")) { titleKey = "Title"; } string desc = en.EnDesc; if (titleKey != "") { en.RetrieveFromDBSources(); desc = en.GetValStrByKey(titleKey); if (desc.Length > 30) { desc = en.EnDesc; } } //edited by liuxc,2016-3-3,修改左侧功能列表导航的表现形式,RefMethod中增加分组的概念,2016-3-7修改完成 Dictionary <string, List <LeftMenuItem> > dictDefs = new Dictionary <string, List <LeftMenuItem> >(); //AddUL("class='navlist'"); //AddLi( // string.Format("<div><a href='UIEn.aspx?EnName={0}&PK={1}'>{4}<span class='nav'>{2}</span></a></div>{3}", EnName, PK, titleKey == "Title" ? "主页" : desc, Environment.NewLine, GetIcon(IconFirstDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, (titleKey == "Title" ? "主页" : desc), string.Format("UIEn.aspx?EnName={0}&PK={1}", EnName, PK), IconFirstDefault, false)); #region 加入一对多的实体编辑 AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM; string sql = ""; int i = 0; if (oneVsM.Count > 0) { foreach (AttrOfOneVSM vsM in oneVsM) { string url = "Dot2Dot.aspx?EnsName=" + en.GetNewEntities.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString() + keys; try { sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "='" + en.PKVal + "'"; i = DBAccess.RunSQLReturnValInt(sql); } catch { sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEntity.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "=" + en.PKVal; try { i = DBAccess.RunSQLReturnValInt(sql); } catch { vsM.EnsOfMM.GetNewEntity.CheckPhysicsTable(); } } if (i == 0) { if (this.AttrKey == vsM.EnsOfMM.ToString()) { //AddLi(string.Format( // "<div style='font-weight:bold'><a href='{0}'>{3}<span class='nav'>{1}</span></a></div>{2}", // url, vsM.Desc, Environment.NewLine, GetIcon(IconM2MDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, vsM.Desc, url, IconM2MDefault, true)); ItemCount++; } else { //AddLi(string.Format("<div><a href='{0}'>{3}<span class='nav'>{1}</span></a></div>{2}", url, vsM.Desc, Environment.NewLine, GetIcon(IconM2MDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, vsM.Desc, url, IconM2MDefault, false)); ItemCount++; } } else { if (this.AttrKey == vsM.EnsOfMM.ToString()) { //AddLi(string.Format( // "<div style='font-weight:bold'><a href='{0}'>{4}<span class='nav'>{1}[{2}]</span></a></div>{3}", // url, vsM.Desc, i, Environment.NewLine, GetIcon(IconM2MDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, vsM.Desc + "[" + i + "]", url, IconM2MDefault, true)); ItemCount++; } else { //AddLi(string.Format("<div><a href='{0}'>{4}<span class='nav'>{1}[{2}]</span></a></div>{3}", url, vsM.Desc, i, Environment.NewLine, GetIcon(IconM2MDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, vsM.Desc + "[" + i + "]", url, IconM2MDefault, false)); ItemCount++; } } } } #endregion #region 加入他门的 方法 Dictionary <string, List <LeftMenuItem> > dictGrps = new Dictionary <string, List <LeftMenuItem> >(); RefMethods myreffuncs = en.EnMap.HisRefMethods; string path = this.Request.ApplicationPath; bool haveGroup = false; foreach (RefMethod func in myreffuncs) { if (func.Visable == false || func.RefAttrKey != null) { continue; } haveGroup = !string.IsNullOrWhiteSpace(func.GroupName); if (func.RefMethodType != RefMethodType.Func) { string myurl = func.Do(null) as string; int h = func.Height; if (func.RefMethodType == RefMethodType.RightFrameOpen) { //AddLi(string.Format( // "<div><a href='javascript:void(0)' onclick=\"javascript:OpenUrlInRightFrame(this,'{0}')\" title='{1}'>{4}<span class='nav'>{2}</span></a></div>{3}", // myurl, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, "javascript:OpenUrlInRightFrame(this,'" + myurl + "')", func.Icon, false, func.ToolTip)); ItemCount++; continue; } if (func.Target == null) { //this.AddLi(func.GetIcon(path) + "<a href='" + myurl + "' ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); //AddLi(string.Format("<div><a href='{0}' title='{1}'>{4}<span class='nav'>{2}</span></a></div>{3}", myurl, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, myurl, func.Icon, false, func.ToolTip)); ItemCount++; } else { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript:WinOpen('" + myurl + "','" + func.Target + "')\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); //AddLi(string.Format("<div><a href=\"javascript:WinOpen('{0}','{1}')\" title='{2}'>{5}<span class='nav'>{3}</span></a></div>{4}", myurl, func.Target, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, "javascript:WinOpen('" + myurl + "', '" + func.Target + "')", func.Icon, false, func.ToolTip)); ItemCount++; } continue; } // string url = path + "/Comm/RefMethod.aspx?Index=" + func.Index + "&EnsName=" + hisens.ToString() + keys; string url = "../RefMethod.aspx?Index=" + func.Index + "&EnsName=" + en.GetNewEntities.ToString() + keys; // string urlRefFunc = "RefMethod.aspx?Index=" + func.Index + "&EnsName=" + en.GetNewEntities.ToString() + keys; if (func.Warning == null) { if (func.Target == null) { //this.AddLi(func.GetIcon(path) + "<a href='" + url + "' ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); //AddLi(string.Format("<div><a href='{0}' title='{1}'>{4}<span class='nav'>{2}</span></a></div>{3}", url, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, url, func.Icon, false, func.ToolTip)); ItemCount++; } else { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript:WinOpen('" + url + "','" + func.Target + "')\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); //AddLi(string.Format("<div><a href=\"javascript:WinOpen('{0}','{1}')\" title='{2}'>{5}<span class='nav'>{3}</span></a></div>{4}", url, func.Target, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, "javascript:WinOpen('" + url + "', '" + func.Target + "')", func.Icon, false, func.ToolTip)); ItemCount++; } } else { if (func.Target == null) { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript: if ( confirm('" + func.Warning + "') ) { window.location.href='" + url + "' }\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); //AddLi(string.Format( // "<div><a href=\"javascript: if ( confirm('{0}')){{ window.location.href='{1}' }}\" title='{2}'>{5}<span class='nav'>{3}</span></a></div>{4}", // func.Warning, url, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, "javascript: if ( confirm('" + func.Warning + "')){{ window.location.href='" + url + "' }}", func.Icon, false, func.ToolTip)); ItemCount++; } else { //this.AddLi(func.GetIcon(path) + "<a href=\"javascript: if ( confirm('" + func.Warning + "') ) { WinOpen('" + url + "','" + func.Target + "') }\" ToolTip='" + func.ToolTip + "' >" + func.Title + "</a>"); //AddLi(string.Format( // "<div><a href=\"javascript: if ( confirm('{0}')){{ WinOpen('{1}','{2}') }}\" title='{3}'>{6}<span class='nav'>{4}</span></a></div>{5}", // func.Warning, url, func.Target, func.ToolTip, func.Title, Environment.NewLine, GetIcon(func.Icon))); AddGroupedLeftItem(haveGroup ? dictGrps : dictDefs, haveGroup ? func.GroupName : "默认组", new LeftMenuItem(CCFlowPath, func.Title, "javascript: if ( confirm('" + func.Warning + "')){{ WinOpen('" + url + "', '" + func.Target + "') }}", func.Icon, false, func.ToolTip)); ItemCount++; } } } #endregion #region 加入他的明细 EnDtls enDtls = en.EnMap.Dtls; foreach (EnDtl enDtl in enDtls) { string url = "Dtl.aspx?EnName=" + this.EnName + "&PK=" + this.PK + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString() + keys; try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "='" + en.PKVal + "'"); } catch { try { i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEntity.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "=" + en.PKVal); } catch { enDtl.Ens.GetNewEntity.CheckPhysicsTable(); } } if (i == 0) { //this.AddLi("<a href=\"" + url + "\" >" + enDtl.Desc + "</a>"); //AddLi(string.Format("<div><a href='{0}'>{3}<span class='nav'>{1}</span></a></div>{2}", url, enDtl.Desc, Environment.NewLine, GetIcon(IconDtlDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, enDtl.Desc, url, IconDtlDefault, false)); ItemCount++; } else { //this.AddLi("<a href=\"" + url + "\" >" + enDtl.Desc + "-" + i + "</a>"); //AddLi(string.Format("<div><a href='{0}'>{4}<span class='nav'>{1} [{2}]</span></a></div>{3}", url, enDtl.Desc, i, Environment.NewLine, GetIcon(IconDtlDefault))); AddGroupedLeftItem(dictDefs, "默认组", new LeftMenuItem(CCFlowPath, enDtl.Desc + "[" + i + "]", url, IconDtlDefault, false)); ItemCount++; } } #endregion //AddULEnd(); //added by liuxc,2016-3-7 if (dictGrps.Count == 0) { AddUL("class='navlist'"); foreach (LeftMenuItem item in dictDefs["默认组"]) { AddLi(item.LiString); } AddULEnd(); } else { Add("<div class='easyui-accordion' data-options='fit:true'>"); //增加默认组 Add("<div title='基本功能' style='overflow:auto;'>"); AddUL("class='navlist'"); foreach (LeftMenuItem item in dictDefs["默认组"]) { AddLi(item.LiString); } AddULEnd(); AddDivEnd(); //增加RefMethod分组 foreach (KeyValuePair <string, List <LeftMenuItem> > grp in dictGrps) { Add("<div title='" + grp.Key + "' style='overflow:auto;'>"); AddUL("class='navlist'"); foreach (LeftMenuItem item in grp.Value) { AddLi(item.LiString); } AddULEnd(); AddDivEnd(); } AddDivEnd(); } }