From c73702d600ef2d0843ec7e3ace65f8c63c6905c2 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 16 七月 2024 15:21:53 +0800
Subject: [PATCH] update

---
 jrj/project/business/Company/CompanyList.cpp |  395 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 199 insertions(+), 196 deletions(-)

diff --git a/jrj/project/business/Company/CompanyList.cpp b/jrj/project/business/Company/CompanyList.cpp
index e862ca8..215bcab 100644
--- a/jrj/project/business/Company/CompanyList.cpp
+++ b/jrj/project/business/Company/CompanyList.cpp
@@ -1,214 +1,217 @@
-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 "list.vl"
-unit vbusiness.xpage
-[
-	CompanyList is extend list;
-	about CompanyList
-		[
-			control:
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
 
-		method:
-			[
-				xdwgrid__	dw_list;
-				string	m_agentCond;	//Agent Node
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
 
-				int SetAgent()
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) CompanyList : public xwin
+{
+public:
+	xdwgrid	dw_list;
+	xstring	m_agentCond;	//Agent Node
+	xnode	m_agentNode;
+public:
+	CompanyList(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+public:
+	static CompanyList* CreateInstance(void* implPtr, void* hWnd)
+	{
+		CompanyList* pWin = new CompanyList(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  OnRetrieve()
+	{
+		xml x;
+
+		xaserverarg arg;
+
+		//arg.AddArg(L"sType",c_type);
+		if (xurl::get(L"OrganizationStruct/list.CompanyInfo", arg.GetString(), x) != 1)
+		{
+			trace(x.text());
+			return -1;
+		}
+		else
+		{
+			//trace(x.GetXml());
+			dw_list.Retrieve(x);
+			dw_list.Redraw();
+		}
+		dw_list.SetReadOnly(true);
+		return 1;
+	}
+
+	//xgridex双击
+	int OnDoubleClicked(TEvent* evt, LPARAM p)
+	{
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		int row = hdr.row;
+		if (row < 1 || row > dw_list.GetRowCount())
+			return 1;
+		KXMLDOMElement e = dw_list.GetRowElement(row);
+		xstring sguid = e.selectSingleNode(L"@guid").text();
+
+		xaserverarg& arg = *new xaserverarg;
+		arg.AddArg(L"operate", L"modify");
+		arg.AddArg(L"guid", sguid);
+		//trace(sguid);
+		//trace(row.toString());
+		//win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
+		openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
+		return 1;
+	}
+
+	//命令发布函数
+	int OnCmdDispatch(xstring comdid)
+	{
+		xaserverarg& arg = *new xaserverarg;
+
+		KXMLDOMElement e;
+		xstring sguid;
+		xstring sName;
+
+		if (comdid == L"AddRow")
+		{
+			arg.AddArg(L"operate", L"new0");
+			arg.AddArg(L"guid", L"");
+			//win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
+			openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
+		}
+		else if (comdid == L"ModifyRow")
+		{
+			int row = dw_list.GetNextSelectRow(1);
+			if (row < 1)
+			{
+				row = dw_list.GetRow();
+				if (row < 1)
 				{
-					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;
+					MessageBox(GetHWND(), L"请选中要修改的公司行!", L"提示", 0);
+					return -1;
 				}
-
-				//焦点激活处理函数
-				int OnSetFocus(ref TEvent evt, int p)
+			}
+			e = dw_list.GetRowElement(row);
+			sguid = e.selectSingleNode(L"@guid").text();
+			arg.AddArg(L"operate", L"modify");
+			arg.AddArg(L"guid", sguid);
+			//win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
+			openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
+		}
+		else if (comdid == L"DeleteRow")
+		{
+			int row = dw_list.GetNextSelectRow(1);
+			if (row < 1)
+			{
+				row = dw_list.GetRow();
+				if (row < 1)
 				{
-					SetAgent();
-
-					//重置工具条
-					return 1;
+					MessageBox(GetHWND(), L"请选中要删除的公司行!", L"提示", 0);
+					return -1;
 				}
+			}
+			e = dw_list.GetRowElement(row);
 
-				int  OnRetrieve()
-				{
-					xml__ x = new xml__;
-					x.setNativePointer(x.CreateInstance());
-					xaserverarg__ arg = new xaserverarg__;
-					arg.setNativePointer(arg.CreateInstance());
-					//arg.AddArg("sType",c_type);
-					if (url::get("OrganizationStruct/list.CompanyInfo", arg.GetString(), x) != 1)
-					{
-						trace(x.GetXmlDoc().text);
-						return -1;
-					}
-					else
-					{
-						//trace(x.GetXml());
-						dw_list.Retrieve(x);
-						dw_list.Redraw();
-					}
-					dw_list.SetReadOnly(true);
-					return 1;
-				}
+			sguid = e.selectSingleNode(L"@guid").text();
+			sName = e.selectSingleNode(L"Name").text();
 
-				//xgridex双击
-				int OnDoubleClicked(ref TNotifyEvent evt, int p)
-				{
-					ref DWNMHDR  hdr = evt.pnmh;
-					int row = hdr.row;
-					if (row < 1 || row > dw_list.GetRowCount())
-						return 1;
-					msxml::IXMLDOMElement e = dw_list.GetRowElement(row);
-					string sguid = e.SelectSingleNode("@guid").text;
-					xaserverarg__ arg = new xaserverarg__;
-					arg.setNativePointer(arg.CreateInstance());
-					arg.AddArg("operate", "modify");
-					arg.AddArg("guid", sguid);
-					//trace(sguid);
-					//trace(row.toString());
-					//win__::OpenWindow("dev:xpage[CompanyMaint.vx]",arg);
-					openUrl("组织架构.vface/xpage/CompanyInfo/maint", arg);
-					return 1;
-				}
+			sName += L"";
+			int  MB_YESNO = 0x00000004;
+			int  IDYES = 6;
+			if (MessageBox(GetHWND(), L"确认要删除公司 " + sName + L" 的信息吗?", L"提示", MB_YESNO) != IDYES) return 1;
+			arg.AddArg(L"guid", sguid);
+			trace(sguid);
+			xml x1;
 
-				//命令发布函数
-				int OnCmdDispatch(string comdid)
-				{
-					xaserverarg__ arg = new xaserverarg__;
-					arg.setNativePointer(arg.CreateInstance());
-					msxml::IXMLDOMElement e;
-					string sguid;
-					string sName;
+			if (xurl::post(L"OrganizationStruct/delete.CompanyInfo", arg.GetString(), x1) != 1)
+			{
+				xstring error = x1.text();
+				trace(error);
+			}
+			else
+			{
+				MessageBox(GetHWND(), L"删除成功!", L"提示", 0);
+				dw_list.DeleteRow(row);
+			}
 
-					if (comdid == "AddRow")
-					{
-						arg.AddArg("operate", "new0");
-						arg.AddArg("guid", "");
-						//win__::OpenWindow("dev:xpage[CompanyMaint.vx]",arg);
-						openUrl("组织架构.vface/xpage/CompanyInfo/maint", arg);
-					}
-					else if (comdid == "ModifyRow")
-					{
-						int row = dw_list.GetNextSelectRow(1);
-						if (row < 1)
-						{
-							row = dw_list.GetRow();
-							if (row < 1)
-							{
-								win__::MessageBox(GetHWND(), "请选中要修改的公司行!", "提示", 0);
-								return -1;
-							}
-						}
-						e = dw_list.GetRowElement(row);
-						sguid = e.SelectSingleNode("@guid").text;
-						arg.AddArg("operate", "modify");
-						arg.AddArg("guid", sguid);
-						//win__::OpenWindow("dev:xpage[CompanyMaint.vx]",arg);
-						openUrl("组织架构.vface/xpage/CompanyInfo/maint", arg);
-					}
-					else if (comdid == "DeleteRow")
-					{
-						int row = dw_list.GetNextSelectRow(1);
-						if (row < 1)
-						{
-							row = dw_list.GetRow();
-							if (row < 1)
-							{
-								win__::MessageBox(GetHWND(), "请选中要删除的公司行!", "提示", 0);
-								return -1;
-							}
-						}
-						e = dw_list.GetRowElement(row);
+		}
+		else if (comdid == L"Refresh")
+		{
+			OnRetrieve();
+		}
+		return 0;
+	}
 
-						sguid = e.SelectSingleNode("@guid").text;
-						sName = e.selectSingleNode("Name").text;
+	//命令处理事件
+	int OnXCommand(TEvent* evt, LPARAM param)
+	{
+		return OnCmdDispatch(evt->xcommand.pStrID);
+	}
 
-						sName += "";
-						int  MB_YESNO = 0x00000004;
-						int  IDYES = 6;
-						if (win__::MessageBox(GetHWND(), "确认要删除公司 " + sName + " 的信息吗?", "提示", MB_YESNO) != IDYES) return 1;
-						arg.AddArg("guid", sguid);
-						trace(sguid);
-						xml__ x1 = new xml__;
-						x1.setNativePointer(x1.CreateInstance());
-						if (url::post("OrganizationStruct/delete.CompanyInfo", arg.GetString(), x1) != 1)
-						{
-							string error = x1.GetXmlDoc().text;
-							trace(error);
-						}
-						else
-						{
-							win__::MessageBox(GetHWND(), "删除成功!", "提示", 0);
-							dw_list.DeleteRow(row);
-						}
+	int OnAttachEvent()
+	{
+		//绑定工具条点击事件
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&CompanyList::OnXCommand);
+		//获取焦点事件,用于重置工具条
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&CompanyList::OnSetFocus);
+		//双击
+		AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&CompanyList::OnDoubleClicked);
+		return 1;
+	}
 
-					}
-					else if (comdid == "Refresh")
-					{
-						OnRetrieve();
-					}
-					return 0;
-				}
+	int OnInitial()
+	{
+		SetAgent();
+		OnAttachEvent();
 
-				//命令处理事件
-				int OnXCommand(ref TXCommandEvent evt, int p)
-				{
-					return OnCmdDispatch(evt.pStrID);
-				}
+		return 1;
+	}
 
-				int OnAttachEvent()
-				{
-					//绑定工具条点击事件
-					AttachEvent("WM_XCOMMAND", OnXCommand);
-					//获取焦点事件,用于重置工具条
-					AttachEvent("WM_SETFOCUS", OnSetFocus);
-					//双击
-					AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDoubleClicked);
-				}
+	int onload()
+	{
+		dw_list = new xdwgrid;
+		dw_list.setNativePointer(GetControl(L"dw_list"));
 
-				int OnInitial()
-				{
-					SetAgent();
-					OnAttachEvent();
+		//xaserverarg args;
+		//args.setNativePointer(args.CreateInstance());		
+		//args.AddArg(L"type",L"CompanyList");
+		//dw_list.SetDataObject(GetServerUrl(),pref::getPref(L"HumanResource/GetHrObject",args.GetString()));
+		dw_list.openUrl(L"组织架构.vface/template/company/list");
+		dw_list.SetSelectionMode(1);
+		dw_list.SetReadOnly(true);
 
-					return 1;
-				}
+		OnInitial();
+		OnRetrieve();
 
-				int onload()
-				{
-					dw_list = new xdwgrid__;
-					dw_list.setNativePointer(this.GetControl("dw_list"));
-
-					//xaserverarg__ args = new xaserverarg__;
-					//args.setNativePointer(args.CreateInstance());		
-					//args.AddArg("type","CompanyList");
-					//dw_list.SetDataObject(GetServerUrl(),pref::getPref("HumanResource/GetHrObject",args.GetString()));
-					dw_list.openUrl("组织架构.vface/template/company/list");
-					dw_list.SetSelectionMode(1);
-					dw_list.SetReadOnly(true);
-
-					OnInitial();
-					OnRetrieve();
-
-					return 1;
-				}
-
-			]
-
-		]
-]
\ No newline at end of file
+		return 1;
+	}
+};
\ No newline at end of file

--
Gitblit v1.9.3