From 9b3b2eb20b09e13da837a28f16e552ba70a090c4 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期四, 24 四月 2025 14:48:21 +0800
Subject: [PATCH] update

---
 jrj/project/business/Enquiry/Entity.Product.Select.cpp |  376 +++++++++++++++++++++++++++--------------------------
 1 files changed, 193 insertions(+), 183 deletions(-)

diff --git a/jrj/project/business/Enquiry/Entity.Product.Select.cpp b/jrj/project/business/Enquiry/Entity.Product.Select.cpp
index e992a08..0b663b3 100644
--- a/jrj/project/business/Enquiry/Entity.Product.Select.cpp
+++ b/jrj/project/business/Enquiry/Entity.Product.Select.cpp
@@ -17,7 +17,7 @@
 	class __declspec(dllexport) EntityProductSelectWin : public xwin
 	{
 	public:
-		int hObject = 0;
+		HWND hObject = 0;
 		xstring CustomerID;
 		xstring SupplierID;
 		xstring m_customer;
@@ -28,8 +28,8 @@
 		xdwgrid	dwc_list;
 
 		//产品缓存对象
-		xdataset g_xdoc_product;
-		xdataset g_xdoc_shoppingcart;
+		//xdataset dw_list;
+		//xdataset dwc_list;
 
 		xcombobox  cbx_goodscar;
 		//是否多选
@@ -63,7 +63,7 @@
 			{
 				KXMLDOMElement e = nlist.item(i);
 				xstring name = e.getAttribute(L"name");
-				xcombobox::AddItem(xc.GetId(), name);
+				xcombobox::AddItem(xc.GetHWND(), name);
 			}
 			return 1;
 		}
@@ -100,8 +100,8 @@
 		KXMLDOMElement OnGetCarListRowElement(int row = 0)
 		{
 			if (row < 1) row = dwc_list.GetRow();
-			if (row < 1 || row > dwc_list.GetRowCount()) return 0;
-			KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row);
+			if (row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement();
+			KXMLDOMElement e = dwc_list.GetRowElement(row);
 			return e;
 		}
 
@@ -114,7 +114,7 @@
 			xml xp ;
 			
 			xaserverarg arg_pic;
-			arg_pic.setNativePointer(arg_pic.CreateInstance());
+			
 			arg_pic.AddArg(L"SKUID", skuid);
 			if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1)
 			{
@@ -151,7 +151,7 @@
 			xml xp ;
 			
 			xaserverarg arg_pic;
-			arg_pic.setNativePointer(arg_pic.CreateInstance());
+			
 			arg_pic.AddArg(L"SKUID", skuid);
 			arg_pic.AddArg(L"CustomerID", m_customer);
 			arg_pic.AddArg(L"CustomerItemNo", customerItemNo);
@@ -189,7 +189,7 @@
 			xs.SetContent(html);
 			xs.Redraw();
 
-			xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+			xstring id = dw_list.GetItemString(row, L"@guid");
 			OnShowImage(id);
 
 			return 1;
@@ -204,10 +204,10 @@
 			xstring html = makeGoodscarHtml(row);
 			xs.SetContent(html);
 			xs.Redraw();
-			xstring id = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
+			xstring id = dwc_list.GetItemString(row, L"SKUID");
 			if (m_customer != L"")
 			{
-				xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+				xstring customerItemNo = dwc_list.GetItemString(row, L"CustomerItemNo");
 				OnShowImage(id, customerItemNo);
 			}
 			else
@@ -218,18 +218,22 @@
 			return 1;
 		}
 
+#if 0
+
+
+
 		int DeleteRow(int row)
 		{
 			int IDOK = 1;
 			int MB_OKCANCEL = 1;
 			int MB_ICONQUESTION = 32;
 			if (MessageBox(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1;
-			xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+			xstring id = dw_list.GetItemString(row, L"@guid");
 
 			if (ProductLibraryView::DeleteItem(id) == 1)	dw_list.DeleteRow(0);
 			return 1;
 		}
-
+#endif // 0
 		int SetSelectState(xdwgrid dw_obj, int state)
 		{
 			dw_obj.SetSelectionMode(3);
@@ -279,9 +283,9 @@
 			if (row < 1) row = dw_list.GetRow();
 			if (row < 1 || row > dw_list.GetRowCount()) return 0;
 
-			KXMLDOMElement e = g_xdoc_product.getRowElement(L"data/Item", row);
-			xstring skuid = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
-			xstring SKUNo = g_xdoc_product.getData(0, L"data/Item", row, L"SKUNo");
+			KXMLDOMElement e = dw_list.GetRowElement(row);
+			xstring skuid = dw_list.GetItemString(row, L"@guid");
+			xstring SKUNo = dw_list.GetItemString(row, L"SKUNo");
 			xstring id = ViewObject::GetGuid();
 			xstring ret1 = Up(id);
 			if (ret1 == L"-1") return -1;
@@ -302,18 +306,19 @@
 			xml x ;
 			
 			x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
-				"<ProductPictureID>" + id + L"</ProductPictureID>" +
-				"<OriginFile>" + originfile + L"</OriginFile>" +
-				"<FileExt>" + ext + L"</FileExt>" +
-				"<SKUID>" + skuid + L"</SKUID>" +
-				"<Name>[" + SKUNo.trim() + L"]</Name>" +
-				"<FileName>" + id + L".jpg</FileName>" +
-				"</Item>"
+				L"<ProductPictureID>" + id + L"</ProductPictureID>" +
+				L"<OriginFile>" + originfile + L"</OriginFile>" +
+				L"<FileExt>" + ext + L"</FileExt>" +
+				L"<SKUID>" + skuid + L"</SKUID>" +
+				L"<Name>[" + SKUNo.trim() + L"]</Name>" +
+				L"<FileName>" + id + L".jpg</FileName>" +
+				L"</Item>"
 			);
 
 			xaserverarg arg;
 			
 			arg.AddArg(L"content", x.xml());
+			//alert(x.xml());
 			if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
 			{
 				alert(x.text());
@@ -331,11 +336,11 @@
 			if (row < 1) row = dwc_list.GetRow();
 			if (row < 1 || row > dwc_list.GetRowCount()) return 0;
 
-			KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row);
-			xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
-			xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring");
+			KXMLDOMElement e = dwc_list.GetRowElement(row);
+			xstring skuid = dwc_list.GetItemString(row, L"SKUID");
+			xstring SKUNo = dwc_list.GetItemString(row, L"SKUID/@__displaystring");
 			CustomerID = m_customer;
-			xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+			xstring CustomerItemNo = dwc_list.GetItemString(row, L"CustomerItemNo");
 			xstring id = ViewObject::GetGuid();
 			xstring ret1 = Up(id);
 			if (ret1 == L"-1") return -1;
@@ -355,15 +360,15 @@
 			xml x ;
 			
 			x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
-				"<ProductPictureID>" + id + L"</ProductPictureID>" +
-				"<OriginFile>" + originfile + L"</OriginFile>" +
-				"<FileExt>" + ext + L"</FileExt>" +
-				"<SKUID>" + skuid + L"</SKUID>" +
-				"<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" +
-				"<CustomerID>" + CustomerID + L"</CustomerID>" +
-				"<Name>[" + SKUNo.trim() + L"]</Name>" +
-				"<FileName>" + id + L".jpg</FileName>" +
-				"</Item>"
+				L"<ProductPictureID>" + id + L"</ProductPictureID>" +
+				L"<OriginFile>" + originfile + L"</OriginFile>" +
+				L"<FileExt>" + ext + L"</FileExt>" +
+				L"<SKUID>" + skuid + L"</SKUID>" +
+				L"<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" +
+				L"<CustomerID>" + CustomerID + L"</CustomerID>" +
+				L"<Name>[" + SKUNo.trim() + L"]</Name>" +
+				L"<FileName>" + id + L".jpg</FileName>" +
+				L"</Item>"
 			);
 
 			xaserverarg arg;
@@ -420,10 +425,10 @@
 				dwc_list.Redraw();
 			}
 
-			xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
-			xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring");
+			xstring skuid = dwc_list.GetItemString(row, L"SKUID");
+			xstring SKUNo = dwc_list.GetItemString(row, L"SKUID/@__displaystring");
 			CustomerID = m_customer;
-			xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+			xstring CustomerItemNo = dwc_list.GetItemString(row, L"CustomerItemNo");
 			OnShowImage(skuid, CustomerItemNo);
 
 			return 1;
@@ -469,7 +474,7 @@
 				dw_list.Redraw();
 			}
 
-			KXMLDOMElement e1 = g_xdoc_product.getRowElement(L"data/Item", row);
+			KXMLDOMElement e1 = dw_list.GetRowElement(row);
 			xstring skuid = e1.getAttribute(L"guid");
 			OnShowImage(skuid);
 
@@ -509,21 +514,21 @@
 
 		xstring makeHtml(int row)
 		{
-			xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+			xstring id = dw_list.GetItemString(row, L"@guid");
 			xml x = GetGoodsPropList(id);
 			xml x1 = GetGoodsPropListEx(id);
 
 			xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
 			html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >编号:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"No") +
-				"</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"RefNo") +
-				"</span></div>";
+				L"</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"RefNo") +
+				L"</span></div>";
 			html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >货号:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"GoodsNo") +
-				"</span></div>";
+				L"</span></div>";
 			html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >品名:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CName") +
-				"</span></div>";
+				L"</span></div>";
 			if (dw_list.GetItemString(row, L"CSpec") != L"")
 				html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >规格:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CSpec") +
-				"</span></div>";
+				L"</span></div>";
 
 			KXMLDOMNodeList fieldsEx = x1.selectNodes(L"data/field");
 			xstring ls_detail = L"";
@@ -541,14 +546,14 @@
 				{
 					name = fieldsEx.item(i).selectSingleNode(L"@name").text();
 					label = fieldsEx.item(i).selectSingleNode(L"@label").text();
-					ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>";
+					ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + dw_list.GetItemString(row, name) + L"</td>";
 					cnt++;
 					i++;
 					if (i == len)break;
 				}
 				ls_detail += L"<tr>" + ls_item + L"</tr>";
 			}
-			html += L"<div style='margin-left:8px;margin-right:16px;'>" +
+			html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" +
 				+L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
 				+ ls_detail
 				+ L"</table>"
@@ -577,24 +582,24 @@
 						if (i >= len)count = 2;
 						continue;
 					}
-					else if (g_xdoc_product.getData(0, L"data/Item", row, name) == L"")
+					else if (dw_list.GetItemString(row, name) == L"")
 					{
 						KXMLDOMNodeList options = fields.item(i).selectNodes(L"item");
 						int tlen = options.length();
 						xstring terms = L"";
 						for (int k = 0; k < tlen; k++)
 						{
-							if (options.item(k).text)
+							if (options.item(k).text())
 							{
 								if (k > 0) terms += L", L";
-								terms += L"[" + options.item(k).text + L"]";
+								terms += L"[" + xstring(options.item(k).text()) + L"]";
 							}
 						}
 						ls_star += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >" + label + L"*:</span><span  style='width:90;font-size:10pt'>" + terms + L"</span></div>";
 					}
 					else
 					{
-						ls_item = L"<td>" + label + L"</td>" + L"<td>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>";
+						ls_item = L"<td>" + label + L"</td>" + L"<td>" + dw_list.GetItemString(row, name) + L"</td>";
 						count++;
 					}
 					i++;
@@ -604,7 +609,7 @@
 				ls_detail += ls_item;
 			}
 
-			html += L"<div style='margin-left:8px;margin-right:16px;'>" +
+			html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" +
 				+L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
 				+ ls_detail
 				+ L"</table>"
@@ -623,10 +628,10 @@
 				html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"PackTerm") + L"</span></div>";
 			}
 
-			if (g_xdoc_product.getData(0, L"data/Item", row, L"Remark") != L"" && id == L"23A8BBA2-DEF1-4C00-978E-646151A6082E")
+			if (dw_list.GetItemString(row, L"Remark") != L"" && id == L"23A8BBA2-DEF1-4C00-978E-646151A6082E")
 			{
 				html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >备注:</span></div>";
-				html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + g_xdoc_product.getData(0, L"data/Item", row, L"Remark") + L"</span></div>";
+				html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"Remark") + L"</span></div>";
 			}
 
 			html += L"<div style='height:24px'/>";
@@ -653,18 +658,18 @@
 
 			xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
 			html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >编号:</span><span  style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"No") +
-				"</span></div>";
+				L"</span></div>";
 			html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >品名:</span><span  style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CName") +
-				"</span></div>";
+				L"</span></div>";
 			html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >规格:</span><span  style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CSpec") +
-				"</span></div>";
+				L"</span></div>";
 
 			KXMLDOMNodeList fields = x.selectNodes(L"data/field");
 			int len = fields.length();
-			html += L"<table>" +
-				"<colgroup span='1' width='80'/>" +
-				"<colgroup span='1' width='120'/>" +
-				"<colgroup span='1' width='420'/>";
+			html += (xstring)L"<table>" +
+				L"<colgroup span='1' width='80'/>" +
+				L"<colgroup span='1' width='120'/>" +
+				L"<colgroup span='1' width='420'/>";
 			html += L"<tr>";
 			html += L"<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>";
 			html += L"</tr>";
@@ -674,26 +679,26 @@
 				xstring label = fields.item(i).selectSingleNode(L"@label").text();
 				html += L"<tr>";
 				if (i == 0)
-					html += L"<td rowspan='" + len.toString() + L"'>" + No + L"</td><td >" + label + L"</td><td >" + L"</td>";
+					html += L"<td rowspan='" + xstring(len) + L"'>" + No + L"</td><td >" + label + L"</td><td >" + L"</td>";
 				else
-					html += L"<td >" + label + L"</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, name) + L"</td>";
+					html += L"<td >" + label + L"</td><td >" + dwc_list.GetItemString(row, name) + L"</td>";
 				html += L"</tr>";
 			}
 
 			html += L"<tr>";
-			html += L"<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"PackCode") + L"</td><td >包装方式</td><td >" +
-				g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CPack") + L"</td>";
+			html += L"<td rowspan='3'>" + dwc_list.GetItemString(row, L"PackCode") + L"</td><td >包装方式</td><td >" +
+				dwc_list.GetItemString(row, L"CPack") + L"</td>";
 			html += L"</tr>";
 			html += L"<tr height='48'>";
-			html += L"<td >包装要求</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"PackQualityTerm") + L"</td>";
+			html += L"<td >包装要求</td><td >" + dwc_list.GetItemString(row, L"PackQualityTerm") + L"</td>";
 			html += L"</tr>";
 			html += L"<tr>";
 			html += L"<td >侧唛</td><td ></td>";
 			html += L"</tr>";
 
 			html += L"<tr height='72'>";
-			html += L"<td>" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"QualityCode") + L"</td><td >质量要求</td><td >" +
-				g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"QualityTerm") + L"</td>";
+			html += L"<td>" + dwc_list.GetItemString(row, L"QualityCode") + L"</td><td >质量要求</td><td >" +
+				dwc_list.GetItemString(row, L"QualityTerm") + L"</td>";
 			html += L"</tr>";
 
 			html += L"</table>";
@@ -722,19 +727,19 @@
 
 					if (dwc_list.GetItemString(row, L"pic") != L"*")
 					{
-						alert(L"第" + row.toString() + L"行请增加产品图片!");
+						alert(L"第" + xstring(row) + L"行请增加产品图片!");
 						return 1;
 					}
 					row = dwc_list.GetNextSelectRow(row + 1);
 				}
 			}
 			else {
-				row = dw_list.GetNextSelectRow(1);
+				int row = dw_list.GetNextSelectRow(1);
 				while (row > 0)
 				{
 					if (dw_list.GetItemString(row, L"pic") != L"*")
 					{
-						alert(L"第" + row.toString() + L"行请增加产品图片!");
+						alert(L"第" + xstring(row) + L"行请增加产品图片!");
 						return 1;
 					}
 					row = dw_list.GetNextSelectRow(row + 1);
@@ -748,7 +753,7 @@
 			dw_list.Redraw();
 			impStr = L"";
 
-			SendMessage(hObject, 0x401, ls_nos, 0);
+			SendMessage(hObject, 0x401, (LPARAM)ls_nos.c_str(), 0);
 			alert(L"转入完成!");
 
 			return 1;
@@ -756,7 +761,7 @@
 
 		int OnSearch()
 		{
-			int hItem = tv_folder.GetSelectedItem();
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
 			return RetrieveItem(hItem);
 		}
 
@@ -766,7 +771,7 @@
 			int MB_OKCANCEL = 1;
 			int MB_ICONQUESTION = 32;
 			if (MessageBox(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1;
-			xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+			xstring id = dw_list.GetItemString(row, L"@guid");
 
 			if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0);
 
@@ -824,10 +829,10 @@
 
 		int ItemAdd()
 		{
-			int hItem = tv_folder.GetSelectedItem();
-			int hTopItem = LookupTopFolder(hItem);
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
+			HTREEITEM hTopItem = LookupTopFolder(hItem);
 			xstring name = tv_folder.GetItemLabel(hTopItem);
-
+			if(name==L"") return 1;
 			KXMLDOMElement e = tv_folder.GetItemData(hItem);
 			xstring guid = e.getAttribute(L"guid");
 			if (guid == L"") return 1;
@@ -844,15 +849,15 @@
 			if (Name == L"") Name = e.getAttribute(L"cname");
 			arg.AddArg(L"No", No);
 			arg.AddArg(L"CName", Name);
-			int p = arg;
-			OpenWindow(L"dev:xpage[Quick.Input.NewProductEx.vx]", p);
+			
+			OpenWindow(L"dev:xpage[Quick.Input.NewProductEx.vx]", arg);
 			if (arg.GetArgString(L"data.modify") == L"1")RetrieveItem(hItem);
 			return 1;
 		}
 
 		int ItemMaint()
 		{
-			int hItem = tv_folder.GetSelectedItem();
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
 			KXMLDOMElement e = tv_folder.GetItemData(hItem);
 			//xstring no = e.getAttribute(L"no");
 			//if(no==L"") return 1;
@@ -865,15 +870,13 @@
 				OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
 			}else
 			{
-				int pr = g_xdoc_product;
-				OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr);
+				OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",dw_list);
 			}
 			*/
-			//KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1);
+			//KXMLDOMElement ele = dw_list.getRowElement(L"data/Item", 1);
 			//alert(ele.xml);
 
-			int pr = g_xdoc_product;
-			OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr);
+			OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", dw_list);
 
 			return 1;
 		}
@@ -885,15 +888,15 @@
 		}
 
 		//查找当前树项的顶级目录
-		int LookupTopFolder(int hItem)
+		HTREEITEM LookupTopFolder(HTREEITEM hItem)
 		{
-			int hRoot = tv_folder.GetRootItem();
+			HTREEITEM hRoot = tv_folder.GetRootItem();
 			while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
 			return hItem;
 		}
 
 		//插入产品类项的子项
-		int MakeGoodsFolderItem(int hItem, xstring sno)
+		int MakeGoodsFolderItem(HTREEITEM hItem, xstring sno)
 		{
 			xml x = ProductLibraryView::GetTreeChildItems3(sno);
 			if (!x) return 0;
@@ -907,14 +910,18 @@
 				xstring no = e.getAttribute(L"CategoryNo");
 				xstring label = no.trim() + L" " + name;
 
-				int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15);
-				tv_folder.SetItemChild(h, 1);
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, label, e, 15);
+				xstring child = e.getAttribute(L"Childs");
+				if (child == L"")
+					tv_folder.SetItemChild(h, 1);
+				else if (child != L"0")
+					tv_folder.SetItemChild(h, 1);
 			}
 			return 1;
 		}
 
 		//插入新产品目录子项
-		int MakeUserGoodsFolderItem(int hItem, xstring sno)
+		int MakeUserGoodsFolderItem(HTREEITEM hItem, xstring sno)
 		{
 			xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
 			if (!x) return 0;
@@ -928,7 +935,7 @@
 				xstring no = e.getAttribute(L"CategoryNo");
 				xstring label = no.trim() + L" " + name;
 
-				int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15);
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, label, e, 15);
 				xstring child = e.getAttribute(L"Childs");
 				if (child == L"")
 					tv_folder.SetItemChild(h, 1);
@@ -939,7 +946,7 @@
 		}
 
 		//插入购物车项
-		int ExpandCatChildFolder(int hItem, KXMLDOMElement ele, int image)
+		int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
 		{
 			KXMLDOMNodeList nlist = ele.selectNodes(L"item");
 			int len = nlist.length();
@@ -948,12 +955,12 @@
 			{
 				KXMLDOMElement e = nlist.item(i);
 				xstring name = e.getAttribute(L"name");
-				int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image);
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
 				ExpandCatChildFolder(h, e, 35);
 			}
 			return 1;
 		}
-		int MakeGoodCarFolderItem(int hItem)
+		int MakeGoodCarFolderItem(HTREEITEM hItem)
 		{
 			xml x = ShoppingCartView::GetSupplierRoleList(SupplierID);
 			if (!x) return 0;
@@ -963,20 +970,20 @@
 			{
 				KXMLDOMElement e = nlist.item(i);
 				xstring name = e.getAttribute(L"name");
-				int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35);
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
 				ExpandCatChildFolder(h, e, 35);
 			}
 			return 1;
 		}
 
 		//树展开
-		int OnTreeExpanding(ref TNotifyEvent evt, int p)
+		int OnTreeExpanding(TEvent* evt, int p)
 		{
-			ref NMTREEVIEW nmtv = evt.pnmh;
-			int hItem = nmtv.itemNew.hItem;
-			int hTopItem = LookupTopFolder(hItem);
+			NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+			HTREEITEM hItem = nmtv.itemNew.hItem;
+			HTREEITEM hTopItem = LookupTopFolder(hItem);
 			xstring name = tv_folder.GetItemLabel(hTopItem);
-			int child = tv_folder.GetChildItem(hItem);
+			HTREEITEM child = tv_folder.GetChildItem(hItem);
 			xstring no = L"";
 			KXMLDOMElement e;
 
@@ -1023,11 +1030,11 @@
 			return 1;
 		}
 
-		int LookupCustomerFolder(int hItem)
+		HTREEITEM LookupCustomerFolder(HTREEITEM hItem)
 		{
 			while (true)
 			{
-				KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+				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);
@@ -1036,24 +1043,26 @@
 			return 0;
 		}
 
-		xstring LookupCustomer(int hItem)
+		xstring LookupCustomer(HTREEITEM hItem)
 		{
 			hItem = LookupCustomerFolder(hItem);
-			if (hItem == 0) return "";
-			KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+			if (hItem == 0) return L"";
+			KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
 			xstring str = e1.getAttribute(L"no");
-			return str.mid(L"Customer:".length(), 9999);
+			return str.mid(xstring(L"Customer:").length(), 9999);
 		}
 
-		int RetrieveItem(int hItem)
+		int RetrieveItem(HTREEITEM hItem)
 		{
-			int hTopItem = LookupTopFolder(hItem);
+			HTREEITEM hTopItem = LookupTopFolder(hItem);
 			tname = tv_folder.GetItemLabel(hTopItem);
 			xstring selectname = tv_folder.GetItemLabel(hItem);
 			ximageview im = GetControl(L"im1");
 			m_customer = L"";
 			xcontrol query = GetControl(L"sl_search");
 			xstring queryString = query.GetText();
+			xshtml xs;
+			xstring str = L"";
 			if (hTopItem == 0 && queryString != L"")
 			{
 				tname = L"已询价产品";
@@ -1065,9 +1074,12 @@
 				ResetAgent(L"goodscar");
 				if (selectname != tname)
 				{
-					KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
-					xstring str = e1.getAttribute(L"no");
-					if (str == L"Supplier") return 1;
+					KXMLDOMElement e1 =tv_folder.GetItemData(hItem);
+					str = e1.getAttribute(L"no");
+					if (str == L"Supplier")
+					{
+						return 1;
+					}
 					if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0 || str.find(L"Supplier:") == 0 || str.find(L"Enquiry:") == 0)
 					{
 						m_customer = LookupCustomer(hItem);
@@ -1078,9 +1090,9 @@
 						dwc_list.Reset();
 						dwc_list.SetReadOnly(true);
 						if (queryString == L"")
-							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str));
+							dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str));
 						else
-							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
+							dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
 						if (str.find(L"Supplier:") == 0)
 						{
 							if (dwc_list.GetRowCount() > 0)
@@ -1097,9 +1109,9 @@
 						dwc_list.SetReadOnly(true);
 						dwc_list.Reset();
 						if (queryString == L"")
-							g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid));
+							dwc_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid));
 						else
-							g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, L""));
+							dwc_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, L""));
 					}
 					else
 					{
@@ -1107,27 +1119,26 @@
 						dwc_list.SetReadOnly(true);
 						dwc_list.Reset();
 						if (queryString == L"")
-							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname));
+							dwc_list.Retrieve(ShoppingCartView::GetGoodsList(selectname));
 						else
-							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString));
+							dwc_list.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString));
 					}
-					dwc_list.PostRetrieve();
 					dwc_list.Redraw();
 
 					if (dwc_list.GetRowCount() >= 1)
 					{
-						htmlctrl xs = GetControl(L"html_detail");
+						xs = GetControl(L"html_detail");
 						xs.SetContent(makeGoodscarHtml(1));
 
 						if (m_customer != L"")
 						{
-							xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", 1, L"SKUID");
-							xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", 1, L"CustomerItemNo");
+							xstring skuid = dwc_list.GetItemString(1, L"SKUID");
+							xstring customerItemNo = dwc_list.GetItemString(1, L"CustomerItemNo");
 							OnShowImage(skuid, customerItemNo);
 						}
 					}
 					else {
-						im.ResetEx();
+						im.Reset();
 						im.Redraw();
 
 						xs = GetControl(L"html_detail");
@@ -1144,8 +1155,8 @@
 					else
 					{
 						str = L"Supplier:All";
-						g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
-						dwc_list.PostRetrieve();
+						dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
+						//dwc_list.PostRetrieve();
 						dwc_list.Redraw();
 					}
 				}
@@ -1157,7 +1168,7 @@
 					ResetAgent(L"userlib");
 				else
 					ResetAgent(L"goodslib");
-				int hCursor = xutil::SetCursorWait();
+				HCURSOR hCursor = xutil::SetCursorWait();
 				if (tname == L"个人库" || tname == L"公司库")
 				{
 					xstring no = L"N000005";
@@ -1185,8 +1196,8 @@
 							x = ProductLibraryView::GetMaintList3(no);
 						if (x)
 						{
-							g_xdoc_product.Retrieve(x);
-							x.Free();
+							dw_list.Retrieve(x);
+							
 						}
 					}
 					else
@@ -1207,21 +1218,21 @@
 							else
 								x = ProductLibraryView::GetMaintList3(no);
 						}
-						if (x)g_xdoc_product.Retrieve(x);
+						if (x)dw_list.Retrieve(x);
 					}
-					dw_list.PostRetrieve();
+					//dw_list.PostRetrieve();
 					dw_list.Redraw();
 
 					if (dw_list.GetRowCount() > 0)
 					{
 						xs = GetControl(L"html_detail");
 						xs.SetContent(makeHtml(1));
-						xstring id = g_xdoc_product.getData(0, L"data/Item", 1, L"@guid");
+						xstring id = dw_list.GetItemString(1, L"@guid");
 						OnShowImage(id);
 					}
 					else
 					{
-						im.ResetEx();
+						im.Reset();
 						im.Redraw();
 
 						xs = GetControl(L"html_detail");
@@ -1232,16 +1243,17 @@
 				}
 			}
 			impStr = L"";
+			return 1;
 		}
 
-		int OnTreeSelChanged(ref TNotifyEvent evt, int p)
+		int OnTreeSelChanged(TEvent* evt, int p)
 		{
-			ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
-			int hItem = nmtv.itemNew.hItem;
+			NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+			HTREEITEM hItem = nmtv.itemNew.hItem;
 			return RetrieveItem(hItem);
 		}
 
-		int  ExpandChildFolder(int hItem, KXMLDOMElement pElement)
+		int  ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement)
 		{
 			KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
 			int len = nlist.length();
@@ -1252,7 +1264,7 @@
 				xstring sImage = e.getAttribute(L"image");
 				int image = 15;
 				//if(sImage) image = sImage.toInt();
-				int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image);
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
 				tv_folder.SetItemChild(h, 1);
 				ExpandChildFolder(h, e);
 			}
@@ -1267,9 +1279,9 @@
 			return 1;
 		}
 
-		int OnDwClicked(ref TNotifyEvent evt, int p)
+		int OnDwClicked(TEvent* evt, int p)
 		{
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
 			char ch;
 			int row = hdr.row;
 			xstring col = hdr.colname;
@@ -1293,13 +1305,13 @@
 			return 1;
 		}
 
-		int OnDwcClicked(ref TNotifyEvent evt, int p)
+		int OnDwcClicked(TEvent* evt, int p)
 		{
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
 			char ch;
 			int row = hdr.row;
 			xstring col = hdr.colname;
-			xstring str = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SOLineID");
+			xstring str = dwc_list.GetItemString(row, L"SOLineID");
 			if (str != L"")
 				str = L"sl:" + str;
 			else if (dwc_list.GetItemString(row, L"SKUNo") != L"")
@@ -1320,15 +1332,16 @@
 			return 1;
 		}
 
-		int OnDwcDoubleClicked(ref TNotifyEvent evt, int p)
+		int OnDwcDoubleClicked(TEvent* evt, int p)
 		{
+			
 
-			int hCursor = xutil::SetCursorWait();
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
+			HCURSOR hCursor = xutil::SetCursorWait();
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
 			int row = hdr.row;
 			xstring ls_nos = L"ImportXml:";
-			xstring str = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SOLineID");
-			xstring str1 = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"EnquiryPriceListID");
+			xstring str = dwc_list.GetItemString(row, L"SOLineID");
+			xstring str1 = dwc_list.GetItemString(row, L"EnquiryPriceListID");
 			if (str1 != L"")
 				str += L"el:" + str1;
 			else if (str != L"")
@@ -1344,21 +1357,21 @@
 			dw_list.Redraw();
 			dwc_list.Redraw();
 			impStr = L"";
-			SendMessage(hObject, 0x401, ls_nos, 0);
+			SendMessage(hObject, 0x401, (LPARAM)ls_nos.c_str(), 0);
 			xutil::RestoreCursor(hCursor);
 			CloseWindow();
 			return 1;
 		}
-		int OnDwDoubleClicked(ref TNotifyEvent evt, int p)
+		int OnDwDoubleClicked(TEvent* evt, int p)
 		{
-			int hCursor = xutil::SetCursorWait();
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
+			HCURSOR hCursor = xutil::SetCursorWait();
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
 			int row = hdr.row;
 			if (row > 0)
 			{
 				if (dw_list.GetItemString(row, L"pic") != L"*")
 				{
-					alert(L"第" + row.toString() + L"行请增加产品图片!");
+					alert(L"第" + xstring(row) + L"行请增加产品图片!");
 					return 1;
 				}
 			}
@@ -1374,7 +1387,7 @@
 			dw_list.Redraw();
 			dwc_list.Redraw();
 			impStr = L"";
-			SendMessage(hObject, 0x401, ls_nos, 0);
+			SendMessage(hObject, 0x401, (LPARAM)ls_nos.c_str(), 0);
 			xutil::RestoreCursor(hCursor);
 			CloseWindow();
 			return 1;
@@ -1383,59 +1396,51 @@
 		int OnAttachEvent()
 		{
 			//绑定工具条点击事件
-			AttachEvent(L"WM_XCOMMAND", (FEvent)&BasicFareList::OnXCommand);
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&EntityProductSelectWin::OnXCommand);
 			//获取焦点事件,用于重置工具条
-			AttachEvent(L"WM_SETFOCUS", (FEvent)&BasicFareList::OnSetFocus);
-			AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BasicFareList::OnRowChanged);
-			AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BasicFareList::OnGoodsCarRowChanged);
-			AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&BasicFareList::OnTreeExpanding);
-			AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&BasicFareList::OnTreeSelChanged);
-			AttachEvent(L"WM_COMMAND", (FEvent)&BasicFareList::OnCkbCLick);	//checkbox打钩事件
-			AttachEvent(L"WM_COMMAND", (FEvent)&BasicFareList::OnCkbCLick2);	//checkbox打钩事件	
+			AttachEvent(L"WM_SETFOCUS", (FEvent)&EntityProductSelectWin::OnSetFocus);
+			AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&EntityProductSelectWin::OnRowChanged);
+			AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&EntityProductSelectWin::OnGoodsCarRowChanged);
+			AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&EntityProductSelectWin::OnTreeExpanding);
+			AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&EntityProductSelectWin::OnTreeSelChanged);
+			AttachEvent(L"WM_COMMAND", (FEvent)&EntityProductSelectWin::OnCkbCLick);	//checkbox打钩事件
+			AttachEvent(L"WM_COMMAND", (FEvent)&EntityProductSelectWin::OnCkbCLick2);	//checkbox打钩事件	
 
-			AttachEvent(L"dwc_list", L"DWV_DOUBLECLICKED", (FEvent)&BasicFareList::OnDwcDoubleClicked);
-			AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&BasicFareList::OnDwDoubleClicked);
+			AttachEvent(L"dwc_list", L"DWV_DOUBLECLICKED", (FEvent)&EntityProductSelectWin::OnDwcDoubleClicked);
+			AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&EntityProductSelectWin::OnDwDoubleClicked);
 
-			AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&BasicFareList::OnDwClicked);
-			AttachEvent(L"dwc_list", L"DWV_CLICKED", (FEvent)&BasicFareList::OnDwcClicked);
+			AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&EntityProductSelectWin::OnDwClicked);
+			AttachEvent(L"dwc_list", L"DWV_CLICKED", (FEvent)&EntityProductSelectWin::OnDwcClicked);
+			return 1;
 		}
 
 		int onload()
 		{
+			SetArg();
 			agentFor = L"goodslib";
 			impStr = L"";
 
 			OnAttachEvent();
-			imageElement = 0;
+			//imageElement = 0;
 
 			tv_folder = GetControl(L"tv_folder");
 			dw_list = GetControl(L"dw_list");
 			dwc_list = GetControl(L"dwc_list");
 
-			xaserverarg arg = GetParam();
+			xaserverarg arg = GetArg();
 			CustomerID = L"";
 			SupplierID = L"";
 			m_customer = L"";
 			hObject = 0;
 			if (arg)
 			{
-				hObject = arg.GetArgString(L"HWND").toInt();
+				hObject = (HWND)arg.GetParam(L"HWND");
 				CustomerID = arg.GetArgString(L"CustomerID");
 				CustomerID = arg.GetArgString(L"SupplierID");
 			}
 			InitialFolder();
 
-			g_xdoc_product = new xdataset;
-			g_xdoc_product.Init();
-			xbind bindproduct = new xbind;
-			bindproduct.bindEx(dw_list, g_xdoc_product, L"");
-
-			g_xdoc_shoppingcart = new xdataset;
-			g_xdoc_shoppingcart.Init();
-
-			xbind bindcart = new xbind;
-			bindcart.bindEx(dwc_list, g_xdoc_shoppingcart, L"");
-
+			
 			dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L""));
 			dw_list = GetControl(L"dw_list");
 			dw_list.SetReadOnly(true);
@@ -1447,15 +1452,21 @@
 
 			if (dw_list.GetRowCount())
 			{
-				htmlctrl xs = GetControl(L"html_detail");
+				xshtml xs = GetControl(L"html_detail");
 				xs.SetContent(makeHtml(1));
 			}
 
+			tv_folder.ExpandItem(tv_folder.GetNextItem(tv_folder.GetRootItem()));
+			tv_folder.ExpandItem(tv_folder.GetNextItem(tv_folder.GetNextItem(tv_folder.GetRootItem())));
+#if 0
 			xtreeview::ExpandItem(tv_folder.GetId(),
 				xtreeview::GetNextItem(tv_folder.GetId(), xtreeview::GetRootItem(tv_folder.GetId())));
 			xtreeview::ExpandItem(tv_folder.GetId(),
 				xtreeview::GetNextItem(tv_folder.GetId(), xtreeview::GetNextItem(tv_folder.GetId(), xtreeview::GetRootItem(tv_folder.GetId()))));
 
+#endif // 0
+
+			
 			dw_list.SetSelectionMode(3);
 			dwc_list.SetSelectionMode(3);
 
@@ -1468,5 +1479,4 @@
 
 			return 1;
 		}
-	};
-]
\ No newline at end of file
+	};
\ No newline at end of file

--
Gitblit v1.9.3