From e3f724c9fd36995c207a6ed173849c20aaa2e3d7 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 17 十二月 2024 13:06:22 +0800
Subject: [PATCH] update

---
 jrj/project/business/Company/HrOrgChart.cpp |  252 +++++++++++++++++++++++++-------------------------
 1 files changed, 127 insertions(+), 125 deletions(-)

diff --git a/jrj/project/business/Company/HrOrgChart.cpp b/jrj/project/business/Company/HrOrgChart.cpp
index 0522905..9918b20 100644
--- a/jrj/project/business/Company/HrOrgChart.cpp
+++ b/jrj/project/business/Company/HrOrgChart.cpp
@@ -1,142 +1,144 @@
-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]"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
 
-unit vbusiness.xpage
-[
-	HrOrgChart is extend win__;
-	about HrOrgChart
-		[
-			control:
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
 
-		method:
-			[
-				treeview__ 	tv_org;
-				xdwtable__	dw_parent;
-				int		m_bCanDestroy;
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) HrOrgChart : public xwin
+{
+public:
+	xtreeview 	tv_org;
+	xdwtable	dw_parent;
+	int		m_bCanDestroy;
 
-				xnode__	m_agentNode;	//Agent Condition
-				string	m_agentCond;	//Agent Node
+	xnode	m_agentNode;	//Agent Condition
+	xstring	m_agentCond;	//Agent Node
+public:
+	HrOrgChart(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+public:
+	static HrOrgChart* CreateInstance(void* implPtr, void* hWnd)
+	{
+		HrOrgChart* pWin = new HrOrgChart(implPtr, (HWND)hWnd);
+		return pWin;
+	}
 
-				int OnTreeSelChanged(ref TNotifyEvent evt, int p)
-				{
-					ref NMTREEVIEW nmtv = evt.pnmh;
-					int hitem = nmtv.itemNew.hItem;
-					if (hitem == 0)
-						hitem = treeview__::GetRootItem(tv_org.GetId());
-					string label = treeview__::GetItemLabel(tv_org.GetId(), hitem);
-					string pUnit;
-					pUnit = treeview__::GetItemLabel(tv_org.GetId(), hitem) + "\\";
-					int pitem = treeview__::GetParentItem(tv_org.GetId(), hitem);
-					while (pitem > 0)
-					{
-						pUnit = treeview__::GetItemLabel(tv_org.GetId(), pitem) + "\\" + pUnit;
-						pitem = treeview__::GetParentItem(tv_org.GetId(), pitem);
-					}
-					msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_org.GetId(), hitem);
-					string guid = ele.SelectSingleNode("@guid").text;
+	int OnTreeSelChanged(TEvent* evt, int p)
+	{
+		NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+		HTREEITEM hitem = nmtv.itemNew.hItem;
+		if (hitem == 0)
+			hitem = tv_org.GetRootItem();
+		xstring label = tv_org.GetItemLabel(hitem);
+		xstring pUnit;
+		pUnit = tv_org.GetItemLabel(hitem) + L"\\";
+		HTREEITEM pitem = tv_org.GetParentItem(hitem);
+		while (!pitem )
+		{
+			pUnit = tv_org.GetItemLabel(pitem) + L"\\" + pUnit;
+			pitem = tv_org.GetParentItem(pitem);
+		}
+		KXMLDOMElement ele = tv_org.GetItemData(hitem);
+		xstring guid = ele.selectSingleNode(L"@guid").text();
 
-					//CloseWindow();
-					return 1;
-				}
+		//CloseWindow();
+		return 1;
+	}
 
-				int OnActive(ref TEvent evt, int p)
-				{
-					/*int WA_INACTIVE   =  0;
-					int WA_ACTIVE     =  1;
-					int WA_CLICKACTIVE = 2;
-					int lw = evt.wParam & 0xffff;
-					if( lw ==WA_INACTIVE && m_bCanDestroy==1 )
-					{
-						win__::CloseWindow();
-						return 1;
-					}
-					if(lw !=WA_INACTIVE)m_bCanDestroy = 1;
-					return 1;*/
-				}
+	int OnActive(TEvent* evt, int p)
+	{
+		/*int WA_INACTIVE   =  0;
+		int WA_ACTIVE     =  1;
+		int WA_CLICKACTIVE = 2;
+		int lw = evt.wParam & 0xffff;
+		if( lw ==WA_INACTIVE && m_bCanDestroy==1 )
+		{
+			win::CloseWindow();
+			return 1;
+		}
+		if(lw !=WA_INACTIVE)m_bCanDestroy = 1;
+		return 1;*/
+		return 1;
+	}
 
-				//焦点激活处理函数
-				int OnSetFocus(ref TEvent evt, int p)
-				{
-					return 1;
-				}
+	//焦点激活处理函数
+	int OnSetFocus(TEvent* evt, LPARAM param)
+	{
+		return 1;
+	}
 
-				int OnOK(string comdid)
-				{
-					xaserverarg__ arg = new xaserverarg__;
-					arg.setNativePointer(arg.CreateInstance());
-					arg = win__::GetParam();
-					arg.AddArg("comdid", comdid);
-					int hitem = treeview__::GetSelectedItem(tv_org.GetId());
-					if (hitem > 0)
-					{
-						msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_org.GetId(), hitem);
-						string guid = ele.SelectSingleNode("@guid").text;
-						string label = ele.selectSingleNode("OrgName").text;
-						arg.AddArg("OrgName", label);
-						arg.AddArg("OrgId", guid);
-						win__::CloseWindow();
-					}
-					else
-						win__::MessageBox(GetHWND(), "请选择组织!", "提示", 0);
-					return 1;
-				}
+	int OnOK(xstring comdid)
+	{
+		xaserverarg arg;
 
-				//命令发布函数
-				int OnCmdDispatch(string comdid)
-				{
-					int hCursor = xutil__::SetCursorWait();
-					if (comdid == "xmOk")
-						OnOK(comdid);
-					else if (comdid == "xmCancel")
-						CloseWindow();
-					xutil__::RestoreCursor(hCursor);
-					return 0;
-				}
+		arg = GetArg();
+		arg.AddArg(L"comdid", comdid);
+		HTREEITEM hitem = tv_org.GetSelectedItem();
+		if (!hitem )
+		{
+			KXMLDOMElement ele = tv_org.GetItemData( hitem);
+			xstring guid = ele.selectSingleNode(L"@guid").text();
+			xstring label = ele.selectSingleNode(L"OrgName").text();
+			arg.AddArg(L"OrgName", label);
+			arg.AddArg(L"OrgId", guid);
+			CloseWindow();
+		}
+		else
+			MessageBox(GetHWND(), L"请选择组织!", L"提示", 0);
+		return 1;
+	}
 
-				//命令处理事件
-				int OnXCommand(ref TXCommandEvent evt, int p)
-				{
-					return OnCmdDispatch(evt.pStrID);
-				}
+	//命令发布函数
+	int OnCmdDispatch(xstring comdid)
+	{
+		HCURSOR hCursor = xutil::SetCursorWait();
+		if (comdid == L"xmOk")
+			OnOK(comdid);
+		else if (comdid == L"xmCancel")
+			CloseWindow();
+		xutil::RestoreCursor(hCursor);
+		return 0;
+	}
 
-				int OnAttachEvent()
-				{
-					//绑定工具条点击事件
-					AttachEvent("WM_XCOMMAND", OnXCommand);
-					//获取焦点事件,用于重置工具条
-					AttachEvent("WM_SETFOCUS", OnSetFocus);
-					AttachEvent("tv_org", "TVN_SELCHANGED", OnTreeSelChanged);
-					//AttachEvent("WM_ACTIVATE",OnActive);
-				}
+	//命令处理事件
+	int OnXCommand(TEvent* evt, LPARAM param)
+	{
+		return OnCmdDispatch(evt->xcommand.pStrID);
+	}
 
-				int OnInitial()
-				{
-					OnAttachEvent();
+	int OnAttachEvent()
+	{
+		//绑定工具条点击事件
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&HrOrgChart::OnXCommand);
+		//获取焦点事件,用于重置工具条
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&HrOrgChart::OnSetFocus);
+		AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&HrOrgChart::OnTreeSelChanged);
 
-					return 1;
-				}
+		//AttachEvent(L"WM_ACTIVATE",OnActive);
+		return 1;
+	}
 
-				int onload()
-				{
-					m_bCanDestroy = 1;
-					tv_org = new treeview__;
-					tv_org.setNativePointer(this.GetControl("tv_org"));
-					OnInitial();
+	int OnInitial()
+	{
+		OnAttachEvent();
 
-					int root = treeview__::GetRootItem(tv_org.GetId());
-					treeview__::ExpandItemEx(tv_org.GetId(), root);
+		return 1;
+	}
+
+	int onload()
+	{
+		SetArg();
+		m_bCanDestroy = 1;
+		tv_org = GetControl(L"tv_org");
+		OnInitial();
+
+		HTREEITEM root = tv_org.GetRootItem();
+		tv_org.ExpandItemEx( root);
 
 
-					return 1;
-				}
-			]
-
-		]
-]
\ No newline at end of file
+		return 1;
+	}
+};
\ No newline at end of file

--
Gitblit v1.9.3