#include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) SupplierMessageWin : public xframe { public: xdwtable dw_base; //xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: SupplierMessageWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static SupplierMessageWin* CreateInstance(void* implPtr, void* hWnd) { SupplierMessageWin* pWin = new SupplierMessageWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { return 1; 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; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(TEvent* evt, LPARAM param) { //ÖØÖù¤¾ßÌõ SetAgent(); return 1; } int UpLoad(xstring name) { xstring str = name.mid(0,2); str = str.toUpper(); int ret1 = xaserver::Upload(L"supplier"+str, name+L".jpg", GetHWND(),L"",false); return ret1; } int OnItemClick(TEvent* evt, int p) { DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh; xstring colname1= hdr1.colname; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xaserverarg arg; if(value == L"ÉÏ´«¸½¼þ") { xstring strguid = publiccode::GetGuid(); //alert(strguid); int ret1 = UpLoad(strguid); if(ret1 == -1) return -1; if(ret1 == 0) { alert(L"ÉÏ´«¸½¼þʧ°Ü"); return -1; } else { alert(L"ÉÏ´«¸½¼þ³É¹¦"); xstring strimage=dw_base.GetItemString(1,L"ImageList1"); //alert(strimage); if(strimage==L"") strimage=L""; xml y; y.loadXML(strimage); KXMLDOMElement ele= y.documentElement(); xml x; xstring xx = L""+strguid+L".jpg"; x.loadXML(xx); KXMLDOMElement e= x.selectSingleNode(L"//image"); ele.appendChild(e); dw_base.SetItemString(1,L"ImageList1",ele.xml()); dw_base.Redraw(); } } if(value == L"²é¿´") { arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1")); openUrl(L"/sale/view/SupplierV3/xpage/supplierattachment/picture", arg); dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src")); } return 1; } int GetEntityData(xaserverarg* arg) { xml x; dw_base.DwUpdateAllTo(x); arg->AddArg(L"EntityData",x.xml()); return 1; } xaserverarg* GetArg(xstring comdid) { if(comdid.find(L":")>=0) { xaserverarg* arg = (xaserverarg * )comdid.mid(comdid.find(L":")+1,64).toInt64(); return arg; } return 0; } int GetEntityInfo(xaserverarg* arg) { arg->AddArg(L"EntityName",L"Supplier"); arg->AddArg(L"EntityID",dw_base.GetGuid(1)); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if(comdid.find(L"GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid)); else if(comdid.find(L"GetEntityData:")==0) return GetEntityData(GetArg(comdid)); else if(comdid==L"xmAddRow") return OnAddRow(); else if(comdid==L"xmDeleteRow") return OnDeleteRow(); return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND", (FEvent)&SupplierMessageWin::OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent(L"WM_SETFOCUS", (FEvent)&SupplierMessageWin::OnSetFocus); AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&SupplierMessageWin::OnItemClick); return 1; } int OnAddRow() { xdwtable dw_obj = dw_base.FindDwTable(L"item"); dw_obj.InsertRow(0); return 1; } int OnDeleteRow() { xdwtable dw_obj = dw_base.GetCurTable(); dw_obj.DeleteRow(0); return 1; } /* int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.AddArg(L"xxx",L"xxx"); if (getUrl(L"",arg.GetString(),x)!=1) { trace(x.text()); return -1; }else { //dw_list.Retrieve(x); //dw_list.Redraw(); } return 1; } */ int onload() { dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/SupplierV3/template/supplier/simplebase"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); //dw_base.SetHScrollState(false); //dw_base.SetVScrollState(false); OnAttachEvent(); return 1; } int onloaded() { SetAgent(); return 1; } };