#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"
|
|
using xml = KXMLDOMDocument;
|
class __declspec(dllexport) RefundSourcingLineMaintListView : public xframe
|
{
|
public:
|
xdwgrid dw_list;
|
xdwtable dw_arg;
|
xnode m_agentNode; //Agent Condition
|
xstring str_url ;
|
xstring m_entityid;
|
public:
|
RefundSourcingLineMaintListView(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
|
public:
|
static RefundSourcingLineMaintListView* CreateInstance(void* implPtr, void* hWnd)
|
{
|
RefundSourcingLineMaintListView* pWin = new RefundSourcingLineMaintListView(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 OnSave()
|
{
|
dw_list.AcceptText();
|
|
if(dw_list.GetRowCount()>0)
|
{
|
if(dw_list.GetItemString(dw_list.GetRowCount(),L"ÐòºÅ")==L"") dw_list.DeleteRow(dw_list.GetRowCount());
|
|
}
|
xml x ;
|
|
KXMLDOMDocument xdoc = x;
|
dw_list.DwUpdateAllToEx(xdoc);
|
|
xaserverarg arg ;
|
|
arg.AddArg(L"content",x.xml());
|
|
if(xurl::get(L"/sale/data/Gdn/update/RefundSourcingLine", arg.GetString(),x)!=1)
|
{
|
xstring error = x.text();
|
alert(L"err:"+error);
|
alert(L"±£´æÊ§°Ü!");
|
return -1;
|
}
|
xstring str = x.documentElement().getAttribute(L"text");
|
if(str == L"false")
|
{
|
alert(L"Êý¾Ý±£´æÊ§°Ü!");
|
return -1;
|
}
|
dw_list.ResetUpdateStatus();
|
alert(L"Êý¾Ý±£´æÍê³É!");
|
|
return 1;
|
}
|
|
xstring GetEntityName(LPARAM pr)
|
{
|
return L"RefundSourcingLine";
|
}
|
|
xstring GetEntityID(LPARAM pr)
|
{
|
int row = dw_list.GetRow();
|
xstring id = dw_list.GetItemString(row,m_entityid.c_str());
|
return id;
|
}
|
|
int ProcessUsedArg(xaserverarg arg)
|
{
|
xstring EntityIDList = L"";
|
int ll_row = dw_list.GetNextSelectRow(1);
|
while(ll_row > 0 && ll_row <= dw_list.GetRowCount())
|
{
|
xstring id=dw_list.GetItemString(ll_row,m_entityid.c_str());
|
if(EntityIDList == L"") EntityIDList = id; else EntityIDList += L"" + id;
|
ll_row = dw_list.GetNextSelectRow(ll_row + 1);
|
}
|
if(EntityIDList != L"") arg.AddArg(L"EntityID",EntityIDList);
|
|
return 1;
|
}
|
|
//½¹µã¼¤»î´¦Àíº¯Êý
|
int OnSetFocus(TEvent* evt, LPARAM param)
|
{
|
//ÖØÖù¤¾ßÌõ
|
//SetAgent(L"list",GetEntityID(1));
|
SetAgent();
|
return 1;
|
}
|
|
int OnItemChanged(TEvent* evt, LPARAM p)
|
{
|
DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
|
xstring colname=hdr.colname;
|
xstring value = hdr.data;
|
xstring dwname = L"dw_list";
|
if(value != L"")
|
{
|
KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']");
|
ViewObject::TransData(nlist, dw_list, hdr.row, colname, value);
|
}
|
|
return 1;
|
}
|
|
int OnAdd()
|
{
|
dw_list.InsertRow(0);
|
return 1;
|
}
|
|
int OnDelete()
|
{
|
int row = dw_list.GetRow();
|
if(row < 1) return 1;
|
if (MessageBox(GetHWND(),L"ÊÇ·ñɾ³ý´ËÊý¾Ý!",L"Ìáʾ",1) == 2)
|
return 1;
|
dw_list.DeleteRow(0);
|
return 1;
|
}
|
|
int OnSearch()
|
{
|
xml x ;
|
|
xaserverarg arg ;
|
|
arg.AddArg(L"query",GetQueryArg());
|
if (getUrl(str_url,arg.GetString(),x)!=1)
|
{
|
trace(x.text());
|
return -1;
|
}else
|
{
|
dw_list.Retrieve(x);
|
dw_list.Redraw();
|
}
|
return 1;
|
}
|
|
int OnRowChanged(TEvent* evt, LPARAM p)
|
{
|
DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
|
int row = hdr.row;
|
//SetAgent(L"list",dw_list.GetItemString(row,m_entityid));
|
return 1;
|
}
|
|
//ÃüÁî·¢²¼º¯Êý
|
int OnCmdDispatch(xstring comdid)
|
{
|
if(comdid == L"action:bill.new")
|
return OnAdd();
|
else if(comdid == L"action:bill.delete")
|
return OnDelete();
|
else if(comdid == L"action:bill.update")
|
return OnSave();
|
else if(comdid == L"xmSearch")
|
return OnSearch();
|
else if(comdid.find(L"action:",0)>=0)
|
{
|
int ret = ProcessFlowAction(comdid, 1);
|
}
|
return 0;
|
}
|
|
int ViewUpdate(LPARAM pr,xstring updateItem,xaserverarg arg)
|
{
|
if( updateItem==L"setstate")
|
{
|
|
//OnRetrieve(query);
|
}
|
return 1;
|
}
|
|
//ÃüÁî´¦Àíʼþ
|
int OnXCommand(TEvent* evt, LPARAM param)
|
{
|
return OnCmdDispatch(evt->xcommand.pStrID);
|
}
|
|
|
|
int OnAttachEvent()
|
{
|
//°ó¶¨¹¤¾ßÌõµã»÷ʼþ
|
AttachEvent(L"WM_XCOMMAND", (FEvent)&RefundSourcingLineMaintListView::OnXCommand);
|
//»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ
|
AttachEvent(L"WM_SETFOCUS", (FEvent)&RefundSourcingLineMaintListView::OnSetFocus);
|
AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&RefundSourcingLineMaintListView::OnItemChanged);
|
//AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED",OnUpdate);//ÐÐË«»÷
|
AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&RefundSourcingLineMaintListView::OnRowChanged);//°ó¶¨Ðиü¸Ä´¥·¢Ê¼þOnRowChanged
|
return 1;
|
}
|
|
xstring GetQueryArg()
|
{
|
dw_arg.AcceptText();
|
xml x ;
|
|
dw_arg.DwUpdateAllTo(x);
|
return x.xml();
|
}
|
|
int OnRetrieve(xstring query)
|
{
|
xml x ;
|
|
xaserverarg arg ;
|
|
arg.AddArg(L"query",query);
|
arg.AddArg(L"QueryArg",L"");
|
if (getUrl(str_url,arg.GetString(),x)!=1)
|
{
|
trace(L"´íÎóÐÅÏ¢=L"+(xstring)x.text());
|
return -1;
|
}else
|
{
|
dw_list.Retrieve(x);
|
dw_list.Redraw();
|
}
|
//dw_list.SetSelectionMode(3);
|
return 1;
|
}
|
|
int onload()
|
{
|
str_url = L"/sale/data/GDN/fetch/RefundSourcingLine";
|
|
dw_list = GetControl(L"dw_list");
|
dw_list.SetDataObject(GetServerUrl(),L"dev:sheet[list.RefundSourcingLine.Entity.xarch.tpl/ÍË˰½ø»õÃ÷ϸ]");
|
//dw_list.SetSelectionMode(1);
|
|
dw_arg = GetControl(L"dw_arg");
|
dw_arg.SetDataObject(GetServerUrl(),L"dev:sheet[list.RefundSourcingLine.Entity.xarch.tpl/ÍË˰½ø»õÃ÷ϸ²ÎÊý]");
|
|
dw_arg.SetColHeaderHeight(0);
|
dw_arg.SetRowSelectorWidth(0);
|
dw_arg.SetHScrollState(false);
|
dw_arg.SetVScrollState(false);
|
|
|
dw_list.SetColumnState(L"CIEID", false);
|
dw_list.SetColumnState(L"CommDate", false);
|
//dw_list.SetReadOnly(true);
|
|
OnAttachEvent();
|
|
return 1;
|
}
|
|
|
|
int onloaded()
|
{
|
SetAgent();
|
OnRetrieve(L"");
|
return 1;
|
}
|
};
|