From 6e93e717799723de98287f5a036ab34367bd08cd Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期五, 05 七月 2024 17:15:44 +0800 Subject: [PATCH] update some --- jrj/project/business/Public/UserGroupShareEx.cpp | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 153 insertions(+), 0 deletions(-) diff --git a/jrj/project/business/Public/UserGroupShareEx.cpp b/jrj/project/business/Public/UserGroupShareEx.cpp new file mode 100644 index 0000000..c4d62bf --- /dev/null +++ b/jrj/project/business/Public/UserGroupShareEx.cpp @@ -0,0 +1,153 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; + class __declspec(dllexport) UserGroupShareExWin : public xframe + { + public: + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + public: + UserGroupShareExWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} + public: + static UserGroupShareExWin* CreateInstance(void* implPtr, void* hWnd) + { + UserGroupShareExWin* pWin = new UserGroupShareExWin(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 OnOK() + { + xaserverarg arg = GetArg(); + arg.AddArg(L"process", L"ok"); + + xml x = xml::Make(); + dw_list.DwUpdateAllToEx(x); + arg.AddArg(L"result", x.xml()); + x.Free(); + CloseWindow(); + return 1; + } + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + if (comdid == L"xmCancel") + { + CloseWindow(); + return 1; + } + if (comdid == L"xmOK") return OnOK(); + if (comdid == L"xmMemberAdd" || comdid == L"xmAdd") + { + xaserverarg arg; + + xaserverarg parg = GetArg(); + if (comdid == L"xmMemberAdd") + OpenWindow(L"dev:xpage[UserGroupPersonSelect.vx]",arg); + else + OpenWindow(L"dev:xpage[UserGroupSelect.vx]", arg); + if (arg.GetArgString(L"comdid") == L"xmOk") + { + xstring data = arg.GetArgString(L"data"); + xml x; + + x.loadXML(data); + KXMLDOMNodeList nodes = x.selectNodes(L"/root/item"); + int len = nodes.length(); + for (int i = 0; i < len; i++) + { + dw_list.InsertRow(0); + int row = dw_list.GetRowCount(); + KXMLDOMElement ele = nodes.item(i); + + dw_list.SetItemString(row, L"Name", ele.getAttribute(L"Name")); + + if (comdid == L"xmMemberAdd") + { + dw_list.SetItemString(row, L"No", ele.getAttribute(L"No")); + dw_list.SetItemString(row, L"PersonID", ele.getAttribute(L"PersonID")); + } + else + { + xstring no = ele.getAttribute(L"NO"); + dw_list.SetItemString(row, L"No", L"[" + no + L"]"); + dw_list.SetItemString(row, L"UserGroupID", ele.getAttribute(L"UserGroupID")); + } + } + dw_list.Redraw(); + } + return 1; + } + if (comdid == L"xmDelete") + { + dw_list.DeleteRow(0); + return 1; + } + return 0; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&UserGroupShareExWin::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&UserGroupShareExWin::OnSetFocus); + return 1; + } + + int onload() + { + dw_list = GetControl(L"dw_list"); + dw_list.openUrl(L"/sale/view/UserGroup/template/entityusergrouplist"); + dw_list.SetReadOnly(true); + + dw_list.SetColumnState(L"UserGroupID", false); + dw_list.SetColumnState(L"EntityID", false); + dw_list.SetColumnState(L"EntityName", false); + dw_list.SetColumnState(L"PersonID", false); + + OnAttachEvent(); + + //SetAgent(); + + return 1; + } + + }; -- Gitblit v1.9.3