ÿþ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xlistview.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "vbusiness/vframe/frame.vframe.vbusiness.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) TtlCfgCustomerWin : public xframe { public: TtlCfgCustomerWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static TtlCfgCustomerWin* CreateInstance(void* implPtr, void* hWnd) { TtlCfgCustomerWin* pWin = new TtlCfgCustomerWin(implPtr, (HWND)hWnd); return pWin; } public: xdwgrid dw_list; xdwgrid dw_customer; xdwgrid dw_so; xdwgrid dw_gdn; xnode m_agentNode; //Agent Condition xstring tabname; int SetAgent() { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNode(anode,m_agentNode); } else { KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); if(agent) { xstring s = agent.xml(); m_agentNode = SetAgentNode(anode,s); } } return 1; } //&q¹pÀo;mYtýQpe int OnSetFocus(TEvent* evt, LPARAM p) { //͑nå]wQag SetAgent(); return 1; } int OnSave() { xml x; xaserverarg arg ; dw_list.DwUpdateAllToEx(x); arg.AddArg(L"content", x.xml() ); trace(x.xml()); if(xurl::get(L"/sale/data/CustomerV3/ttlcfg/updateex", arg.GetString(),x)!=1) { xstring error = x.text(); alert(error); return 1; }else { alert(L"ÝOX[bŸRÿ"); dw_list.ResetUpdateStatus(); } return 1; } int OnOwnerData() { int ret = MessageBox(GetHWND(),L"/f&Tôf°eR_^\penc?\nôf°eǏ z„˜¡‹—‰›Nöeô• ÿ‚Yœg-Nô•9_úQI{…_öeô•Ǐ•„vÐc:y ÿ÷‹¹pûQ-Nô•͑Ջ c®” ÿbI{…_0RNš[öeô•Q¹pûQ",L"Ðc:y",0x4 /*yesno*/); if(ret != 6 /*IDYES */ ) return 1; xml x ; HCURSOR hCursor = xutil::SetCursorWait(); if (xurl::get(L"/sale/data/CustomerV3/owner/reload",L"",x)!=1) { xutil::RestoreCursor(hCursor); return 1; }else { xutil::RestoreCursor(hCursor); alert(x.text()); return 1; } return 1; } //}TäNÑS^ýQpe int OnCmdDispatch(xstring comdid) { //dynamic retrieve data while(true) { if(comdid==L"tab_preview" && tabname==L"") { tabname=L"tab_customer"; OnCustomerRetrieve(); return 1; } if(comdid==L"tab_Customer") { tabname=comdid; if(dw_customer.GetRowCount() < 1) OnCustomerRetrieve(); return 1; } if(comdid==L"tab_SO" ) { tabname=comdid; if(dw_so.GetRowCount() < 1) OnSORetrieve(); return 1; } if(comdid==L"tab_GDN") { tabname=comdid; if(dw_gdn.GetRowCount() < 1) OnGDNRetrieve(); return 1; } break; } if(comdid==L"xmOwner") { OnOwnerData(); dw_customer.Reset(); dw_so.Reset(); dw_gdn.Reset(); if(tabname==L"tab_customer")OnCustomerRetrieve(); else if(tabname==L"tab_SO") OnSORetrieve(); else if(tabname==L"tab_GDN")OnGDNRetrieve(); return 1; } if(comdid==L"xmAddItem") { int row =dw_list.GetRowCount(); dw_list.InsertRow(0); xstring suserid = publiccode::GetUser().id; xstring susername = publiccode::GetUser().name; dw_list.SetItemString(row+1,L"CreatorID",suserid); dw_list.SetItemDisplayString(row+1,L"CreatorID",susername); xstring sdate = publiccode::GetCurrentDate(); dw_list.SetItemString(row+1,L"CreateDate",sdate); } else if(comdid==L"xmDeleteItem") dw_list.DeleteRow(0); else if(comdid==L"xmSave") return OnSave(); else if(comdid==L"xmRefresh") return OnRetrieve(); return 1; } //}TäNYt‹NöN int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //Ñ~š[å]wQag¹pûQ‹NöN AttachEvent(L"WM_XCOMMAND", (FEvent)&TtlCfgCustomerWin::OnXCommand); //·ƒÖS&q¹p‹NöN ÿ(uŽN͑nå]wQag AttachEvent(L"WM_SETFOCUS", (FEvent)&TtlCfgCustomerWin::OnSetFocus); return 1; } int DoRetrieve(xstring dataurl,xdwgrid dw_obj) { xml x; xaserverarg arg; HCURSOR hCursor = xutil::SetCursorWait(); if (getUrl(dataurl,arg.GetString(),x)!=1) { xutil::RestoreCursor(hCursor); alert(x.text()); return -1; }else { dw_obj.Retrieve(x); dw_obj.Redraw(); xutil::RestoreCursor(hCursor); } return 1; } int OnCustomerRetrieve() { return DoRetrieve(L"/sale/data/CustomerV3/owner/customer",dw_customer); } int OnSORetrieve() { return DoRetrieve(L"/sale/data/CustomerV3/owner/so",dw_so); } int OnGDNRetrieve() { return DoRetrieve(L"/sale/data/CustomerV3/owner/gdn",dw_gdn); } int OnRetrieve() { return DoRetrieve(L"/sale/data/CustomerV3/ttlcfg/listex",dw_list); } int onload() { dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/CustomerV3/template/customer/ttlcfg"); dw_customer = GetControl(L"dw_customer"); dw_customer.openUrl(L"/sale/view/CustomerV3/template/owner/customer"); dw_so = GetControl(L"dw_so"); dw_so.openUrl(L"/sale/view/CustomerV3/template/owner/so"); dw_gdn = GetControl(L"dw_gdn"); dw_gdn.openUrl(L"/sale/view/CustomerV3/template/owner/gdn"); tabname = L""; OnAttachEvent(); return 1; } int onloaded() { SetAgent(); OnRetrieve(); return 1; } };