protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; if (this.ViewState["flag"] != null) { AddChildNode(pNode); } else { DataView dvList = new RoleSetting().SelectUsersByRole(pNode.Value); ZJGEportTreeNode node; foreach (DataRowView dev in dvList) { node = new ZJGEportTreeNode(); node.Text = dev["USERNAME"].ToString().Trim(); node.Value = dev["USERGUID"].ToString().Trim(); node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; node.PopulateOnDemand = false; pNode.ChildNodes.Add(node); } } }
/// <summary> /// 根据资产类型显示相应的资产条目 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; List<ZJGEportAssetsDB.DetailAssetsItems> DAI=new ZJGEportAssetsDB.AssetsManage().SelectAssetsItemList(pNode.Value); for (int i = 0; i < DAI.Count; i++) { ZJGEportTreeNode node = new ZJGEportTreeNode(); node.Value = DAI[i].AssetsGuid; node.Text = DAI[i].AssetsName; node.PopulateOnDemand = false; node.NavigateUrl = "AssetsStockIn_List.aspx?AssetsGuid=" + node.Value + "&AssetsName=" + node.Text; pNode.ChildNodes.Add(node); } }
private void AddSearchNodes() { TreeView1.Nodes.Clear(); DataView dv = AD.SelectCards(Session["UserId"].ToString(), this.txtContactor.Text.Trim()); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["CONTACTORNAME"].ToString(); node.Value = dv[i]["MOBILE"].ToString(); node.PopulateOnDemand = false; node.CtrlClickFunction = "SetValue(this,'" + node.Text + "','" + node.Value + "')"; TreeView1.Nodes.Add(node); } }
/// <summary> /// 选择所有的公司信息 /// </summary> private void AddTopNodes() { List<Detail_CAW_COMPANY> DCC = new CawCorpDB().GetAllCompanyForTree(); ZJGEportTreeNode node; for (int i = 0; i < DCC.Count; i++) { node = new ZJGEportTreeNode(); node.Text = DCC[i].NAME; node.Value = DCC[i].GUID; node.PopulateOnDemand = false; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } }
/// <summary> /// 加载第一层 /// </summary> private void AddTopNodes() { TreeView1.Nodes.Clear(); dvList = new CawDBInfo().GetTabInfo(); dvList.RowFilter = "PARENT_ID='0'"; ZJGEportTreeNode node; foreach (DataRowView dev in dvList) { node = new ZJGEportTreeNode(); node.Text = dev["TABLE_NAME_CN"].ToString().Trim(); node.Value = dev["ID"].ToString().Trim(); node.PopulateOnDemand = true; TreeView1.Nodes.Add(node); } }
/// <summary> /// 加载企业 /// </summary> private void AddTopNodes() { TreeView1.Nodes.Clear(); TreeView1.RootNodeText = "所有企业"; DataView dv = CSSEDB.SelectCompanyInfo(this.txtCorpName.Text.Trim()); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["NAME"].ToString(); node.Value = dv[i]["GUID"].ToString(); node.PopulateOnDemand = false; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } }
private void AddSearchNodes(string RoleName) { TreeView1.Nodes.Clear(); List<OA_ROLE_TYPE> ORTList = RS.SelectRoleList(RoleName); ZJGEportTreeNode node; for (int i = 0; i < ORTList.Count; i++) { node = new ZJGEportTreeNode(); node.Text = ORTList[i].RoleName; node.Value = ORTList[i].RoleGuid; //节点的提示为该角色的成员 node.ToolTip = this.UsersTipInfo(node.Value); node.PopulateOnDemand = false; node.CtrlClickFunction = "SetValue(this,'" + node.Text + "','" + node.Value + "')"; TreeView1.Nodes.Add(node); } }
/// <summary> /// 加载第一层 /// </summary> private void AddTopNodes() { TreeView1.Nodes.Clear(); List<Detail_CAW_PARAMETE> GIList = new List<Detail_CAW_PARAMETE>(); GIList = CPD.GetParaList("JYLX"); ZJGEportTreeNode node; for (int i = 0; i < GIList.Count; i++) { node = new ZJGEportTreeNode(); node.Text = GIList[i].TYPENAME; node.Value = GIList[i].GUID; node.PopulateOnDemand = false; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } }
/// <summary> /// 加载第一层 /// </summary> private void AddTopNodes() { TreeView1.Nodes.Clear(); string Code_ID = Request.QueryString["id"]; List<DocBaseEntity> GIList = new List<DocBaseEntity>(); GIList = DBC.GetDocBaseCode(Code_ID); ZJGEportTreeNode node; for (int i = 0; i < GIList.Count; i++) { node = new ZJGEportTreeNode(); node.Text = GIList[i].B_CONTENT; node.Value = GIList[i].B_ID; node.PopulateOnDemand = false; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } }
private void AddTopNodes() { TreeView1.Nodes.Clear(); string Code_ID = Request.QueryString["step"]; List<OA_ROLE_TYPE> GIList = new List<OA_ROLE_TYPE>(); GIList = new RoleSetting().SelectRoleList(""); ZJGEportTreeNode node; for (int i = 0; i < GIList.Count; i++) { node = new ZJGEportTreeNode(); node.Text = GIList[i].RoleName; node.Value = GIList[i].RoleGuid; node.PopulateOnDemand = false; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } }
protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; string ORGID = Convert.ToString(Request.QueryString["ORGID"]); if (ORGID == null || ORGID.Trim() == "") { ORGID = Convert.ToString(Session["ORGID"]); } if (ORGID == null || ORGID.Trim() == "") { return; } string GroupID = pNode.Value.Split('&')[0]; // string TreeCode = pNode.Value.Split('&')[1]; // List<GroupInfo> GIList = new List<GroupInfo>(); GIList = Jcpt.SelectGroupInfo(ORGID); //所有的树节点 ZJGEportTreeNode node; //加载子部门 for (int i = 0; i < GIList.Count; i++) { if (GIList[i].TreeCode.Length == (TreeCode.Length + 4) && GIList[i].TreeCode.StartsWith(TreeCode)) //4位一级,该处为下一层 { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID + "&" + GIList[i].TreeCode; //判断该部门下是否还有子部门 bool Haschild = Jcpt.HasSubGroup(ORGID, GIList[i].TreeCode); if (Haschild) { node.PopulateOnDemand = true; node.ExpandOnCheckedChanged = true; } else { node.PopulateOnDemand = false; } node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; pNode.ChildNodes.Add(node); } } }
protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; dvList = new CawDBInfo().GetTabInfo(); dvList.RowFilter = "PARENT_ID='" + pNode.Value + "'"; ZJGEportTreeNode node; foreach (DataRowView dev in dvList) { node = new ZJGEportTreeNode(); node.Text = dev["TABLE_NAME_CN"].ToString().Trim(); node.Value =dev["TABLE_NAME_CN"].ToString().Trim()+","+dev["TABLE_NAME_EN"].ToString().Trim(); node.CtrlClickFunction = "OpenWin('" + dev["TABLE_NAME_EN"].ToString().Trim() + "','" + dev["ID"].ToString().Trim() + "','" + dev["TABLE_NAME_CN"].ToString().Trim() + "')"; node.PopulateOnDemand = false; pNode.ChildNodes.Add(node); } }
private void AddTopNodes() { DataView dv = db_fm.SelectOneNextLevelModuleView("","public"); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["ModuleName"].ToString(); node.Value = dv[i]["ModuleCode"].ToString(); dvTemp = db_fm.SelectOneNextLevelModuleView(dv[i]["ModuleCode"].ToString(), "public"); if (dvTemp.Count >0) node.PopulateOnDemand = true; node.NavigateUrl = "Module_List.aspx?ModuleGuid=" + dv[i]["ModuleGuid"].ToString(); TreeView1.Nodes.Add(node); } }
private void AddTopNodes() { TreeView1.Nodes.Clear(); TreeView1.RootNodeText = "港口经营业务类别"; TreeView1.RootNodeUrl = "BusinessType_List.aspx"; DataView dv = CBTDB.SelectOneNextLevelModuleView(""); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["TYPENAME"].ToString(); node.Value = dv[i]["TYPECODE"].ToString(); dvTemp = CBTDB.SelectOneNextLevelModuleView(dv[i]["TYPECODE"].ToString()); if (dvTemp.Count > 0) node.PopulateOnDemand = true; node.NavigateUrl = "BusinessType_List.aspx?TypeCode=" + node.Value; TreeView1.Nodes.Add(node); } }
protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; DataView dv = new CawBusinessTypeDB().SelectOneNextLevelModuleView(pNode.Value); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["TYPENAME"].ToString(); node.Value = dv[i]["TYPECODE"].ToString(); dvTemp = new CawBusinessTypeDB().SelectOneNextLevelModuleView(dv[i]["TYPECODE"].ToString()); if (dvTemp.Count > 0) node.PopulateOnDemand = true; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; pNode.ChildNodes.Add(node); } }
/// <summary> /// 选择公司下所有的部门信息 /// </summary> private void AddTopNodes() { TreeView1.Nodes.Clear(); TreeView1.RootNodeText = "港口经营业务分类"; DataView dv = new CawBusinessTypeDB().SelectOneNextLevelModuleView(""); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["TYPENAME"].ToString(); node.Value = dv[i]["TYPECODE"].ToString(); dvTemp = new CawBusinessTypeDB().SelectOneNextLevelModuleView(dv[i]["TYPECODE"].ToString()); if (dvTemp.Count > 0) { node.PopulateOnDemand = true; } //node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } }
private void AddTopNodes() { TreeView1.Nodes.Clear(); TreeView1.RootNodeText = "货物类别"; TreeView1.RootNodeUrl = "CargoClass_List.aspx"; DataView dv = CCCD.SelectOneNextLevelModuleView(""); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["CLASSNAME"].ToString(); node.Value = dv[i]["CLASSCODE"].ToString(); dvTemp = CCCD.SelectOneNextLevelModuleView(dv[i]["CLASSCODE"].ToString()); if (dvTemp.Count > 0) node.PopulateOnDemand = true; node.NavigateUrl = "CargoClass_List.aspx?ClassCode=" + node.Value; TreeView1.Nodes.Add(node); } }
/// <summary> /// 根据资产类型显示相应的资产条目 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; if (pNode.Value == "aaa") //4位一级,该处为下一层 { string OrgID = Convert.ToString(Session["ORGID"]); List<GroupInfo> GIList = new List<GroupInfo>(); GIList = Jcpt.SelectGroupInfo(OrgID); //所有的树节点 ZJGEportTreeNode node; //加载子部门 for (int i = 0; i < GIList.Count; i++) { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID; node.PopulateOnDemand = false; node.NavigateUrl = "PerInfos_List.aspx?GroupID=" + node.Value + "&Type=0"; pNode.ChildNodes.Add(node); } } else { DataView dv = PreInfo.GetCorpInfo(); //所有的树节点 ZJGEportTreeNode node; //加载所有的企业信息 for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["REG_CO"].ToString(); node.Value = dv[i]["ORG_ID"].ToString(); node.PopulateOnDemand = false; node.NavigateUrl = "PerInfos_List.aspx?OrgID=" + node.Value + "&Type=1"; pNode.ChildNodes.Add(node); } } }
protected void CargoClass_TreeNodePopulate(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; DataView dv = CCCD.SelectOneNextLevelModuleView(pNode.Value); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["CLASSNAME"].ToString(); node.Value = dv[i]["CLASSCODE"].ToString(); dvTemp = CCCD.SelectOneNextLevelModuleView(dv[i]["CLASSCODE"].ToString()); if (dvTemp.Count > 0) { node.PopulateOnDemand = true; } pNode.ChildNodes.Add(node); } }
protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; DataView dv = CBTDB.SelectOneNextLevelModuleView(pNode.Value); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["TYPENAME"].ToString(); node.Value = dv[i]["TYPECODE"].ToString(); dvTemp = CBTDB.SelectOneNextLevelModuleView(dv[i]["TYPECODE"].ToString()); if (dvTemp.Count > 0) { node.PopulateOnDemand = true; } node.NavigateUrl = "BusinessType_List.aspx?TypeCode=" + node.Value; pNode.ChildNodes.Add(node); } }
protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; DataView dv = db_fm.SelectOneNextLevelModuleView(pNode.Value, "public"); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["ModuleName"].ToString(); node.Value = dv[i]["ModuleCode"].ToString(); dvTemp = db_fm.SelectOneNextLevelModuleView(dv[i]["ModuleCode"].ToString(), "public"); if (dvTemp.Count > 0) { node.PopulateOnDemand = true; } node.NavigateUrl = "Module_List.aspx?ModuleGuid=" + dv[i]["ModuleGuid"].ToString(); pNode.ChildNodes.Add(node); } }
private void AddChildNode(ZJGEportTreeNode pNode) { JCPT Jcpt = new JCPT(); //操作基础平台类 string OrgID = Convert.ToString(Session["ORGID"]); string GroupID = pNode.Value.Split('&')[0]; // string TreeCode = pNode.Value.Split('&')[1]; // List<GroupInfo> GIList = new List<GroupInfo>(); GIList = Jcpt.SelectGroupInfo(OrgID); //所有的树节点 List<UserInfo> UIList = new List<UserInfo>(); UIList = Jcpt.SelectUserInfoByGroup(OrgID, GroupID);//该节点下的所有人员信息 ZJGEportTreeNode node; //加载子部门 for (int i = 0; i < GIList.Count; i++) { if (GIList[i].TreeCode.Length == (TreeCode.Length + 4) && GIList[i].TreeCode.StartsWith(TreeCode)) //4位一级,该处为下一层 { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID + "&" + GIList[i].TreeCode; node.PopulateOnDemand = true; pNode.ChildNodes.Add(node); } } //加载人员 for (int j = 0; j < UIList.Count; j++) { node = new ZJGEportTreeNode(); node.Text = UIList[j].RealName; node.Value = UIList[j].UserID; node.PopulateOnDemand = false; node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; pNode.ChildNodes.Add(node); } }
private void AddFirstGroup() { JCPT Jcpt = new JCPT(); //操作基础平台类 string OrgID = Convert.ToString(Session["ORGID"]); List<GroupInfo> GIList = new List<GroupInfo>(); GIList = Jcpt.SelectGroupInfo(OrgID); ZJGEportTreeNode node; for (int i = 0; i < GIList.Count; i++) { if (GIList[i].TreeCode.Length == 4) //4位一级,该处为第一层 { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID + "&" + GIList[i].TreeCode; node.PopulateOnDemand = true; TreeView1.Nodes.Add(node); } } }
/// <summary> /// 选择公司下所有的部门信息 /// </summary> private void AddTopNodes() { string ORGID = Convert.ToString(Request.QueryString["ORGID"]); if (ORGID == null || ORGID.Trim() == "") { ORGID = Convert.ToString(Session["ORGID"]); } if (ORGID == null || ORGID.Trim() == "") { return; } List<GroupInfo> GIList = new List<GroupInfo>(); GIList = Jcpt.SelectGroupInfo(ORGID); ZJGEportTreeNode node; for (int i = 0; i < GIList.Count; i++) { if (GIList[i].TreeCode.Length == 4) { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID + "&" + GIList[i].TreeCode; //判断该部门下是否还有子部门 bool Haschild = Jcpt.HasSubGroup(ORGID, GIList[i].TreeCode); if (Haschild) { node.PopulateOnDemand = true; node.ExpandOnCheckedChanged = true; } else { node.PopulateOnDemand = false; } node.CtrlClickFunction = "AutoSetPValue(this,'" + node.Value + "','" + node.Text + "')"; TreeView1.Nodes.Add(node); } } }
protected void TreeView1_TreeNodePopulate1(object sender, ZJGEportTreeNodeEventArgs e) { ZJGEportTreeNode pNode = e.Node; string OrgID = Convert.ToString(Session["ORGID"]); string GroupID = pNode.Value.Split('&')[0]; // string TreeCode = pNode.Value.Split('&')[1]; // List<GroupInfo> GIList = new List<GroupInfo>(); GIList = Jcpt.SelectGroupInfo(OrgID); //���е����ڵ� List<UserInfo> UIList = new List<UserInfo>(); UIList = Jcpt.SelectUserInfoByGroup(OrgID, GroupID);//�ýڵ��µ�������Ա��Ϣ ZJGEportTreeNode node; //�����Ӳ��� for (int i = 0; i < GIList.Count; i++) { if (GIList[i].TreeCode.Length == (TreeCode.Length + 4) && GIList[i].TreeCode.StartsWith(TreeCode)) //4λһ�����ô�Ϊ��һ�� { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID + "&" + GIList[i].TreeCode; node.PopulateOnDemand = true; pNode.ChildNodes.Add(node); } } //������Ա for (int j = 0; j < UIList.Count; j++) { node = new ZJGEportTreeNode(); node.Text = UIList[j].RealName; node.Value = UIList[j].UserID; node.PopulateOnDemand = false; node.CtrlClickFunction = "SetValue(this,'" + node.Text + "','" + node.Value + "')"; pNode.ChildNodes.Add(node); } }
private void AddSearchNodes(string RealName) { TreeView1.Nodes.Clear(); string OrgID = Convert.ToString(Session["ORGID"]); List<UserInfo> UIList = new List<UserInfo>(); UIList = Jcpt.SelectUserInfo(OrgID, RealName); ZJGEportTreeNode node; for (int i = 0; i < UIList.Count; i++) { node = new ZJGEportTreeNode(); node.Text = UIList[i].RealName; node.Value = UIList[i].UserID; node.PopulateOnDemand = false; node.CtrlClickFunction = "SetValue(this,'" + node.Text + "','" + node.Value + "')"; TreeView1.Nodes.Add(node); } }
/// <summary> /// ���ص�һ�㣨����/������ /// </summary> private void AddTopNodes() { TreeView1.Nodes.Clear(); string OrgID = Convert.ToString(Session["ORGID"]); List<GroupInfo> GIList = new List<GroupInfo>(); GIList= Jcpt.SelectGroupInfo(OrgID); ZJGEportTreeNode node; for (int i = 0; i < GIList.Count; i++) { if (GIList[i].TreeCode.Length == 4) //4λһ�����ô�Ϊ��һ�� { node = new ZJGEportTreeNode(); node.Text = GIList[i].GroupName; node.Value = GIList[i].GroupID + "&" + GIList[i].TreeCode; node.PopulateOnDemand = true; TreeView1.Nodes.Add(node); } } }
private void AddTopNodes() { DataView dvList = null; TreeView1.Nodes.Clear(); dvList = new DocStepRole().SelectRoleByStepID(Request.QueryString["stepid"], Request.QueryString["type"]);//如果没有配置流程步骤信息则加载所有部门以及人员信息 if (dvList.Count < 1) { AddFirstGroup(); this.ViewState["flag"] = "1"; return; } ZJGEportTreeNode node; foreach (DataRowView dev in dvList) { node = new ZJGEportTreeNode(); node.Text = dev["ROLENAME"].ToString().Trim(); node.Value = dev["ROLEGUID"].ToString().Trim(); node.PopulateOnDemand = true; TreeView1.Nodes.Add(node); } }
private void AddClass2TopNodes() { ttvCargoClass2.Nodes.Clear(); ttvCargoClass2.RootNodeText = "四大类"; DataView dv = CCCD.SelectOneNextLevelModuleView("0001"); DataView dvTemp = new DataView(); ZJGEportTreeNode node; for (int i = 0; i < dv.Count; i++) { node = new ZJGEportTreeNode(); node.Text = dv[i]["CLASSNAME"].ToString(); node.Value = dv[i]["CLASSCODE"].ToString(); dvTemp = CCCD.SelectOneNextLevelModuleView(dv[i]["CLASSCODE"].ToString()); if (dvTemp.Count > 0) { node.PopulateOnDemand = true; } node.ShowInputCtrl = false; ttvCargoClass2.Nodes.Add(node); } }