From 03ea53b80bd65932f4c13848fddb0385647a6dc3 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期一, 15 七月 2024 11:58:07 +0800
Subject: [PATCH] update tree view

---
 jrj/xframe/xcontrol/xtreeview.hpp     |    2 +-
 jrj/project/business/Product.list.cpp |   39 ++++++++++++++++++++-------------------
 2 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/jrj/project/business/Product.list.cpp b/jrj/project/business/Product.list.cpp
index 6311956..d543a68 100644
--- a/jrj/project/business/Product.list.cpp
+++ b/jrj/project/business/Product.list.cpp
@@ -731,7 +731,7 @@
 		//alert(id);
 
 		HTREEITEM hItem = tv_folder.GetSelectedItem();
-		KXMLDOMElement& e1 = *(KXMLDOMElement * )tv_folder.GetItemData(hItem);
+		KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
 		xstring categoryid = e1.selectSingleNode(L"@guid").text();
 		//alert(categoryid);
 		xaserverarg* arg = new xaserverarg;
@@ -746,7 +746,7 @@
 	int ItemMaint()
 	{
 		HTREEITEM hItem = tv_folder.GetSelectedItem();
-		KXMLDOMElement& e = *(KXMLDOMElement * )tv_folder.GetItemData(hItem);
+		KXMLDOMElement e = tv_folder.GetItemData(hItem);
 		//xstring no = e.getAttribute(L"no");
 		//if(no==L"") return 1;
 		xstring guid = e.getAttribute(L"guid");
@@ -777,7 +777,7 @@
 		HTREEITEM hTopItem = LookupTopFolder(hItem);
 		xstring name = tv_folder.GetItemLabel(hTopItem);
 
-		KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+		KXMLDOMElement e = tv_folder.GetItemData(hItem);
 		//alert(e.xml);
 		/*xstring no = e.getAttribute(L"no");
 		if(no==L"") return 1;
@@ -821,7 +821,7 @@
 		xaserverarg arg;
 		if (hItem != hTopItem)
 		{
-			KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+			KXMLDOMElement e = tv_folder.GetItemData(hItem);
 			xstring folder = e.getAttribute(L"guid");
 			if (folder != L"")
 			{
@@ -858,7 +858,7 @@
 		if (name == L"个人库" && selectname == L"新产品" && tv_folder.GetParentItem(hItem) == hTopItem) return 1;
 		if (hItem != hTopItem)
 		{
-			KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+			KXMLDOMElement e = tv_folder.GetItemData(hItem);
 			xstring folder = e.getAttribute(L"guid");
 			if (folder != L"")
 			{
@@ -1189,19 +1189,19 @@
 		xstring name = tv_folder.GetItemLabel(hTopItem);
 		HTREEITEM child = tv_folder.GetChildItem(hItem);
 		xstring no = L"";
-		KXMLDOMElement* e=nullptr;
+		KXMLDOMElement e;
 		if (name == L"公司库" && !child)
 		{
 			no = L"";
 			if (hTopItem != hItem)
 			{
-				e = (KXMLDOMElement * )tv_folder.GetItemData(hItem);
-				no = e->getAttribute(L"categoryid");
+				e = tv_folder.GetItemData(hItem);
+				no = e.getAttribute(L"categoryid");
 			}
 			else
 			{
-				e = (KXMLDOMElement*)tv_folder.GetItemData(hItem);
-				no = e->getAttribute(L"categoryid");
+				e = tv_folder.GetItemData(hItem);
+				no = e.getAttribute(L"categoryid");
 			}
 			MakeGoodsFolderItem(hItem, no);
 		}
@@ -1210,8 +1210,8 @@
 			no = L"";
 			if (hTopItem != hItem)
 			{
-				e = (KXMLDOMElement*)tv_folder.GetItemData(hItem);
-				no = e->getAttribute(L"categoryid");
+				e = tv_folder.GetItemData(hItem);
+				no = e.getAttribute(L"categoryid");
 				MakeUserGoodsFolderItem(hItem, no);
 			}
 		}
@@ -1245,7 +1245,7 @@
 	{
 		while (true)
 		{
-			KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+			KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
 			xstring str = e1.getAttribute(L"no");
 			if (str.find(L"Customer:") >= 0) return hItem;
 			hItem = tv_folder.GetParentItem(hItem);
@@ -1258,7 +1258,7 @@
 	{
 		hItem = LookupCustomerFolder(hItem);
 		if (hItem == 0) return L"";
-		KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+		KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
 		xstring str = e1.getAttribute(L"no");
 		return str.mid(xstring(L"Customer:").length(), 9999);
 	}
@@ -1300,7 +1300,7 @@
 		{
 			if (selectname != name)
 			{
-				KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+				KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
 				xstring str = e1.getAttribute(L"no");
 				alert(str);
 				if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0)
@@ -1366,7 +1366,7 @@
 
 				if (hItem != hTopItem)
 				{
-					KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
+					KXMLDOMElement e = tv_folder.GetItemData(hItem);
 					no = e.getAttribute(L"guid");
 				}
 
@@ -1456,7 +1456,7 @@
 			xstring sImage = e.getAttribute(L"image");
 			int image = 15;
 			//if(sImage) image = sImage.toInt();
-			HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM) & e, image);
+			HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
 			tv_folder.SetItemChild(h, 1);
 			ExpandChildFolder(h, e);
 		}
@@ -1521,14 +1521,15 @@
 		dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist");
 		dwc_list.SetReadOnly(true);
 
+		tv_folder.ExpandItem(tv_folder.GetRootItem());
+		tv_folder.ItemFocus(tv_folder.GetRootItem());
+
 		if (dw_list.GetRowCount())
 		{
 			xshtml xs = GetControl(L"html_detail");
 			xs.SetContent(makeHtml(1));
 		}
 
-		tv_folder.ExpandItem(tv_folder.GetRootItem());
-		tv_folder.ItemFocus(tv_folder.GetRootItem());
 		return 1;
 	}
 
diff --git a/jrj/xframe/xcontrol/xtreeview.hpp b/jrj/xframe/xcontrol/xtreeview.hpp
index e689ad9..d559fcb 100644
--- a/jrj/xframe/xcontrol/xtreeview.hpp
+++ b/jrj/xframe/xcontrol/xtreeview.hpp
@@ -126,7 +126,7 @@
             return (HTREEITEM)SendMessage(GetHWND(), TVM_GETNEXTITEM, TVGN_CARET,0);				 
     }
     
-    string GetItemLabel(HTREEITEM hItem)
+    xstring GetItemLabel(HTREEITEM hItem)
     {
              int TVM_GETITEM = TV_FIRST + 62;
         

--
Gitblit v1.9.3