#include #include #include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include using xml = KXMLDOMDocument; class __declspec(dllexport) TOSelectDlg : public xframe { public: //xdwgrid dw_list; xlistview lv_view; xlistview lv_view1; int columnCount; xnode m_agentNode; //Agent Condition public: TOSelectDlg(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static TOSelectDlg* CreateInstance(void* implPtr, void* hWnd) { TOSelectDlg* pWin = new TOSelectDlg(implPtr, (HWND)hWnd); return pWin; } 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; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(TEvent* evt, LPARAM param) { //ÖØÖù¤¾ßÌõ SetAgent(); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if(comdid==L"xmCancel") { CloseWindow(); return 1; } else if(comdid==L"xmOK") { int LVNI_FOCUSED = 0x0001; int nItem =lv_view.GetNextItem( -1, LVNI_FOCUSED); if(nItem < 0) return 1; if(GetWinParam()) { KXMLDOMElement ele = GetItemData(lv_view, nItem); xaserverarg arg = GetArg(); arg.AddArg(L"action",L"new"); arg.AddArg(L"ID",ele.getAttribute(L"guid")); arg.AddArg(L"id",ele.getAttribute(L"guid")); } //ÖØÖù¤¾ßÌõ CloseWindow(); return 1; } return 0; } KXMLDOMElement GetItemData(xlistview lv_item, int hItem) { int LVIF_PARAM = 0x0004; lvitem lvItem; lvItem.iItem = hItem; lvItem.iSubItem = 0; lvItem.mask = LVIF_PARAM ; lv_view.GetItem( lvItem); KXMLDOMElement ele = lvItem.lParam; return ele; } int OnListViewDoubleClicked(TEvent* evt, LPARAM param) { int LVNI_ALL = 0x0000; int LVNI_FOCUSED = 0x0001; int LVNI_SELECTED = 0x0002; int LVNI_CUT = 0x0004; int LVNI_DROPHILITED = 0x0008; int nItem =lv_view.GetNextItem( -1, LVNI_FOCUSED); if(nItem < 0) return 1; if(GetWinParam()) { KXMLDOMElement ele = GetItemData(lv_view, nItem); xaserverarg arg = GetArg(); arg.AddArg(L"action",L"new"); arg.AddArg(L"ID",ele.getAttribute(L"guid")); arg.AddArg(L"id",ele.getAttribute(L"guid")); } //ÖØÖù¤¾ßÌõ CloseWindow(); return 1; } int OnListViewDoubleClicked1(TEvent* evt, LPARAM param) { int LVNI_ALL = 0x0000; int LVNI_FOCUSED = 0x0001; int LVNI_SELECTED = 0x0002; int LVNI_CUT = 0x0004; int LVNI_DROPHILITED = 0x0008; int nItem =lv_view.GetNextItem(-1, LVNI_FOCUSED); if(nItem < 0) return 1; if(GetWinParam()) { KXMLDOMElement ele = GetItemData(lv_view1, nItem); xaserverarg arg = GetArg(); arg.AddArg(L"action",L"open"); arg.AddArg(L"id",ele.getAttribute(L"id")); arg.AddArg(L"ID",ele.getAttribute(L"id")); arg.AddArg(L"ItemID",ele.getAttribute(L"itemid")); } //ÖØÖù¤¾ßÌõ //OnDocumentOpen(); CloseWindow(); return 1; } int SetListViewHeaderColumn(xstring Url,xlistview lv_item) { const int LVCFMT_LEFT = 0; for(int i=0;i<3;i++) lv_item.DeleteColumn(1); //if(Url==L"") //{ lv_item.InsertColumn(0,L"´´½¨ÈÕÆÚ",LVCFMT_LEFT,80,0); lv_item.InsertColumn(0,L"´´½¨ÈËÔ±",LVCFMT_LEFT,80,0); lv_item.InsertColumn(0,L"Ãû³Æ",0,120,0); columnCount = 3; //} return 1; } int SetListViewHeaderColumnItem(xstring Url,xlistview lv_item) { const int LVCFMT_LEFT = 0; for(int i=0;i<6;i++) lv_item.DeleteColumn(1); //if(Url==L"") //{ lv_item.InsertColumn(0,L"×îºóÐÞ¸ÄÈÕÆÚ",LVCFMT_LEFT,80,0); lv_item.InsertColumn(0,L"´´½¨ÈÕÆÚ",LVCFMT_LEFT,80,0); lv_item.InsertColumn(0,L"´´½¨ÈËÔ±",LVCFMT_LEFT,80,0); lv_item.InsertColumn(0,L"״̬",0,70,0); lv_item.InsertColumn(0,L"Ö÷Ìâ",0,120,0); lv_item.InsertColumn(0,L"±àºÅ",0,70,0); lv_item.InsertColumn(0,L"ÊÂÎñ",0,60,0); columnCount = 6; //} return 1; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND", (FEvent)&TOSelectDlg::OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent(L"WM_SETFOCUS", (FEvent)&TOSelectDlg::OnSetFocus); return 1; } int RetrieveEx() { xml x = ViewObject::RetrieveData(L"/sale/data/TO/business/document/list"); if(x) { KXMLDOMElement ele = x.documentElement(); KXMLDOMNodeList nlist=ele.selectNodes(L"*"); int s=nlist.length(); if (s>0) { for (int i=0; i0) { for (int i=0; i