From 26c872c4c2c1e56925f755e927b58fbe07da2bcb Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期五, 19 七月 2024 13:56:44 +0800
Subject: [PATCH] update quote

---
 jrj/project/business/Quote/Product.Select.cpp | 2114 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,050 insertions(+), 1,064 deletions(-)

diff --git a/jrj/project/business/Quote/Product.Select.cpp b/jrj/project/business/Quote/Product.Select.cpp
index c1af898..de5d033 100644
--- a/jrj/project/business/Quote/Product.Select.cpp
+++ b/jrj/project/business/Quote/Product.Select.cpp
@@ -15,1093 +15,1079 @@
 
 using xml = KXMLDOMDocument;
 class __declspec(dllexport)  ProductSelectWin :  public xwin
+{
+public:
+	HWND hObject = 0;
+	xstring CustomerID;
+	xstring m_customer;
+public:
+	ProductSelectWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+public:
+	static ProductSelectWin* CreateInstance(void* implPtr, void* hWnd)
 	{
-	public:
-		int hObject = 0;
-		xstring CustomerID;
-		xstring m_customer;
-	public:
-		ProductSelectWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
-	public:
-		static ProductSelectWin* CreateInstance(void* implPtr, void* hWnd)
-		{
-			ProductSelectWin* pWin = new ProductSelectWin(implPtr, (HWND)hWnd);
-			return pWin;
-		}
-		//产品库产品列表
-		xdwgrid	dw_list;
-		//购物车产品列表
-		xdwgrid	dwc_list;
+		ProductSelectWin* pWin = new ProductSelectWin(implPtr, (HWND)hWnd);
+		return pWin;
+	}
+	//产品库产品列表
+	xdwgrid	dw_list;
+	//购物车产品列表
+	xdwgrid	dwc_list;
 	
-		//产品缓存对象
-		xdataset g_xdoc_product;
-		xdataset g_xdoc_shoppingcart;
+	//产品缓存对象
+	//xdataset g_xdoc_product;
+	//xdataset g_xdoc_shoppingcart;
 
-		xcombobox  cbx_goodscar;
-		//是否多选
+	xcombobox  cbx_goodscar;
+	//是否多选
 
-		xnode	m_agentNode;	//Agent Condition
-		xtreeview tv_folder;	
-		xstring 	agentFor;
+	xnode	m_agentNode;	//Agent Condition
+	xtreeview tv_folder;	
+	xstring 	agentFor;
 	
-		xstring	impStr;
+	xstring	impStr;
 	
-		int FillGoodsCarList()
-		{
-			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 FillGoodsCarList()
+	{
+		xcombobox xc = GetControl(L"frame:cbx_goodscar");
+		if(!xc) return 0;
+		xml  x = ShoppingCartView::GetRoleList(CustomerID);	
+		if(!x) return 0;
+		xc.SetText(L"==选择购物车==L");
 				
-			KXMLDOMNodeList nlist = x.selectNodes(L"//item"); 
-			int len = nlist.length();
-			for (int i = 0; i < len; i++)
-			{	
-				KXMLDOMElement e = nlist.item(i);
-				xstring name = e.getAttribute(L"name");
-				xcombobox::AddItem(xc.GetId(),name);				
-			}
-			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;
-		}
-				
-		//焦点激活处理函数
-		int OnSetFocus(TEvent* evt, LPARAM param)
-		{
-			//重置工具条
-			SetAgent();
-			return 1;
-		}
-
-		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);
-			return e;
-		}	
-	
-		int OnShowImage(xstring skuid)
-		{
-			imageview im = GetControl(L"im1");
-			//im.RemoveImage();
-			im.ResetEx();
-			
-			xml xp=new xml;
-			
-			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"xxx",xp.xml());
-			}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();
-				//SendMessage(im.GetId(),0x000f,0,1);
-				//InvalidateRect(im.GetId(),cast(0 as ref xrect),true);
-			}
-			return 1;
-		}
-					
-		int OnShowImage(xstring skuid, xstring customerItemNo)
-		{
-			imageview im = GetControl(L"im1");
-			//im.RemoveImage();
-			im.ResetEx();
-			
-			xml xp=new xml;
-			
-			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:" + xp.xml());
-			}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 ItemAdd()
-		{
-			int hItem = tv_folder.GetSelectedItem();
-			int 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.NewProduct.vx]",p);
-			//if(arg.GetArgString(L"data.modify")==L"1")RetrieveData();
-			return 1;
-		}
-			
-		int OnRowChanged(ref TNotifyEvent evt,int p)
-		{
-			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
-			int row = hdr.row;
-				
-			htmlctrl 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(ref TNotifyEvent evt,int p)
-		{
-			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
-			int row = hdr.row;
-				
-			htmlctrl xs = GetControl(L"html_detail");
-			xstring html = makeGoodscarHtml(row);
-			xs.SetContent(html);
-			xs.Redraw();
-			if(m_customer)
-			{
-				xstring id = g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"SKUID");
-				xstring customerItemNo = g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"CustomerItemNo");
-				OnShowImage(id,customerItemNo);
-			}
-				
-			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(ref TEvent evt,int p)
+		KXMLDOMNodeList nlist = x.selectNodes(L"//item"); 
+		int len = nlist.length();
+		for (int i = 0; i < len; i++)
 		{	
-			xcheckbox cbx_1 = GetControl(L"frame:cbx1");			
-			int state=cbx_1.GetCheck(cbx_1.GetId());	
-			return SetSelectState(dw_list,state);
+			KXMLDOMElement e = nlist.item(i);
+			xstring name = e.getAttribute(L"name");
+			xc.AddItem(name);				
 		}
-			
-		int OnCkbCLick2(ref TEvent evt,int p)
-		{	
-			xcheckbox cbx_2 = GetControl(L"frame:cbx2");			
-			int state=cbx_2.GetCheck(cbx_2.GetId());		
-			return SetSelectState(dwc_list,state);
-		}	
-			
-		xml  GetGoodsPropList(xstring guid)
+		return 1;
+	}		
+
+	int SetAgent()
+	{
+		xstring xfNodeAgentArea  = L"agentarea";
+		xnode anode = GetAgentNode(xfNodeAgentArea);
+		if(m_agentNode)
 		{
-			xml x=new xml;
-			
-			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;
+			SetAgentNode (anode,m_agentNode);
 		}
-		
-					
-		xml  GetGoodsPropListEx(xstring guid)
-		{
-			xml x=new xml;
-			
-			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")+
-						"</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>";
-			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>" ;
-			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>" ;
-			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>" ;
-			
-			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 +=  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"[" + 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 +=  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")+
-						"</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>" ;
-			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>" ;
-			
-			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 += 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='" + len.toString() + 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;
-			}
-			ls_nos += impStr;
-			trace(impStr);
-			dwc_list.SelectRow(0,false);
-			dwc_list.Redraw();
-			dw_list.SelectRow(0,false);
-			dw_list.Redraw();
-			impStr =L"";
-			//alert(ls_nos);
-			SendMessage(hObject,0x401,ls_nos,0);
-			alert(L"转入完成");
-				
-			return 1;
-		}
-
-		int OnSearch()
-		{
-			int hItem = tv_folder.GetSelectedItem();
-			return RetrieveItem(hItem);
-		}
-					
-		//命令发布函数
-		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"xmAdd")
-			{
-				ItemAdd();
-				return 1;
-			}
-			else if(comdid==L"xmSearch")
-			{
-				OnSearch();
-				return 1;
-			}
-			return 0;
-		}
-		
-		//命令处理事件
-		int OnXCommand(TEvent* evt, LPARAM param)
-		{
-			return OnCmdDispatch(evt->xcommand.pStrID);
-		}
-				
-		//查找当前树项的顶级目录
-		int LookupTopFolder(int hItem)
-		{
-			int hRoot = tv_folder.GetRootItem();
-			while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
-			return hItem;
-		}
-		
-		//插入产品类项的子项
-		int MakeGoodsFolderItem(int 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 = nlist.item(i);
-				xstring name = e.getAttribute(L"CName");
-				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);
-			}
-			return 1;				
-		}	
-
-		//插入新产品目录子项
-		int MakeUserGoodsFolderItem(int 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 = nlist.item(i);
-				xstring name = e.getAttribute(L"CName");
-				xstring no = e.getAttribute(L"CategoryNo");
-				xstring label = no.trim() + L" " + name;
-
-				int h= tv_folder.InsertChildItem(hItem,label, trust(e as int),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(int 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 = nlist.item(i);
-				xstring name = e.getAttribute(L"name");
-				int h = tv_folder.InsertChildItem(hItem,name, trust(e as int),image);
-				ExpandCatChildFolder(h,e,35);
-			}
-			return 1;
-		}
-		int MakeGoodCarFolderItem(int hItem)
-		{
-			//trace(L"\r\nCustomerID:"+CustomerID);
-			xml x = ShoppingCartView::GetRoleList(CustomerID);
-			//if(x) alert(x.xml());
-			if(!x) return 0;
-			KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); 
-			int len = nlist.length();
-			for (int i = 0; i < len; i++)
-			{	
-				KXMLDOMElement e = nlist.item(i);
-				xstring name = e.getAttribute(L"name");
-				int h = tv_folder.InsertChildItem(hItem,name, trust(e as int),35);
-				ExpandCatChildFolder(h,e,35);
-			}
-			return 1;				
-		}	
-
-		//树展开
-		int OnTreeExpanding(ref TNotifyEvent evt,int p)
-		{
-			ref NMTREEVIEW nmtv = evt.pnmh;
-			int hItem = nmtv.itemNew.hItem;
-			int hTopItem = LookupTopFolder(hItem);
-			xstring name = tv_folder.GetItemLabel(hTopItem);	
-			int 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;
-		}
-		
-		int LookupCustomerFolder(int hItem)
-		{
-			while(true)
-			{
-				KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
-				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(int hItem)
-		{
-			hItem = LookupCustomerFolder(hItem);
-			if(hItem==0) return "";
-			KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
-			xstring str = e1.getAttribute(L"no");
-			return str.mid(L"Customer:".length()(),9999);
-		}
-	
-		int RetrieveItem(int hItem)
-		{
-			int hTopItem = LookupTopFolder(hItem);
-			xstring name = tv_folder.GetItemLabel(hTopItem);
-			xstring selectname = tv_folder.GetItemLabel(hItem);
-			imageview im = GetControl(L"im1");
-			m_customer = L"";
-			xcontrol query = GetControl(L"sl_search");
-			xstring queryString = query.GetText();
-			
-			if(name == L"购物车")
-			{
-				if(agentFor !=L"goodscar")SwitchLayer(L"goodscarsheet",L"sheetframe");
-				ResetAgent(L"goodscar");
-				if(selectname !=name)
-				{
-					KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
-					xstring str = e1.getAttribute(L"no");
-					
-					trace(L"\r\n-------"+str+L"--------"+queryString);
-				
-					if(str==L"Supplier") 
-					{
-						return 1;
-					}
-					//alert(str);
-					if(str.find(L"Customer:")==0 || str.find(L"SO:")==0 || str.find(L"Purcherex:")==0|| str.find(L"Purcher:")==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);
-						dwc_list.SetColumnState(L"CurrencyCode",false);
-						//alert(str);
-						if(queryString==L"")
-							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str));
-						else
-							g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str,queryString));
-					}
-					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/goodslist"); 
-						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 )
-					{
-						htmlctrl 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.ResetEx();
-						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(agentFor !=L"goodslib")SwitchLayer(L"goodslibsheet",L"sheetframe");
-				if(name == L"个人库") 
-					ResetAgent(L"userlib");
-				else 
-					ResetAgent(L"goodslib");
-				int hCursor = xutil::SetCursorWait();
-
-				if(name == L"个人库" || name==L"公司库")
-				{
-					xstring no=L"N000005";
-					if(name==L"个人库") no=L"U000005";
-					if(hItem != hTopItem)
-					{
-						KXMLDOMElement e= tv_folder.GetItemData(hItem);
-						no = e.getAttribute(L"guid");
-					}
-					dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no));
-					dw_list = GetControl(L"dw_list");
-					dw_list.Reset();
-					dw_list.SetReadOnly(true);
-					
-					xml x;
-					if(queryString==L"")
-					{
-						if(name == L"个人库")
-							x = ProductLibraryView::GetMaintRoleList3(no);
-						else
-							x = ProductLibraryView::GetMaintList3(no);
-					}
-					else
-					{
-						if(name == 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.ResetEx();
-						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(ref TNotifyEvent evt,int p)
-		{
-			ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
-			int hItem = nmtv.itemNew.hItem;
-			return RetrieveItem(hItem);
-		}	
-
-		int  ExpandChildFolder(int hItem, KXMLDOMElement pElement)
-		{
-			KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
-			int len = nlist.length();
-			for (int i = 0; i < len; i++)
-			{	
-				KXMLDOMElement e = nlist.item(i);
-				xstring name = e.getAttribute(L"cname");
-				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);				
-				tv_folder.SetItemChild(h,1);
-				ExpandChildFolder(h,e);
-			}
-			return 1;				
-		}
-		
-		int  InitialFolder()
+		else
 		{
 			KXMLDOMElement xframeElement =  GetElement();
-			KXMLDOMElement e =  xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
-			ExpandChildFolder(0,e);
-			return 1;
-		}
-		
-		int OnDwClicked(ref TNotifyEvent evt,int p)
-		{
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
-			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)
+			KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
+			if(agent)
 			{
-				//will unselect
-				impStr = impStr.replace(L" "+str,L"");
-			}else
-			{
-				//will select
-				impStr += L" " + str;
+				xstring s = agent.xml();
+				m_agentNode =  SetAgentNode (anode,s);
 			}
-			return 1;
 		}
-		
-		int OnDwcClicked(ref TNotifyEvent evt,int p)
-		{
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
-			char ch;
-			int row = hdr.row;
-			xstring col = hdr.colname;
-			
-			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"EnquiryLineID");
-			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");
-			
-			if(dwc_list.IsRowSelected(row) & 0xff)
-			{
-				//will unselect
-				impStr = impStr.replace(L" "+str,L"");
-			}else
-			{
-				//will select
-				impStr += L" " + str;
-			}
-			return 1;
-		}
-		
-		int OnDoubleClicked(ref TNotifyEvent evt,int p)
-		{
-			int hCursor = xutil::SetCursorWait();
-			ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
-			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,ls_nos,0);
+		return 1;
+	}
+				
+	//焦点激活处理函数
+	int OnSetFocus(TEvent* evt, LPARAM param)
+	{
+		//重置工具条
+		SetAgent();
+		return 1;
+	}
 
-			xutil::RestoreCursor(hCursor);
+	KXMLDOMElement OnGetCarListRowElement(int row=0)
+	{
+		if(row < 1) row = dwc_list.GetRow();
+		if(row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement();
+		KXMLDOMElement e =dwc_list.GetRowElement(row);
+		return e;
+	}	
+	
+	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(xp.xml());
+		}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();
+			//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((xstring)L"error:" + xp.xml());
+		}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 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.NewProduct.vx]",p);
+		//if(arg.GetArgString(L"data.modify")==L"1")RetrieveData();
+		return 1;
+	}
+			
+	int OnRowChanged(TEvent* evt,LPARAM 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 = dw_list.GetGuid(row);
+		OnShowImage(id);
+					
+		return 1;
+	}
+		
+	int OnGoodsCarRowChanged(TEvent* evt, LPARAM 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();
+		if(m_customer)
+		{
+			xstring id = dwc_list.GetItemString(row, L"SKUID");
+			xstring customerItemNo = dwc_list.GetItemString(row,L"CustomerItemNo");
+			OnShowImage(id,customerItemNo);
+		}
+				
+		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 = dw_list.GetItemString(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*,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;
+	}
+		
+					
+	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 = 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")+
+					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'>" + dw_list.GetItemString(row,name.c_str()) + 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;'>" 
+						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(dw_list.GetItemString(row,name.c_str())==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 += (xstring)L"[" + 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>" + dw_list.GetItemString(row,name.c_str()) + L"</td>" ;
+					count++;
+				}
+				i++;
+				if(i >= len)count = 2;
+			}
+			ls_item = L"<tr>" + ls_item + L"</tr>";
+			ls_detail += ls_item;
+		}
+			
+		html +=  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(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' >" + dw_list.GetItemString(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 += 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 >"+ dwc_list.GetItemString(row,name.c_str())+L"</td>" ;
+			html +=L"</tr>";
+		}
+			
+		html += L"<tr>" ;
+		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 >"+ 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>" + 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>";
+
+		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;
+		}
+		ls_nos += impStr;
+		trace(impStr);
+		dwc_list.SelectRow(0,false);
+		dwc_list.Redraw();
+		dw_list.SelectRow(0,false);
+		dw_list.Redraw();
+		impStr =L"";
+		//alert(ls_nos);
+		SendMessage(hObject,0x401,(LPARAM)ls_nos.c_str(), 0);
+		alert(L"转入完成");
+				
+		return 1;
+	}
+
+	int OnSearch()
+	{
+		HTREEITEM hItem = tv_folder.GetSelectedItem();
+		return RetrieveItem(hItem);
+	}
+					
+	//命令发布函数
+	int OnCmdDispatch(xstring comdid)
+	{
+		int hCursor;
+		xstring name=L"";
+		if(comdid==L"xmClose")
+		{
 			CloseWindow();
-			return 1;		
-		}
-			
-		int OnAttachEvent()
-		{
-			//绑定工具条点击事件
-			AttachEvent(L"WM_XCOMMAND", (FEvent)&ProductSelectWin::OnXCommand);
-			//获取焦点事件,用于重置工具条
-			AttachEvent(L"WM_SETFOCUS", (FEvent)&ProductSelectWin::OnSetFocus);
-			AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductSelectWin::OnRowChanged);
-			AttachEvent(L"dwc_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductSelectWin::OnGoodsCarRowChanged);
-			AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&ProductSelectWin::OnTreeExpanding);
-			AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ProductSelectWin::OnTreeSelChanged);
-			
-			AttachEvent(L"dwc_list",L"DWV_DOUBLECLICKED", (FEvent)&ProductSelectWin::OnDoubleClicked);
-			
-			AttachEvent(L"WM_COMMAND", (FEvent)&ProductSelectWin::OnCkbCLick);	//checkbox打钩事件
-			AttachEvent(L"WM_COMMAND", (FEvent)&ProductSelectWin::OnCkbCLick2);	//checkbox打钩事件	
-			
-			AttachEvent(L"dw_list",L"DWV_CLICKED", (FEvent)&ProductSelectWin::OnDwClicked);
-			AttachEvent(L"dwc_list",L"DWV_CLICKED", (FEvent)&ProductSelectWin::OnDwcClicked);
 			return 1;
 		}
-
-		int onload()
+		else if(comdid==L"xmImport")
 		{
-			agentFor = L"goodslib";
-			impStr = L"";
-					
-			OnAttachEvent();	
-			
-			tv_folder = GetControl(L"tv_folder");
-			dw_list 	= GetControl(L"dw_list");
-			dwc_list = GetControl(L"dwc_list");
-
-			xaserverarg arg = GetParam();
-			CustomerID = L"";
-			m_customer =L"";
-			hObject = 0;
-			if(arg)
-			{
-				hObject = arg.GetArgString(L"HWND").toInt();
-				CustomerID = arg.GetArgString(L"CustomerID");
-			}
-			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);
-					
-			dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist"); 
-			dwc_list.SetReadOnly(true);
-
-			if(dw_list.GetRowCount())
-			{
-				htmlctrl 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);
-			
+			OnImport();
 			return 1;
 		}
+		else if(comdid==L"xmAdd")
+		{
+			ItemAdd();
+			return 1;
+		}
+		else if(comdid==L"xmSearch")
+		{
+			OnSearch();
+			return 1;
+		}
+		return 0;
+	}
 		
-		int onloaded()
-		{
-			SetAgent();			
+	//命令处理事件
+	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;
 			
-			return 1;
+		KXMLDOMNodeList nlist = x.selectNodes(L"//Item"); 
+		int len = nlist.length();
+		for (int i = 0; i < len; i++)
+		{	
+			KXMLDOMElement e = 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, e,15);				
+			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 = 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, 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 = nlist.item(i);
+			xstring name = e.getAttribute(L"name");
+			HTREEITEM h = tv_folder.InsertChildItem(hItem,name, e,image);
+			ExpandCatChildFolder(h,e,35);
+		}
+		return 1;
+	}
+	int MakeGoodCarFolderItem(HTREEITEM hItem)
+	{
+		//trace(L"\r\nCustomerID:"+CustomerID);
+		xml x = ShoppingCartView::GetRoleList(CustomerID);
+		//if(x) alert(x.xml());
+		if(!x) return 0;
+		KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); 
+		int len = nlist.length();
+		for (int i = 0; i < len; i++)
+		{	
+			KXMLDOMElement e = nlist.item(i);
+			xstring name = e.getAttribute(L"name");
+			HTREEITEM h = tv_folder.InsertChildItem(hItem,name, 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);
+	}
+	
+	int RetrieveItem(HTREEITEM hItem)
+	{
+		HTREEITEM hTopItem = LookupTopFolder(hItem);
+		xstring name = 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();
+			
+		if(name == L"购物车")
+		{
+			if(agentFor !=L"goodscar")SwitchLayer(L"goodscarsheet",L"sheetframe");
+			ResetAgent(L"goodscar");
+			if(selectname !=name)
+			{
+				KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
+				xstring str = e1.getAttribute(L"no");
+					
+				trace(L"\r\n-------"+str+L"--------"+queryString);
+				
+				if(str==L"Supplier") 
+				{
+					return 1;
+				}
+				//alert(str);
+				xshtml xs = GetControl(L"html_detail");
+				if(str.find(L"Customer:")==0 || str.find(L"SO:")==0 || str.find(L"Purcherex:")==0|| str.find(L"Purcher:")==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);
+					dwc_list.SetColumnState(L"CurrencyCode",false);
+					//alert(str);
+					if(queryString==L"")
+						dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str));
+					else
+						dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str,queryString));
+				}
+				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"")
+						dwc_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid ));
+					else
+						dwc_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString,L""));
+				}
+				else
+				{
+					dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist"); 
+					dwc_list.SetReadOnly(true);
+					dwc_list.Reset();
+					if(queryString==L"")
+						dwc_list.Retrieve(ShoppingCartView::GetGoodsList(selectname));
+					else
+						dwc_list.Retrieve(ShoppingCartView::GetGoodsList(selectname,queryString));
+				}
+				dwc_list.Redraw();
+
+				if(dwc_list.GetRowCount() >= 1 )
+				{
+						
+					xs.SetContent(makeGoodscarHtml(1));
+						
+					if(m_customer !=L"")
+					{
+						xstring skuid = dwc_list.GetItemString(1,L"SKUID");
+						xstring customerItemNo = dwc_list.GetItemString(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(agentFor !=L"goodslib")SwitchLayer(L"goodslibsheet",L"sheetframe");
+			if(name == L"个人库") 
+				ResetAgent(L"userlib");
+			else 
+				ResetAgent(L"goodslib");
+			HCURSOR hCursor = xutil::SetCursorWait();
+
+			if(name == L"个人库" || name==L"公司库")
+			{
+				xstring no=L"N000005";
+				if(name==L"个人库") no=L"U000005";
+				if(hItem != hTopItem)
+				{
+					KXMLDOMElement e= tv_folder.GetItemData(hItem);
+					no = e.getAttribute(L"guid");
+				}
+				dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no));
+				dw_list = GetControl(L"dw_list");
+				dw_list.Reset();
+				dw_list.SetReadOnly(true);
+					
+				xml x;
+				if(queryString==L"")
+				{
+					if(name == L"个人库")
+						x = ProductLibraryView::GetMaintRoleList3(no);
+					else
+						x = ProductLibraryView::GetMaintList3(no);
+				}
+				else
+				{
+					if(name == 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) dw_list.Retrieve(x);
+				dw_list.Redraw();
+
+				xshtml xs = GetControl(L"html_detail");
+				if(dw_list.GetRowCount() >0)
+				{
+					xs = GetControl(L"html_detail");
+					xs.SetContent(makeHtml(1));
+					xstring id = dw_list.GetItemString(1,L"@guid");
+					OnShowImage(id);
+				}else
+				{
+					im.Reset();
+					im.Redraw();
+
+						
+					xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
+				}
+				xs.Redraw();
+				xutil::RestoreCursor(hCursor);
+			}
 		}		
-	};
-]
\ No newline at end of file
+		impStr = L"";
+	}
+					
+	int OnTreeSelChanged(TEvent * evt,LPARAM 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 = 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, 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, LPARAM p)
+	{
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		char ch;
+		int row = hdr.row;
+		xstring col = hdr.colname;
+			
+		xstring str = dwc_list.GetItemString(row,L"SOLineID");
+		//xstring str1 = dwc_list.GetItemString(row,L"EnquiryLineID");
+		xstring str1 = dwc_list.GetItemString(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");
+			
+		if(dwc_list.IsRowSelected(row) & 0xff)
+		{
+			//will unselect
+			impStr = impStr.replace(L" "+str,L"");
+		}else
+		{
+			//will select
+			impStr += L" " + str;
+		}
+		return 1;
+	}
+		
+	int OnDoubleClicked(TEvent* evt, LPARAM p)
+	{
+		HCURSOR hCursor = xutil::SetCursorWait();
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		int row = hdr.row;
+		xstring ls_nos = L"ImportXml:";
+		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"")
+			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,(WPARAM)ls_nos.c_str(), 0);
+
+		xutil::RestoreCursor(hCursor);
+		CloseWindow();
+		return 1;		
+	}
+			
+	int OnAttachEvent()
+	{
+		//绑定工具条点击事件
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&ProductSelectWin::OnXCommand);
+		//获取焦点事件,用于重置工具条
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&ProductSelectWin::OnSetFocus);
+		AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductSelectWin::OnRowChanged);
+		AttachEvent(L"dwc_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductSelectWin::OnGoodsCarRowChanged);
+		AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&ProductSelectWin::OnTreeExpanding);
+		AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ProductSelectWin::OnTreeSelChanged);
+			
+		AttachEvent(L"dwc_list",L"DWV_DOUBLECLICKED", (FEvent)&ProductSelectWin::OnDoubleClicked);
+			
+		AttachEvent(L"WM_COMMAND", (FEvent)&ProductSelectWin::OnCkbCLick);	//checkbox打钩事件
+		AttachEvent(L"WM_COMMAND", (FEvent)&ProductSelectWin::OnCkbCLick2);	//checkbox打钩事件	
+			
+		AttachEvent(L"dw_list",L"DWV_CLICKED", (FEvent)&ProductSelectWin::OnDwClicked);
+		AttachEvent(L"dwc_list",L"DWV_CLICKED", (FEvent)&ProductSelectWin::OnDwcClicked);
+		return 1;
+	}
+
+	int onload()
+	{
+		SetArg();
+		agentFor = L"goodslib";
+		impStr = L"";
+					
+		OnAttachEvent();	
+			
+		tv_folder = GetControl(L"tv_folder");
+		dw_list 	= GetControl(L"dw_list");
+		dwc_list = GetControl(L"dwc_list");
+
+		xaserverarg arg = GetArg();
+		CustomerID = L"";
+		m_customer =L"";
+		hObject = 0;
+		if(arg)
+		{
+			hObject = (HWND)arg.GetParam(L"ParentWindow");
+			CustomerID = arg.GetArgString(L"CustomerID");
+		}
+		InitialFolder();
+			
+		dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L""));
+		dw_list = GetControl(L"dw_list");
+		dw_list.SetReadOnly(true);
+					
+		dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist"); 
+		dwc_list.SetReadOnly(true);
+
+		if(dw_list.GetRowCount())
+		{
+			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())));
+			
+		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