use "win.vl" use "dev:vm[xdwgrid.vm]" use "dev:vm[xdwtable.vm]" use "pref.vl" use "dev:vm[xml.vm]" use "dev:vm[xaserverarg.vm]" use "dev:vm[xaserver.vm]" use "dev:vm[xutil.vm]" use "list.vl" use "treeview.vm" //unit vclient.vobject tpp unit vbusiness.xpage [ HrEmployee is extend list; about HrEmployee [ field: [ treeview__ tv_org; xdwgrid__ dw_emp; string is_orgid string is_orgname; string is_inflag; xdwtable__ dw_empmaint; xnode__ m_agentNode; //Agent Condition string m_agentCond; //Agent Node ] method: [ int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode__ anode = new xnode__; anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); var xframeElement = GetElement(); var agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "/*[1]"); if (agent) { string s = agent.xml; SetAgentNodeContent(anode, s); } } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(ref TEvent evt, int p) { SetAgent(); //ÖØÖù¤¾ßÌõ return 1; } int OnRetrieve(string ls_orgid) { xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("OrgID", ls_orgid); //trace(ls_orgid); //if (xaserver__::ExecXQuery(GetServerUrl(),"[MSSqlHrEmployee.xq]",arg.GetString(),x) == 1) if (url::get("OrganizationStruct/list.Employee", arg.GetString(), x) == 1) { dw_emp.Retrieve(x); dw_emp.Redraw(); } //trace(x.GetXml()); return 1; } int OnSave() { int hIcon = xutil__::SetCursorWait(); xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); dw_emp.AcceptText(); dw_emp.DwUpdateAllToEx(x.GetXmlDoc()); string val = x.GetXml(); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("content", val); //trace(x.GetXml()); //return 1; if (url::post("OrganizationStruct/update.Employee", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().documentElement.text); alert("±£´æÊ§°Ü"); } else { dw_emp.ResetUpdateStatus(); alert("±£´æ³É¹¦"); } trace(x.GetXml()); xutil__::RestoreCursor(hIcon); return 1; } int OnSubTree(string id, int parentitem) { int wid = tv_org.GetId(); if (treeview__::GetChildItem(wid, parentitem) > 0) return 1; xml__ x = new xml__; x.setNativePointer(xml__::CreateInstance()); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("sguid", id); if (url::post("/sale/data/OrganizationStruct/tree.child.OrgChart", arg.GetString(), x) != 1) { trace(x.GetXml()); return -1; } //trace(x.GetXml()); var list = x.GetXmlDoc().selectNodes("//item"); int i = 0, s = list.length; msxml::IXMLDOMElement xitem; string sName; string sguid; string stype; if (s > 0) { for (i = 0; i < s; i++) { xitem = list.item(i); sName = xitem.SelectSingleNode("name").text; sguid = xitem.SelectSingleNode("id").text; stype = xitem.SelectSingleNode("typ").text; //int curItem = tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4); int curItem = 0; if (stype == "Org") { curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 15, 4); tv_org.SetItemChild1(wid, curItem, 1); } else { curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 21, 21); } //OnSubTree(sguid,curItem); } } return 1; } int OnCreateTree(string id, int parentitem) { //while (tv_1.GetRootItem()>0) // tv_1.DeleteItem(tv_1.GetRootItem()); int wid = tv_org.GetId(); xml__ x = new xml__; x.setNativePointer(xml__::CreateInstance()); x.LoadXml("" + id + "Äþ²¨¼Ò¶û¼ÑOrg"); //msxml::IXMLDOMDocument root = x.GetXmlDoc(); //msxml::IXMLDOMElement RDoc = x.GetXmlDoc().documentElement; //msxml::IXMLDOMElement ele = RDoc.SelectSingleNode("//Org"); msxml::IXMLDOMElement ele = x.GetXmlDoc().SelectSingleNode("//item"); int hItem = treeview__::InsertChildItemEx(wid, 0, "Äþ²¨¼Ò¶û¼Ñ", ele, 15, 4); treeview__::SetItemChild1(wid, hItem, 1); return 1; /*xaserverarg__ arg=new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("sguid",id); if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) { trace(x.GetXml()); return -1; } //trace(x.GetXml()); var list=x.GetXmlDoc().selectNodes("//item"); int i=0,s=list.length; msxml::IXMLDOMElement xitem; string sName; string sguid; if (s >0) { for (i=0;i dw_emp.GetRowCount()) return 1; msxml::IXMLDOMElement e = dw_emp.GetRowElement(row); string sPersonID = e.selectSingleNode("PersonID").text; xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("operate", "modify"); arg.AddArg("guid", sPersonID); //xwin::OpenWindow("dev:xpage[HrPersonMaint.xpage]",arg); openUrl("×éÖ¯¼Ü¹¹.vface/xpage/Hr/HrPersonMaint", arg); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(string comdid) { if (comdid == "Save") return OnSave(); else if (comdid == "AddRow") return OnAddRow(); else if (comdid == "ModifyRow") return OnModifyRow(); else if (comdid == "DeleteRow") return OnDeleteRow(); else if (comdid == "Refresh") return OnRetrieve(is_orgid); /*else if(comdid =="adjustorg") return OnAdjustOrg();*/ return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt, int p) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND", OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS", OnSetFocus); //»ñµÃÊ÷µÄÑ¡Ôñʼþ AttachEvent("tv_org", "TVN_SELCHANGED", OnTreeSelChanged); AttachEvent("tv_org", "TVN_ITEMEXPANDING", OnTreeExpanding); AttachEvent("dw_emp", "DWV_DOUBLECLICKED", OnDoubleClicked); } int OnInitial() { m_agentNode = new xnode__; SetAgent(); OnAttachEvent(); return 1; } int onload() { tv_org = new treeview__; tv_org.setNativePointer(this.GetControl("tv_org")); dw_emp = new xdwgrid__; dw_emp.setNativePointer(this.GetControl("dw_emp")); dw_emp.openUrl("×éÖ¯¼Ü¹¹.vface/template/HrEmployee/list"); //dw_emp.SetReadOnly(true); //dw_emp.SetSelectionMode(1); OnInitial(); OnCreateTree("00000000-0000-0000-0000-000000000000", 0); int wid = tv_org.GetId(); int root = treeview__::GetRootItem(wid); treeview__::ExpandItem(wid, root); return 1; } ] ] ]