From ac02af984539dbc00df25144a3dd4145eb03b1d2 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期三, 17 七月 2024 15:20:36 +0800
Subject: [PATCH] update hr

---
 jrj/project/start.vframe.vbusiness.cpp      |    4 ++--
 jrj/xframe/xcontrol/xtreeview.hpp           |    2 +-
 jrj/project/business/Company/HrOrg.cpp      |   28 +++++++++++++++-------------
 jrj/project/business/Quote3.maint.cpp       |    0 
 jrj/project/business/Company/HrOrgChart.cpp |    3 +--
 jrj/xframe/kobject/kxml.hpp                 |    8 ++++----
 6 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/jrj/project/business/Company/HrOrg.cpp b/jrj/project/business/Company/HrOrg.cpp
index a8628a1..baceac9 100644
--- a/jrj/project/business/Company/HrOrg.cpp
+++ b/jrj/project/business/Company/HrOrg.cpp
@@ -129,6 +129,8 @@
 		NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
 		HTREEITEM sitem = nmtv.itemNew.hItem;
 
+		return 1;
+
 		xstring id = tv_org.GetItemData(sitem);
 		HCURSOR hCursor = xutil::SetCursorWait();
 		OnCreateTree(id, sitem);
@@ -167,10 +169,11 @@
 			//sRootOrgName = ele1.selectSingleNode(L"CompanyID/@_displaystring").text();
 		}
 
-		xstring ls_orgid = ele.selectSingleNode(L"@guid").text();
-		sOrgID = ls_orgid + L"";
-		//trace(sOrgID);
-		sOrgName = ele.selectSingleNode(L"OrgName").text();
+		string str = ele.xml();
+		if(ele.selectSingleNode(L"@guid"))
+			sOrgID = ele.selectSingleNode(L"@guid").text();
+		if(ele.selectSingleNode(L"OrgName"))
+			sOrgName = ele.selectSingleNode(L"OrgName").text();
 		OnRetrieve();
 		return 1;
 	}
@@ -386,8 +389,7 @@
 		str += L"<treeitem src='xquery:[OrgChart.hr.xq]' src1='xquery:[OrgStructureRetrieve.xq]' xcaption='OrgName' xroot='/root' xpath='Org' xchildpath='Org' image='15' loop='yes' xdata='.'/>";
 		str += L"</xtree></vbox>";
 		xstring xfNodeAgentArea = L"tree";
-		xnode anode = new xnode;
-		anode.setNativePointer(GetAgentNode(xfNodeAgentArea));
+		xnode anode = GetAgentNode(xfNodeAgentArea);
 		SetAgentNode(anode, str);
 		tv_org = GetControl(L"tv_org");
 		AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&HrOrg::OnTreeSelecded);
@@ -439,7 +441,7 @@
 		AttachEvent(L"WM_SETFOCUS", (FEvent)&HrOrg::OnSetFocus);
 		//获得树的点击事件
 		AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&HrOrg::OnTreeSelecded);
-		AttachEvent(L"tv_org", L"TVN_ITEMEXPANDING", (FEvent)&HrOrg::OnTreeExpanding);
+		//AttachEvent(L"tv_org", L"TVN_ITEMEXPANDING", (FEvent)&HrOrg::OnTreeExpanding);
 		AttachEvent(L"tv_org", L"TVN_ENDDRAG", (FEvent)&HrOrg::OnTreeMoveNode);
 		//双击
 		AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&HrOrg::OnDoubleClicked);
@@ -458,8 +460,7 @@
 	int onload()
 	{
 		tv_org = GetControl(L"tv_org");
-		dw_list = new xdwgrid;
-		dw_list.setNativePointer(GetControl(L"dw_list"));
+		dw_list = GetControl(L"dw_list");
 		dw_list.openUrl(L"组织架构.vface/template/HrOrg/list");
 		dw_list.SetSelectionMode(1);
 		dw_list.SetReadOnly(true);
@@ -473,15 +474,16 @@
 
 		//OnCreateTree(L"00000000-0000-0000-0000-000000000000", 0);
 		HTREEITEM root = tv_org.GetRootItem();
-		if (!root)
+		if (root)
 		{
 			tv_org.ExpandItemEx(root);
 			KXMLDOMElement ele = tv_org.GetItemData(root);
 			if (ele)
 			{
-				xstring ls_orgid = ele.selectSingleNode(L"@guid").text();
-				sOrgID = ls_orgid + L"";
-				sOrgName = ele.selectSingleNode(L"OrgName").text();
+				if(ele.selectSingleNode(L"@guid"))
+					sOrgID = ele.selectSingleNode(L"@guid").text();
+				if(ele.selectSingleNode(L"OrgName"))
+					sOrgName = ele.selectSingleNode(L"OrgName").text();
 				OnRetrieve();
 			}
 		}
diff --git a/jrj/project/business/Company/HrOrgChart.cpp b/jrj/project/business/Company/HrOrgChart.cpp
index b8d02e8..9918b20 100644
--- a/jrj/project/business/Company/HrOrgChart.cpp
+++ b/jrj/project/business/Company/HrOrgChart.cpp
@@ -132,8 +132,7 @@
 	{
 		SetArg();
 		m_bCanDestroy = 1;
-		tv_org = new xtreeview;
-		tv_org.setNativePointer(GetControl(L"tv_org"));
+		tv_org = GetControl(L"tv_org");
 		OnInitial();
 
 		HTREEITEM root = tv_org.GetRootItem();
diff --git a/jrj/project/business/Quote3.maint.cpp b/jrj/project/business/Quote3.maint.cpp
index 462c10d..8dc1b52 100644
--- a/jrj/project/business/Quote3.maint.cpp
+++ b/jrj/project/business/Quote3.maint.cpp
Binary files differ
diff --git a/jrj/project/start.vframe.vbusiness.cpp b/jrj/project/start.vframe.vbusiness.cpp
index f43f0a7..87c8560 100644
--- a/jrj/project/start.vframe.vbusiness.cpp
+++ b/jrj/project/start.vframe.vbusiness.cpp
@@ -53,8 +53,8 @@
 		int nRow = dw_list.GetRow();
 		if (nRow < 0) return L"";
 		KXMLDOMElement ele = dw_list.GetRowElement(nRow);
-		xstring x = ele.getAttribute(L"category");
-		return x;
+		if (!ele) return L"";
+		return ele.getAttribute(L"category");
 	}
 
 	xstring GetEntityID(LPARAM pr)
diff --git a/jrj/xframe/kobject/kxml.hpp b/jrj/xframe/kobject/kxml.hpp
index f6ed27c..fc6931f 100644
--- a/jrj/xframe/kobject/kxml.hpp
+++ b/jrj/xframe/kobject/kxml.hpp
@@ -141,7 +141,9 @@
 			this->AddRef();
 			return (LPARAM)this->getImpl();
 		}
-		KXMLDOMNode(LPARAM p) :KXMLDOMNode((void*)p) {}
+		KXMLDOMNode(LPARAM p) :KXMLDOMNode((void*)p) {
+			AddRef();
+		}
 	public:
 		operator bool() { return impl ? true : false; }
 		bool operator !=(KXMLDOMNode& rhs) { return rhs.getImpl() != getImpl(); }
@@ -158,9 +160,7 @@
 		KXMLDOMElement(void* impl) :KXMLDOMNode(impl) {}
 		KXMLDOMElement() :KXMLDOMNode() {}
 	public:
-		KXMLDOMElement(LPARAM p) :KXMLDOMNode((void*)p) {
-			AddRef();
-		}
+		KXMLDOMElement(LPARAM p) :KXMLDOMNode(p) {}
 	};
 
 	class KXMLDOMDocument : public KXMLDOMNode
diff --git a/jrj/xframe/xcontrol/xtreeview.hpp b/jrj/xframe/xcontrol/xtreeview.hpp
index d559fcb..f0601aa 100644
--- a/jrj/xframe/xcontrol/xtreeview.hpp
+++ b/jrj/xframe/xcontrol/xtreeview.hpp
@@ -390,7 +390,7 @@
         return InsertChildItemEx(hItem, label, ele.ptr(), image,image2);
     }
 
-    HTREEITEM InsertChildItemEx(HTREEITEM hItem,string label,int data,int image = 0,int image2 = 0)
+    HTREEITEM InsertChildItemEx(HTREEITEM hItem,string label,LPARAM data,int image = 0,int image2 = 0)
     {
         int TVM_INSERTITEM = TV_FIRST + 50;
         

--
Gitblit v1.9.3