From 871adf001724fb4af2552ab4f580939b9bbc2dda Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期一, 15 七月 2024 16:34:56 +0800
Subject: [PATCH] update Company

---
 jrj/project/business/Company/CompanyList.cpp |  387 +++++++++++++++++++++++++++---------------------------
 1 files changed, 195 insertions(+), 192 deletions(-)

diff --git a/jrj/project/business/Company/CompanyList.cpp b/jrj/project/business/Company/CompanyList.cpp
index e862ca8..9e85432 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)
 				{
-					string xfNodeAgentArea = "agentarea";
-					xnode__ anode = new xnode__;
-					anode.setNativePointer(GetAgentNode(xfNodeAgentArea));
-					var xframeElement = GetElement();
-					var agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
+					SetAgentNode(anode, m_agentNode);
+				}
+				else
+				{
+					KXMLDOMElement xframeElement = GetElement();
+					KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
 					if (agent)
 					{
-						string s = agent.xml;
-						SetAgentNodeContent(anode, s);
+						xstring s = agent.xml();
+						m_agentNode = SetAgentNode(anode, s);
 					}
-					return 1;
 				}
+				return 1;
+			}
+			//焦点激活处理函数
+			int OnSetFocus(TEvent* evt, LPARAM param)
+			{
+				//重置工具条
+				SetAgent();
+				return 1;
+			}
 
-				//焦点激活处理函数
-				int OnSetFocus(ref TEvent evt, int p)
+			int  OnRetrieve()
+			{
+				xml x;
+
+				xaserverarg arg;
+
+				//arg.AddArg(L"sType",c_type);
+				if (xurl::get(L"OrganizationStruct/list.CompanyInfo", arg.GetString(), x) != 1)
 				{
-					SetAgent();
-
-					//重置工具条
-					return 1;
+					trace(x.text());
+					return -1;
 				}
-
-				int  OnRetrieve()
+				else
 				{
-					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.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)
 					{
-						trace(x.GetXmlDoc().text);
-						return -1;
+						row = dw_list.GetRow();
+						if (row < 1)
+						{
+							MessageBox(GetHWND(), L"请选中要修改的公司行!", L"提示", 0);
+							return -1;
+						}
+					}
+					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)
+						{
+							MessageBox(GetHWND(), L"请选中要删除的公司行!", L"提示", 0);
+							return -1;
+						}
+					}
+					e = dw_list.GetRowElement(row);
+
+					sguid = e.selectSingleNode(L"@guid").text();
+					sName = e.selectSingleNode(L"Name").text();
+
+					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;
+
+					if (xurl::post(L"OrganizationStruct/delete.CompanyInfo", arg.GetString(), x1) != 1)
+					{
+						xstring error = x1.text();
+						trace(error);
 					}
 					else
 					{
-						//trace(x.GetXml());
-						dw_list.Retrieve(x);
-						dw_list.Redraw();
+						MessageBox(GetHWND(), L"删除成功!", L"提示", 0);
+						dw_list.DeleteRow(row);
 					}
-					dw_list.SetReadOnly(true);
-					return 1;
+
 				}
-
-				//xgridex双击
-				int OnDoubleClicked(ref TNotifyEvent evt, int p)
+				else if (comdid == L"Refresh")
 				{
-					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;
-				}
-
-				//命令发布函数
-				int OnCmdDispatch(string comdid)
-				{
-					xaserverarg__ arg = new xaserverarg__;
-					arg.setNativePointer(arg.CreateInstance());
-					msxml::IXMLDOMElement e;
-					string sguid;
-					string sName;
-
-					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);
-
-						sguid = e.SelectSingleNode("@guid").text;
-						sName = e.selectSingleNode("Name").text;
-
-						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);
-						}
-
-					}
-					else if (comdid == "Refresh")
-					{
-						OnRetrieve();
-					}
-					return 0;
-				}
-
-				//命令处理事件
-				int OnXCommand(ref TXCommandEvent evt, int p)
-				{
-					return OnCmdDispatch(evt.pStrID);
-				}
-
-				int OnAttachEvent()
-				{
-					//绑定工具条点击事件
-					AttachEvent("WM_XCOMMAND", OnXCommand);
-					//获取焦点事件,用于重置工具条
-					AttachEvent("WM_SETFOCUS", OnSetFocus);
-					//双击
-					AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDoubleClicked);
-				}
-
-				int OnInitial()
-				{
-					SetAgent();
-					OnAttachEvent();
-
-					return 1;
-				}
-
-				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;
 				}
+				return 0;
+			}
 
-			]
+			//命令处理事件
+			int OnXCommand(TEvent* evt, LPARAM param)
+			{
+				return OnCmdDispatch(evt->xcommand.pStrID);
+			}
 
-		]
-]
\ No newline at end of file
+			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;
+			}
+
+			int OnInitial()
+			{
+				SetAgent();
+				OnAttachEvent();
+
+				return 1;
+			}
+
+			int onload()
+			{
+				dw_list = new xdwgrid;
+				dw_list.setNativePointer(GetControl(L"dw_list"));
+
+				//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);
+
+				OnInitial();
+				OnRetrieve();
+
+				return 1;
+			}
+};
\ No newline at end of file

--
Gitblit v1.9.3