#include <wobject/xstring.hpp>
|
#include <xcontrol/xtreeview.hpp>
|
#include <xcontrol/xdwgrid.hpp>
|
#include <wobject/xdouble.hpp>
|
#include <xcontrol/xlayersheet.hpp>
|
|
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
|
#include "viewobject/view.base.hpp"
|
using xml = KXMLDOMDocument;
|
class __declspec(dllexport) BindComputerDlgNew : public xwin
|
{
|
|
public:
|
|
xdwgrid dw_list;
|
public:
|
BindComputerDlgNew(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
|
public:
|
static BindComputerDlgNew* CreateInstance(void* implPtr, void* hWnd)
|
{
|
BindComputerDlgNew* pWin = new BindComputerDlgNew(implPtr, (HWND)hWnd);
|
return pWin;
|
}
|
int OnRetrieve()
|
{
|
xml x;
|
|
xaserverarg arg;
|
|
arg = GetArg();
|
if (arg.GetArgString(L"BindComputer"))
|
{
|
xstring sbys = arg.GetArgString(L"BindComputer");
|
//alert(sbys);
|
x.loadXML(sbys);
|
|
}
|
else
|
{
|
|
x.loadXML(L"<args></args>");
|
}
|
|
dw_list.Retrieve(x.selectSingleNode(L"args"));
|
dw_list.ResetUpdateStatus();
|
dw_list.Redraw();
|
return 1;
|
}
|
int OnAddRow(xdwgrid dw)
|
{
|
dw.InsertRow(0);
|
return 1;
|
}
|
|
int OnDelRow(xdwgrid dw)
|
{
|
int row = dw.GetRow();
|
if (row<1 || row > dw.GetRowCount()) return -1;
|
dw.DeleteRow(row);
|
return 1;
|
}
|
//ÃüÁî·¢²¼º¯Êý
|
int OnCmdDispatch(xstring comdid)
|
{
|
dw_list.AcceptText();
|
xaserverarg arg;
|
|
arg = GetArg();
|
arg.AddArg(L"comdid", comdid);
|
if (comdid == L"ok")
|
{
|
xml x;
|
|
dw_list.DwUpdateAllTo(x);
|
arg.AddArg(L"xml", x.xml());
|
CloseWindow();
|
}
|
else if (comdid == L"close")
|
CloseWindow();
|
else if (comdid == L"add")
|
OnAddRow(dw_list);
|
else if (comdid == L"del")
|
OnDelRow(dw_list);
|
return 0;
|
}
|
|
//ÃüÁî´¦Àíʼþ
|
int OnXCommand(TEvent* evt, LPARAM param)
|
{
|
return OnCmdDispatch(evt->xcommand.pStrID);
|
}
|
|
int OnAttachEvent()
|
{
|
//°ó¶¨¹¤¾ßÌõµã»÷ʼþ
|
AttachEvent(L"WM_XCOMMAND", (FEvent)&BindComputerDlgNew::OnXCommand);
|
return 1;
|
}
|
int onload()
|
{
|
SetArg();
|
OnAttachEvent();
|
|
dw_list = new xdwgrid;
|
dw_list.setNativePointer(GetControl(L"dw_list"));
|
dw_list.SetDataObject(GetServerUrl(), L"dev:sheet[SysUser.tpl/BindComputer]");
|
dw_list.SetReadOnly(true);
|
if (GetWinParam())
|
{
|
OnRetrieve();
|
}
|
return 1;
|
}
|
};
|