From 24979676af0d645c28fc05157ed61fc3fafbee3b Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期五, 28 六月 2024 09:35:59 +0800
Subject: [PATCH] update message proc and edit proc

---
 jrj/project/business/HR/ManpowerFile.cpp |  242 +++++++++++++++++++++++++-----------------------
 1 files changed, 127 insertions(+), 115 deletions(-)

diff --git a/jrj/project/business/HR/ManpowerFile.cpp b/jrj/project/business/HR/ManpowerFile.cpp
index f29ef85..ea4c79e 100644
--- a/jrj/project/business/HR/ManpowerFile.cpp
+++ b/jrj/project/business/HR/ManpowerFile.cpp
@@ -1,71 +1,84 @@
-use "xcontrol.vframe.vbusiness.vd"
-use "xbase.vframe.vbusiness.vd"
-use "base.view.vd"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xcell.hpp>
 
-unit trade
-[
-	class ViewManpowerFileList : public xframe
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+	class  __declspec(dllexport)  ViewManpowerFileList : public xframe
 	{
+	public:
 		xdwgrid	dw_list;//hxsoft.com -> Developer -> wface -> vcontrol
 		int hSignWin;
 		xdwtable dw_arg;
 		xnode	m_agentNode;	//Agent Condition
 
-		string urlTree;
+		xstring urlTree;
 		xtreeview tv_folder;
-		//展开子文件
-		int  ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
+	public:
+		ViewManpowerFileList(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+	public:
+		static ViewManpowerFileList* CreateInstance(void* implPtr, void* hWnd)
 		{
-			msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
-			int len = nlist.length;
+			ViewManpowerFileList* pWin = new ViewManpowerFileList(implPtr, (HWND)hWnd);
+			return pWin;
+		}
+		//展开子文件
+		int  ExpandChildFolder(HTREEITEM hItem,KXMLDOMElement pElement)
+		{
+			KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
+			int len = nlist.length();
 			for (int i = 0; i < len; i++)
 			{
-				msxml::IXMLDOMElement e = nlist.item(i);
-				string name = e.getAttribute("name");
-				string sImage = e.getAttribute("image");
-				string child = e.getAttribute("child");
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"name");
+				xstring sImage = e.getAttribute(L"image");
+				xstring child = e.getAttribute(L"child");
 				int image = 15;
 				if (sImage) image = sImage.toInt();
-				int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image);
-				if (child != "no") tv_folder.SetItemChild(h, 1);
+				HTREEITEM h = tv_folder.InsertChildItem( hItem, name, (LPARAM)&e, image);
+				if (child != L"no") tv_folder.SetItemChild(h, 1);
 				ExpandChildFolder(h, e);
 			}
 			return 1;
 		}
 		int  InitialFolder()
 		{
-			msxml::IXMLDOMElement xframeElement = GetElement();
-			msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial");
+			KXMLDOMElement xframeElement = GetElement();
+			KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
 			if (e)
 				ExpandChildFolder(0, e);
 			return 1;
 		}
 
-		int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image)
+		int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
 		{
-			msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item");
-			int len = nlist.length;
+			KXMLDOMNodeList nlist = ele.selectNodes(L"item");
+			int len = nlist.length();
 			if (len > 0) tv_folder.SetItemChild(hItem, 1);
 			for (int i = 0; i < len; i++)
 			{
-				msxml::IXMLDOMElement e = nlist.item(i);
-				string name = e.getAttribute("name");
-				int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image);
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"name");
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image);
 				ExpandCatChildFolder(h, e, 35);
 			}
 			return 1;
 		}
-		int ExpandFolderItem(int hItem)
+		int ExpandFolderItem(HTREEITEM hItem)
 		{
 			xml x = ViewObject::RetrieveData(urlTree);
 			if (!x) return 0;
-			msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item");
-			int len = nlist.length;
+			KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
+			int len = nlist.length();
 			for (int i = 0; i < len; i++)
 			{
-				msxml::IXMLDOMElement e = nlist.item(i);
-				string name = e.getAttribute("name");
-				int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35);
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"name");
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35);
 				ExpandCatChildFolder(h, e, 35);
 			}
 			return 1;
@@ -73,27 +86,27 @@
 
 		int SetAgent()
 		{
-			string xfNodeAgentArea = "agentarea";
+			xstring xfNodeAgentArea = L"agentarea";
 			xnode anode = GetAgentNode(xfNodeAgentArea);
 			if (m_agentNode)
 			{
-				SetAgentNodeContent(anode, m_agentNode);
+				SetAgentNode(anode, m_agentNode);
 			}
 			else
 			{
-				msxml::IXMLDOMElement xframeElement = GetElement();
-				msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
+				KXMLDOMElement xframeElement = GetElement();
+				KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
 				if (agent)
 				{
-					string s = agent.xml;
-					m_agentNode = SetAgentNodeContent(anode, s);
+					xstring s = agent.xml();
+					m_agentNode = SetAgentNode(anode, s);
 				}
 			}
 			return 1;
 		}
 
 		//焦点激活处理函数
-		int OnSetFocus(ref TEvent evt, int param)
+		int OnSetFocus(TEvent* evt, LPARAM p)
 		{
 			//重置工具条
 			SetAgent();
@@ -102,7 +115,7 @@
 
 		int OnOpenAddWindow()
 		{
-			OpenWindow("dev:xpage[ManpowerFileWindow.vx]");
+			OpenWindow(L"dev:xpage[ManpowerFileWindow.vx]");
 			return 1;
 		}
 
@@ -111,15 +124,15 @@
 			int row = dw_list.GetRow();
 			if (row < 1)
 				return 1;
-			msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
-			string mfid = ele.selectSingleNode("mfid").text;//获取节点的值
-			OpenWindow("dev:xpage[ManpowerFileWindow.vx]", cast(mfid as int));
+			KXMLDOMElement ele = dw_list.GetRowElement(row);
+			xstring mfid = ele.selectSingleNode(L"mfid").text();//获取节点的值
+			OpenWindow(L"dev:xpage[ManpowerFileWindow.vx]",mfid);
 			return 1;
 		}
 
 		int OnExchangeFileWindow()
 		{
-			xwin xw = OpenWindow("dev:xpage[BlankExcelTemplate.vx]", 0);
+			xwin xw = OpenWindow(L"dev:xpage[BlankExcelTemplate.vx]", 0);
 			hSignWin = xw.GetHWND();
 			return 1;
 		}
@@ -128,26 +141,26 @@
 		{
 			int MB_OKCANCEL = 1;
 			int IDOK = 1;
-			int ret = win32::MessageBox(GetHWND(), "确认删除?", "提示", MB_OKCANCEL);
+			int ret = MessageBoxW(GetHWND(), L"确认删除?", L"提示", MB_OKCANCEL);
 			if (ret == IDOK)
 			{
 				int row = dw_list.GetRow();
 				if (row < 1)
 					return 1;
-				msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
-				string mfid = ele.selectSingleNode("mfid").text;//查看
+				KXMLDOMElement ele = dw_list.GetRowElement(row);
+				xstring mfid = ele.selectSingleNode(L"mfid").text();//查看
 				xml x = new xml;
-				x.setNativePointer(xml::CreateInstance());
-				xaserverarg arg = new xaserverarg;//放置参数
-				arg.setNativePointer(arg.CreateInstance());
-				arg.AddArg("mfid", mfid);
-				if (getUrl("/sale/data/ManpowerFile/delete", arg.GetString(), x) != 1)
+				
+				xaserverarg arg;//放置参数
+				
+				arg.AddArg(L"mfid", mfid);
+				if (getUrl(L"/sale/data/ManpowerFile/delete", arg.GetString(), x) != 1)
 				{
-					string error = x.GetXmlDoc().text;
-					alert("err:" + error);
+					xstring error = x.text();
+					alert(L"err:" + error);
 					return 1;
 				}
-				alert(x.GetXmlDoc().text);
+				alert(x.text());
 				OnRefresh();
 			}
 			return 1;
@@ -161,50 +174,50 @@
 		//分析
 		int OnAnalysis()
 		{
-			int hCursor = xutil::SetCursorWait();
-			string str = dw_list.DataAnalysis("");
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
-			arg.AddArg("html", str);
+			HCURSOR hCursor = xutil::SetCursorWait();
+			xstring str = dw_list.DataAnalysis(L"");
+			xaserverarg arg;
+			
+			arg.AddArg(L"html", str);
 			int obj = cast(dw_list as int);
-			arg.AddArg("obj", obj.toString());
-			OpenWindow("dev:xpage[data.vanalysis.vx]", cast(arg as int));
+			arg.AddArg(L"obj", obj.toString());
+			OpenWindow(L"dev:xpage[data.vanalysis.vx]", cast(arg as int));
 			xutil::RestoreCursor(hCursor);
 			return 1;
 		}
 
-		string GetQueryArg()
+		xstring GetQueryArg()
 		{
 			dw_arg.AcceptText();
 			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			dw_arg.DwUpdateAllTo(x.GetXmlDoc());
+			
+			dw_arg.DwUpdateAllTo(x);
 
-			return x.GetXml();
+			return x.xml();
 		}
 
 		int  OnRetrieveEx1()
 		{
-			int hItem = tv_folder.GetSelectedItem();
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
 			if (hItem <= 0) return 1;
 
-			int hCursor = xutil::SetCursorWait();
-			msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
-			string no = e1.getAttribute("no");
+			HCURSOR hCursor = xutil::SetCursorWait();
+			KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+			xstring no = e1.getAttribute(L"no");
 
 			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
-			//arg.AddArg("QueryTxt",GetControl("sle_search").GetText());
-			arg.AddArg("QueryArg", GetQueryArg());
-			arg.AddArg("MStatus", no);
+			
+			xaserverarg arg;
+			
+			//arg.AddArg(L"QueryTxt",GetControl(L"sle_search").GetText());
+			arg.AddArg(L"QueryArg", GetQueryArg());
+			arg.AddArg(L"MStatus", no);
 
-			arg.AddArg("QueryName", GetControl("QueryName").GetText());
+			arg.AddArg(L"QueryName", GetControl(L"QueryName").GetText());
 			//trace(arg.GetString());
-			if (getUrl("/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)
+			if (getUrl(L"/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)
 			{
-				trace(x.GetXmlDoc().text);
+				trace(x.text());
 				return -1;
 			}
 			else
@@ -219,36 +232,36 @@
 		}
 
 		//命令发布函数
-		int OnCmdDispatch(string comdid)
+		int OnCmdDispatch(xstring comdid)
 		{
-			if (comdid == "xmAddHumanDocument")
+			if (comdid == L"xmAddHumanDocument")
 				return OnOpenAddWindow();
-			else if (comdid == "xmUpdateHumanDocument")
+			else if (comdid == L"xmUpdateHumanDocument")
 				return OnOpenUpdateWindow();
-			else if (comdid == "xmRefresh" || comdid == "xmSearch")
+			else if (comdid == L"xmRefresh" || comdid == L"xmSearch")
 				return OnRetrieveEx1();
-			else if (comdid == "xmExchangeFile")
+			else if (comdid == L"xmExchangeFile")
 				return OnExchangeFileWindow();
-			else if (comdid == "xmDelete")
+			else if (comdid == L"xmDelete")
 				return OnDelete();
-			else if (comdid == "xmAnalysis")
+			else if (comdid == L"xmAnalysis")
 				return OnAnalysis();
 			return 0;
 		}
 
 		//命令处理事件
-		int OnXCommand(ref TXCommandEvent evt, int param)
+		int OnXCommand(TEvent* evt, LPARAM p)
 		{
-			return OnCmdDispatch(evt.pStrID);
+			return OnCmdDispatch(evt->xcommand.pStrID);
 		}
 
-		int OnDoubleClicked(ref TNotifyEvent evt, int p)
+		int OnDoubleClicked(TEvent* evt, LPARAM p)
 		{
-			return OnCmdDispatch("xmUpdateHumanDocument");
+			return OnCmdDispatch(L"xmUpdateHumanDocument");
 		}
 
 
-		int OnTreeSelChanged(ref TNotifyEvent evt, int p)
+		int OnTreeSelChanged(TEvent* evt, LPARAM p)
 		{
 			return OnRetrieveEx1();
 		}
@@ -256,11 +269,11 @@
 		int OnAttachEvent()
 		{
 			//绑定工具条点击事件
-			AttachEvent("WM_XCOMMAND", OnXCommand);
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewManpowerFileList::OnXCommand);
 			//获取焦点事件,用于重置工具条
-			AttachEvent("WM_SETFOCUS", OnSetFocus);
-			AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDoubleClicked);//行双击
-			AttachEvent("tv_folder", "TVN_SELCHANGED", OnTreeSelChanged); //树选择
+			AttachEvent(L"WM_SETFOCUS", (FEvent)&ViewManpowerFileList::OnSetFocus);
+			AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&ViewManpowerFileList::OnDoubleClicked);//行双击
+			AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ViewManpowerFileList::OnTreeSelChanged); //树选择
 		}
 
 		//数据传输函数
@@ -268,17 +281,17 @@
 		{
 			//int  hCursor = xutil::SetCursorWait();//鼠标位置
 			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			xaserverarg arg = new xaserverarg;//放置参数
-			arg.setNativePointer(arg.CreateInstance());
-			//arg.AddArg("QueryTxt",GetControl("sle_search").GetText());//添加所需要传到后台的参数
-			arg.AddArg("QueryArg", GetQueryArg());
-			arg.AddArg("MStatus", "");
-			arg.AddArg("QueryName", GetControl("QueryName").GetText());
-			//trace("查看arg="+arg.GetString());//运行界面打印
-			if (getUrl("/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)///sale/data/ManpowerFile/doclist后台接口
+			
+			xaserverarg arg;//放置参数
+			
+			//arg.AddArg(L"QueryTxt",GetControl(L"sle_search").GetText());//添加所需要传到后台的参数
+			arg.AddArg(L"QueryArg", GetQueryArg());
+			arg.AddArg(L"MStatus", L"");
+			arg.AddArg(L"QueryName", GetControl(L"QueryName").GetText());
+			//trace(L"查看arg=L"+arg.GetString());//运行界面打印
+			if (getUrl(L"/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)///sale/data/ManpowerFile/doclist后台接口
 			{
-				trace(x.GetXmlDoc().text);
+				trace(x.text());
 				return -1;
 			}
 			else
@@ -291,10 +304,10 @@
 
 		int onload()
 		{
-			//【1】控制页面中name="dw_list"的内容
-			dw_list = GetControl("dw_list");
+			//【1】控制页面中name=L"dw_list"的内容
+			dw_list = GetControl(L"dw_list");
 			//【2】加载sale根目录下view下的ManpowerFile.vface文件中的template/list url 前端页面
-			dw_list.openUrl("/sale/view/ManpowerFile/template/list");
+			dw_list.openUrl(L"/sale/view/ManpowerFile/template/list");
 			//【3】绑定事件
 			OnAttachEvent();
 			//【4】加载后台数据
@@ -302,17 +315,17 @@
 			//【6】设为只读
 			dw_list.SetReadOnly(true);
 
-			dw_arg = GetControl("dw_arg");
-			dw_arg.openUrl("/sale/view/ManpowerFile/template/QueryArg");
+			dw_arg = GetControl(L"dw_arg");
+			dw_arg.openUrl(L"/sale/view/ManpowerFile/template/QueryArg");
 			dw_arg.SetColHeaderHeight(0);
 			dw_arg.SetRowSelectorWidth(0);
 			dw_arg.SetHScrollState(false);
 			dw_arg.SetVScrollState(false);
-			dw_arg.SetItemString(1, "DateType", "不设定");
+			dw_arg.SetItemString(1, L"DateType", L"不设定");
 
 			OnRetrieve();
-			urlTree = "/sale/data/ManpowerFile/folder";
-			tv_folder = GetControl("tv_folder");
+			urlTree = L"/sale/data/ManpowerFile/folder";
+			tv_folder = GetControl(L"tv_folder");
 			tv_folder.SetLineAtRoot(true);
 			InitialFolder();
 
@@ -322,11 +335,10 @@
 		int onloaded()
 		{
 			SetAgent();
-			int hItem = tv_folder.GetRootItem();
+			HTREEITEM hItem = tv_folder.GetRootItem();
 			ExpandFolderItem(hItem);
 			tv_folder.ExpandItem(hItem);
 			tv_folder.ItemFocus(hItem);
 			return 1;
 		}
-	};
-]
\ No newline at end of file
+	};
\ No newline at end of file

--
Gitblit v1.9.3