| | |
| | | use "xcontrol.vframe.vbusiness.vd" |
| | | use "xbase.vframe.vbusiness.vd" |
| | | use "base.view.vd" |
| | | #include <wobject/xstring.hpp> |
| | | #include <xcontrol/xtreeview.hpp> |
| | | #include <xcontrol/xdwgrid.hpp> |
| | | #include <wobject/xdouble.hpp> |
| | | #include <xcontrol/xlayersheet.hpp> |
| | | #include <xcontrol/xdatetimepick.hpp> |
| | | |
| | | unit trade |
| | | [ |
| | | class TOSelectDlg : public frame |
| | | |
| | | #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" |
| | | #include "viewobject/view.base.hpp" |
| | | |
| | | 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() |
| | | { |
| | | string xfNodeAgentArea = "agentarea"; |
| | | xstring xfNodeAgentArea = L"agentarea"; |
| | | xnode anode = GetAgentNode(xfNodeAgentArea); |
| | | if(m_agentNode) |
| | | { |
| | | SetAgentNodeContent (anode,m_agentNode); |
| | | SetAgentNode (anode,m_agentNode); |
| | | } |
| | | else |
| | | { |
| | | msxml::IXMLDOMElement xframeElement = GetElement(); |
| | | msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); |
| | | KXMLDOMElement xframeElement = GetElement(); |
| | | KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); |
| | | if(agent) |
| | | { |
| | | string s = agent.xml; |
| | | m_agentNode = SetAgentNodeContent (anode,s); |
| | | xstring s = agent.xml(); |
| | | m_agentNode = SetAgentNode (anode,s); |
| | | } |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | //焦点激活处理函数 |
| | | int OnSetFocus(ref TEvent evt,int param) |
| | | int OnSetFocus(TEvent* evt, LPARAM param) |
| | | { |
| | | //重置工具条 |
| | | SetAgent(); |
| | |
| | | } |
| | | |
| | | //命令发布函数 |
| | | int OnCmdDispatch(string comdid) |
| | | int OnCmdDispatch(xstring comdid) |
| | | { |
| | | if(comdid=="xmCancel") |
| | | if(comdid==L"xmCancel") |
| | | { |
| | | CloseWindow(); |
| | | return 1; |
| | | } |
| | | else if(comdid=="xmOK") |
| | | else if(comdid==L"xmOK") |
| | | { |
| | | int LVNI_FOCUSED = 0x0001; |
| | | int nItem =xlistview::GetNextItem(lv_view.GetId(), -1, LVNI_FOCUSED); |
| | | int nItem =lv_view.GetNextItem( -1, LVNI_FOCUSED); |
| | | if(nItem < 0) return 1; |
| | | |
| | | if(GetParam()) |
| | | if(GetWinParam()) |
| | | { |
| | | msxml::IXMLDOMElement ele = GetItemData(lv_view, nItem); |
| | | xaserverarg arg = GetParam(); |
| | | arg.AddArg("action","new"); |
| | | arg.AddArg("ID",ele.getAttribute("guid")); |
| | | arg.AddArg("id",ele.getAttribute("guid")); |
| | | 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 0; |
| | | } |
| | | |
| | | msxml::IXMLDOMElement GetItemData(xlistview lv_item, int hItem) |
| | | KXMLDOMElement GetItemData(xlistview lv_item, int hItem) |
| | | { |
| | | int LVIF_PARAM = 0x0004; |
| | | |
| | |
| | | lvItem.iSubItem = 0; |
| | | lvItem.mask = LVIF_PARAM ; |
| | | |
| | | xlistview::GetItem(lv_item.GetId(), lvItem); |
| | | msxml::IXMLDOMElement ele = trust(lvItem.lParam as msxml::IXMLDOMElement); |
| | | lv_view.GetItem(lv_item.GetId(), lvItem); |
| | | KXMLDOMElement ele = trust(lvItem.lParam as KXMLDOMElement); |
| | | return ele; |
| | | } |
| | | |
| | | int OnListViewDoubleClicked(ref TEvent evt,int param) |
| | | int OnListViewDoubleClicked(TEvent* evt, LPARAM param) |
| | | { |
| | | int LVNI_ALL = 0x0000; |
| | | int LVNI_FOCUSED = 0x0001; |
| | |
| | | int LVNI_CUT = 0x0004; |
| | | int LVNI_DROPHILITED = 0x0008; |
| | | |
| | | int nItem =xlistview::GetNextItem(lv_view.GetId(), -1, LVNI_FOCUSED); |
| | | int nItem =lv_view.GetNextItem( -1, LVNI_FOCUSED); |
| | | if(nItem < 0) return 1; |
| | | |
| | | if(GetParam()) |
| | | if(GetWinParam()) |
| | | { |
| | | msxml::IXMLDOMElement ele = GetItemData(lv_view, nItem); |
| | | xaserverarg arg = GetParam(); |
| | | arg.AddArg("action","new"); |
| | | arg.AddArg("ID",ele.getAttribute("guid")); |
| | | arg.AddArg("id",ele.getAttribute("guid")); |
| | | 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(ref TEvent evt,int param) |
| | | int OnListViewDoubleClicked1(TEvent* evt, LPARAM param) |
| | | { |
| | | int LVNI_ALL = 0x0000; |
| | | int LVNI_FOCUSED = 0x0001; |
| | |
| | | int LVNI_CUT = 0x0004; |
| | | int LVNI_DROPHILITED = 0x0008; |
| | | |
| | | int nItem =xlistview::GetNextItem(lv_view1.GetId(), -1, LVNI_FOCUSED); |
| | | int nItem =lv_view.GetNextItem(lv_view1.GetId(), -1, LVNI_FOCUSED); |
| | | if(nItem < 0) return 1; |
| | | |
| | | if(GetParam()) |
| | | if(GetWinParam()) |
| | | { |
| | | msxml::IXMLDOMElement ele = GetItemData(lv_view1, nItem); |
| | | xaserverarg arg = GetParam(); |
| | | arg.AddArg("action","open"); |
| | | arg.AddArg("id",ele.getAttribute("id")); |
| | | arg.AddArg("ID",ele.getAttribute("id")); |
| | | arg.AddArg("ItemID",ele.getAttribute("itemid")); |
| | | 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(); |
| | |
| | | return 1; |
| | | } |
| | | |
| | | int SetListViewHeaderColumn(string Url,xlistview lv_item) |
| | | int SetListViewHeaderColumn(xstring Url,xlistview lv_item) |
| | | { |
| | | const int LVCFMT_LEFT = 0; |
| | | for(int i=0;i<3;i++) lv_item.DeleteColumn(lv_item.GetId(),1); |
| | | //if(Url=="") |
| | | //if(Url==L"") |
| | | //{ |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"创建日期",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"创建人员",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"名称",0,120,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"创建日期",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"创建人员",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"名称",0,120,0); |
| | | columnCount = 3; |
| | | //} |
| | | return 1; |
| | | } |
| | | |
| | | int SetListViewHeaderColumnItem(string Url,xlistview lv_item) |
| | | int SetListViewHeaderColumnItem(xstring Url,xlistview lv_item) |
| | | { |
| | | const int LVCFMT_LEFT = 0; |
| | | for(int i=0;i<6;i++) lv_item.DeleteColumn(lv_item.GetId(),1); |
| | | //if(Url=="") |
| | | //if(Url==L"") |
| | | //{ |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"最后修改日期",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"创建日期",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"创建人员",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"״̬",0,70,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"主题",0,120,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"编号",0,70,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,"事务",0,60,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"最后修改日期",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"创建日期",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"创建人员",LVCFMT_LEFT,80,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"״̬",0,70,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"主题",0,120,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"编号",0,70,0); |
| | | lv_item.InsertColumn(lv_item.GetId(),0,L"事务",0,60,0); |
| | | columnCount = 6; |
| | | //} |
| | | return 1; |
| | | } |
| | | |
| | | //命令处理事件 |
| | | int OnXCommand(ref TXCommandEvent evt,int param) |
| | | int OnXCommand(TEvent* evt, LPARAM param) |
| | | { |
| | | return OnCmdDispatch(evt.pStrID); |
| | | return OnCmdDispatch(evt->xcommand.pStrID); |
| | | } |
| | | |
| | | int OnAttachEvent() |
| | | { |
| | | //绑定工具条点击事件 |
| | | AttachEvent("WM_XCOMMAND",OnXCommand); |
| | | AttachEvent(L"WM_XCOMMAND", (FEvent)&TOSelectDlg::OnXCommand); |
| | | //获取焦点事件,用于重置工具条 |
| | | AttachEvent("WM_SETFOCUS",OnSetFocus); |
| | | AttachEvent(L"WM_SETFOCUS", (FEvent)&TOSelectDlg::OnSetFocus); |
| | | return 1; |
| | | } |
| | | |
| | | int RetrieveEx() |
| | | { |
| | | xml x = ViewObject::RetrieveData("/sale/data/TO/business/document/list"); |
| | | xml x = ViewObject::RetrieveData(L"/sale/data/TO/business/document/list"); |
| | | if(x) |
| | | { |
| | | msxml::IXMLDOMElement ele = x.GetXmlDoc().documentElement; |
| | | msxml::IXMLDOMNodeList nlist=ele.SelectNodes("*"); |
| | | int s=nlist.length; |
| | | KXMLDOMElement ele = x.documentElement(); |
| | | KXMLDOMNodeList nlist=ele.selectNodes(L"*"); |
| | | int s=nlist.length(); |
| | | if (s>0) |
| | | { |
| | | for (int i=0; i<s; i++) |
| | | { |
| | | msxml::IXMLDOMElement e=nlist.item(i); |
| | | string name=e.getAttribute("caption"); |
| | | int nItem = xlistview::InsertItemEx(lv_view1.GetId(),0,name,23,cast(e as int)); |
| | | KXMLDOMElement e=nlist.item(i); |
| | | xstring name=e.getAttribute(L"caption"); |
| | | int nItem = lv_view.InsertItemEx(0,name,23,e ); |
| | | |
| | | xlistview::SetItemText(lv_view1.GetId(),nItem,2,e.getAttribute("subject")); |
| | | xlistview::SetItemText(lv_view1.GetId(),nItem,4,e.getAttribute("CreatorID")); |
| | | xlistview::SetItemText(lv_view1.GetId(),nItem,5,e.getAttribute("CreateDate")); |
| | | xlistview::SetItemText(lv_view1.GetId(),nItem,6,e.getAttribute("LastUpdateDate")); |
| | | lv_view.SetItemText(nItem,2,e.getAttribute(L"subject")); |
| | | lv_view.SetItemText(nItem,4,e.getAttribute(L"CreatorID")); |
| | | lv_view.SetItemText(nItem,5,e.getAttribute(L"CreateDate")); |
| | | lv_view.SetItemText(nItem,6,e.getAttribute(L"LastUpdateDate")); |
| | | } |
| | | } |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | int Retrieve(string src) |
| | | int Retrieve(xstring src) |
| | | { |
| | | xml x = ViewObject::RetrieveData("/sale/data/TO/template/list", "role",""); |
| | | xml x = ViewObject::RetrieveData(L"/sale/data/TO/template/list", L"role",L""); |
| | | if(x) |
| | | { |
| | | msxml::IXMLDOMElement ele = x.GetXmlDoc().documentElement; |
| | | msxml::IXMLDOMNodeList nlist=ele.SelectNodes("*"); |
| | | int s=nlist.length; |
| | | KXMLDOMElement ele = x.documentElement(); |
| | | KXMLDOMNodeList nlist=ele.selectNodes(L"*"); |
| | | int s=nlist.length(); |
| | | if (s>0) |
| | | { |
| | | for (int i=0; i<s; i++) |
| | | { |
| | | msxml::IXMLDOMElement e=nlist.item(i); |
| | | string name=e.getAttribute("caption"); |
| | | int nItem = xlistview::InsertItemEx(lv_view.GetId(),0,name,23,cast(e as int)); |
| | | KXMLDOMElement e=nlist.item(i); |
| | | xstring name=e.getAttribute(L"caption"); |
| | | int nItem = lv_view.InsertItemEx(0,name,23,e); |
| | | |
| | | xlistview::SetItemText(lv_view.GetId(),nItem,1,e.getAttribute("Creator")); |
| | | xlistview::SetItemText(lv_view.GetId(),nItem,2,e.getAttribute("CreateDate")); |
| | | lv_view.SetItemText(nItem,1,e.getAttribute(L"Creator")); |
| | | lv_view.SetItemText(nItem,2,e.getAttribute(L"CreateDate")); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | int onload() |
| | | { |
| | | lv_view = GetControl("lv_view"); |
| | | xlistview::SetdwStyle(lv_view.GetId(),0); |
| | | SetArg(); |
| | | lv_view = GetControl(L"lv_view"); |
| | | lv_view.SetdwStyle(0); |
| | | |
| | | lv_view1 = GetControl("lv_view1"); |
| | | //xlistview::SetdwStyle(lv_view1.GetId(),0); |
| | | lv_view1 = GetControl(L"lv_view1"); |
| | | //lv_view.SetdwStyle(lv_view1.GetId(),0); |
| | | |
| | | columnCount = 0; |
| | | SetListViewHeaderColumn("",lv_view); |
| | | SetListViewHeaderColumnItem("",lv_view1); |
| | | AttachEvent("lv_view", "NM_DBLCLK",OnListViewDoubleClicked); |
| | | AttachEvent("lv_view1", "NM_DBLCLK",OnListViewDoubleClicked1); |
| | | SetListViewHeaderColumn(L"",lv_view); |
| | | SetListViewHeaderColumnItem(L"",lv_view1); |
| | | AttachEvent(L"lv_view", L"NM_DBLCLK", (FEvent)&TOSelectDlg::OnListViewDoubleClicked); |
| | | AttachEvent(L"lv_view1", L"NM_DBLCLK", (FEvent)&TOSelectDlg::OnListViewDoubleClicked1); |
| | | |
| | | OnAttachEvent(); |
| | | |
| | | Retrieve(""); |
| | | Retrieve(L""); |
| | | RetrieveEx(); |
| | | |
| | | return 1; |
| | | } |
| | | }; |
| | | ] |