From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/project/business/Quote/Product.Select.cpp | 2089 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 1,046 insertions(+), 1,043 deletions(-)
diff --git a/jrj/project/business/Quote/Product.Select.cpp b/jrj/project/business/Quote/Product.Select.cpp
index 23e6501..f4d4a79 100644
--- a/jrj/project/business/Quote/Product.Select.cpp
+++ b/jrj/project/business/Quote/Product.Select.cpp
@@ -1,1090 +1,1093 @@
-use "xcontrol.vframe.vbusiness.vd"
-use "xbase.vframe.vbusiness.vd"
-use "multi.vbind.vbind.wface.vd"
-use "productlibrary.vd"
-use "shoppingcart.vd"
+#include <wobject/xstring.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/ximageview.hpp>
-unit trade
-[
- class ProductSelectWin : public xwin
+#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+#include "viewobject/saleorder.view.hpp"
+#include "viewobject/quote.view.hpp"
+#include "viewobject/shoppingcart.view.hpp"
+#include "viewobject/productLibrary.view.hpp"
+#include "xcontrol/xcheckbox.hpp"
+#include "xcontrol/xshtml.hpp"
+
+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)
{
- int hObject = 0;
- string CustomerID;
- string m_customer;
+ ProductSelectWin* pWin = new ProductSelectWin(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+ //产品库产品列表
+ xdwgrid dw_list;
+ //购物车产品列表
+ xdwgrid dwc_list;
- //产品库产品列表
- 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;
- //产品缓存对象
- xdataset g_xdoc_product;
- xdataset g_xdoc_shoppingcart;
-
- xcombobox cbx_goodscar;
- //是否多选
-
- xnode m_agentNode; //Agent Condition
- xtreeview tv_folder;
- string agentFor;
+ xstring impStr;
- string impStr;
-
- int FillGoodsCarList()
- {
- xcombobox xc = GetControl("frame:cbx_goodscar");
- if(!xc) return 0;
- xml x = ShoppingCartView::GetRoleList(CustomerID);
- if(!x) return 0;
- xc.SetText("==选择购物车==");
+ 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");
- msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//item");
- int len = nlist.length;
- for (int i = 0; i < len; i++)
- {
- msxml::IXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute("name");
- xcombobox::AddItem(xc.GetId(),name);
- }
- return 1;
- }
-
- int SetAgent()
- {
- string xfNodeAgentArea = "agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- if(m_agentNode)
- {
- SetAgentNodeContent (anode,m_agentNode);
- }
- else
- {
- msxml::IXMLDOMElement xframeElement = GetElement();
- msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
- if(agent)
- {
- string s = agent.xml;
- m_agentNode = SetAgentNodeContent (anode,s);
- }
- }
- return 1;
- }
-
- //焦点激活处理函数
- int OnSetFocus(ref TEvent evt,int param)
- {
- //重置工具条
- SetAgent();
- return 1;
- }
-
- msxml::IXMLDOMElement OnGetCarListRowElement(int row=0)
- {
- if(row < 1) row = dwc_list.GetRow();
- if(row < 1 || row > dwc_list.GetRowCount()) return 0;
- msxml::IXMLDOMElement e = g_xdoc_shoppingcart.getRowElement("data/Item", row);
- return e;
- }
-
- int OnShowImage(string skuid)
- {
- imageview im = GetControl("im1");
- //im.RemoveImage();
- im.ResetEx();
-
- xml xp=new xml;
- xp.setNativePointer(xml::CreateInstance());
- xaserverarg arg_pic=new xaserverarg;
- arg_pic.setNativePointer(arg_pic.CreateInstance());
- arg_pic.AddArg("SKUID",skuid);
- if(url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKU",arg_pic.GetString(),xp)!=1)
- {
- trace("xxx",xp.GetXml());
- }else
- {
- //imageElement = xp.GetXmlDoc().documentElement;
- msxml::IXMLDOMNodeList nlistp= xp.GetXmlDoc().selectNodes("ImageList/image");
- int lenp = nlistp.length;
- for(int ip=0;ip<lenp;ip++)
- {
- msxml::IXMLDOMElement xitem = nlistp.item(ip);
- string picname = xitem.selectSingleNode("PicPath").text;
- string goodno = xitem.selectSingleNode("GoodsNo").text;
- if(picname == "/business/products/Thumbs//")
- picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
- im.AddImages(picname, "");
- }
- im.Redraw();
- //win32::SendMessage(im.GetId(),0x000f,0,1);
- //win32::InvalidateRect(im.GetId(),cast(0 as ref xrect),true);
- }
- return 1;
- }
-
- int OnShowImage(string skuid, string customerItemNo)
- {
- imageview im = GetControl("im1");
- //im.RemoveImage();
- im.ResetEx();
-
- xml xp=new xml;
- xp.setNativePointer(xml::CreateInstance());
- xaserverarg arg_pic=new xaserverarg;
- arg_pic.setNativePointer(arg_pic.CreateInstance());
- arg_pic.AddArg("SKUID",skuid);
- arg_pic.AddArg("CustomerID",m_customer);
- arg_pic.AddArg("CustomerItemNo",customerItemNo);
-
- if(url::get("/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU",arg_pic.GetString(),xp)!=1)
- {
- trace("error:" + xp.GetXml());
- }else
- {
- //imageElement = xp.GetXmlDoc().documentElement;
- msxml::IXMLDOMNodeList nlistp= xp.GetXmlDoc().selectNodes("ImageList/image");
- int lenp = nlistp.length;
- for(int ip=0;ip<lenp;ip++)
- {
- msxml::IXMLDOMElement xitem = nlistp.item(ip);
- string picname = xitem.selectSingleNode("PicPath").text;
- string goodno = xitem.selectSingleNode("GoodsNo").text;
- if(picname == "/business/products/Thumbs//")
- picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
- im.AddImages(picname, "");
- }
- im.Redraw();
- }
- return 1;
- }
-
- int ItemAdd()
- {
- int hItem = tv_folder.GetSelectedItem();
- int hTopItem = LookupTopFolder(hItem);
- string name = tv_folder.GetItemLabel(hTopItem);
-
- msxml::IXMLDOMElement e= tv_folder.GetItemData(hItem);
- string guid = e.getAttribute("guid");
- if(guid=="") return 1;
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg("guid", e.getAttribute("guid"));
- if(name=="个人产品")
- arg.AddArg("FolderID", e.getAttribute("guid"));
- else
- arg.AddArg("CategoryID", e.getAttribute("guid"));
- string No = e.getAttribute("CategoryNo");
- if(No=="") No = e.getAttribute("no");
- string Name = e.getAttribute("CName");
- if(Name=="") Name = e.getAttribute("cname");
- arg.AddArg("No",No);
- arg.AddArg("CName",Name);
- int p = arg;
- OpenWindow("dev:xpage[Quick.Input.NewProduct.vx]",p);
- //if(arg.GetArgString("data.modify")=="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("html_detail");
- string html = makeHtml(row);
- xs.SetContent(html);
- xs.Redraw();
-
- string id = g_xdoc_product.getData(0,"data/Item",row,"@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("html_detail");
- string html = makeGoodscarHtml(row);
- xs.SetContent(html);
- xs.Redraw();
- if(m_customer)
- {
- string id = g_xdoc_shoppingcart.getData(0,"data/Item",row,"SKUID");
- string customerItemNo = g_xdoc_shoppingcart.getData(0,"data/Item",row,"CustomerItemNo");
- OnShowImage(id,customerItemNo);
- }
-
- return 1;
- }
-
- int DeleteRow(int row)
- {
- int IDOK = 1;
- int MB_OKCANCEL = 1;
- int MB_ICONQUESTION = 32;
- if(win32::MessageBox(GetHWND(),"确认删除指定的项,删除后将不能恢复?","提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK) return 1;
- string id = g_xdoc_product.getData(0,"data/Item",row,"@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("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("frame:cbx2");
- int state=cbx_2.GetCheck(cbx_2.GetId());
- return SetSelectState(dwc_list,state);
- }
-
- xml GetGoodsPropList(string guid)
+ return 1;
+ }
+
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ if(m_agentNode)
{
- xml x=new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg("guid", guid);
- if(url::get("/sale/data/SO/goods/goodsprop/list", arg.GetString(),x)!=1)
- {
- string error = x.GetXmlDoc().text;
- alert(error);
- }
- return x;
+ 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 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.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.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(string guid)
+ 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)
{
- xml x=new xml;
- x.setNativePointer(xml::CreateInstance());
- string fields="<data>";
-
- /*
- fields +="<field name='HighestPrice' label='最高价'/>";
- fields +="<field name='LowestPrice' label='最低价'/>";
-
- fields +="<field name='BulkPrice' label='散货价'/>";
- fields +="<field name='CardPrice' label='纸卡价'/>";
- fields +="<field name='BuyPrice' label='采购价'/>";
- fields +="<field name='SupplierID' label='货源'/>";
- */
-
- fields +="<field name='Packing' label='包装方式'/>";
- fields +="<field name='PackingRate' label='每箱数量'/>";
- fields +="<field name='VolumeDesc' label='包装尺码'/>";
- fields +="<field name='GWPerPkg' label='毛重'/>";
- fields +="<field name='NWPerPkg' label='净重'/>";
- //fields +="<field name='DeveloperID' label='开发人员'/>";
- fields +="<field name='AttributeValue_1' label='产品属性'/>";
- //fields +="<field name='Remark' label='备注'/>";
-
- fields += "</data>";
- x.LoadXml(fields);
-
- return x;
- }
-
- string makeHtml(int row)
- {
- string id = g_xdoc_product.getData(0,"data/Item",row,"@guid");
- xml x = GetGoodsPropList(id);
- xml x1 = GetGoodsPropListEx(id);
-
- string html="<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"No")+
- "</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"RefNo")+
- "</span></div>";
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >货号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"GoodsNo")+
- "</span></div>" ;
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"CName")+
- "</span></div>" ;
- if(dw_list.GetItemString(row,"CSpec")!="")
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"CSpec")+
- "</span></div>" ;
-
- msxml::IXMLDOMNodeList fieldsEx = x1.GetXmlDoc().selectNodes("data/field");
- string ls_detail="";
- string ls_item ="";
- string name;
- string label;
- int len = fieldsEx.length;
- int i= 0;
-
- for(i=0;i<len; true)
+ int cnt = 0;
+ ls_item = L"";
+ while(cnt < 2)
{
- int cnt = 0;
- ls_item = "";
- while(cnt < 2)
- {
- name = fieldsEx.item(i).selectSingleNode("@name").text;
- label = fieldsEx.item(i).selectSingleNode("@label").text;
- ls_item += "<td>" + label + "</td>" + "<td style='text-align:center'>" + g_xdoc_product.getData(0,"data/Item",row,name) + "</td>" ;
- cnt++;
- i++;
- if(i ==len)break;
- }
- ls_detail += "<tr>" + ls_item + "</tr>";
+ 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;
}
- html += "<div style='margin-left:8px;margin-right:16px;'>" +
- +"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
- + ls_detail
- +"</table>"
- +"</div>" ;
+ 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>" ;
- string ls_star="";
- msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field");
- len = fields.length;
+ xstring ls_star=L"";
+ KXMLDOMNodeList fields = x.selectNodes(L"data/field");
+ len = fields.length();
- ls_detail = "";
- if(len > 0)
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >技术要求:</span></div>" ;
- for(i=0;i<len; true)
+ 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)
{
- ls_item="";
+ name = fields.item(i).selectSingleNode(L"@name").text();
+ label = fields.item(i).selectSingleNode(L"@label").text();
- int count = 0;
- while(count < 2)
+ if(name==L"QualityTerm" || name==L"PackTerm" || label==L"质量" || label==L"包装质量" || label==L"技术要求")
{
- name = fields.item(i).selectSingleNode("@name").text;
- label = fields.item(i).selectSingleNode("@label").text;
-
- if(name=="QualityTerm" || name=="PackTerm" || label=="质量" || label=="包装质量" || label=="技术要求")
- {
- i++;
- if(i >= len)count = 2;
- continue;
- }
- else if(g_xdoc_product.getData(0,"data/Item",row,name)=="")
- {
- msxml::IXMLDOMNodeList options = fields.item(i).selectNodes("item");
- int tlen = options.length;
- string terms = "" ;
- for(int k=0; k<tlen; k++)
- {
- if(options.item(k).text)
- {
- if(k>0) terms += ", ";
- terms += "[" + options.item(k).text +"]";
- }
- }
- ls_star += "<div ><span style='font-weight:700;width:50;font-size:10pt' >" + label +"*:</span><span style='width:90;font-size:10pt'>" + terms + "</span></div>" ;
- }else
- {
- ls_item = "<td>" + label + "</td>" + "<td>" + g_xdoc_product.getData(0,"data/Item",row,name) + "</td>" ;
- count++;
- }
i++;
if(i >= len)count = 2;
+ continue;
}
- ls_item = "<tr>" + ls_item + "</tr>";
- ls_detail += ls_item;
- }
-
- html += "<div style='margin-left:8px;margin-right:16px;'>" +
- +"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
- + ls_detail
- +"</table>"
- +"</div>" ;
- if(dw_list.GetItemString(row,"QualityTerm")!="")
- {
- html += "<div style='height:12px'/>";
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >质量:</span></div>" ;
- html += "<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row,"QualityTerm") + "</span></div>" ;
- }
-
- if(dw_list.GetItemString(row,"PackTerm")!="")
- {
- html += "<div style='height:12px'/>";
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >包装质量:</span></div>" ;
- html += "<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row,"PackTerm") + "</span></div>" ;
- }
-
- if(g_xdoc_product.getData(0,"data/Item",row,"Remark") != "" && id == "23A8BBA2-DEF1-4C00-978E-646151A6082E")
- {
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >备注:</span></div>" ;
- html += "<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + g_xdoc_product.getData(0,"data/Item",row,"Remark") + "</span></div>" ;
- }
-
- html += "<div style='height:24px'/>";
-
- //星标项
- html += ls_star;
-
- //显示图片
- /*string picname = "1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,"ImgName"); //ItemID+".jpg";
- string str = picname.mid(0,2);
- str = str.upper();
- string serversrc ="http://192.168.7.241:1001/business/products/chanpin/"+str+"/"+picname;
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >图片:</span>";
- html += "<control visible='layer' controlclass='ximage' data='' src='"+ serversrc +"'/></div>";
- */
- html += "</body></html>";
- return html;
- }
-
- string makeGoodscarHtml(int row)
- {
- string No = dwc_list.GetItemString(row,"RefNo");//获取属性值id
- xml x = GetGoodsPropList(No);
-
- string html="<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,"No")+
- "</span></div>";
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,"CName")+
- "</span></div>" ;
- html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,"CSpec")+
- "</span></div>" ;
-
- msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field");
- int len = fields.length;
- html += "<table>" +
- "<colgroup span='1' width='80'/>" +
- "<colgroup span='1' width='120'/>" +
- "<colgroup span='1' width='420'/>" ;
- html += "<tr>" ;
- html += "<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>" ;
- html +="</tr>";
- for(int i=0;i<len; i++)
- {
- string name = fields.item(i).selectSingleNode("@name").text;
- string label = fields.item(i).selectSingleNode("@label").text;
- html += "<tr>" ;
- if(i==0)
- html += "<td rowspan='" + len.toString() + "'>" + No + "</td><td >"+ label + "</td><td >"+"</td>" ;
- else
- html += "<td >"+ label + "</td><td >"+ g_xdoc_shoppingcart.getData(0,"data/Item",row,name)+"</td>" ;
- html +="</tr>";
- }
-
- html += "<tr>" ;
- html += "<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0,"data/Item",row,"PackCode") + "</td><td >包装方式</td><td >"+
- g_xdoc_shoppingcart.getData(0,"data/Item",row,"CPack") + "</td>" ;
- html +="</tr>";
- html += "<tr height='48'>" ;
- html += "<td >包装要求</td><td >"+ g_xdoc_shoppingcart.getData(0,"data/Item",row,"PackQualityTerm")+"</td>" ;
- html +="</tr>";
- html += "<tr>" ;
- html += "<td >侧唛</td><td ></td>" ;
- html +="</tr>";
-
- html += "<tr height='72'>" ;
- html += "<td>" + g_xdoc_shoppingcart.getData(0,"data/Item",row,"QualityCode") + "</td><td >质量要求</td><td >"+
- g_xdoc_shoppingcart.getData(0,"data/Item",row,"QualityTerm") + "</td>" ;
- html +="</tr>";
-
- html +="</table>";
-
- html += "</body></html>";
- return html;
- }
-
- int OnImport()
- {
- if(!hObject ) return 1;
-
- int rw = 0;
- string ls_nos = "ImportXml:";
-
- if (impStr=="")
- {
- alert("请选择商品!");
- return 1;
- }
- ls_nos += impStr;
- trace(impStr);
- dwc_list.SelectRow(0,false);
- dwc_list.Redraw();
- dw_list.SelectRow(0,false);
- dw_list.Redraw();
- impStr ="";
- //alert(ls_nos);
- win32::SendMessage(hObject,0x401,ls_nos,0);
- alert("转入完成");
-
- return 1;
- }
-
- int OnSearch()
- {
- int hItem = tv_folder.GetSelectedItem();
- return RetrieveItem(hItem);
- }
-
- //命令发布函数
- int OnCmdDispatch(string comdid)
- {
- int hCursor;
- string name="";
- if(comdid=="xmClose")
- {
- CloseWindow();
- return 1;
- }
- else if(comdid=="xmImport")
- {
- OnImport();
- return 1;
- }
- else if(comdid=="xmAdd")
- {
- ItemAdd();
- return 1;
- }
- else if(comdid=="xmSearch")
- {
- OnSearch();
- return 1;
- }
- return 0;
- }
-
- //命令处理事件
- int OnXCommand(ref TXCommandEvent evt,int param)
- {
- return OnCmdDispatch(evt.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, string sno)
- {
- xml x = ProductLibraryView::GetTreeChildItems3(sno);
- if(!x) return 0;
-
- msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item");
- int len = nlist.length;
- for (int i = 0; i < len; i++)
- {
- msxml::IXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute("CName");
- string no = e.getAttribute("CategoryNo");
- string label = no.trim() + " " + name;
-
- int h= tv_folder.InsertChildItem(hItem,label, trust(e as int),15);
- tv_folder.SetItemChild(h,1);
- }
- return 1;
- }
-
- //插入新产品目录子项
- int MakeUserGoodsFolderItem(int hItem, string sno)
- {
- xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
- if(!x) return 0;
-
- msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item");
- int len = nlist.length;
- for (int i = 0; i < len; i++)
- {
- msxml::IXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute("CName");
- string no = e.getAttribute("CategoryNo");
- string label = no.trim() + " " + name;
-
- int h= tv_folder.InsertChildItem(hItem,label, trust(e as int),15);
- string child = e.getAttribute("Childs");
- if(child=="")
- tv_folder.SetItemChild(h,1);
- else if(child !="0")
- tv_folder.SetItemChild(h,1);
- }
- return 1;
- }
-
- //插入购物车项
- int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele ,int image)
- {
- msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item");
- int len = nlist.length;
- if(len > 0) tv_folder.SetItemChild(hItem,1);
- for (int i= 0; i < len; i++)
- {
- msxml::IXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute("name");
- int h = tv_folder.InsertChildItem(hItem,name, trust(e as int),image);
- ExpandCatChildFolder(h,e,35);
- }
- return 1;
- }
- int MakeGoodCarFolderItem(int hItem)
- {
- //trace("\r\nCustomerID:"+CustomerID);
- xml x = ShoppingCartView::GetRoleList(CustomerID);
- //if(x) alert(x.GetXml());
- if(!x) return 0;
- msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item");
- int len = nlist.length;
- for (int i = 0; i < len; i++)
- {
- msxml::IXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute("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);
- string name = tv_folder.GetItemLabel(hTopItem);
- int child = tv_folder.GetChildItem(hItem);
- string no ="";
- msxml::IXMLDOMElement e;
- if(name == "公司库" && !child )
- {
- no ="";
- if(hTopItem != hItem)
+ else if(dw_list.GetItemString(row,name.c_str())==L"")
{
- e= tv_folder.GetItemData(hItem);
- no = e.getAttribute("categoryid");
+ 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
{
- e= tv_folder.GetItemData(hItem);
- no = e.getAttribute("categoryid");
+ ls_item = L"<td>" + label + L"</td>" + L"<td>" + dw_list.GetItemString(row,name.c_str()) + L"</td>" ;
+ count++;
}
- MakeGoodsFolderItem(hItem, no);
+ i++;
+ if(i >= len)count = 2;
}
- else if(name == "个人库" && !child )
- {
- no ="";
- if(hTopItem != hItem)
- {
- e= tv_folder.GetItemData(hItem);
- no = e.getAttribute("categoryid");
- MakeUserGoodsFolderItem(hItem, no);
- }
- }
- else if(name == "购物车" && !child )
- {
- if(hItem==hTopItem)MakeGoodCarFolderItem(hItem);
- }
- return 1;
+ ls_item = L"<tr>" + ls_item + L"</tr>";
+ ls_detail += ls_item;
}
-
- int ResetAgent(string agentAsk)
- {
- if(agentFor != agentAsk)
- {
- agentFor = agentAsk;
- m_agentNode = 0;
- SetAgent();
- }
- return 1;
- }
-
- int LookupCustomerFolder(int hItem)
- {
- while(true)
- {
- msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
- string str = e1.getAttribute("no");
- if(str.find("Customer:")>=0) return hItem;
- hItem = tv_folder.GetParentItem(hItem);
- if(hItem==0) break;
- }
- return 0;
- }
-
- string LookupCustomer(int hItem)
- {
- hItem = LookupCustomerFolder(hItem);
- if(hItem==0) return "";
- msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
- string str = e1.getAttribute("no");
- return str.mid("Customer:".length(),9999);
- }
-
- int RetrieveItem(int hItem)
- {
- int hTopItem = LookupTopFolder(hItem);
- string name = tv_folder.GetItemLabel(hTopItem);
- string selectname = tv_folder.GetItemLabel(hItem);
- imageview im = GetControl("im1");
- m_customer = "";
- xcontrol query = GetControl("sl_search");
- string queryString = query.GetText();
- if(name == "购物车")
- {
- if(agentFor !="goodscar")SwitchLayer("goodscarsheet","sheetframe");
- ResetAgent("goodscar");
- if(selectname !=name)
- {
- msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
- string str = e1.getAttribute("no");
-
- trace("\r\n-------"+str+"--------"+queryString);
+ 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"转入完成");
- if(str=="Supplier")
+ 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;
+ }
+ 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);
+ }
+
+ //查找当前树项的顶级目录
+ 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 = 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)
{
- return 1;
- }
- //alert(str);
- if(str.find("Customer:")==0 || str.find("SO:")==0 || str.find("Purcherex:")==0|| str.find("Purcher:")==0 || str.find("Supplier:")==0|| str.find("Enquiry:")==0)
- {
- m_customer = LookupCustomer(hItem);
- if(str.find("Customer:")==0)
- {
- dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodscustomerlist");
- }
- else
- {
- dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist");
- }
- dwc_list.Reset();
- dwc_list.SetReadOnly(true);
- dwc_list.SetColumnState("CurrencyCode",false);
- //alert(str);
- if(queryString=="")
- g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str));
- else
- g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str,queryString));
- }
- else if(e1.getAttribute("categoryid") !="")
- {
- string categoryid = e1.getAttribute("categoryid");
- dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid).GetXmlDoc());
- dwc_list.SetReadOnly(true);
- dwc_list.Reset();
- if(queryString=="")
- g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid ));
- else
- g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString,""));
+ dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodscustomerlist");
}
else
{
- dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodslist");
- dwc_list.SetReadOnly(true);
- dwc_list.Reset();
- if(queryString=="")
- g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname));
- else
- g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname,queryString));
+ dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist");
}
- dwc_list.PostRetrieve();
- dwc_list.Redraw();
-
- if(dwc_list.GetRowCount() >= 1 )
- {
- htmlctrl xs = GetControl("html_detail");
- xs.SetContent(makeGoodscarHtml(1));
-
- if(m_customer !="")
- {
- string skuid = g_xdoc_shoppingcart.getData(0,"data/Item",1,"SKUID");
- string customerItemNo = g_xdoc_shoppingcart.getData(0,"data/Item",1,"CustomerItemNo");
- OnShowImage(skuid,customerItemNo);
- }
- } else {
- im.ResetEx();
- im.Redraw();
-
- xs = GetControl("html_detail");
- xs.SetContent("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
- }
- xs.Redraw();
- }
- }
- else
- {
- if(agentFor !="goodslib")SwitchLayer("goodslibsheet","sheetframe");
- if(name == "个人库")
- ResetAgent("userlib");
- else
- ResetAgent("goodslib");
- int hCursor = xutil::SetCursorWait();
-
- if(name == "个人库" || name=="公司库")
+ 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"")
{
- string no="N000005";
- if(name=="个人库") no="U000005";
- if(hItem != hTopItem)
+ 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"")
{
- msxml::IXMLDOMElement e= tv_folder.GetItemData(hItem);
- no = e.getAttribute("guid");
+ xstring skuid = dwc_list.GetItemString(1,L"SKUID");
+ xstring customerItemNo = dwc_list.GetItemString(1,L"CustomerItemNo");
+ OnShowImage(skuid,customerItemNo);
}
- dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc());
- dw_list = GetControl("dw_list");
- dw_list.Reset();
- dw_list.SetReadOnly(true);
+ } 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=="")
+ 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(name == "个人库")
- x = ProductLibraryView::GetMaintRoleList3(no);
- 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);
}
- else
- {
- if(name == "个人库")
- x = ProductLibraryView::GetMaintRoleList3(no,queryString);
- else
- {
- if(queryString !="")
- {
- if(no=="N000005")
- x = ProductLibraryView::GetMaintList3("",queryString,"");
- else
- x = ProductLibraryView::GetMaintList3(no,queryString,"");
- }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("html_detail");
- xs.SetContent(makeHtml(1));
- string id = g_xdoc_product.getData(0,"data/Item",1,"@guid");
- OnShowImage(id);
- }else
- {
- im.ResetEx();
- im.Redraw();
-
- xs = GetControl("html_detail");
- xs.SetContent("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
- }
- xs.Redraw();
- xutil::RestoreCursor(hCursor);
}
- }
- impStr = "";
- }
-
- int OnTreeSelChanged(ref TNotifyEvent evt,int p)
- {
- ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
- int hItem = nmtv.itemNew.hItem;
- return RetrieveItem(hItem);
- }
+ if(x) dw_list.Retrieve(x);
+ dw_list.Redraw();
- int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
- {
- msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
- int len = nlist.length;
- for (int i = 0; i < len; i++)
- {
- msxml::IXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute("cname");
- string sImage = e.getAttribute("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);
+ 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);
}
- return 1;
- }
-
- int InitialFolder()
- {
- msxml::IXMLDOMElement xframeElement = GetElement();
- msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//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;
- string col = hdr.colname;
-
- string str = "";
- if(dw_list.GetItemString(row, "SKUNo") !="")
- str =dw_list.GetItemString(row, "SKUNo");
- else
- str =dw_list.GetItemString(row, "No");
-
- if(dw_list.IsRowSelected(row) & 0xff)
- {
- //will unselect
- impStr = impStr.replace(" "+str,"");
- }else
- {
- //will select
- impStr += " " + str;
- }
- return 1;
- }
-
- int OnDwcClicked(ref TNotifyEvent evt,int p)
- {
- ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
- char ch;
- int row = hdr.row;
- string col = hdr.colname;
-
- string str = g_xdoc_shoppingcart.getData(0,"data/Item",row,"SOLineID");
- //string str1 = g_xdoc_shoppingcart.getData(0,"data/Item",row,"EnquiryLineID");
- string str1 = g_xdoc_shoppingcart.getData(0,"data/Item",row,"EnquiryPriceListID");
- if(str1 !="")
- str += "el:" + str1;
- else if(str != "")
- str = "sl:"+str;
- else if(dwc_list.GetItemString(row, "SKUNo") !="")
- str =dwc_list.GetItemString(row, "SKUNo");
- else
- str =dwc_list.GetItemString(row, "No");
-
- if(dwc_list.IsRowSelected(row) & 0xff)
- {
- //will unselect
- impStr = impStr.replace(" "+str,"");
- }else
- {
- //will select
- impStr += " " + 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;
- string ls_nos = "ImportXml:";
- string str = g_xdoc_shoppingcart.getData(0,"data/Item",row,"SOLineID");
- string str1 = g_xdoc_shoppingcart.getData(0,"data/Item",row,"EnquiryPriceListID");
- if(str1 !="")
- str += "el:" + str1;
- else if(str != "")
- str = "sl:"+str;
- else if(dwc_list.GetItemString(row, "SKUNo") !="")
- str =dwc_list.GetItemString(row, "SKUNo");
- else
- str =dwc_list.GetItemString(row, "No");
- ls_nos += str;
-
- dw_list.SelectRow(0,false);
- dwc_list.SelectRow(0,false);
- dw_list.Redraw();
- dwc_list.Redraw();
- impStr ="";
-
- win32::SendMessage(hObject,0x401,ls_nos,0);
-
- xutil::RestoreCursor(hCursor);
- CloseWindow();
- return 1;
- }
-
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent("WM_XCOMMAND",OnXCommand);
- //获取焦点事件,用于重置工具条
- AttachEvent("WM_SETFOCUS",OnSetFocus);
- AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChanged);
- AttachEvent("dwc_list","DWV_ROWFOCUSCHANGED",OnGoodsCarRowChanged);
- AttachEvent("tv_folder", "TVN_ITEMEXPANDING",OnTreeExpanding);
- AttachEvent("tv_folder", "TVN_SELCHANGED",OnTreeSelChanged);
-
- AttachEvent("dwc_list","DWV_DOUBLECLICKED",OnDoubleClicked);
-
- AttachEvent("WM_COMMAND",OnCkbCLick); //checkbox打钩事件
- AttachEvent("WM_COMMAND",OnCkbCLick2); //checkbox打钩事件
-
- AttachEvent("dw_list","DWV_CLICKED",OnDwClicked);
- AttachEvent("dwc_list","DWV_CLICKED",OnDwcClicked);
- }
-
- int onload()
- {
- agentFor = "goodslib";
- impStr = "";
-
- OnAttachEvent();
-
- tv_folder = GetControl("tv_folder");
- dw_list = GetControl("dw_list");
- dwc_list = GetControl("dwc_list");
-
- xaserverarg arg = GetParam();
- CustomerID = "";
- m_customer ="";
- hObject = 0;
- if(arg)
- {
- hObject = arg.GetArgString("HWND").toInt();
- CustomerID = arg.GetArgString("CustomerID");
- }
- InitialFolder();
-
- g_xdoc_product = new xdataset;
- g_xdoc_product.Init();
- xbind bindproduct = new xbind;
- bindproduct.bindEx(dw_list, g_xdoc_product,"");
-
- g_xdoc_shoppingcart = new xdataset;
- g_xdoc_shoppingcart.Init();
-
- xbind bindcart = new xbind;
- bindcart.bindEx(dwc_list, g_xdoc_shoppingcart,"");
-
- dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3("").GetXmlDoc());
- dw_list = GetControl("dw_list");
- dw_list.SetReadOnly(true);
-
- dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodslist");
- dwc_list.SetReadOnly(true);
-
- if(dw_list.GetRowCount())
- {
- htmlctrl xs = GetControl("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
+ 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