From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/project/business/SystemSettings/SysUser.cpp | 645 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 324 insertions(+), 321 deletions(-)
diff --git a/jrj/project/business/SystemSettings/SysUser.cpp b/jrj/project/business/SystemSettings/SysUser.cpp
index 51322ba..5b4161b 100644
--- a/jrj/project/business/SystemSettings/SysUser.cpp
+++ b/jrj/project/business/SystemSettings/SysUser.cpp
@@ -1,330 +1,333 @@
-use "win.vl"
-use "treeview.vm"
-use "dev:vm[xdwgrid.vm]"
-use "dev:vm[xdwtable.vm]"
-use "pref.vl"
-use "dev:vm[xml.vm]"
-use "dev:vm[xaserverarg.vm]"
-use "dev:vm[xaserver.vm]"
-use "dev:vm[xutil.vm]"
-use "dev:code[pa.tpp]"
-use "list.vl"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
-unit vbusiness.xpage
-[
- SysUser is extend list;
- about SysUser
- [
-
- method:
- [
- treeview__ tv_usergroup;
- xdwgrid__ dw_user;
- xnode__ m_agentNode;
- string strJobID;
- int SetAgent()
- {
- string xfNodeAgentArea = "agentarea";
- xnode__ anode = new xnode__;
- anode.setNativePointer(GetAgentNode(xfNodeAgentArea));
- var xframeElement = GetElement();
- var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
- if(agent)
- {
- string s = agent.xml;
- SetAgentNodeContent (anode,s);
- }
- return 1;
- }
-
- //焦点激活处理函数
- int OnSetFocus(ref TEvent evt,int param)
- {
- SetAgent();
- //重置工具条
- return 1;
- }
-
- int SetEntityData(param p)
- {
- xml__ x=new xml__;
- x.setNativePointer(x.CreateInstance());
- xaserverarg__ arg = new xaserverarg__;
- arg.setNativePointer(arg.CreateInstance());
- string str = this.m_QueryTxt;
- //trace(ele.xml);
- //alert(str);
- arg.AddArg("guid",str);
- //trace(strJobID);
- if (xaserver__::ExecXQuery("","[list.SysUser.xq]",arg.GetString(),x) == 1)
- {
- dw_user.AcceptText();
- dw_user.Retrieve(x);
- dw_user.Redraw();
- }
- return 1;
- }
-
- int OnTreeSelChanged(ref TNotifyEvent evt,int p)
- {
- ref NMTREEVIEW nmtv = evt.pnmh;
- int hItem = nmtv.itemNew.hItem;
-
- int wid = tv_usergroup.GetId();
- int hitem=treeview__::GetSelectedItem(wid);
- int rootItem = treeview__::GetRootItem(wid);
- //if (hItem <=0 || hItem == rootItem)
- // return 0;
- msxml::IXMLDOMElement ele = treeview__::GetItemData(wid,hitem);
- //trace("ok");
- if (ele)
- {
- xml__ x=new xml__;
- x.setNativePointer(x.CreateInstance());
- xaserverarg__ arg = new xaserverarg__;
- arg.setNativePointer(arg.CreateInstance());
- strJobID = ele.selectSingleNode("@JobID").text;
- //trace(ele.xml);
- //alert(strJobID);
- arg.AddArg("guid",strJobID);
- //trace(strJobID);
- if (xaserver__::ExecXQuery("","[list.SysUser.xq]",arg.GetString(),x) == 1)
- {
- dw_user.AcceptText();
- dw_user.Retrieve(x);
- dw_user.Redraw();
- }
- }
-
- return 1;
- }
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
- int xmImport()
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) SysUser : public listwin
+{
+public:
+ xtreeview tv_usergroup;
+ xdwgrid dw_user;
+ xnode m_agentNode;
+ xstring strJobID;
+public:
+ SysUser(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
+public:
+ static SysUser* CreateInstance(void* implPtr, void* hWnd)
+ {
+ SysUser* pWin = new SysUser(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)
{
-
- int wid = tv_usergroup.GetId();
- int hitem=treeview__::GetSelectedItem(wid);
- if (!hitem)
- {
- alert("请选择职位!");
- return 0;
- }
- OpenWindow("dev:xpage[UserImport.vx]",this);
- //openUrl("系统用户.vface/xpage/SysUser/UserImport", this);
- return 1;
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode, s);
}
- int OnSave()
- {
- xml__ x=new xml__;
- x.setNativePointer(x.CreateInstance());
- dw_user.DwUpdateAllToEx(x.GetXmlDoc());
- xaserverarg__ arg = new xaserverarg__;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg("content",x.GetXml());
- arg.AddArg("dbmap","SysUser.dbmap");
- if(getUrl("/sale/data/SysUser/SysUser",arg.GetString(),x)!=1)
- {
- //trace("error:"+x.GetXml());
- alert("保存失败");
- }
- else{
- if(x.GetXmlDoc().selectSingleNode("erroe"))
- {
- alert("保存出错2! ");
- return 0;
- }
- //trace(x.GetXml());
- dw_user.ResetUpdateStatus();
- win__::MessageBox(GetHWND(),"保存成功!","提示",0);
- }
-
-/* arg.AddArg("xdata",x.GetXml());
- //arg.AddArg("jobguid",strJobID);
- //trace(x.GetXml());
- //trace(strJobID);
- //if (getUrl("/sale/data/SysUser/SysUser",arg.GetString(),x) != 1)
- //trace(xaserver__::ExecXAction(GetServerUrl(),"[SysUser.xa]",arg.GetString(),x));
- if (xaserver__::ExecXAction(GetServerUrl(),"[SysUser.xa]",arg.GetString(),x)!=1)
- {
- //trace("error:"+x.GetXml());
- alert("保存失败");
- }
- else{
- if(x.GetXmlDoc().selectSingleNode("ERROR"))
- {
- alert("保存出错2! ");
- return 0;
- }
- win__::MessageBox(GetHWND(),"保存成功!","提示",0);
- }*/
- return 1;
- }
- int OnAddRow()
- {
- int wid = tv_usergroup.GetId();
- int hitem=treeview__::GetSelectedItem(wid);
- if(hitem==0)
- {
- alert("请先选择职位类型!");
- }
- else
- {
- int row = dw_user.InsertRow(0);
- dw_user.SetItemString(row,"Status","Y");
- }
- return 1;
- }
-
- int OnInsertRow()
- {
- int wid = tv_usergroup.GetId();
- int hitem=treeview__::GetSelectedItem(wid);
- if(hitem==0)
- {
- alert("请先选择职位类型!");
- }
- else
- {
- int crow=dw_user.GetRow();
- int row=dw_user.InsertRow(crow);
- dw_user.SetItemString(row,"Status","Y");
- }
- return 1;
- }
+ }
+ return 1;
+ }
- int OnDeleteRow()
- {
- int row=dw_user.GetRow();
- dw_user.DeleteRow(row);
- return 1;
- }
-
- int OnJobType()
- {
- openUrl("组织架构.vface/worknode/Hr/HrJob");
- return 1;
- }
-
- int OnClicked(ref TNotifyEvent evt,int p)
- {
- ref DWNMHDR hdr = evt.pnmh;
- int row = hdr.row;
- int col=hdr.col ;
- string colname=dw_user.GetColumnName(col);
- msxml::IXMLDOMElement xrow = dw_user.GetRowElement(row);
- string BindComputer=xrow.selectSingleNode("BindComputer").text;
- xaserverarg__ arg = new xaserverarg__;
- arg.setNativePointer(arg.CreateInstance());
- if(BindComputer != "" )
- {
- arg.AddArg("BindComputer",BindComputer);
- }
-
- string comdid;
- if(colname=="BindComputer")
- {
- openUrl("系统用户.vface/xpage/SysUser/BindComputer/dialog", arg);
- comdid = arg.GetArgString("comdid");
- if(comdid=="ok")
- {
- string strxml = arg.GetArgString("xml");
- dw_user.SetItemDisplayString(row,colname,strxml);
- dw_user.SetItemString(row,colname,strxml);
- dw_user.Redraw();
- }
- }
- return 1;
- }
-
- int OnResetPass()
- {
- xaserverarg__ arg = new xaserverarg__;
- int pt = arg.CreateInstance();
- arg.setNativePointer(pt);
-
- int row = dw_user.GetRow();
- if(row < 1) return 1;
- arg.AddArg("user", dw_user.GetItemString(row,"EmployeeNo"));
-
- OpenWindow("dev:xpage[ResetUserPassDlg.vx]",pt);
- return 1;
- }
-
- int Onlog()
- {
- openUrl("/sale/view/SysUser/xpage/SysUser/SysLoginRecord");
- return 1;
- }
- //命令发布函数
- int OnCmdDispatch(string comdid)
- {
- if (comdid =="Save") OnSave();
- else if (comdid =="AddRow") OnAddRow();
- else if (comdid =="InsertRow") OnInsertRow();
- else if (comdid =="DeleteRow") OnDeleteRow();
- else if (comdid =="JobType") OnJobType();
- else if (comdid=="xmImport") xmImport();
- else if (comdid == "xmLog") Onlog();
- else if(comdid=="_cb_grid_search") return GridSearchEx();
- else if(comdid=="xmResetPass") return OnResetPass();
- else if(comdid=="xmResetPassEx") OpenWindow("dev:xpage[SysForcePassward.vx]");
- return 0;
- }
-
-
- //命令处理事件
- int OnXCommand(ref TXCommandEvent evt,int param)
- {
- return OnCmdDispatch(evt.pStrID);
- }
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt, LPARAM param)
+ {
+ SetAgent();
+ //重置工具条
+ return 1;
+ }
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent("WM_XCOMMAND",OnXCommand);
- //获取焦点事件,用于重置工具条
- AttachEvent("WM_SETFOCUS",OnSetFocus);
- //获得树的选择事件
- AttachEvent("tv_usergroup", "TVN_SELCHANGED",OnTreeSelChanged);
- //AttachEvent("dw_user","DWV_ITEMBEINGEDIT",OnClicked);
- AttachEvent("dw_user","DWV_DOUBLECLICKED",OnClicked);
- }
-
- int OnInitial()
- {
- SetAgent();
+ int SetEntityData(xaserverarg arg)
+ {
+ xml x;
- OnAttachEvent();
- return 1;
- }
-
- int onload()
+ //xaserverarg arg;
+
+ xstring str = m_QueryTxt;
+ //trace(ele.xml);
+ //alert(str);
+ arg.AddArg(L"guid", str);
+ //trace(strJobID);
+ if (xaserver::ExecXQuery(L"", L"[list.SysUser.xq]", arg.GetString(), x) == 1)
+ {
+ dw_user.AcceptText();
+ dw_user.Retrieve(x);
+ dw_user.Redraw();
+ }
+ return 1;
+ }
+
+ int OnTreeSelChanged(TEvent* evt, LPARAM p)
+ {
+ NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+
+ HTREEITEM hItem = nmtv.itemNew.hItem;
+
+ //int wid = tv_usergroup.GetId();
+ HTREEITEM hitem = tv_usergroup.GetSelectedItem();
+ HTREEITEM rootItem = tv_usergroup.GetRootItem();
+ //if (hItem <=0 || hItem == rootItem)
+ // return 0;
+ KXMLDOMElement ele = tv_usergroup.GetItemData(hitem);
+ //trace(L"ok");
+ if (ele)
+ {
+ xml x;
+
+ xaserverarg arg;
+
+ strJobID = ele.selectSingleNode(L"@JobID").text();
+ //trace(ele.xml);
+ //alert(strJobID);
+ arg.AddArg(L"guid", strJobID);
+ //trace(strJobID);
+ if (xaserver::ExecXQuery(L"", L"[list.SysUser.xq]", arg.GetString(), x) == 1)
{
- m_agentNode = new xnode__;
-
- tv_usergroup = new treeview__;
- tv_usergroup.setNativePointer(this.GetControl("tv_usergroup"));
- dw_user = new xdwgrid__;
- dw_user.setNativePointer(this.GetControl("dw_user"));
- dw_user.SetDataObject(GetServerUrl(),"dev:sheet[SysUser.tpl/UserList]");
- dw_user.SetReadOnly(true);
- dw_user.SetSelectionMode(1);
-
- OnInitial();
- int wid = tv_usergroup.GetId();
- int root = treeview__::GetRootItem(wid);
- treeview__::ExpandItem(wid,root);
-
- xml__ x=new xml__;
- x.setNativePointer(xml__::CreateInstance());
- x.LoadXml("<Config/>");
- this.m_configDoc = x.GetXmlDoc();
- rowSearch("系统用户.vface/template/SysUser/list");
- GridSearchEx();
-
- return 1;
+ dw_user.AcceptText();
+ dw_user.Retrieve(x);
+ dw_user.Redraw();
}
- ]
-
- ]
-]
\ No newline at end of file
+ }
+
+ return 1;
+ }
+
+ int xmImport()
+ {
+
+ //int wid = tv_usergroup.GetId();
+ HTREEITEM hitem = tv_usergroup.GetSelectedItem();
+ if (!hitem)
+ {
+ alert(L"请选择职位!");
+ return 0;
+ }
+ OpenWindow(L"dev:xpage[UserImport.vx]",(LPARAM)this);
+ //openUrl(L"系统用户.vface/xpage/SysUser/UserImport", this);
+ return 1;
+ }
+ int OnSave()
+ {
+ xml x;
+
+ dw_user.DwUpdateAllToEx(x);
+ xaserverarg arg;
+
+ arg.AddArg(L"content", x.xml());
+ arg.AddArg(L"dbmap", L"SysUser.dbmap");
+ if (getUrl(L"/sale/data/SysUser/SysUser", arg.GetString(), x) != 1)
+ {
+ //trace(L"error:"+x.xml());
+ alert(L"保存失败");
+ }
+ else {
+ if (x.selectSingleNode(L"erroe"))
+ {
+ alert(L"保存出错2! ");
+ return 0;
+ }
+ //trace(x.xml());
+ dw_user.ResetUpdateStatus();
+ MessageBox(GetHWND(), L"保存成功!", L"提示", 0);
+ }
+
+ /* arg.AddArg(L"xdata",x.xml());
+ //arg.AddArg(L"jobguid",strJobID);
+ //trace(x.xml());
+ //trace(strJobID);
+ //if (getUrl(L"/sale/data/SysUser/SysUser",arg.GetString(),x) != 1)
+ //trace(xaserver::ExecXAction(GetServerUrl(),L"[SysUser.xa]",arg.GetString(),x));
+ if (xaserver::ExecXAction(GetServerUrl(),L"[SysUser.xa]",arg.GetString(),x)!=1)
+ {
+ //trace(L"error:"+x.xml());
+ alert(L"保存失败");
+ }
+ else{
+ if(x.selectSingleNode(L"ERROR"))
+ {
+ alert(L"保存出错2! ");
+ return 0;
+ }
+ MessageBox(GetHWND(),L"保存成功!",L"提示",0);
+ }*/
+ return 1;
+ }
+ int OnAddRow()
+ {
+ //int wid = tv_usergroup.GetId();
+ HTREEITEM hitem = tv_usergroup.GetSelectedItem();
+ if (hitem == 0)
+ {
+ alert(L"请先选择职位类型!");
+ }
+ else
+ {
+ int row = dw_user.InsertRow(0);
+ dw_user.SetItemString(row, L"Status", L"Y");
+ }
+ return 1;
+ }
+
+ int OnInsertRow()
+ {
+ //int wid = tv_usergroup.GetId();
+ HTREEITEM hitem = tv_usergroup.GetSelectedItem();
+ if (hitem == 0)
+ {
+ alert(L"请先选择职位类型!");
+ }
+ else
+ {
+ int crow = dw_user.GetRow();
+ int row = dw_user.InsertRow(crow);
+ dw_user.SetItemString(row, L"Status", L"Y");
+ }
+ return 1;
+ }
+
+ int OnDeleteRow()
+ {
+ int row = dw_user.GetRow();
+ dw_user.DeleteRow(row);
+ return 1;
+ }
+
+ int OnJobType()
+ {
+ openUrl(L"组织架构.vface/worknode/Hr/HrJob");
+ return 1;
+ }
+
+ int OnClicked(TEvent* evt, LPARAM p)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ int row = hdr.row;
+ int col = hdr.col;
+ xstring colname = dw_user.GetColumnName(col);
+ KXMLDOMElement xrow = dw_user.GetRowElement(row);
+ xstring BindComputer = xrow.selectSingleNode(L"BindComputer").text();
+ xaserverarg arg;
+
+ if (BindComputer != L"")
+ {
+ arg.AddArg(L"BindComputer", BindComputer);
+ }
+
+ xstring comdid;
+ if (colname == L"BindComputer")
+ {
+ openUrl(L"系统用户.vface/xpage/SysUser/BindComputer/dialog", arg);
+ comdid = arg.GetArgString(L"comdid");
+ if (comdid == L"ok")
+ {
+ xstring strxml = arg.GetArgString(L"xml");
+ dw_user.SetItemDisplayString(row, colname.c_str(), strxml);
+ dw_user.SetItemString(row, colname.c_str(), strxml);
+ dw_user.Redraw();
+ }
+ }
+ return 1;
+ }
+
+ int OnResetPass()
+ {
+ xaserverarg arg;
+
+
+ int row = dw_user.GetRow();
+ if (row < 1) return 1;
+ arg.AddArg(L"user", dw_user.GetItemString(row, L"EmployeeNo"));
+
+ OpenWindow(L"dev:xpage[ResetUserPassDlg.vx]", arg);
+ return 1;
+ }
+
+ int Onlog()
+ {
+ openUrl(L"/sale/view/SysUser/xpage/SysUser/SysLoginRecord");
+ return 1;
+ }
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if (comdid == L"Save") OnSave();
+ else if (comdid == L"AddRow") OnAddRow();
+ else if (comdid == L"InsertRow") OnInsertRow();
+ else if (comdid == L"DeleteRow") OnDeleteRow();
+ else if (comdid == L"JobType") OnJobType();
+ else if (comdid == L"xmImport") xmImport();
+ else if (comdid == L"xmLog") Onlog();
+ else if (comdid == L"_cb_grid_search") return GridSearchEx();
+ else if (comdid == L"xmResetPass") return OnResetPass();
+ else if (comdid == L"xmResetPassEx") OpenWindow(L"dev:xpage[SysForcePassward.vx]");
+ return 0;
+ }
+
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt, LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&SysUser::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&SysUser::OnSetFocus);
+ //获得树的选择事件
+ AttachEvent(L"tv_usergroup", L"TVN_SELCHANGED", (FEvent)&SysUser::OnTreeSelChanged);
+ //AttachEvent(L"dw_user",L"DWV_ITEMBEINGEDIT",OnClicked);
+ AttachEvent(L"dw_user", L"DWV_DOUBLECLICKED", (FEvent)&SysUser::OnClicked);
+ return 1;
+ }
+
+ int OnInitial()
+ {
+ SetAgent();
+
+ OnAttachEvent();
+ return 1;
+ }
+
+ int onload()
+ {
+ tv_usergroup = GetControl(L"tv_usergroup");
+ dw_user = new xdwgrid;
+ dw_user.setNativePointer(GetControl(L"dw_user"));
+ dw_user.SetDataObject(GetServerUrl(), L"dev:sheet[SysUser.tpl/UserList]");
+ dw_user.SetReadOnly(true);
+ dw_user.SetSelectionMode(1);
+
+ OnInitial();
+ //int wid = tv_usergroup.GetId();
+ HTREEITEM root = tv_usergroup.GetRootItem();
+ tv_usergroup.ExpandItem( root);
+
+ //return 1;
+
+ xml x;
+ x.loadXML(L"<Config/>");
+ m_configDoc = x;
+ rowSearch(L"系统用户.vface/template/SysUser/list");
+ GridSearchEx();
+
+ return 1;
+ }
+};
\ No newline at end of file
--
Gitblit v1.9.3