From a6b54d999992d72b2d9ea33efec0b7d642ea9f2d Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期四, 18 七月 2024 12:21:12 +0800
Subject: [PATCH] update

---
 jrj/project/business/Enquiry/Entity.Product.Select.cpp | 1910 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 1,424 insertions(+), 486 deletions(-)

diff --git a/jrj/project/business/Enquiry/Entity.Product.Select.cpp b/jrj/project/business/Enquiry/Entity.Product.Select.cpp
index 6c3d5bb..b160594 100644
--- a/jrj/project/business/Enquiry/Entity.Product.Select.cpp
+++ b/jrj/project/business/Enquiry/Entity.Product.Select.cpp
@@ -1,542 +1,1480 @@
 #include <wobject/xstring.hpp>
 #include <xcontrol/xtreeview.hpp>
 #include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdatetimepick.hpp>
+#include <xcontrol/ximageview.hpp>
+#include "xcontrol/xcheckbox.hpp"
+#include "xcontrol/xshtml.hpp"
 
 #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
 #include "viewobject/view.base.hpp"
+#include "viewobject/shoppingcart.view.hpp"
+#include "viewobject/productlibrary.view.hpp"
 
 using xml = KXMLDOMDocument;
-class __declspec(dllexport) listSupplierv3 : public listwin
-{
-public:
-	xdwgrid dw_goods;
-	xtreeview tv_1;
-	xcombobox ddlb_1;
-	int	changeddlb;
-	xstring TypeWork;
-	xstring GoodsUrl;
-	xstring m_sType; //type
-	xstring m_sTypeTxt; //选中树的data
-	//	xstring m_searchtxt;
-	int PIndex;
-	xnode	m_agentNode;	//Agent Condition
-	xstring	m_agentCond;	//Agent Node
-
-public:
-	listSupplierv3(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
-public:
-	static listSupplierv3* CreateInstance(void* implPtr, void* hWnd)
+	class __declspec(dllexport) EntityProductSelectWin : public xwin
 	{
-		listSupplierv3* pWin = new listSupplierv3(implPtr, (HWND)hWnd);
-		return pWin;
-	}
-	int OnRetrieve()
-	{
-		xml x;
+	public:
+		HWND hObject = 0;
+		xstring CustomerID;
+		xstring SupplierID;
+		xstring m_customer;
 
-		xaserverarg arg;
-		arg.AddArg(L"pageindex", xstring(PIndex)); //第几页
-		arg.AddArg(L"pagenumber", xstring(listwin::m_pageNumber)); //每页数量
-		arg.AddArg(L"QueryTxt", listwin::m_QueryTxt);
-		arg.AddArg(L"sType", m_sType);
-		arg.AddArg(L"sTypeTxt", m_sTypeTxt);
-		trace(arg.GetString());
-		//alert(L"xxxx");
-		if (getUrl(GetServerUrl(), L"/sale/data/" + GetEntityName(1) + L"/entity/list", arg.GetString(), x) != 1)
+		//产品库产品列表
+		xdwgrid	dw_list;
+		//购物车产品列表
+		xdwgrid	dwc_list;
+
+		//产品缓存对象
+		xdataset g_xdoc_product;
+		xdataset g_xdoc_shoppingcart;
+
+		xcombobox  cbx_goodscar;
+		//是否多选
+
+		xnode	m_agentNode;	//Agent Condition
+		xtreeview tv_folder;
+		xstring 	agentFor;
+		KXMLDOMElement imageElement;
+
+		xstring	impStr;
+		xstring tname;
+	public:
+		EntityProductSelectWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+	public:
+		static EntityProductSelectWin* CreateInstance(void* implPtr, void* hWnd)
 		{
-			return -1;
+			EntityProductSelectWin* pWin = new EntityProductSelectWin(implPtr, (HWND)hWnd);
+			return pWin;
 		}
-		else
+		int FillGoodsCarList()
 		{
-			KXMLDOMElement e = x.documentElement();
-			if (listwin::dw_pages && e.selectSingleNode(L"@TotalPage"))
-			{
-				xstring s = e.selectSingleNode(L"@TotalPage").text(); //总数量				
-				listwin::dw_pages.SetMaxPage(s.toInt());
-			}
-			//alert(x.GetXml());
-			dw_list.Retrieve(x);
-			dw_list.Redraw();
-			dw_list.SetReadOnly(true);
-		}
-		return 1;
-	}
+			xcombobox xc = GetControl(L"frame:cbx_goodscar");
+			if (!xc) return 0;
+			xml  x = ShoppingCartView::GetRoleList(CustomerID);
+			if (!x) return 0;
+			xc.SetText(L"==选择购物车==L");
 
-	int SetEntityData(xaserverarg arg)
-	{
-		xstring strQueryTxt = arg.GetArgString(L"QueryTxt");
-		xml x;
-
-		arg.AddArg(L"sType", m_sType);
-		arg.AddArg(L"sTypeTxt", m_sTypeTxt);
-		trace(arg.GetString());
-		if (getUrl(GetServerUrl(), L"/sale/data/" + GetEntityName(1) + L"/entity/list", arg.GetString(), x) != 1)
-		{
-			alert(x.text());
-
-			return -1;
-		}
-		else
-		{
-			KXMLDOMElement e = x.documentElement();
-			if (listwin::dw_pages && e.selectSingleNode(L"@TotalPage"))
-			{
-
-				xstring s = e.selectSingleNode(L"@TotalPage").text(); //总数量				
-				listwin::dw_pages.SetMaxPage(s.toInt());
-			}
-			//trace(x.GetXml());
-			listwin::dw_list.Retrieve(x);
-			listwin::dw_list.Redraw();
-			listwin::dw_list.SetReadOnly(true);
-		}
-
-		return 1;
-	}
-
-	int OnChangePages(TEvent* evt, LPARAM p)
-	{
-		PAGENMHDR* h = (PAGENMHDR*)evt->notify.pnmh;
-		int c = h->cur;
-
-
-		HCURSOR hCursor = xutil::SetCursorWait();
-		OnRetrieve();
-		PIndex = c;
-		xutil::RestoreCursor(hCursor);
-		return 1;
-
-
-	}
-
-	int ViewUpdate(int pr, xstring updateItem, xaserverarg  arg)
-	{
-		if (updateItem == L"refresh")
-		{
-			//trace(L"sd");
-			xdwpages zz = GetControl(L"pages");
-			int h = zz.SetCurPage(1);
-			//trace(h);
-			OnRetrieve();
-		}
-		return 1;
-	}
-
-	//树选择
-	int OnTreeSelChanged(TEvent evt, LPARAM p)
-	{
-		if (changeddlb != 1)
-		{
-			//alert(L"1");
-
-			HTREEITEM h = tv_1.GetSelectedItem();
-			KXMLDOMElement& e = *(KXMLDOMElement*)tv_1.GetItemData(h);
-
-			xstring t = e.selectSingleNode(L"@type").text();
-			m_sType = t + L"";
-			xstring txt = e.selectSingleNode(L"@code").text();
-			if (txt == L"")
-				txt = e.selectSingleNode(L"@name").text();
-			m_sTypeTxt = txt + L"";
-
-			//alert(m_sTypeTxt);
-
-			PIndex = 1;
-			OnRetrieve();
-		}
-		return 1;
-	}
-
-	int createSubTree(HTREEITEM h, KXMLDOMElement ele)
-	{
-		KXMLDOMNodeList nlist = ele.selectNodes(L"item");
-		int i;
-		int s = nlist.length();
-		if (s > 0)
-			for (i = 0; i < s; i++)
-			{
-
-				KXMLDOMElement* e = new KXMLDOMElement(nlist.item(i));
-				xstring name = e->selectSingleNode(L"@name").text();
-				HTREEITEM hw = tv_1.InsertChildItem(h, name, (LPARAM)e, 15);
-				createSubTree(hw, *e);
-			}
-		return 1;
-	}
-
-	int OnCreateTree(xstring sType)
-	{
-
-		while (tv_1.GetRootItem())
-			tv_1.DeleteItem(tv_1.GetRootItem());
-
-		xml x;
-
-		xaserverarg arg;
-
-		arg.AddArg(L"sType", sType);
-		//Tree.pref.supplier.xq
-		//getUrl(GetEntityName(1)+L"/entity/list",arg.GetString(),x);
-		//if (xaserver::ExecXQuery(GetServerUrl(),L"[Tree.pref.supplier.xq]",arg.GetString(),x)!=1)
-		if (getUrl(GetServerUrl(), L"/sale/data/" + GetEntityName(1) + L"/pref/list/tree", arg.GetString(), x) != 1)
-		{
-			trace(x.text());
-			return -1;
-		}
-		else
-		{
-			KXMLDOMNodeList nlist = x.selectNodes(L"root/item");
+			KXMLDOMNodeList nlist = x.selectNodes(L"//item");
 			int len = nlist.length();
-			if (len > 0)
+			for (int i = 0; i < len; i++)
 			{
-				int i;
-				for (i = 0; i < len; i++)
-				{
-
-					KXMLDOMElement* e = new KXMLDOMElement(nlist.item(i));
-					xstring name = e->selectSingleNode(L"@name").text();
-					HTREEITEM hw = tv_1.InsertChildItem(0, name, (LPARAM)e, 15);
-
-					createSubTree(hw, *e);
-					tv_1.ExpandItem(hw);
-				}
-				tv_1.ExpandItem(0);
+				KXMLDOMElement e = nlist.item(i);
+				xstring name = e.getAttribute(L"name");
+				xcombobox::AddItem(xc.GetHWND(), name);
 			}
+			return 1;
 		}
 
-		return 1;
-	}
+		int SetAgent()
+		{
+			xstring xfNodeAgentArea = L"agentarea";
+			xnode anode = GetAgentNode(xfNodeAgentArea);
+			if (m_agentNode)
+			{
+				SetAgentNode(anode, m_agentNode);
+			}
+			else
+			{
+				KXMLDOMElement xframeElement = GetElement();
+				KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+				if (agent)
+				{
+					xstring s = agent.xml();
+					m_agentNode = SetAgentNode(anode, s);
+				}
+			}
+			return 1;
+		}
 
-	//xcombobox下拉
-	int OnSelectDdlb(TEvent evt, LPARAM p)
-	{
-		changeddlb = 1;
+		//焦点激活处理函数
+		int OnSetFocus(TEvent* evt, LPARAM param)
+		{
+			//重置工具条
+			SetAgent();
+			return 1;
+		}
 
-		int CB_GETCURSEL = 0x0147;
-		int nIndex = SendMessageW(ddlb_1.GetHWND(), CB_GETCURSEL, 0, 0);
-		KXMLDOMElement e = ddlb_1.GetElement();//GetitemData(wid,nIndex);//ddlb_1.GetElement();
-		KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring((nIndex + 1)) + L"]");
-		xstring text = e2.selectSingleNode(L"@element").text();
-		OnCreateTree(text);
-		changeddlb = 0;
-		return 1;
-	}
+		KXMLDOMElement OnGetCarListRowElement(int row = 0)
+		{
+			if (row < 1) row = dwc_list.GetRow();
+			if (row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement();
+			KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row);
+			return e;
+		}
 
-	int OnDeleteRow()
-	{
-		int row = listwin::dw_list.GetNextSelectRow(1);
-		if (row < 1) {
-			row = listwin::dw_list.GetRow();
-			if (row < 1) {
-				//win::MessageBox(GetHWND(),L"请选中要删除的行!",L"提示",0);
+		int OnShowImage(xstring skuid)
+		{
+			ximageview im = GetControl(L"im1");
+			//im.RemoveImage();
+			im.Reset();
+
+			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)
+			{
+				trace(L"error:" + xstring(xp.xml(), true));
+			}
+			else
+			{
+				//trace(skuid+L" "+xp.xml());
+				imageElement = xp.documentElement();
+				KXMLDOMNodeList  nlistp = xp.selectNodes(L"ImageList/image");
+				int lenp = nlistp.length();
+				for (int ip = 0; ip < lenp; ip++)
+				{
+					KXMLDOMElement xitem = nlistp.item(ip);
+					xstring picname = xitem.selectSingleNode(L"PicPath").text();
+					xstring goodno = xitem.selectSingleNode(L"GoodsNo").text();
+					if (picname == L"/business/products/Thumbs//")
+						picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
+					im.AddImages(picname, L"");
+				}
+				im.Redraw();
+				//SendMessage(im.GetId(),0x000f,0,1);
+				//InvalidateRect(im.GetId(),cast(0 as ref xrect),true);
+			}
+			return 1;
+		}
+
+		int OnShowImage(xstring skuid, xstring customerItemNo)
+		{
+			ximageview im = GetControl(L"im1");
+			//im.RemoveImage();
+			im.Reset();
+
+			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);
+
+			if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1)
+			{
+				trace(L"error:" + xstring(xp.xml(), true));
+			}
+			else
+			{
+				imageElement = xp.documentElement();
+				KXMLDOMNodeList  nlistp = xp.selectNodes(L"ImageList/image");
+				int lenp = nlistp.length();
+				for (int ip = 0; ip < lenp; ip++)
+				{
+					KXMLDOMElement xitem = nlistp.item(ip);
+					xstring picname = xitem.selectSingleNode(L"PicPath").text();
+					xstring goodno = xitem.selectSingleNode(L"GoodsNo").text();
+					if (picname == L"/business/products/Thumbs//")
+						picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
+					im.AddImages(picname, L"");
+				}
+				im.Redraw();
+			}
+			return 1;
+		}
+
+		int OnRowChanged(TEvent* evt, int p)
+		{
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			int row = hdr.row;
+
+			xshtml xs = GetControl(L"html_detail");
+			xstring html = makeHtml(row);
+			xs.SetContent(html);
+			xs.Redraw();
+
+			xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid");
+			OnShowImage(id);
+
+			return 1;
+		}
+
+		int OnGoodsCarRowChanged(TEvent* evt, int p)
+		{
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			int row = hdr.row;
+
+			xshtml xs = GetControl(L"html_detail");
+			xstring html = makeGoodscarHtml(row);
+			xs.SetContent(html);
+			xs.Redraw();
+			xstring id = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID");
+			if (m_customer != L"")
+			{
+				xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+				OnShowImage(id, customerItemNo);
+			}
+			else
+			{
+				OnShowImage(id);
+			}
+
+			return 1;
+		}
+
+		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");
+
+			if (ProductLibraryView::DeleteItem(id) == 1)	dw_list.DeleteRow(0);
+			return 1;
+		}
+
+		int SetSelectState(xdwgrid dw_obj, int state)
+		{
+			dw_obj.SetSelectionMode(3);
+			return 1;
+		}
+
+		int OnCkbCLick(TEvent* evt, int p)
+		{
+			xcheckbox cbx_1 = GetControl(L"frame:cbx1");
+			int state = cbx_1.GetCheck();
+			return SetSelectState(dw_list, state);
+		}
+
+		int OnCkbCLick2(TEvent* evt, int p)
+		{
+			xcheckbox cbx_2 = GetControl(L"frame:cbx2");
+			int state = cbx_2.GetCheck();
+			return SetSelectState(dwc_list, state);
+		}
+
+		xml  GetGoodsPropList(xstring guid)
+		{
+			xml x ;
+			
+			xaserverarg arg;
+			
+			arg.AddArg(L"guid", guid);
+			if (xurl::get(L"/sale/data/SO/goods/goodsprop/list", arg.GetString(), x) != 1)
+			{
+				xstring error = x.text();
+				alert(error);
+			}
+			return x;
+		}
+
+
+
+		xstring Up(xstring name) {
+			xstring str = name.mid(0, 2);
+			str = str.toUpper();
+			return xaserver::UploadFile(L"product" + str, name + L".jpg",GetHWND(), L"", false);
+		}
+
+		int OnAddImage() {
+			if (m_customer != L"") return OnAddImageEx();
+			int row = dw_list.GetNextSelectRow(1);
+			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");
+			xstring id = ViewObject::GetGuid();
+			xstring ret1 = Up(id);
+			if (ret1 == L"-1") return -1;
+			if (ret1 == L"0")
+			{
+				alert(L"上传图片失败");
 				return -1;
 			}
-		}
-
-		KXMLDOMElement e = listwin::dw_list.GetRowElement(row);
-		//xstring sguid = e.SelectSingleNode(L"@guid").text;
-		//xstring sName = e.selectSingleNode(L"Name").text+L"";
-		xstring sguid = dw_list.GetItemString(dw_list.GetRow(), L"SupplierID");
-		xstring sName = dw_list.GetItemString(dw_list.GetRow(), L"Name");
-		int  MB_YESNO = 0x00000004;
-		int  IDYES = 6;
-		if (MessageBoxW(GetHWND(), L"确认要删除供应商 " + sName + L" 的信息吗?", L"提示", MB_YESNO) != IDYES) return 1;
-		xml x;
-
-		xaserverarg arg;
-		arg.setNativePointer(arg.CreateInstance());
-		arg.AddArg(L"guid", sguid);
-		arg.AddArg(L"EntityID", sguid);
-		//	trace(sguid);
-		if (xurl::post(GetServerUrl(), L"/sale/data/" + GetEntityName(1) + L"/entity/delete", arg.GetString(), x) != 1)
-		{
-			xstring error = x.text();
-			trace(error);
-		}
-		else
-		{
-			KXMLDOMElement msg = x.selectNodes(L"process").item(0);
-			xstring success = msg.selectSingleNode(L"@finished").text();
-			if (success == L"0")
-			{
-				alert(msg.selectSingleNode(L"@errInfo").text());
-			}
+			xstring originfile = ret1;
+			//alert(originfile);
+			xstring ext = originfile.right(7);
+			if (ext.find(L".") >= 0)
+				ext = ext.mid(ext.find(L".") + 1, 9999);
 			else
+				ext = L"jpg";
+
+			// 图片名加入数据库
+			xml x ;
+			
+			x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
+				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());
+			if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
 			{
-				MessageBoxW(GetHWND(), L"删除成功!", L"提示", 0);
-				listwin::dw_list.DeleteRow(row);
+				alert(x.text());
+				return -1;
 			}
+			dw_list.SetItemString(row, L"pic", L"*");
+			dw_list.Redraw();
+			//刷新一下界面,显示图片
+			OnShowImage(skuid);
+			return 1;
 		}
-		return 1;
-	}
 
-	int OnRowChangedEx(TEvent* evt, LPARAM p)
-	{
-		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
-		int row = hdr.row;
-		//if(row < 1 or row > dw_list.GetRowCount()) return 1;
-		KXMLDOMElement ele = listwin::dw_list.GetRowElement(row);
-		xstring entity = ele.selectSingleNode(L"SupplierID").text();
-		xml x;
+		int OnAddImageEx() {
+			int row = dwc_list.GetNextSelectRow(1);
+			if (row < 1) row = dwc_list.GetRow();
+			if (row < 1 || row > dwc_list.GetRowCount()) return 0;
 
-		xaserverarg arg;
-		arg.setNativePointer(arg.CreateInstance());
-		arg.AddArg(L"EntityID", entity);
-
-
-		xstring no1 = publiccode::GetUser().no;
-		if (no1 != L"00201")
-		{
-
-			if (TypeWork.find(L"采购") >= 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");
+			CustomerID = m_customer;
+			xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+			xstring id = ViewObject::GetGuid();
+			xstring ret1 = Up(id);
+			if (ret1 == L"-1") return -1;
+			if (ret1 == L"0")
 			{
-				GoodsUrl = L"/sale/data/SupplierV3/entity/supplieritemEx";
+				alert(L"上传图片失败");
+				return -1;
 			}
+			xstring originfile = ret1;
+			xstring ext = originfile.right(7);
+			if (ext.find(L".") >= 0)
+				ext = ext.mid(ext.find(L".") + 1, 9999);
 			else
+				ext = L"jpg";
+
+			// 图片名加入数据库
+			xml x ;
+			
+			x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
+				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;
+			
+			arg.AddArg(L"content", x.xml());
+			if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
 			{
-				GoodsUrl = L"/sale/data/SupplierV3/entity/supplieritem";
+				alert(x.text());
+				return -1;
 			}
-		}
-		else
-		{
-			GoodsUrl = L"/sale/data/SupplierV3/entity/supplieritem";
-		}
-		if (getUrl(GetServerUrl(), GoodsUrl, arg.GetString(), x) != 1)
-		{
-			trace(x.text());
-			return -1;
-		}
-		else
-		{
-			dw_goods.Retrieve(x);
-			dw_goods.Redraw();
-			dw_goods.SetReadOnly(true);
-		}
-		SetAgent(L"list", entity);
-		return 1;
-	}
-
-	int GridSearch()
-	{
-		//alert(L"你好");
-#if 0
-
-		xstring m_config = L"view.Supplier.v3.config";
-		xdwgrid dw = listwin::dw_list;
-		xaserverarg& arg = *new xaserverarg;
-		arg.setNativePointer(arg.CreateInstance());
-		xstring str = TFile::node(m_config, L"config", L"search");
-		if (str != L"") {
-			arg.AddArg(L"sheet", str);
-		}
-		else
-			arg.AddArg(L"sheet", L"dev:sheet[Supplier.v3.tpl/list]");
-		arg.AddArg(L"search", listwin::m_QueryTxt);
-		openUrl(L"view.dlg.vface/xpage/grid/column/search", &arg);
-		xstring ok = arg.GetArgString(L"return");
-		if (ok == L"ok") {
-			xstring txt = arg.GetArgString(L"search");
-			if (txt != L"") {
-				listwin::m_QueryTxt = txt;
-				//trace(txt);
-				OnRetrieve();
-			}
-		}
-#endif 
-		return 0;
-	}
-
-	int OnSelectAllRow()
-	{
-		int rows = listwin::dw_list.GetRowCount();
-		if (rows < 1) return -1;
-		listwin::dw_list.SelectRow(1, rows, true);
-		listwin::dw_list.Redraw();
-		return 1;
-	}
-
-	int OnRClick(TEvent evt, LPARAM p)
-	{
-		return 1;
-	}
-	int OnLogOff()
-	{
-		return 1;
-	}
-	int OnChecked()
-	{
-		xstring partyno = dw_list.GetItemString(dw_list.GetRow(), L"PartyNo");
-		if (partyno.find(L"N") < 0)
-		{
-			alert(L"已经是正式供应商");
-			return 0;
-		}
-		xstring entityid = GetEntityID(dw_list.GetRow());
-		int MB_OKCANCEL = 1;
-		int IDOK = 1;
-		int ret = MessageBoxW(GetHWND(), L"是否转成正式供应商?", L"提示", MB_OKCANCEL);
-		if (ret == IDOK)
-		{
-			xml x = ViewObject::RetrieveData(GetServerUrl(), L"/sale/data/SupplierV3/entity/updateno", L"entityid", entityid);
-
-			if (xstring(x.xml()).find(L"success") > 0)
-			{
-				alert(L"处理成功");
-				OnRetrieve();
-			}
-		}
-		return 1;
-	}
-	int PreOnCmdDispatch(xstring comdid)
-	{
-		//alert(comdid);
-
-		if (comdid.find(L"action:LogOff", 0) >= 0) return OnLogOff();
-		if (comdid.find(L"action:bill.delete", 0) >= 0)
-		{
-			OnDeleteRow();
-			return 0;
-		}
-		if (comdid == L"action:search1") return GridSearch();
-		if (comdid == L"action:bill.refresh")
-		{
-			return OnRetrieve();
-		}
-		if (comdid == L"action:bill.xmSaveAs")
-		{
-			xstring  userno = publiccode::GetUser().no;
-			if (userno == L"00701" || userno == L"00601" || userno == L"admin")
-			{
-				dw_list.SaveAs(L"");
-			}
+			dwc_list.SetItemString(row, L"pic", L"*");
+			dwc_list.Redraw();
+			//刷新一下界面,显示图片
+			OnShowImage(skuid, CustomerItemNo);
 			return 1;
 		}
-		if (comdid == L"action:bill.Annex")
+
+		int OnDeleteImageEx()
 		{
-			xaserverarg& arg = *new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
-			arg.AddArg(L"entityid", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID"));
-			arg.AddArg(L"ApplyStatus", dw_list.GetItemString(dw_list.GetRow(), L"ApplyStatus"));
+			int row = dwc_list.GetNextSelectRow(1);
+			if (row < 1) row = dwc_list.GetRow();
+			if (row < 1 || row > dwc_list.GetRowCount()) return 0;
 
-			OpenWindow(L"dev:xpage[maint.Document.Supplier.v3.vx]", (LPARAM)&arg);
-			return 1;
-		}
-		if (comdid == L"action:bill.AnnexEx")
-		{
-			xaserverarg& arg4 = *new xaserverarg;
-			arg4.setNativePointer(arg4.CreateInstance());
-			arg4.AddArg(L"entityid", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID"));
-			//arg4.AddArg(L"ApplyStatus",dw_list.GetItemString(dw_list.GetRow(),L"ApplyStatus"));
+			ximageview im = GetControl(L"im1");
+			int index = im.GetSelectIndex();
+			int count = im.GetImageCount();
 
-			//OpenWindow(L"dev:xpage[maint.Document.Customer.v3.vx]", p4);
-			OpenWindow(L"dev:xpage[maint.Document.SupplierSD.v3.vx]", (LPARAM)&arg4);
-			return 1;
-		}
-		if (comdid == L"action:bill.checked")
-			return OnChecked();
-		//	if(comdid==L"action:bill.import") return OnImport();
-		//	if(comdid.find(L"action:",0)>=0) return ProcessFlowAction(comdid,1);					
-			//if(comdid==L"search") return GridSearch(L"view.dlg.vface/xpage/grid/column/edit");
-			//if(comdid==L"showall") 	return ShowAll();	
+			if (count < 1) return 1;
 
-		return 1;
-	}
+			KXMLDOMNodeList images = imageElement.selectNodes(L"image");
+			int length = images.length();
+			if (length < index) return 1;
 
+			int MB_OKCANCEL = 0x00000001;
+			int IDOK = 1;
+			if (MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1;
 
-	int PostOnAttachEvent()
-	{
-		//获得树的选择事件
-		AttachEvent(L"tv_1", L"TVN_SELCHANGED", (FEvent)&listSupplierv3::OnTreeSelChanged);
-		AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&listSupplierv3::OnSelectDdlb);
-		AttachEvent(L"pages", L"PAGE_CLICK", (FEvent)&listSupplierv3::OnChangePages);
-		AttachEvent(L"dw_list", L"DWV_RCLICKED", (FEvent)&listSupplierv3::OnRClick);//鼠标右键		
-		//AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&listSupplierv3::OnDoubleClicked);
+			xstring id = images.item(index).selectSingleNode(L"@guid").text();
 
-		return 1;
-	}
-
-	int onload()
-	{
-		PIndex = 1;
-		listwin::m_QueryTxt = L""; //查询条件
-		m_sType = L""; //type
-		m_sTypeTxt = L""; //选中树的data
-
-		listwin::onload();
-
-		tv_1 = GetControl(L"tv_1");
-		ddlb_1 = GetControl(L"cbx_1");
-
-		changeddlb = 0;
-		OnCreateTree(L"GoodsCates");
-		dw_list.SetColumnState(L"SupplierID", false);
-		dw_list.SetColumnState(L"userNo", false);
-		dw_list.SetColumnState(L"YearEstablished", false);
-		dw_list.SetColumnState(L"LegalPerson", false);
-		dw_list.SetColumnState(L"ThirdPartyReport", false);
-		dw_list.SetColumnState(L"bAddress", false);
-		dw_list.SetColumnState(L"PayType", false);
-		dw_list.SetColumnState(L"PicPath", false);
-		dw_list.SetColumnState(L"SDID", false);
-		dw_list.SetColumnState(L"AdvantageProduct", false);
-		//dw_list.SetColumnState(L"ApplyStatus",false);
-
-		dw_goods = GetControl(L"dw_goods");
-		dw_goods.openUrl(GetServerUrl(), L"/sale/view/SupplierV3/template/supplier/supplieritem");
-
-		if (publiccode::GetUser().name != L"admin")
-		{
-			xstring s = publiccode::GetUser().id;
-
-			xml supplier_x = ViewObject::RetrieveData(GetServerUrl(), L"/sale/data/SupplierV3/entity/FindBySaleType", L"id", s);
-			if (supplier_x)
+			xml x ;
+			
+			xaserverarg arg;
+			
+			xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
+			arg.AddArg(L"content", str);
+			if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
 			{
-				TypeWork = supplier_x.text();
+				alert(x.text());
+				return -1;
+			}
+			if (count == 1)
+			{
+				dwc_list.SetItemString(row, L"pic", L"");
+				dwc_list.Redraw();
+			}
 
-				if (TypeWork.find(L"采购") >= 0)
+			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");
+			CustomerID = m_customer;
+			xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo");
+			OnShowImage(skuid, CustomerItemNo);
+
+			return 1;
+		}
+
+		int OnDeleteImage() {
+			if (m_customer != L"") return OnDeleteImageEx();
+
+			int row = dw_list.GetNextSelectRow(1);
+			if (row < 1) row = dw_list.GetRow();
+			if (row < 1 || row > dw_list.GetRowCount()) return 0;
+
+			ximageview im = GetControl(L"im1");
+			int index = im.GetSelectIndex();
+			int count = im.GetImageCount();
+
+			if (count < 1) return 1;
+
+			KXMLDOMNodeList images = imageElement.selectNodes(L"image");
+			int length = images.length();
+			if (length < index) return 1;
+
+			int MB_OKCANCEL = 0x00000001;
+			int IDOK = 1;
+			if (MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1;
+
+			xstring id = images.item(index).selectSingleNode(L"@guid").text();
+
+			xml x ;
+			
+			xaserverarg arg;
+			
+			xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
+			arg.AddArg(L"content", str);
+			if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
+			{
+				alert(x.text());
+				return -1;
+			}
+			if (count == 1)
+			{
+				dw_list.SetItemString(row, L"pic", L"");
+				dw_list.Redraw();
+			}
+
+			KXMLDOMElement e1 = g_xdoc_product.getRowElement(L"data/Item", row);
+			xstring skuid = e1.getAttribute(L"guid");
+			OnShowImage(skuid);
+
+			return 1;
+		}
+
+		xml  GetGoodsPropListEx(xstring guid)
+		{
+			xml x ;
+			
+			xstring fields = L"<data>";
+
+			/*
+			fields +=L"<field name='HighestPrice' label='最高价'/>";
+			fields +=L"<field name='LowestPrice' label='最低价'/>";
+
+			fields +=L"<field name='BulkPrice' label='散货价'/>";
+			fields +=L"<field name='CardPrice' label='纸卡价'/>";
+			fields +=L"<field name='BuyPrice' label='采购价'/>";
+			fields +=L"<field name='SupplierID' label='货源'/>";
+			*/
+
+			fields += L"<field name='Packing' label='包装方式'/>";
+			fields += L"<field name='PackingRate' label='每箱数量'/>";
+			fields += L"<field name='VolumeDesc' label='包装尺码'/>";
+			fields += L"<field name='GWPerPkg' label='毛重'/>";
+			fields += L"<field name='NWPerPkg' label='净重'/>";
+			//fields +=L"<field name='DeveloperID' label='开发人员'/>";
+			fields += L"<field name='AttributeValue_1' label='产品属性'/>";
+			//fields +=L"<field name='Remark' label='备注'/>";
+
+			fields += L"</data>";
+			x.loadXML(fields);
+
+			return x;
+		}
+
+		xstring makeHtml(int row)
+		{
+			xstring id = g_xdoc_product.getData(0, L"data/Item", 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") +
+				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") +
+				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") +
+				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") +
+				L"</span></div>";
+
+			KXMLDOMNodeList fieldsEx = x1.selectNodes(L"data/field");
+			xstring ls_detail = L"";
+			xstring ls_item = L"";
+			xstring name;
+			xstring label;
+			int len = fieldsEx.length();
+			int i = 0;
+
+			for (i = 0; i < len; true)
+			{
+				int cnt = 0;
+				ls_item = L"";
+				while (cnt < 2)
+				{
+					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>";
+					cnt++;
+					i++;
+					if (i == len)break;
+				}
+				ls_detail += L"<tr>" + ls_item + L"</tr>";
+			}
+			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>"
+				+ L"</div>";
+
+			xstring ls_star = L"";
+			KXMLDOMNodeList fields = x.selectNodes(L"data/field");
+			len = fields.length();
+
+			ls_detail = L"";
+			if (len > 0)
+				html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >技术要求:</span></div>";
+			for (i = 0; i < len; true)
+			{
+				ls_item = L"";
+
+				int count = 0;
+				while (count < 2)
+				{
+					name = fields.item(i).selectSingleNode(L"@name").text();
+					label = fields.item(i).selectSingleNode(L"@label").text();
+
+					if (name == L"QualityTerm" || name == L"PackTerm" || label == L"质量" || label == L"包装质量" || label == L"技术要求")
+					{
+						i++;
+						if (i >= len)count = 2;
+						continue;
+					}
+					else if (g_xdoc_product.getData(0, L"data/Item", 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 (k > 0) terms += L", 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>";
+						count++;
+					}
+					i++;
+					if (i >= len)count = 2;
+				}
+				ls_item = L"<tr>" + ls_item + L"</tr>";
+				ls_detail += ls_item;
+			}
+
+			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>"
+				+ L"</div>";
+			if (dw_list.GetItemString(row, L"QualityTerm") != L"")
+			{
+				html += L"<div style='height:12px'/>";
+				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'  >" + dw_list.GetItemString(row, L"QualityTerm") + L"</span></div>";
+			}
+
+			if (dw_list.GetItemString(row, L"PackTerm") != L"")
+			{
+				html += L"<div style='height:12px'/>";
+				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' >" + 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")
+			{
+				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 style='height:24px'/>";
+
+			//星标项
+			html += ls_star;
+
+			//显示图片			
+			/*xstring picname = L"1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,L"ImgName"); //ItemID+L".jpg";
+			xstring str = picname.mid(0,2);
+			str = str.upper();
+			xstring serversrc =L"http://192.168.7.241:1001/business/products/chanpin/"+str+L"/"+picname;
+			html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >图片:</span>";
+			html +=  L"<control visible='layer' controlclass='ximage'  data='' src='"+ serversrc +L"'/></div>";
+			*/
+			html += L"</body></html>";
+			return html;
+		}
+
+		xstring makeGoodscarHtml(int row)
+		{
+			xstring No = dwc_list.GetItemString(row, L"RefNo");//获取属性值id					
+			xml x = GetGoodsPropList(No);
+
+			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") +
+				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") +
+				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") +
+				L"</span></div>";
+
+			KXMLDOMNodeList fields = x.selectNodes(L"data/field");
+			int len = fields.length();
+			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>";
+			for (int i = 0; i < len; i++)
+			{
+				xstring name = fields.item(i).selectSingleNode(L"@name").text();
+				xstring label = fields.item(i).selectSingleNode(L"@label").text();
+				html += L"<tr>";
+				if (i == 0)
+					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"</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"</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"</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"</tr>";
+
+			html += L"</table>";
+
+			html += L"</body></html>";
+			return html;
+		}
+
+		int OnImport()
+		{
+			if (!hObject) return 1;
+
+			int rw = 0;
+			xstring ls_nos = L"ImportXml:";
+
+			if (impStr == L"")
+			{
+				alert(L"请选择商品!");
+				return 1;
+			}
+			if (tname == L"已询价产品")
+			{
+				int row = dwc_list.GetNextSelectRow(1);
+				while (row > 0)
 				{
 
-					dw_list.SetColumnState(L"DateEx", false);
-					dw_list.SetColumnState(L"DateExS", false);
-					dw_list.SetColumnState(L"Name", false);
-					dw_list.SetColumnState(L"ProvinceCode", false);
-					dw_list.SetColumnState(L"City", false);
-					dw_list.SetColumnState(L"District", false);
-					dw_list.SetColumnState(L"Address", false);
-					dw_list.SetColumnState(L"CName", false);
-					dw_list.SetColumnState(L"TEL", false);
-					dw_list.SetColumnState(L"Mob", false);
-					dw_list.SetColumnState(L"AreaCode", false);
-					dw_list.SetColumnState(L"Fax", false);
-					dw_goods.SetColumnState(L"Price", false);
-					dw_goods.SetColumnState(L"PackRMBPrice", false);
-					dw_goods.SetColumnState(L"PartRMBPrice", false);
-					dw_goods.SetColumnState(L"PaperRMBPrice", false);
-					dw_goods.SetColumnState(L"ETD", false);
-					dw_goods.SetColumnState(L"InvoiceNo", false);
-
+					if (dwc_list.GetItemString(row, L"pic") != L"*")
+					{
+						alert(L"第" + xstring(row) + L"行请增加产品图片!");
+						return 1;
+					}
+					row = dwc_list.GetNextSelectRow(row + 1);
 				}
 			}
+			else {
+				int row = dw_list.GetNextSelectRow(1);
+				while (row > 0)
+				{
+					if (dw_list.GetItemString(row, L"pic") != L"*")
+					{
+						alert(L"第" + xstring(row) + L"行请增加产品图片!");
+						return 1;
+					}
+					row = dw_list.GetNextSelectRow(row + 1);
+				}
+			}
+			ls_nos += impStr;
 
+			dwc_list.SelectRow(0, false);
+			dwc_list.Redraw();
+			dw_list.SelectRow(0, false);
+			dw_list.Redraw();
+			impStr = L"";
+
+			SendMessage(hObject, 0x401, (LPARAM)ls_nos, 0);
+			alert(L"转入完成!");
+
+			return 1;
 		}
 
-		return 1;
-	}
+		int OnSearch()
+		{
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
+			return RetrieveItem(hItem);
+		}
 
-	int onloaded()
-	{
-		AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&listSupplierv3::OnRowChangedEx);
+		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");
 
-		listwin::onloaded();
-		xstring EntityID;
-		int row = dw_list.GetRow();
-		if (row<0 || row>dw_list.GetRowCount()) return 1;
-		KXMLDOMElement ele = dw_list.GetRowElement(row);
-		xstring id = listwin::m_configDoc.selectSingleNode(L"//entity/EntityID[1]").text();
-		if (ele.selectSingleNode(id))
-			EntityID = ele.selectSingleNode(id).text();
-		listwin::SetAgent(L"list", EntityID);
-		return 1;
-	}
+			if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0);
 
-};
\ No newline at end of file
+			return 1;
+		}
+
+		//命令发布函数
+		int OnCmdDispatch(xstring comdid)
+		{
+			int hCursor;
+			xstring name = L"";
+			if (comdid == L"xmClose")
+			{
+				CloseWindow();
+				return 1;
+			}
+			else if (comdid == L"xmImport")
+			{
+				OnImport();
+				return 1;
+			}
+			else if (comdid == L"xmSearch")
+			{
+				OnSearch();
+				return 1;
+			}
+			else if (comdid == L"xmAdd")
+			{
+				ItemAdd();
+				return 1;
+			}
+			else if (comdid == L"xmMaint")
+			{
+				ItemMaint();
+				return 1;
+			}
+			else if (comdid == L"xmDelete")
+			{
+				int row = dw_list.GetRow();
+				if (row < 1) return 1;
+				DeleteRow(row);
+
+				return 1;
+			}
+			else if (comdid == L"xmAddImage")
+			{
+				return OnAddImage();
+			}
+			else if (comdid == L"xmDeleteImage")
+			{
+				return OnDeleteImage();
+			}
+			return 0;
+		}
+
+		int ItemAdd()
+		{
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
+			HTREEITEM hTopItem = LookupTopFolder(hItem);
+			xstring name = tv_folder.GetItemLabel(hTopItem);
+
+			KXMLDOMElement e = tv_folder.GetItemData(hItem);
+			xstring guid = e.getAttribute(L"guid");
+			if (guid == L"") return 1;
+			xaserverarg arg;
+			
+			arg.AddArg(L"guid", e.getAttribute(L"guid"));
+			if (name == L"个人产品")
+				arg.AddArg(L"FolderID", e.getAttribute(L"guid"));
+			else
+				arg.AddArg(L"CategoryID", e.getAttribute(L"guid"));
+			xstring No = e.getAttribute(L"CategoryNo");
+			if (No == L"") No = e.getAttribute(L"no");
+			xstring Name = e.getAttribute(L"CName");
+			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);
+			if (arg.GetArgString(L"data.modify") == L"1")RetrieveItem(hItem);
+			return 1;
+		}
+
+		int ItemMaint()
+		{
+			HTREEITEM hItem = tv_folder.GetSelectedItem();
+			KXMLDOMElement e = tv_folder.GetItemData(hItem);
+			//xstring no = e.getAttribute(L"no");
+			//if(no==L"") return 1;
+			xstring guid = e.getAttribute(L"guid");
+			if (guid == L"") return 1;
+
+			/*
+			if(no==L"NP0000FS" || no==L"UP0000FS")
+			{
+				OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
+			}else
+			{
+				int pr = g_xdoc_product;
+				OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr);
+			}
+			*/
+			//KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1);
+			//alert(ele.xml);
+
+			int pr = g_xdoc_product;
+			OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr);
+
+			return 1;
+		}
+
+		//命令处理事件
+		int OnXCommand(TEvent* evt, LPARAM param)
+		{
+			return OnCmdDispatch(evt->xcommand.pStrID);
+		}
+
+		//查找当前树项的顶级目录
+		HTREEITEM LookupTopFolder(HTREEITEM hItem)
+		{
+			HTREEITEM hRoot = tv_folder.GetRootItem();
+			while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
+			return hItem;
+		}
+
+		//插入产品类项的子项
+		int MakeGoodsFolderItem(HTREEITEM hItem, xstring sno)
+		{
+			xml x = ProductLibraryView::GetTreeChildItems3(sno);
+			if (!x) return 0;
+
+			KXMLDOMNodeList nlist = x.selectNodes(L"//Item");
+			int len = nlist.length();
+			for (int i = 0; i < len; i++)
+			{
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"CName");
+				xstring no = e.getAttribute(L"CategoryNo");
+				xstring label = no.trim() + L" " + name;
+
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, label, (LPARAM)&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(HTREEITEM hItem, xstring sno)
+		{
+			xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
+			if (!x) return 0;
+
+			KXMLDOMNodeList nlist = x.selectNodes(L"//Item");
+			int len = nlist.length();
+			for (int i = 0; i < len; i++)
+			{
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"CName");
+				xstring no = e.getAttribute(L"CategoryNo");
+				xstring label = no.trim() + L" " + name;
+
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, label, (LPARAM)&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 ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
+		{
+			KXMLDOMNodeList nlist = ele.selectNodes(L"item");
+			int len = nlist.length();
+			if (len > 0) tv_folder.SetItemChild(hItem, 1);
+			for (int i = 0; i < len; i++)
+			{
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"name");
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image);
+				ExpandCatChildFolder(h, e, 35);
+			}
+			return 1;
+		}
+		int MakeGoodCarFolderItem(HTREEITEM hItem)
+		{
+			xml x = ShoppingCartView::GetRoleList();
+			if (!x) return 0;
+			KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
+			int len = nlist.length();
+			for (int i = 0; i < len; i++)
+			{
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"name");
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35);
+				ExpandCatChildFolder(h, e, 35);
+			}
+			return 1;
+		}
+
+		//树展开
+		int OnTreeExpanding(TEvent* evt, int p)
+		{
+			NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+			HTREEITEM hItem = nmtv.itemNew.hItem;
+			HTREEITEM hTopItem = LookupTopFolder(hItem);
+			xstring name = tv_folder.GetItemLabel(hTopItem);
+			HTREEITEM child = tv_folder.GetChildItem(hItem);
+			xstring no = L"";
+			KXMLDOMElement e;
+
+			if (name == L"公司库" && !child)
+			{
+				no = L"";
+				if (hTopItem != hItem)
+				{
+					e = tv_folder.GetItemData(hItem);
+					no = e.getAttribute(L"categoryid");
+				}
+				else
+				{
+					e = tv_folder.GetItemData(hItem);
+					no = e.getAttribute(L"categoryid");
+				}
+				MakeGoodsFolderItem(hItem, no);
+			}
+			else if (name == L"个人库" && !child)
+			{
+				no = L"";
+				if (hTopItem != hItem)
+				{
+					e = tv_folder.GetItemData(hItem);
+					no = e.getAttribute(L"categoryid");
+					MakeUserGoodsFolderItem(hItem, no);
+				}
+			}
+			else if (name == L"已询价产品" && !child)
+			{
+				if (hItem == hTopItem)MakeGoodCarFolderItem(hItem);
+			}
+			return 1;
+		}
+
+		int ResetAgent(xstring agentAsk)
+		{
+			if (agentFor != agentAsk)
+			{
+				agentFor = agentAsk;
+				m_agentNode = 0;
+				SetAgent();
+			}
+			return 1;
+		}
+
+		HTREEITEM LookupCustomerFolder(HTREEITEM hItem)
+		{
+			while (true)
+			{
+				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);
+				if (hItem == 0) break;
+			}
+			return 0;
+		}
+
+		xstring LookupCustomer(HTREEITEM hItem)
+		{
+			hItem = LookupCustomerFolder(hItem);
+			if (hItem == 0) return L"";
+			KXMLDOMElement& e1 = tv_folder.GetItemData(hItem);
+			xstring str = e1.getAttribute(L"no");
+			return str.mid(xstring(L"Customer:").length(), 9999);
+		}
+
+		HTREEITEM RetrieveItem(HTREEITEM 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"已询价产品";
+				selectname = L"已询价产品";
+			}
+			if (tname == L"已询价产品")
+			{
+				if (agentFor != L"goodscar")SwitchLayer(L"goodscarsheet", L"sheetframe");
+				ResetAgent(L"goodscar");
+				if (selectname != tname)
+				{
+					KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+					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);
+						if (str.find(L"Customer:") == 0)
+							dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodscustomerlist");
+						else
+							dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist");
+						dwc_list.Reset();
+						dwc_list.SetReadOnly(true);
+						if (queryString == L"")
+							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str));
+						else
+							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
+						if (str.find(L"Supplier:") == 0)
+						{
+							if (dwc_list.GetRowCount() > 0)
+							{
+								OnShowImage(dwc_list.GetItemString(1, L"SKUID"));
+							}
+						}
+					}
+					else if (e1.getAttribute(L"categoryid") != L"")
+					{
+
+						xstring categoryid = e1.getAttribute(L"categoryid");
+						dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid));
+						dwc_list.SetReadOnly(true);
+						dwc_list.Reset();
+						if (queryString == L"")
+							g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid));
+						else
+							g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, L""));
+					}
+					else
+					{
+						dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist");
+						dwc_list.SetReadOnly(true);
+						dwc_list.Reset();
+						if (queryString == L"")
+							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname));
+						else
+							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString));
+					}
+					dwc_list.PostRetrieve();
+					dwc_list.Redraw();
+
+					if (dwc_list.GetRowCount() >= 1)
+					{
+						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");
+							OnShowImage(skuid, customerItemNo);
+						}
+					}
+					else {
+						im.Reset();
+						im.Redraw();
+
+						xs = GetControl(L"html_detail");
+						xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
+					}
+					xs.Redraw();
+				}
+				else
+				{
+					if (queryString == L"")
+					{
+						return 0;
+					}
+					else
+					{
+						str = L"Supplier:All";
+						g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
+						dwc_list.PostRetrieve();
+						dwc_list.Redraw();
+					}
+				}
+			}
+			else
+			{
+				if (agentFor != L"goodslib")SwitchLayer(L"goodslibsheet", L"sheetframe");
+				if (tname == L"个人库")
+					ResetAgent(L"userlib");
+				else
+					ResetAgent(L"goodslib");
+				HCURSOR hCursor = xutil::SetCursorWait();
+				if (tname == L"个人库" || tname == L"公司库")
+				{
+					xstring no = L"N000005";
+					if (tname == L"个人库") no = L"U000005";
+					if (hItem != hTopItem)
+					{
+						KXMLDOMElement e = tv_folder.GetItemData(hItem);
+						no = e.getAttribute(L"guid");
+					}
+
+
+					dw_list = GetControl(L"dw_list");
+					dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no));
+					dw_list.Reset();
+					dw_list.SetReadOnly(true);
+					dw_list.SetColumnState(L"Submitter1", false);
+					dw_list.SetColumnState(L"HSCode", false);
+
+					xml x;
+					if (queryString == L"")
+					{
+						if (tname == L"个人库")
+							x = ProductLibraryView::GetMaintRoleList3(no);
+						else
+							x = ProductLibraryView::GetMaintList3(no);
+						if (x)
+						{
+							g_xdoc_product.Retrieve(x);
+							
+						}
+					}
+					else
+					{
+						if (tname == L"个人库")
+						{
+							x = ProductLibraryView::GetMaintRoleList3(no, queryString);
+						}
+						else
+						{
+							if (queryString != L"")
+							{
+								if (no == L"N000005")
+									x = ProductLibraryView::GetMaintList3(L"", queryString, L"");
+								else
+									x = ProductLibraryView::GetMaintList3(no, queryString, L"");
+							}
+							else
+								x = ProductLibraryView::GetMaintList3(no);
+						}
+						if (x)g_xdoc_product.Retrieve(x);
+					}
+					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");
+						OnShowImage(id);
+					}
+					else
+					{
+						im.Reset();
+						im.Redraw();
+
+						xs = GetControl(L"html_detail");
+						xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
+					}
+					xs.Redraw();
+					xutil::RestoreCursor(hCursor);
+				}
+			}
+			impStr = L"";
+		}
+
+		int OnTreeSelChanged(TEvent* evt, int p)
+		{
+			NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+			HTREEITEM hItem = nmtv.itemNew.hItem;
+			return RetrieveItem(hItem);
+		}
+
+		int  ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement)
+		{
+			KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
+			int len = nlist.length();
+			for (int i = 0; i < len; i++)
+			{
+				KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
+				xstring name = e.getAttribute(L"cname");
+				xstring sImage = e.getAttribute(L"image");
+				int image = 15;
+				//if(sImage) image = sImage.toInt();
+				HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image);
+				tv_folder.SetItemChild(h, 1);
+				ExpandChildFolder(h, e);
+			}
+			return 1;
+		}
+
+		int  InitialFolder()
+		{
+			KXMLDOMElement xframeElement = GetElement();
+			KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
+			ExpandChildFolder(0, e);
+			return 1;
+		}
+
+		int OnDwClicked(TEvent* evt, int p)
+		{
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			char ch;
+			int row = hdr.row;
+			xstring col = hdr.colname;
+
+			xstring str = L"";
+			if (dw_list.GetItemString(row, L"SKUNo") != L"")
+				str = dw_list.GetItemString(row, L"SKUNo");
+			else
+				str = dw_list.GetItemString(row, L"No");
+
+			if (dw_list.IsRowSelected(row) & 0xff)
+			{
+				//will unselect
+				impStr = impStr.replace(L" " + str, L"");
+			}
+			else
+			{
+				//will select
+				impStr += L" " + str;
+			}
+			return 1;
+		}
+
+		int OnDwcClicked(TEvent* evt, int p)
+		{
+			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");
+			if (str != L"")
+				str = L"sl:" + str;
+			else if (dwc_list.GetItemString(row, L"SKUNo") != L"")
+				str = dwc_list.GetItemString(row, L"SKUNo");
+			else
+				str = dwc_list.GetItemString(row, L"No");
+
+			if (dwc_list.IsRowSelected(row) & 0xff)
+			{
+				//will unselect
+				impStr = impStr.replace(L" " + str, L"");
+			}
+			else
+			{
+				//will select
+				impStr += L" " + str;
+			}
+			return 1;
+		}
+
+		int OnDwcDoubleClicked(TEvent* evt, int p)
+		{
+			
+
+			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");
+			if (str1 != L"")
+				str += L"el:" + str1;
+			else if (str != L"")
+				str = L"sl:" + str;
+			else if (dwc_list.GetItemString(row, L"SKUNo") != L"")
+				str = dwc_list.GetItemString(row, L"SKUNo");
+			else
+				str = dwc_list.GetItemString(row, L"No");
+			ls_nos += str;
+
+			dw_list.SelectRow(0, false);
+			dwc_list.SelectRow(0, false);
+			dw_list.Redraw();
+			dwc_list.Redraw();
+			impStr = L"";
+			SendMessage(hObject, 0x401, (LPARAM)ls_nos, 0);
+			xutil::RestoreCursor(hCursor);
+			CloseWindow();
+			return 1;
+		}
+		int OnDwDoubleClicked(TEvent* evt, int p)
+		{
+			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"第" + xstring(row) + L"行请增加产品图片!");
+					return 1;
+				}
+			}
+			xstring ls_nos = L"ImportXml:";
+			xstring str = L"";
+			if (dw_list.GetItemString(row, L"SKUNo") != L"")
+				str = dw_list.GetItemString(row, L"SKUNo");
+			else
+				str = dw_list.GetItemString(row, L"No");
+			ls_nos += str;
+			dw_list.SelectRow(0, false);
+			dwc_list.SelectRow(0, false);
+			dw_list.Redraw();
+			dwc_list.Redraw();
+			impStr = L"";
+			SendMessage(hObject, 0x401, (LPARAM)ls_nos, 0);
+			xutil::RestoreCursor(hCursor);
+			CloseWindow();
+			return 1;
+		}
+
+		int OnAttachEvent()
+		{
+			//绑定工具条点击事件
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&EntityProductSelectWin::OnXCommand);
+			//获取焦点事件,用于重置工具条
+			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)&EntityProductSelectWin::OnDwcDoubleClicked);
+			AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&EntityProductSelectWin::OnDwDoubleClicked);
+
+			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;
+
+			tv_folder = GetControl(L"tv_folder");
+			dw_list = GetControl(L"dw_list");
+			dwc_list = GetControl(L"dwc_list");
+
+			xaserverarg arg = GetArg();
+			CustomerID = L"";
+			SupplierID = L"";
+			m_customer = L"";
+			hObject = 0;
+			if (arg)
+			{
+				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);
+			dw_list.SetColumnState(L"Submitter1", false);
+			dw_list.SetColumnState(L"HSCode", false);
+
+			dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist");
+			dwc_list.SetReadOnly(true);
+
+			if (dw_list.GetRowCount())
+			{
+				xshtml xs = GetControl(L"html_detail");
+				xs.SetContent(makeHtml(1));
+			}
+
+			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()))));
+
+			dw_list.SetSelectionMode(3);
+			dwc_list.SetSelectionMode(3);
+
+			return 1;
+		}
+
+		int onloaded()
+		{
+			SetAgent();
+
+			return 1;
+		}
+	};
\ No newline at end of file

--
Gitblit v1.9.3