#include #include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) AddUserGroup : public xwin { public: xstring note; int hitem; int row; int wid; xtreeview tv; xdwgrid dw; xwin pwin; public: AddUserGroup(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {} public: static AddUserGroup* CreateInstance(void* implPtr, void* hWnd) { AddUserGroup* pWin = new AddUserGroup(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { return 1; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(TEvent* evt, LPARAM param) { int SetAgent(); //ÖØÖù¤¾ßÌõ return 1; } int AppendItem(xml x, KXMLDOMElement r, xstring item) { var e = x.createElement(item); control xc = new control; xc.setNativePointer(GetControl(item)); e.text() = xc.GetText(); r.appendChild(e); return 1; } int AppendAttrib(xml x, KXMLDOMElement r, xstring item) { var e = x.createElement(item); //xcontrol xc = GetControl(item); control xc = new control; xc.setNativePointer(GetControl(item)); e.text() = xc.GetText(); r.setAttribute(item, xc.GetText()); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if (comdid == L"cb_cancel") CloseWindow(); else if (comdid == L"cb_ok") { int wid = p.wid; xml x; xaserverarg arg; x.loadXML(L""); var r = x.documentElement(); xstring gpguid; if (p.note == L"ÐÞ¸Ä") { KXMLDOMElement ele = treeview::GetItemData(wid, p.hitem); gpguid = ele.selectSingleNode(L"@JobID").text(); } else gpguid = GetGuid(); r.setAttribute(L"JobID", gpguid); AppendAttrib(x, r, L"JobName"); AppendAttrib(x, r, L"JobType"); //AppendItem(x,r,L"JobName"); //AppendItem(x,r,L"JobType"); //trace(x.xml()); //return 1; arg.AddArg(L"content", x.xml()); if (xaserver::ExecXAction(GetServerUrl(), L"[update.Usergroup.xa]", arg.GetString()) == 1) { control xc = new control; xc.setNativePointer(GetControl(L"JobName")); //p.tv.Redraw(); if (p.note == L"ÐÞ¸Ä") { treeview::SetItemData(wid, p.hitem, r); treeview::SetItemLabel(wid, p.hitem, xc.GetText()); } else { int root = treeview::GetRootItem(wid); treeview::InsertChildItem(wid, root, xc.GetText(), r, 15); } CloseWindow(); } else { alert(L"±£´æ³ö´í!"); } } return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND", (FEvent)&AddUserGroup::OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent(L"WM_SETFOCUS", (FEvent)&AddUserGroup::OnSetFocus); return 1; } int OnInitial() { SetAgent(); OnAttachEvent(); return 1; } int SetItem(xstring value, xstring item) { control xc = new control; xc.setNativePointer(GetControl(item)); xc.SetText(value); return 1; } int onload() { OnInitial(); p = new pa; if (GetWinParam()) { p = GetArg(); SetWindowText(GetHWND(), p.note + L"Óû§×é"); if (p.note == L"ÐÞ¸Ä") { int wid = p.wid; KXMLDOMElement ele = treeview::GetItemData(wid, p.hitem); //trace(ele.xml); //SetItem(ele.selectSingleNode(L"gpno").text(),L"gpno"); //SetItem(ele.selectSingleNode(L"gpname").text(),L"gpname"); xstring ls_guid = ele.selectSingleNode(L"@JobID").text(); xstring ls_name = ele.selectSingleNode(L"@JobName").text(); xstring ls_type = ele.selectSingleNode(L"@JobType").text(); SetItem(ls_guid, L"JobID"); SetItem(ls_name, L"JobName"); SetItem(ls_type, L"JobType"); } } return 1; } };