use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" unit trade [ class ViewLogList : public xwin { xdwgrid dw_list; xoffice dw_office; xcell dw_cell; xnode m_agentNode; //Agent Condition string m_category; string argStr; string searchStr; 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 OnCmdDispatch(string comdid) { int hCursor = 0; if(comdid=="xmQuery") { xaserverarg ar = new xaserverarg; ar.setNativePointer(ar.CreateInstance()); ar.AddArg("argurl","/sale/view/Total3/arg/LogListItem"); if(argStr !="") ar.AddArg("arg",argStr); OpenWindow("dev:xpage[view.total.arg.vx]",cast(ar as int)); string arstr = ar.GetArgString("arg"); if(arstr != "" && ar.GetArgString("action")=="ok") { argStr = arstr; hCursor = xutil::SetCursorWait(); OnRetrieve("/sale/data/Total3/total/GDNTotal/Item/LogList",argStr); xutil::RestoreCursor(hCursor); } else { argStr=""; OnRetrieve("/sale/data/Total3/total/GDNTotal/Item/LogList",argStr); } return 1; } if(comdid=="xmAnalysis") { hCursor = xutil::SetCursorWait(); string str = dw_list.DataAnalysis(""); xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("html", str); int obj = cast(dw_list as int); arg.AddArg("obj",obj.toString()); OpenWindow("dev:xpage[data.vanalysis.vx]", cast(arg as int)); xutil::RestoreCursor(hCursor); return 1; } if(comdid=="xmSearch") return OnSearch(); return 0; } int OnSearch() { xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("text", searchStr); OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int)); string str = arg.GetArgString("text"); if(str != searchStr) { searchStr = str; dw_list.Filter("*",searchStr); return 1; } return 1; } int OnCombboChanged(ref TCommandEvent evt,int lParam) { int h = xcombobox::GetCurSel(evt.hCtrl); if(h > -1) { int hCursor = xutil::SetCursorWait(); msxml::IXMLDOMElement e = xcombobox::GetItemData(evt.hCtrl, h); win32::PostMessage(GetHWND(),0x401,"xmQuery",0); //OnCmdDispatch("xmQuery"); xutil::RestoreCursor(hCursor); } return 1; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnDWClick(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; int row = hdr.row; if(row < 1) return 1; return 1; } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND",OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS",OnSetFocus); AttachEvent("cb_report","CBN_SELCHANGE",OnCombboChanged); AttachEvent("dw_report","DWV_CLICKED",OnDWClick); } int OnRetrieve(string dataurl, string argstr) { dw_list.Reset(); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("arg",argstr); //alert(argstr); if (url::get(dataurl,arg.GetString(),x)!=1) { //alert(x.GetXml()); trace(x.GetXmlDoc().text); dw_list.Redraw(); return -1; } //alert(x.GetXml()); dw_list.Retrieve(x); dw_list.Redraw(); dw_list.SetReadOnly(true); return 1; } int onload() { dw_list = GetControl("dw_report"); dw_office = GetControl("dw_office"); dw_cell = GetControl("dw_cell"); dw_list.openUrl("/sale/view/Total3/template/business/gdn/LogList/ship/full"); argStr =""; xcombobox xc = GetControl("cb_report"); OnAttachEvent(); return 1; } int onloaded() { SetAgent(); OnCmdDispatch("xmQuery"); return 1; } }; ]