use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" unit trade [ class AdministrativeDepartmentFolderView : public xframe { //xdwgrid dw_list; xdwtable dw_base;//ÐÂÔöµ¯´°Ê±Ê¹Óà string adid; string name; string parentid; string getsingle_url; xnode m_agentNode; //Agent Condition /*int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); } } return 1; }*/ //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(ref TEvent evt, int param) { //ÖØÖù¤¾ßÌõ //SetAgent(); return 1; } int OnSave() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); dw_base.AcceptText(); dw_base.DwUpdateAllTo(x.GetXmlDoc()); xaserverarg arg = new xaserverarg; arg.setNativePointer(xaserverarg::CreateInstance()); arg.AddArg("content", x.GetXml()); //trace(x.GetXml()); if (getUrl("/sale/data/AdministrativeDepartment/ad_update", arg.GetString(), x) != 1) { string error = x.GetXmlDoc().text; alert("err:" + error); return 1; } //trace("·µ»ØÐÅÏ¢"+x.GetXml()); string str = x.GetXmlDoc().documentElement.getAttribute("text"); if (str == "true") { dw_base.ResetUpdateStatus(); CloseWindow(); alert("±£´æ³É¹¦!"); } else { alert("±£´æÊ§°Ü!"); } return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(string comdid) { if (comdid == "xmSave") return OnSave(); else if (comdid == "xmClose") CloseWindow(); return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt, int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND", OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS", OnSetFocus); } int OnParentRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("adid", parentid); if (getUrl(getsingle_url, arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { string parent_name = ""; string parent_adid = ""; string parent_level = ""; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("data/Item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); parent_name = e.selectSingleNode("name").text; parent_adid = e.getAttribute("guid"); parent_level = e.selectSingleNode("level").text; } xdwtable dw_obj = dw_base.FindDwTable("Item"); dw_obj.SetItemString(1, "parent_name", parent_name); if (adid == "") { dw_obj.SetItemString(1, "parentid", parent_adid); dw_obj.SetItemString(1, "level", (parent_level.toInt() + 1).toString()); } //dw_base.Retrieve(x); //dw_base.Redraw(); } return 1; } int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("adid", adid); if (getUrl(getsingle_url, arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { dw_base.Retrieve(x); dw_base.Redraw(); } return 1; } int onload() { dw_base = GetControl("dw_base"); dw_base.openUrl("/sale/view/AdministrativeDepartment/template/adwin"); getsingle_url = "/sale/data/AdministrativeDepartment/ad_getsingle"; xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg = GetParam(); adid = ""; parentid = ""; if (GetParam()) { parentid = arg.GetArgString("parentid"); adid = arg.GetArgString("adid"); } if (adid != "") OnRetrieve(); if (parentid != "") OnParentRetrieve(); OnAttachEvent(); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); dw_base.SetVScrollState(false); return 1; } int onloaded() { SetAgent(); return 1; } }; ]