#include <wobject/xstring.hpp>
|
#include <xcontrol/xtreeview.hpp>
|
#include <xcontrol/xdwgrid.hpp>
|
#include <wobject/xdouble.hpp>
|
#include <xcontrol/xlayersheet.hpp>
|
#include <xcontrol/xdatetimepick.hpp>
|
|
|
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
|
#include "viewobject/view.base.hpp"
|
#include <xcontrol/xlistview.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()
|
{
|
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(lv_item.GetId(), lvItem);
|
KXMLDOMElement ele = trust(lvItem.lParam as KXMLDOMElement);
|
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(lv_view1.GetId(), -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(lv_item.GetId(),1);
|
//if(Url==L"")
|
//{
|
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(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==L"")
|
//{
|
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(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; i<s; i++)
|
{
|
KXMLDOMElement e=nlist.item(i);
|
xstring name=e.getAttribute(L"caption");
|
int nItem = lv_view.InsertItemEx(0,name,23,e );
|
|
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(xstring src)
|
{
|
xml x = ViewObject::RetrieveData(L"/sale/data/TO/template/list", L"role",L"");
|
if(x)
|
{
|
KXMLDOMElement ele = x.documentElement();
|
KXMLDOMNodeList nlist=ele.selectNodes(L"*");
|
int s=nlist.length();
|
if (s>0)
|
{
|
for (int i=0; i<s; i++)
|
{
|
KXMLDOMElement e=nlist.item(i);
|
xstring name=e.getAttribute(L"caption");
|
int nItem = lv_view.InsertItemEx(0,name,23,e);
|
|
lv_view.SetItemText(nItem,1,e.getAttribute(L"Creator"));
|
lv_view.SetItemText(nItem,2,e.getAttribute(L"CreateDate"));
|
}
|
}
|
}
|
return 1;
|
}
|
|
int onload()
|
{
|
SetArg();
|
lv_view = GetControl(L"lv_view");
|
lv_view.SetdwStyle(0);
|
|
lv_view1 = GetControl(L"lv_view1");
|
//lv_view.SetdwStyle(lv_view1.GetId(),0);
|
|
columnCount = 0;
|
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(L"");
|
RetrieveEx();
|
|
return 1;
|
}
|
};
|