#include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "xcontrol/xhtml.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) MessageBusinessWin : public xframe { public: //xdwgrid dw_list; xdwtable dw_base; xnode m_agentNode; //Agent Condition xwin sheet; bool readonly; xstring MessageID; xstring bill; public: MessageBusinessWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd),sheet(0) {} public: static MessageBusinessWin* CreateInstance(void* implPtr, void* hWnd) { MessageBusinessWin* pWin = new MessageBusinessWin(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 OnItemChanged(TEvent* evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname=hdr.colname; xstring value = hdr.data; int row = hdr.row; if(colname==L"Category") { if(value==L"¹©Ó¦ÉÌÉêÇë") { dw_base.SetItemString(1,L"Receiver",L"fdp-011"); dw_base.SetItemString(1,L"Subject",L"ÇëÌí¼Ó"); } return 1; bool changed = false; xml x = ViewObject::RetrieveData(L"/sale/data/business/message/maint",L"typ",value); if(x) { xstring xpage_ = x.documentElement().getAttribute(L"xpage"); xstring templaterpt = x.documentElement().getAttribute(L"template"); if(xpage_ !=L"") { xstring s = L""; s += L""; s += L""; SetAgentNode (GetAgentNode(L"agent"),s); SwitchLayer(L"sheet2",L"frame"); sheet = GetChildWin(L"contentex"); changed = true; } } if(!changed) { sheet = 0; SwitchLayer(L"sheet1",L"frame"); } } return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if(comdid==L"xmSend") { if(!readonly) OnSend(); return 1; } else if(comdid==L"xmSave") { if(!readonly) OnSave(); return 1; } else if(comdid==L"xmCancel") { CloseWindow(); return 1; } if(sheet && comdid !=L"") { int ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); if(ret) return ret; } return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnDWClick(TEvent* evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xstring colname = hdr.colname; if (value == L"ÊÕ¼þÈË:") { xaserverarg arg2 ; xaserverarg parg2 = GetArg(); OpenWindow(L"dev:xpage[UserGroupPersonSelect.vx]",arg2); if(arg2.GetArgString(L"comdid")==L"xmOk") { xstring data = arg2.GetArgString(L"data"); xml x2; x2.loadXML(data); KXMLDOMNodeList nodes = x2.selectNodes(L"/root/item"); trace(x2.xml()); int len = nodes.length(); xstring Names = L""; for(int i=0;iGetHWND(),str.c_str()); } //alert(x.xml()); if(x.selectSingleNode(L"root/Content2")) { xstring str2 = x.selectSingleNode(L"root/Content2").text(); xstring tm=L""; xstring EntityID=L""; xstring Category=L""; int pos = str2.find(L"EntityID=L"); if(pos >= 0) { tm = str2.mid(pos + ((xstring)L"EntityID=").length(),64); if(tm.find(L" ")>0) tm = tm.left(tm.find(L" ")); EntityID=tm; } pos = str2.find(L"Category=L"); if(pos >= 0) { tm = str2.mid(pos+((xstring)L"Category=").length(),64); if(tm.find(L" ")>0) tm = tm.left(tm.find(L" ")); Category=tm; } trace(L"EntityID:"+EntityID); trace(L"Category:"+Category); if(EntityID != L"" && Category != L"") { xstring eleStr = L""; bill = L"EntityID=L"+EntityID+L" Category=L" + Category; ShowDetail(eleStr); } } } return 1; } int ShowDetail(xstring eleStr) { xaserverarg arg; arg.AddArg(L"content",eleStr); xml doc; if(getUrl(L"/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1) { trace((xstring)L"error->:"+doc.xml()); return 0; } if(doc.xml() == L"") return -1; xhtml ht = GetControl(L"taskinfo"); ht.LoadHtml(doc.xml()); ht.Redraw(); return 1; } int onload() { SetArg(); dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/business3/template/message/maint"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); dw_base.SetVScrollState(false); dw_base.SetItemString(1,L"Category",L"ÆÕͨ"); OnAttachEvent(); readonly = false; MessageID = L""; bill = L""; SetAgent(); if(GetWinParam()) { xaserverarg arg = GetArg(); MessageID = arg.GetArgString(L"id"); if(arg.GetArgString(L"readonly")==L"1") readonly=true; OnRetrieve(); if(arg.GetArgString(L"EntityID")!=L"") { xstring str = L""; bill = L"EntityID=L"+arg.GetArgString(L"EntityID")+L" Category=L" + arg.GetArgString(L"EntityName"); ShowDetail(str); } } return 1; } int onloaded() { return 1; } };