xj qian
2024-07-19 26c872c4c2c1e56925f755e927b58fbe07da2bcb
jrj/project/business/Quote/Product.Select.cpp
@@ -17,7 +17,7 @@
class __declspec(dllexport)  ProductSelectWin :  public xwin
   {
   public:
      int hObject = 0;
   HWND hObject = 0;
      xstring CustomerID;
      xstring m_customer;
   public:
@@ -34,8 +34,8 @@
      xdwgrid   dwc_list;
   
      //产品缓存对象
      xdataset g_xdoc_product;
      xdataset g_xdoc_shoppingcart;
   //xdataset g_xdoc_product;
   //xdataset g_xdoc_shoppingcart;
      xcombobox  cbx_goodscar;
      //是否多选
@@ -60,7 +60,7 @@
         {   
            KXMLDOMElement e = nlist.item(i);
            xstring name = e.getAttribute(L"name");
            xcombobox::AddItem(xc.GetId(),name);
         xc.AddItem(name);
         }
         return 1;
      }      
@@ -97,25 +97,25 @@
      KXMLDOMElement OnGetCarListRowElement(int row=0)
      {
         if(row < 1) row = dwc_list.GetRow();
         if(row < 1 || row > dwc_list.GetRowCount()) return 0;
         KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row);
      if(row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement();
      KXMLDOMElement e =dwc_list.GetRowElement(row);
         return e;
      }   
   
      int OnShowImage(xstring skuid)
      {
         imageview im = GetControl(L"im1");
      ximageview im = GetControl(L"im1");
         //im.RemoveImage();
         im.ResetEx();
      im.Reset();
         
         xml xp=new xml;
      xml xp;
         
         xaserverarg arg_pic;
         arg_pic.setNativePointer(arg_pic.CreateInstance());   
         arg_pic.AddArg(L"SKUID",skuid);
         if(xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU",arg_pic.GetString(),xp)!=1)
         {
            trace(L"xxx",xp.xml());
         trace(xp.xml());
         }else
         {
            //imageElement = xp.documentElement();
@@ -139,11 +139,11 @@
               
      int OnShowImage(xstring skuid, xstring customerItemNo)
      {
         imageview im = GetControl(L"im1");
      ximageview im = GetControl(L"im1");
         //im.RemoveImage();
         im.ResetEx();
      im.Reset();
         
         xml xp=new xml;
      xml xp;
         
         xaserverarg arg_pic;
         arg_pic.setNativePointer(arg_pic.CreateInstance());   
@@ -153,7 +153,7 @@
         
         if(xurl::get(L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU",arg_pic.GetString(),xp)!=1)
         {
            trace(L"error:" + xp.xml());
         trace((xstring)L"error:" + xp.xml());
         }else
         {
            //imageElement = xp.documentElement();
@@ -175,8 +175,8 @@
      
      int ItemAdd()
      {
         int hItem = tv_folder.GetSelectedItem();
         int hTopItem = LookupTopFolder(hItem);
      HTREEITEM hItem = tv_folder.GetSelectedItem();
      HTREEITEM hTopItem = LookupTopFolder(hItem);
         xstring name = tv_folder.GetItemLabel(hTopItem);
         KXMLDOMElement e= tv_folder.GetItemData(hItem);
@@ -201,35 +201,35 @@
         return 1;
      }
         
      int OnRowChanged(ref TNotifyEvent evt,int p)
   int OnRowChanged(TEvent* evt,LPARAM p)
      {
         ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
      DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
         int row = hdr.row;
            
         htmlctrl xs = GetControl(L"html_detail");
      xshtml xs = GetControl(L"html_detail");
         xstring html = makeHtml(row);
         xs.SetContent(html);
         xs.Redraw();
         
         xstring id = g_xdoc_product.getData(0,L"data/Item",row,L"@guid");
      xstring id = dw_list.GetGuid(row);
         OnShowImage(id);
               
         return 1;
      }
      
      int OnGoodsCarRowChanged(ref TNotifyEvent evt,int p)
   int OnGoodsCarRowChanged(TEvent* evt, LPARAM p)
      {
         ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
      DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
         int row = hdr.row;
            
         htmlctrl xs = GetControl(L"html_detail");
      xshtml 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");
         xstring id = dwc_list.GetItemString(row, L"SKUID");
         xstring customerItemNo = dwc_list.GetItemString(row,L"CustomerItemNo");
            OnShowImage(id,customerItemNo);
         }
            
@@ -242,7 +242,7 @@
         int MB_OKCANCEL  = 1;
         int MB_ICONQUESTION  = 32;
         if(MessageBox(GetHWND(),L"确认删除指定的项,删除后将不能恢复?",L"提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK) return 1;
         xstring id = g_xdoc_product.getData(0,L"data/Item",row,L"@guid");
      xstring id = dw_list.GetItemString(row,L"@guid");
      
         if(ProductLibraryView::DeleteItem(id)==1)   dw_list.DeleteRow(0);   
         return 1;
@@ -254,24 +254,23 @@
         return 1;
      }
      
      int OnCkbCLick(ref TEvent evt,int p)
   int OnCkbCLick(TEvent* evt,int p)
      {   
         xcheckbox cbx_1 = GetControl(L"frame:cbx1");         
         int state=cbx_1.GetCheck(cbx_1.GetId());
      int state=cbx_1.GetCheck();
         return SetSelectState(dw_list,state);
      }
         
      int OnCkbCLick2(ref TEvent evt,int p)
   int OnCkbCLick2(TEvent*,int p)
      {   
         xcheckbox cbx_2 = GetControl(L"frame:cbx2");         
         int state=cbx_2.GetCheck(cbx_2.GetId());
      int state=cbx_2.GetCheck();
         return SetSelectState(dwc_list,state);
      }   
         
      xml  GetGoodsPropList(xstring guid)
      {
         xml x=new xml;
      xml x;
         xaserverarg arg ;
         
         arg.AddArg(L"guid", guid);   
@@ -286,7 +285,7 @@
               
      xml  GetGoodsPropListEx(xstring guid)
      {
         xml x=new xml;
      xml x;
         
         xstring fields=L"<data>";
         
@@ -317,21 +316,21 @@
         
      xstring makeHtml(int row)
      {
         xstring id = g_xdoc_product.getData(0,L"data/Item",row,L"@guid");
      xstring id = dw_list.GetItemString(row,L"@guid");
         xml x = GetGoodsPropList(id);
         xml x1 = GetGoodsPropListEx(id);
         
         xstring html=L"<html><style> .text(){ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
         html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >编号:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,L"No")+
                  "</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,L"RefNo")+
                  "</span></div>";
               L"</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,L"RefNo")+
               L"</span></div>";
         html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >货号:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,L"GoodsNo")+
                  "</span></div>" ;
               L"</span></div>" ;
         html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >品名:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,L"CName")+
                  "</span></div>" ;
               L"</span></div>" ;
         if(dw_list.GetItemString(row,L"CSpec")!=L"")
            html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >规格:</span><span  style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,L"CSpec")+
                     "</span></div>" ;
                  L"</span></div>" ;
         
         KXMLDOMNodeList fieldsEx = x1.selectNodes(L"data/field");
         xstring ls_detail=L"";
@@ -349,15 +348,15 @@
            {
               name = fieldsEx.item(i).selectSingleNode(L"@name").text();
               label  = fieldsEx.item(i).selectSingleNode(L"@label").text();
               ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + g_xdoc_product.getData(0,L"data/Item",row,name) + L"</td>" ;
            ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + dw_list.GetItemString(row,name.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'/>"
      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>" ;
@@ -385,7 +384,7 @@
                  if(i >= len)count = 2;
                  continue;
               }
               else if(g_xdoc_product.getData(0,L"data/Item",row,name)==L"")
            else if(dw_list.GetItemString(row,name.c_str())==L"")
               {
                  KXMLDOMNodeList options = fields.item(i).selectNodes(L"item");
                  int tlen = options.length();
@@ -395,13 +394,13 @@
                     if(options.item(k).text())
                     {
                        if(k>0) terms += L", L";
                        terms += L"[" + options.item(k).text() +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>" + g_xdoc_product.getData(0,L"data/Item",row,name) + L"</td>" ;
               ls_item = L"<td>" + label + L"</td>" + L"<td>" + dw_list.GetItemString(row,name.c_str()) + L"</td>" ;
                  count++;
               }
               i++;
@@ -411,8 +410,8 @@
            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'/>"
      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>" ;
@@ -430,10 +429,10 @@
            html +=  L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row,L"PackTerm") +  L"</span></div>" ;
         }
         
         if(g_xdoc_product.getData(0,L"data/Item",row,L"Remark") != L"" && id == L"23A8BBA2-DEF1-4C00-978E-646151A6082E")
      if(dw_list.GetItemString(row,L"Remark") != L"" && id == L"23A8BBA2-DEF1-4C00-978E-646151A6082E")
         {
            html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >备注:</span></div>" ;
            html +=  L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + g_xdoc_product.getData(0,L"data/Item",row,L"Remark") +  L"</span></div>" ;
         html +=  L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row,L"Remark") +  L"</span></div>" ;
         }
         html +=  L"<div style='height:24px'/>";
@@ -460,18 +459,18 @@
         
         xstring html=L"<html><style> .text(){ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
         html += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >编号:</span><span  style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,L"No")+
                  "</span></div>";
               L"</span></div>";
         html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >品名:</span><span  style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,L"CName")+
                  "</span></div>" ;
               L"</span></div>" ;
         html +=  L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >规格:</span><span  style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,L"CSpec")+
                  "</span></div>" ;
               L"</span></div>" ;
         
         KXMLDOMNodeList fields = x.selectNodes(L"data/field");
         int len = fields.length();
         html += L"<table>" +
            "<colgroup span='1' width='80'/>" +
            "<colgroup span='1' width='120'/>" +
            "<colgroup span='1' width='420'/>" ;
      html += 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>";
@@ -481,26 +480,26 @@
            xstring label  = fields.item(i).selectSingleNode(L"@label").text();
            html += L"<tr>" ;
            if(i==0)
               html += L"<td rowspan='" + len.toString() + L"'>" + No + L"</td><td >"+ label +  L"</td><td >"+L"</td>" ;
            html += L"<td rowspan='" + xstring(len) + L"'>" + No + L"</td><td >" + label + L"</td><td >" + L"</td>";
            else
               html += L"<td >"+ label +  L"</td><td >"+ g_xdoc_shoppingcart.getData(0,L"data/Item",row,name)+L"</td>" ;
            html += L"<td >"+ label +  L"</td><td >"+ dwc_list.GetItemString(row,name.c_str())+L"</td>" ;
            html +=L"</tr>";
         }
         
         html += L"<tr>" ;
         html += L"<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"PackCode") + L"</td><td >包装方式</td><td >"+
             g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"CPack") + L"</td>" ;
      html += L"<td rowspan='3'>" + dwc_list.GetItemString(row,L"PackCode") + L"</td><td >包装方式</td><td >"+
            dwc_list.GetItemString(row,L"CPack") + L"</td>" ;
         html +=L"</tr>";
         html += L"<tr height='48'>" ;
         html += L"<td >包装要求</td><td >"+ g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"PackQualityTerm")+L"</td>" ;
      html += L"<td >包装要求</td><td >"+ dwc_list.GetItemString(row,L"PackQualityTerm")+L"</td>" ;
         html +=L"</tr>";
         html += L"<tr>" ;
         html += L"<td >侧唛</td><td ></td>" ;
         html +=L"</tr>";
   
         html += L"<tr height='72'>" ;
         html += L"<td>" + g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"QualityCode") + L"</td><td >质量要求</td><td >"+
             g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"QualityTerm") + L"</td>" ;
      html += L"<td>" + dwc_list.GetItemString(row,L"QualityCode") + L"</td><td >质量要求</td><td >"+
            dwc_list.GetItemString(row,L"QualityTerm") + L"</td>" ;
         html +=L"</tr>";
         html +=L"</table>";
@@ -529,7 +528,7 @@
         dw_list.Redraw();
         impStr =L"";
         //alert(ls_nos);
         SendMessage(hObject,0x401,ls_nos,0);
      SendMessage(hObject,0x401,(LPARAM)ls_nos.c_str(), 0);
         alert(L"转入完成");
            
         return 1;
@@ -537,7 +536,7 @@
      int OnSearch()
      {
         int hItem = tv_folder.GetSelectedItem();
      HTREEITEM hItem = tv_folder.GetSelectedItem();
         return RetrieveItem(hItem);
      }
               
@@ -576,15 +575,15 @@
      }
            
      //查找当前树项的顶级目录
      int LookupTopFolder(int hItem)
   HTREEITEM LookupTopFolder(HTREEITEM hItem)
      {
         int hRoot = tv_folder.GetRootItem();
      HTREEITEM hRoot = tv_folder.GetRootItem();
         while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
         return hItem;
      }
      
      //插入产品类项的子项
      int MakeGoodsFolderItem(int hItem, xstring sno)
   int MakeGoodsFolderItem(HTREEITEM hItem, xstring sno)
      {
         xml x = ProductLibraryView::GetTreeChildItems3(sno);
         if(!x) return 0;
@@ -598,14 +597,14 @@
            xstring no = e.getAttribute(L"CategoryNo");
            xstring label = no.trim() + L" " + name;
            int h= tv_folder.InsertChildItem(hItem,label, trust(e as int),15);
         HTREEITEM h= tv_folder.InsertChildItem(hItem,label, e,15);
            tv_folder.SetItemChild(h,1);
         }
         return 1;            
      }   
      //插入新产品目录子项
      int MakeUserGoodsFolderItem(int hItem, xstring sno)
   int MakeUserGoodsFolderItem(HTREEITEM hItem, xstring sno)
      {
         xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
         if(!x) return 0;
@@ -619,7 +618,7 @@
            xstring no = e.getAttribute(L"CategoryNo");
            xstring label = no.trim() + L" " + name;
            int h= tv_folder.InsertChildItem(hItem,label, trust(e as int),15);
         HTREEITEM h= tv_folder.InsertChildItem(hItem,label, e,15);
            xstring child = e.getAttribute(L"Childs");
            if(child==L"")
               tv_folder.SetItemChild(h,1);
@@ -630,7 +629,7 @@
      }   
            
      //插入购物车项
      int ExpandCatChildFolder(int hItem, KXMLDOMElement ele ,int image)
   int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele ,int image)
      {
         KXMLDOMNodeList nlist = ele.selectNodes(L"item");
         int len = nlist.length();
@@ -639,12 +638,12 @@
         {   
            KXMLDOMElement e = nlist.item(i);
            xstring name = e.getAttribute(L"name");
            int h = tv_folder.InsertChildItem(hItem,name, trust(e as int),image);
         HTREEITEM h = tv_folder.InsertChildItem(hItem,name, e,image);
            ExpandCatChildFolder(h,e,35);
         }
         return 1;
      }
      int MakeGoodCarFolderItem(int hItem)
   int MakeGoodCarFolderItem(HTREEITEM hItem)
      {
         //trace(L"\r\nCustomerID:"+CustomerID);
         xml x = ShoppingCartView::GetRoleList(CustomerID);
@@ -656,20 +655,20 @@
         {   
            KXMLDOMElement e = nlist.item(i);
            xstring name = e.getAttribute(L"name");
            int h = tv_folder.InsertChildItem(hItem,name, trust(e as int),35);
         HTREEITEM h = tv_folder.InsertChildItem(hItem,name, e,35);
            ExpandCatChildFolder(h,e,35);
         }
         return 1;            
      }   
      //树展开
      int OnTreeExpanding(ref TNotifyEvent evt,int p)
   int OnTreeExpanding(TEvent* evt,int p)
      {
         ref NMTREEVIEW nmtv = evt.pnmh;
         int hItem = nmtv.itemNew.hItem;
         int hTopItem = LookupTopFolder(hItem);
      NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
      HTREEITEM hItem = nmtv.itemNew.hItem;
      HTREEITEM hTopItem = LookupTopFolder(hItem);
         xstring name = tv_folder.GetItemLabel(hTopItem);   
         int child = tv_folder.GetChildItem(hItem);
      HTREEITEM child = tv_folder.GetChildItem(hItem);
         xstring no =L"";
         KXMLDOMElement e;
         if(name == L"公司库" && !child )
@@ -714,11 +713,11 @@
         return 1;
      }
      
      int LookupCustomerFolder(int hItem)
   HTREEITEM LookupCustomerFolder(HTREEITEM hItem)
      {
         while(true)
         {
            KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
         KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
            xstring str = e1.getAttribute(L"no");
            if(str.find(L"Customer:")>=0) return hItem;
            hItem = tv_folder.GetParentItem(hItem);
@@ -727,21 +726,21 @@
         return 0;
      }
      
      xstring LookupCustomer(int hItem)
   xstring LookupCustomer(HTREEITEM hItem)
      {
         hItem = LookupCustomerFolder(hItem);
         if(hItem==0) return "";
         KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
      if(hItem==0) return L"";
      KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
         xstring str = e1.getAttribute(L"no");
         return str.mid(L"Customer:".length()(),9999);
      return str.mid(xstring(L"Customer:").length(),9999);
      }
   
      int RetrieveItem(int hItem)
   int RetrieveItem(HTREEITEM hItem)
      {
         int hTopItem = LookupTopFolder(hItem);
      HTREEITEM hTopItem = LookupTopFolder(hItem);
         xstring name = tv_folder.GetItemLabel(hTopItem);
         xstring selectname = tv_folder.GetItemLabel(hItem);
         imageview im = GetControl(L"im1");
      ximageview im = GetControl(L"im1");
         m_customer = L"";
         xcontrol query = GetControl(L"sl_search");
         xstring queryString = query.GetText();
@@ -752,7 +751,7 @@
            ResetAgent(L"goodscar");
            if(selectname !=name)
            {
               KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
            KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
               xstring str = e1.getAttribute(L"no");
               
               trace(L"\r\n-------"+str+L"--------"+queryString);
@@ -762,6 +761,7 @@
                  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);
@@ -778,9 +778,9 @@
                  dwc_list.SetColumnState(L"CurrencyCode",false);
                  //alert(str);
                  if(queryString==L"")
                     g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str));
                  dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str));
                  else
                     g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str,queryString));
                  dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str,queryString));
               }
               else if(e1.getAttribute(L"categoryid") !=L"")
               {
@@ -789,9 +789,9 @@
                  dwc_list.SetReadOnly(true);
                  dwc_list.Reset();
                  if(queryString==L"")
                     g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid ));
                  dwc_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid ));
                  else
                     g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString,L""));
                  dwc_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString,L""));
               }
               else
               {
@@ -799,26 +799,25 @@
                  dwc_list.SetReadOnly(true);
                  dwc_list.Reset();
                  if(queryString==L"")
                     g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname));
                  dwc_list.Retrieve(ShoppingCartView::GetGoodsList(selectname));
                  else
                     g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname,queryString));
                  dwc_list.Retrieve(ShoppingCartView::GetGoodsList(selectname,queryString));
               }
               dwc_list.PostRetrieve();
               dwc_list.Redraw();
               if(dwc_list.GetRowCount() >= 1 )
               {
                  htmlctrl xs = GetControl(L"html_detail");
                  xs.SetContent(makeGoodscarHtml(1));
                  
                  if(m_customer !=L"")
                  {
                     xstring skuid = g_xdoc_shoppingcart.getData(0,L"data/Item",1,L"SKUID");
                     xstring customerItemNo = g_xdoc_shoppingcart.getData(0,L"data/Item",1,L"CustomerItemNo");
                  xstring skuid = dwc_list.GetItemString(1,L"SKUID");
                  xstring customerItemNo = dwc_list.GetItemString(1,L"CustomerItemNo");
                     OnShowImage(skuid,customerItemNo);
                  }
               } else {                  
                  im.ResetEx();
               im.Reset();
                  im.Redraw();
                  xs = GetControl(L"html_detail");
@@ -834,7 +833,7 @@
               ResetAgent(L"userlib");
            else 
               ResetAgent(L"goodslib");
            int hCursor = xutil::SetCursorWait();
         HCURSOR hCursor = xutil::SetCursorWait();
            if(name == L"个人库" || name==L"公司库")
            {
@@ -874,22 +873,22 @@
                        x = ProductLibraryView::GetMaintList3(no);
                  }
               }
               if(x) g_xdoc_product.Retrieve(x);
               dw_list.PostRetrieve();
            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 = g_xdoc_product.getData(0,L"data/Item",1,L"@guid");
               xstring id = dw_list.GetItemString(1,L"@guid");
                  OnShowImage(id);
               }else
               {
                  im.ResetEx();
               im.Reset();
                  im.Redraw();
                  xs = GetControl(L"html_detail");
                  xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
               }
               xs.Redraw();
@@ -899,14 +898,14 @@
         impStr = L"";
      }
               
      int OnTreeSelChanged(ref TNotifyEvent evt,int p)
   int OnTreeSelChanged(TEvent * evt,LPARAM p)
      {
         ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
         int hItem = nmtv.itemNew.hItem;
      NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
      HTREEITEM hItem = nmtv.itemNew.hItem;
         return RetrieveItem(hItem);
      }   
      int  ExpandChildFolder(int hItem, KXMLDOMElement pElement)
   int  ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement)
      {
         KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
         int len = nlist.length();
@@ -917,7 +916,7 @@
            xstring sImage = e.getAttribute(L"image");
            int image = 15;
            //if(sImage) image = sImage.toInt();
            int h= tv_folder.InsertChildItem(tv_folder.GetId(),hItem,name, trust(e as int),image);
         HTREEITEM h= tv_folder.InsertChildItem(hItem,name, e,image);
            tv_folder.SetItemChild(h,1);
            ExpandChildFolder(h,e);
         }
@@ -932,9 +931,9 @@
         return 1;
      }
      
      int OnDwClicked(ref TNotifyEvent evt,int p)
   int OnDwClicked(TEvent* evt,int p)
      {
         ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
      DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
         char ch;
         int row = hdr.row;
         xstring col = hdr.colname;
@@ -957,16 +956,16 @@
         return 1;
      }
      
      int OnDwcClicked(ref TNotifyEvent evt,int p)
   int OnDwcClicked(TEvent* evt, LPARAM p)
      {
         ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
      DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
         char ch;
         int row = hdr.row;
         xstring col = hdr.colname;
         
         xstring str = g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"SOLineID");
         //xstring 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");
      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"")
@@ -988,14 +987,14 @@
         return 1;
      }
      
      int OnDoubleClicked(ref TNotifyEvent evt,int p)
   int OnDoubleClicked(TEvent* evt, LPARAM p)
      {
         int hCursor = xutil::SetCursorWait();
         ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR);
      HCURSOR hCursor = xutil::SetCursorWait();
      DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
         int row = hdr.row;
         xstring ls_nos = L"ImportXml:";
         xstring str = g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"SOLineID");
         xstring str1 = g_xdoc_shoppingcart.getData(0,L"data/Item",row,L"EnquiryPriceListID");
      xstring str = dwc_list.GetItemString(row,L"SOLineID");
      xstring str1 = dwc_list.GetItemString(row,L"EnquiryPriceListID");
         if(str1 !=L"")
            str += L"el:" + str1;
         else if(str != L"")
@@ -1012,7 +1011,7 @@
         dwc_list.Redraw();
         impStr =L"";
         
         SendMessage(hObject,0x401,ls_nos,0);
      SendMessage(hObject,0x401,(WPARAM)ls_nos.c_str(), 0);
         xutil::RestoreCursor(hCursor);
         CloseWindow();
@@ -1042,6 +1041,7 @@
      int onload()
      {
      SetArg();
         agentFor = L"goodslib";
         impStr = L"";
               
@@ -1051,27 +1051,16 @@
         dw_list    = GetControl(L"dw_list");
         dwc_list = GetControl(L"dwc_list");
         xaserverarg arg = GetParam();
      xaserverarg arg = GetArg();
         CustomerID = L"";
         m_customer =L"";
         hObject = 0;
         if(arg)
         {
            hObject = arg.GetArgString(L"HWND").toInt();
         hObject = (HWND)arg.GetParam(L"ParentWindow");
            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");
@@ -1082,14 +1071,12 @@
         if(dw_list.GetRowCount())
         {
            htmlctrl xs = GetControl(L"html_detail");
         xshtml xs = GetControl(L"html_detail");
            xs.SetContent(makeHtml(1));
         }
         
         xtreeview::ExpandItem(tv_folder.GetId(),
            xtreeview::GetNextItem(tv_folder.GetId(),xtreeview::GetRootItem(tv_folder.GetId())));
         xtreeview::ExpandItem(tv_folder.GetId(),
            xtreeview::GetNextItem(tv_folder.GetId(),xtreeview::GetNextItem(tv_folder.GetId(),xtreeview::GetRootItem(tv_folder.GetId()))));
      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);
@@ -1104,4 +1091,3 @@
         return 1;
      }      
   };
]