lifan
3 小时以前 ffec581757c0ebe703caaaa91370989ba4d2ffaf
jrj/project/business/Product.list.cpp
@@ -3,7 +3,7 @@
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/ximageview.hpp>
#include <win32/xfolder.hpp>
#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
#include "viewobject/saleorder.view.hpp"
@@ -95,7 +95,7 @@
   KXMLDOMElement OnGetCarListRowElement(int row = 0)
   {
      if (row < 1) row = dwc_list.GetRow();
      if (row < 1 || row > dwc_list.GetRowCount()) return 0;
      if (row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement();
      KXMLDOMElement e = dw_list.GetRowElement(row);
      return e;
   }
@@ -652,7 +652,7 @@
      xml x ;
      xaserverarg arg;
      arg.setNativePointer(arg.CreateInstance());
      xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
      arg.AddArg(L"content", str);
      if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
@@ -731,7 +731,7 @@
      //alert(id);
      HTREEITEM hItem = tv_folder.GetSelectedItem();
      KXMLDOMElement& e1 = *(KXMLDOMElement * )tv_folder.GetItemData(hItem);
      KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
      xstring categoryid = e1.selectSingleNode(L"@guid").text();
      //alert(categoryid);
      xaserverarg* arg = new xaserverarg;
@@ -746,11 +746,19 @@
   int ItemMaint()
   {
      HTREEITEM hItem = tv_folder.GetSelectedItem();
      KXMLDOMElement& e = *(KXMLDOMElement * )tv_folder.GetItemData(hItem);
      KXMLDOMElement e = tv_folder.GetItemData(hItem);
      //xstring no = e.getAttribute(L"no");
      //if(no==L"") return 1;
      xstring guid = e.getAttribute(L"guid");
      xaserverarg arg;
      //xstring guid = e.getAttribute(L"guid");
      int row = dw_list.GetNextSelectRow(1);
      if (row < 1) row = dw_list.GetRow();
      if (row < 1 || row > dw_list.GetRowCount()) return 0;
      xstring guid = dw_list.GetItemString(row, L"@guid");
      if (guid == L"") return 1;
      arg.AddArg(L"skuid", guid);
      /*
      if(no==L"NP0000FS" || no==L"UP0000FS")
@@ -758,16 +766,15 @@
         OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
      }else
      {
         int pr = g_xdoc_product;
         LPARAM  pr = g_xdoc_product;
         OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr);
      }
      */
      //KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1);
      //alert(ele.xml);
#ifdef shouldfinished
      int pr = g_xdoc_product;
      OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr);
#endif
      OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", arg);
#
      return 1;
   }
@@ -777,7 +784,7 @@
      HTREEITEM hTopItem = LookupTopFolder(hItem);
      xstring name = tv_folder.GetItemLabel(hTopItem);
      KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
      KXMLDOMElement e = tv_folder.GetItemData(hItem);
      //alert(e.xml);
      /*xstring no = e.getAttribute(L"no");
      if(no==L"") return 1;
@@ -792,7 +799,7 @@
      xstring guid = e.getAttribute(L"guid");
      if (guid == L"") return 1;
      xaserverarg arg;
      arg.setNativePointer(arg.CreateInstance());
      arg.AddArg(L"guid", e.getAttribute(L"guid"));
      if (name == L"个人产品")
         arg.AddArg(L"FolderID", e.getAttribute(L"guid"));
@@ -821,7 +828,7 @@
      xaserverarg arg;
      if (hItem != hTopItem)
      {
         KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
         KXMLDOMElement e = tv_folder.GetItemData(hItem);
         xstring folder = e.getAttribute(L"guid");
         if (folder != L"")
         {
@@ -858,7 +865,7 @@
      if (name == L"个人库" && selectname == L"新产品" && tv_folder.GetParentItem(hItem) == hTopItem) return 1;
      if (hItem != hTopItem)
      {
         KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
         KXMLDOMElement e = tv_folder.GetItemData(hItem);
         xstring folder = e.getAttribute(L"guid");
         if (folder != L"")
         {
@@ -925,9 +932,9 @@
         }
         content += L"</data>";
         xaserverarg carg;
         carg.setNativePointer(carg.CreateInstance());
         carg.AddArg(L"content", content);
         OpenWindow(L"dev:xpage[SO.Simulation.Import.vx]", (LPARAM) & carg);
         OpenWindow(L"dev:xpage[SO.Simulation.Import.vx]",  carg);
         return 1;
      }
      else if (comdid == L"xmEnquiry")
@@ -942,9 +949,9 @@
         }
         content += L"</data>";
         xaserverarg carg;
         carg.setNativePointer(carg.CreateInstance());
         carg.AddArg(L"content", content);
         OpenWindow(L"dev:xpage[Enquiry.Import.vx]", (LPARAM)&carg);
         OpenWindow(L"dev:xpage[Enquiry.Import.vx]", carg);
         return 1;
      }
      else if (comdid == L"xmPurchar")
@@ -1085,9 +1092,68 @@
            alert(L"添加成功");
         return 1;
      }
      else if (comdid == L"xmExportImage")
      {
         return OnExportImages(dw_list);
         }
      return 0;
   }
   int OnExportImages(xdwgrid dw_obj)
   {
      xstring folder = xfolder::GetFolderForSave();
      if (folder == L"") return 1;
      xstring skunos = L"";
      for (int i = 0; i <= dw_obj.GetRowCount(); i++)
      {
         if (i == 1)skunos = dw_obj.GetItemString(i, L"SKUNo");
         else skunos += L"," + dw_obj.GetItemString(i, L"SKUNo");
      }
      xml x;
      xaserverarg arg;
      arg.AddArg(L"SKUNoList", skunos);
      xstring src = L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNoList";
      //trace("SKUNo="+SKUNo);//要有展示图片查询条件内必定要skuno
      if (xurl::get(src, arg.GetString(), x) != 1)
      {
         trace(L"error for download skuno pic!");
         return 1;
      }
      xstring spath = L"";
      xstring path = folder;// GetModuleTmpPath();
      xstring ext = L"jpg";
      trace(x.xml());
      const wchar_t* str = x.xml();
      KXMLDOMNodeList items = x.selectNodes(L"*/*");
      long len = items.length();
      for (int i = 0; i <= len; i++)
      {
         KXMLDOMElement ele = items.item(i);
         if (ele.selectSingleNode(L"FileExt[1]"))
         {
            ext = ele.selectSingleNode(L"FileExt[1]").text();
         }
         xstring SKUNo = L"";
         if (ele.selectSingleNode(L"FullName[1]"))
         {
            SKUNo = ele.selectSingleNode(L"FullName[1]").text();
            xstring filename = SKUNo + L"." + ext;
            if (ele.selectSingleNode(L"PicPath[1]"))
               spath = ele.selectSingleNode(L"PicPath[1]").text();
            if (spath != L"")
            {
               xaserver::DownLoadFile(this->GetServerUrl(), spath, L"", path + L"/" + filename);
            }
         }
      }
      alert(L"样品图片生成完成");
      return 1;
   }
   //命令处理事件
   int OnXCommand(TEvent* evt, int param)
   {
@@ -1112,12 +1178,12 @@
      int len = nlist.length();
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(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, (LPARAM)& e, 15);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, label, e, 15);
         xstring child = e.getAttribute(L"Childs");
         if (child == L"")
            tv_folder.SetItemChild(h, 1);
@@ -1137,12 +1203,12 @@
      int len = nlist.length();
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = * new KXMLDOMElement(nlist.item(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, (LPARAM)&e, 15);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, label, e, 15);
         xstring child = e.getAttribute(L"Childs");
         if (child == L"")
            tv_folder.SetItemChild(h, 1);
@@ -1160,9 +1226,9 @@
      if (len > 0) tv_folder.SetItemChild(hItem, 1);
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
         KXMLDOMElement e = nlist.item(i);
         xstring name = e.getAttribute(L"name");
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM) & e, image);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
         ExpandCatChildFolder(h, e, 35);
      }
      return 1;
@@ -1175,9 +1241,9 @@
      int len = nlist.length();
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
         KXMLDOMElement e = nlist.item(i);
         xstring name = e.getAttribute(L"name");
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
         ExpandCatChildFolder(h, e, 35);
      }
      return 1;
@@ -1189,19 +1255,19 @@
      xstring name = tv_folder.GetItemLabel(hTopItem);
      HTREEITEM child = tv_folder.GetChildItem(hItem);
      xstring no = L"";
      KXMLDOMElement* e=nullptr;
      KXMLDOMElement e;
      if (name == L"公司库" && !child)
      {
         no = L"";
         if (hTopItem != hItem)
         {
            e = (KXMLDOMElement * )tv_folder.GetItemData(hItem);
            no = e->getAttribute(L"categoryid");
            e = tv_folder.GetItemData(hItem);
            no = e.getAttribute(L"categoryid");
         }
         else
         {
            e = (KXMLDOMElement*)tv_folder.GetItemData(hItem);
            no = e->getAttribute(L"categoryid");
            e = tv_folder.GetItemData(hItem);
            no = e.getAttribute(L"categoryid");
         }
         MakeGoodsFolderItem(hItem, no);
      }
@@ -1210,8 +1276,8 @@
         no = L"";
         if (hTopItem != hItem)
         {
            e = (KXMLDOMElement*)tv_folder.GetItemData(hItem);
            no = e->getAttribute(L"categoryid");
            e = tv_folder.GetItemData(hItem);
            no = e.getAttribute(L"categoryid");
            MakeUserGoodsFolderItem(hItem, no);
         }
      }
@@ -1245,7 +1311,7 @@
   {
      while (true)
      {
         KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
         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);
@@ -1258,7 +1324,7 @@
   {
      hItem = LookupCustomerFolder(hItem);
      if (hItem == 0) return L"";
      KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
      KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
      xstring str = e1.getAttribute(L"no");
      return str.mid(xstring(L"Customer:").length(), 9999);
   }
@@ -1300,7 +1366,7 @@
      {
         if (selectname != name)
         {
            KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
            KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
            xstring str = e1.getAttribute(L"no");
            alert(str);
            if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0)
@@ -1366,11 +1432,13 @@
            if (hItem != hTopItem)
            {
               KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
               KXMLDOMElement e = tv_folder.GetItemData(hItem);
               no = e.getAttribute(L"guid");
            }
            else
               return 1;
            /*   dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc());
            /*   dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no));
               dw_list = GetControl(L"dw_list");
               dw_list.Reset();
               dw_list.SetReadOnly(true);
@@ -1389,7 +1457,10 @@
                     dw_list.Retrieve(ProductLibraryView::GetMaintList3(no, queryString, L""));
               }
               else
               {
                  if (no == L"N000005") return 1;
                  dw_list.Retrieve(ProductLibraryView::GetMaintList3(no));
               }
            }
            //dw_list.PostRetrieve();
            dw_list.Redraw();
@@ -1451,12 +1522,12 @@
      int len = nlist.length();
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = * new KXMLDOMElement(nlist.item(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, (LPARAM) & e, image);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
         tv_folder.SetItemChild(h, 1);
         ExpandChildFolder(h, e);
      }
@@ -1505,7 +1576,6 @@
   {
      agentFor = L"goodslib";
      m_customer = 0;
      imageElement = 0;
      OnAttachEvent();
@@ -1522,14 +1592,15 @@
      dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist");
      dwc_list.SetReadOnly(true);
      tv_folder.ExpandItem(tv_folder.GetRootItem());
      tv_folder.ItemFocus(tv_folder.GetRootItem());
      if (dw_list.GetRowCount())
      {
         xshtml xs = GetControl(L"html_detail");
         xs.SetContent(makeHtml(1));
      }
      tv_folder.ExpandItem(tv_folder.GetRootItem());
      tv_folder.ItemFocus(tv_folder.GetRootItem());
      return 1;
   }
@@ -1540,7 +1611,7 @@
      return 1;
   }
   int OnImgDBClicked(TEvent * evt, int pr)
   int OnImgDBClicked(TEvent * evt, LPARAM  pr)
   {
      IMGNNMHDR& nmtv = *(IMGNNMHDR*)evt->notify.pnmh;
      xstring src = nmtv.path;