use "lang.vl" use "win.vl" use "treeview.vm" use "dev:vm[xutil.vm]" use "dev:vm[xdwtable.vm]" use "dev:vm[xdwgrid.vm]" use "sys.base.vl" use "dev:vm[xcell.vm]" unit vbusiness.vpage [ Roleconfig is extend TProject; about Roleconfig [ field: method: [ treeview__ tv_menu; xdwtable__ dw_list; xdwgrid__ dw_param; xdwgrid__ dw_role; string m_status; int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode__ anode = new xnode__; anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); var xframeElement = win__::GetElement(); var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]"); if(agent) { string s = agent.xml+""; SetAgentNodeContent (anode,s); } return 1; } int createTree(string id, int parentItem) { if(treeview__::GetChildItem(tv_menu.GetId(), parentItem) > 0) return 0; xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); xaserverarg__ arg=new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("pid",id); //if(xaserver__::ExecXQuery(GetServerUrl(),"[leftFrame.xq]",arg.GetString(),x)!=1) //if(url::get(m_iface+"/pref/tree",arg.GetString(),x)!=1) if(url::get("/sale/data/Role.config/pref/tree",arg.GetString(),x)!=1) { trace(x.GetXml()); return -1; } //trace(x.GetXml()); var list=x.GetXmlDoc().selectNodes("items/item"); int i=0,s=list.length; msxml::IXMLDOMElement xitem; for (i=0;iY017"); dw_list.Retrieve(x); dw_list.ResetUpdateStatus(); dw_list.Redraw(); dw_param.Retrieve(x.GetXmlDoc().selectSingleNode("item/ModuelParam/args")); dw_param.ResetUpdateStatus(); dw_param.Redraw(); dw_role.Retrieve(x.GetXmlDoc().selectSingleNode("item/roles")); dw_role.ResetUpdateStatus(); dw_role.Redraw(); return 1; } int OnAddRow(xdwgrid__ dw) { dw.InsertRow(0); return 1; } int OnDelRow(xdwgrid__ dw) { int row = dw.GetRow(); if(row<1 || row > dw.GetRowCount()) return -1; dw.DeleteRow(row); return 1; } /* int openUrl(string aurl, param para) { int pos = aurl.find("/",0); if(pos<0) return ""; string iface = aurl.left(pos); string root = aurl.mid(pos + 1,9999); xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); if( iface.find(".vface",0)<0 ) { return -1; } else { string typ = iface.mid(iface.find(".",0) + 1,9999); xaserver__::LoadUrl("","dev:"+typ+"["+iface+"]","",x); } var doc = x.GetXmlDoc(); var n = doc.selectSingleNode("//resource[@url='" + root+"']/@src"); if(n) { string xq = n.text; return OpenWindow(xq, para); }else { n = doc.selectSingleNode("//group[@for='worknode']/resource[@url='" + root+"']"); if(n) { string vface = n.selectSingleNode("@vface").text; string view = n.selectSingleNode("@view").text; string config = n.selectSingleNode("@config").text; if(config != "" ) { xaserverarg__ arg = para; arg.AddArg("config",config); } if(vface=="."|| vface=="") { var v = doc.selectSingleNode("//resource[@url='" + view+"']/@src"); if(v) { return OpenWindow(v.text, para); } }else return openUrl(vface+"/"+view,para); } } return -1; } */ int OnAddRole() { xaserverarg__ arg=new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); //OpenWindow("dev:xpage[selectRole.vx]", arg); //openUrl(m_vface+"/xpage/role/select/user", arg); openUrl("/sale/view/Role.config/xpage/role/select/user", arg); string str = arg.GetArgString("item"); if(str == "") return -1; xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); x.LoadXml(str); var list=x.GetXmlDoc().selectNodes("items/item"); int i=0,s=list.length; msxml::IXMLDOMElement xitem; int row = dw_role.GetRowCount() + 1; for (i=0;i