From f7c01240b27f0ad97feb9115b238d7a44b4b56b2 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期三, 17 七月 2024 17:06:12 +0800
Subject: [PATCH] update

---
 jrj/project/business/SystemSettings/SysUser.cpp |  647 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 326 insertions(+), 321 deletions(-)

diff --git a/jrj/project/business/SystemSettings/SysUser.cpp b/jrj/project/business/SystemSettings/SysUser.cpp
index 51322ba..13952ec 100644
--- a/jrj/project/business/SystemSettings/SysUser.cpp
+++ b/jrj/project/business/SystemSettings/SysUser.cpp
@@ -1,330 +1,335 @@
-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 xwin
+{
+public:
+	xtreeview tv_usergroup;
+	xdwgrid dw_user;
+	xnode	m_agentNode;
+	xstring strJobID;
+public:
+	SysUser(void* implPtr, HWND hWnd) :xwin(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(param p)
+	{
+		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]");
+		//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, strxml);
+				dw_user.SetItemString(row, colname, 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()
+	{
+		m_agentNode = new xnode;
+
+		tv_usergroup = new treeview;
+		tv_usergroup.setNativePointer(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);
+
+		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