|  |  | 
 |  |  |    class __declspec(dllexport) EntityProductSelectWin : public xwin | 
 |  |  |    { | 
 |  |  |    public: | 
 |  |  |       int hObject = 0; | 
 |  |  |       HWND hObject = 0; | 
 |  |  |       xstring CustomerID; | 
 |  |  |       xstring SupplierID; | 
 |  |  |       xstring m_customer; | 
 |  |  | 
 |  |  |       xdwgrid   dwc_list; | 
 |  |  |  | 
 |  |  |       //产品缓存对象 | 
 |  |  |       xdataset g_xdoc_product; | 
 |  |  |       xdataset g_xdoc_shoppingcart; | 
 |  |  |       //xdataset dw_list; | 
 |  |  |       //xdataset dwc_list; | 
 |  |  |  | 
 |  |  |       xcombobox  cbx_goodscar; | 
 |  |  |       //是否多选 | 
 |  |  | 
 |  |  |          { | 
 |  |  |             KXMLDOMElement e = nlist.item(i); | 
 |  |  |             xstring name = e.getAttribute(L"name"); | 
 |  |  |             xcombobox::AddItem(xc.GetId(), name); | 
 |  |  |             xcombobox::AddItem(xc.GetHWND(), name); | 
 |  |  |          } | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  | 
 |  |  |       KXMLDOMElement OnGetCarListRowElement(int row = 0) | 
 |  |  |       { | 
 |  |  |          if (row < 1) row = dwc_list.GetRow(); | 
 |  |  |          if (row < 1 || row > dwc_list.GetRowCount()) return 0; | 
 |  |  |          KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row); | 
 |  |  |          if (row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement(); | 
 |  |  |          KXMLDOMElement e = dwc_list.GetRowElement(row); | 
 |  |  |          return e; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  | 
 |  |  |          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) | 
 |  |  |          { | 
 |  |  | 
 |  |  |          xml xp ; | 
 |  |  |           | 
 |  |  |          xaserverarg arg_pic; | 
 |  |  |          arg_pic.setNativePointer(arg_pic.CreateInstance()); | 
 |  |  | 			 | 
 |  |  |          arg_pic.AddArg(L"SKUID", skuid); | 
 |  |  |          arg_pic.AddArg(L"CustomerID", m_customer); | 
 |  |  |          arg_pic.AddArg(L"CustomerItemNo", customerItemNo); | 
 |  |  | 
 |  |  |          xs.SetContent(html); | 
 |  |  |          xs.Redraw(); | 
 |  |  |  | 
 |  |  |          xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); | 
 |  |  |          xstring id = dw_list.GetItemString(row, L"@guid"); | 
 |  |  |          OnShowImage(id); | 
 |  |  |  | 
 |  |  |          return 1; | 
 |  |  | 
 |  |  |          xstring html = makeGoodscarHtml(row); | 
 |  |  |          xs.SetContent(html); | 
 |  |  |          xs.Redraw(); | 
 |  |  |          xstring id = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID"); | 
 |  |  |          xstring id = dwc_list.GetItemString(row, L"SKUID"); | 
 |  |  |          if (m_customer != L"") | 
 |  |  |          { | 
 |  |  |             xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo"); | 
 |  |  |             xstring customerItemNo = dwc_list.GetItemString(row, L"CustomerItemNo"); | 
 |  |  |             OnShowImage(id, customerItemNo); | 
 |  |  |          } | 
 |  |  |          else | 
 |  |  | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  | #if 0 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |       int DeleteRow(int row) | 
 |  |  |       { | 
 |  |  |          int IDOK = 1; | 
 |  |  |          int MB_OKCANCEL = 1; | 
 |  |  |          int MB_ICONQUESTION = 32; | 
 |  |  |          if (MessageBox(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; | 
 |  |  |          xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); | 
 |  |  |          xstring id = dw_list.GetItemString(row, L"@guid"); | 
 |  |  |  | 
 |  |  |          if (ProductLibraryView::DeleteItem(id) == 1)   dw_list.DeleteRow(0); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  | #endif // 0 | 
 |  |  |       int SetSelectState(xdwgrid dw_obj, int state) | 
 |  |  |       { | 
 |  |  |          dw_obj.SetSelectionMode(3); | 
 |  |  | 
 |  |  |          if (row < 1) row = dw_list.GetRow(); | 
 |  |  |          if (row < 1 || row > dw_list.GetRowCount()) return 0; | 
 |  |  |  | 
 |  |  |          KXMLDOMElement e = g_xdoc_product.getRowElement(L"data/Item", row); | 
 |  |  |          xstring skuid = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); | 
 |  |  |          xstring SKUNo = g_xdoc_product.getData(0, L"data/Item", row, L"SKUNo"); | 
 |  |  |          KXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |          xstring skuid = dw_list.GetItemString(row, L"@guid"); | 
 |  |  |          xstring SKUNo = dw_list.GetItemString(row, L"SKUNo"); | 
 |  |  |          xstring id = ViewObject::GetGuid(); | 
 |  |  |          xstring ret1 = Up(id); | 
 |  |  |          if (ret1 == L"-1") return -1; | 
 |  |  | 
 |  |  |          xml x ; | 
 |  |  |           | 
 |  |  |          x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" + | 
 |  |  |             "<ProductPictureID>" + id + L"</ProductPictureID>" + | 
 |  |  |             "<OriginFile>" + originfile + L"</OriginFile>" + | 
 |  |  |             "<FileExt>" + ext + L"</FileExt>" + | 
 |  |  |             "<SKUID>" + skuid + L"</SKUID>" + | 
 |  |  |             "<Name>[" + SKUNo.trim() + L"]</Name>" + | 
 |  |  |             "<FileName>" + id + L".jpg</FileName>" + | 
 |  |  |             "</Item>" | 
 |  |  |             L"<ProductPictureID>" + id + L"</ProductPictureID>" + | 
 |  |  |             L"<OriginFile>" + originfile + L"</OriginFile>" + | 
 |  |  |             L"<FileExt>" + ext + L"</FileExt>" + | 
 |  |  |             L"<SKUID>" + skuid + L"</SKUID>" + | 
 |  |  |             L"<Name>[" + SKUNo.trim() + L"]</Name>" + | 
 |  |  |             L"<FileName>" + id + L".jpg</FileName>" + | 
 |  |  |             L"</Item>" | 
 |  |  |          ); | 
 |  |  |  | 
 |  |  |          xaserverarg arg; | 
 |  |  |           | 
 |  |  |          arg.AddArg(L"content", x.xml()); | 
 |  |  |          //alert(x.xml()); | 
 |  |  |          if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) | 
 |  |  |          { | 
 |  |  |             alert(x.text()); | 
 |  |  | 
 |  |  |          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); | 
 |  |  |          xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID"); | 
 |  |  |          xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring"); | 
 |  |  |          KXMLDOMElement e = dwc_list.GetRowElement(row); | 
 |  |  |          xstring skuid = dwc_list.GetItemString(row, L"SKUID"); | 
 |  |  |          xstring SKUNo = dwc_list.GetItemString(row, L"SKUID/@__displaystring"); | 
 |  |  |          CustomerID = m_customer; | 
 |  |  |          xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo"); | 
 |  |  |          xstring CustomerItemNo = dwc_list.GetItemString(row, L"CustomerItemNo"); | 
 |  |  |          xstring id = ViewObject::GetGuid(); | 
 |  |  |          xstring ret1 = Up(id); | 
 |  |  |          if (ret1 == L"-1") return -1; | 
 |  |  | 
 |  |  |          xml x ; | 
 |  |  |           | 
 |  |  |          x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" + | 
 |  |  |             "<ProductPictureID>" + id + L"</ProductPictureID>" + | 
 |  |  |             "<OriginFile>" + originfile + L"</OriginFile>" + | 
 |  |  |             "<FileExt>" + ext + L"</FileExt>" + | 
 |  |  |             "<SKUID>" + skuid + L"</SKUID>" + | 
 |  |  |             "<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" + | 
 |  |  |             "<CustomerID>" + CustomerID + L"</CustomerID>" + | 
 |  |  |             "<Name>[" + SKUNo.trim() + L"]</Name>" + | 
 |  |  |             "<FileName>" + id + L".jpg</FileName>" + | 
 |  |  |             "</Item>" | 
 |  |  |             L"<ProductPictureID>" + id + L"</ProductPictureID>" + | 
 |  |  |             L"<OriginFile>" + originfile + L"</OriginFile>" + | 
 |  |  |             L"<FileExt>" + ext + L"</FileExt>" + | 
 |  |  |             L"<SKUID>" + skuid + L"</SKUID>" + | 
 |  |  |             L"<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" + | 
 |  |  |             L"<CustomerID>" + CustomerID + L"</CustomerID>" + | 
 |  |  |             L"<Name>[" + SKUNo.trim() + L"]</Name>" + | 
 |  |  |             L"<FileName>" + id + L".jpg</FileName>" + | 
 |  |  |             L"</Item>" | 
 |  |  |          ); | 
 |  |  |  | 
 |  |  |          xaserverarg arg; | 
 |  |  | 
 |  |  |             dwc_list.Redraw(); | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |          xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID"); | 
 |  |  |          xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring"); | 
 |  |  |          xstring skuid = dwc_list.GetItemString(row, L"SKUID"); | 
 |  |  |          xstring SKUNo = dwc_list.GetItemString(row, L"SKUID/@__displaystring"); | 
 |  |  |          CustomerID = m_customer; | 
 |  |  |          xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo"); | 
 |  |  |          xstring CustomerItemNo = dwc_list.GetItemString(row, L"CustomerItemNo"); | 
 |  |  |          OnShowImage(skuid, CustomerItemNo); | 
 |  |  |  | 
 |  |  |          return 1; | 
 |  |  | 
 |  |  |             dw_list.Redraw(); | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |          KXMLDOMElement e1 = g_xdoc_product.getRowElement(L"data/Item", row); | 
 |  |  |          KXMLDOMElement e1 = dw_list.GetRowElement(row); | 
 |  |  |          xstring skuid = e1.getAttribute(L"guid"); | 
 |  |  |          OnShowImage(skuid); | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |       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""; | 
 |  |  | 
 |  |  |             { | 
 |  |  |                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) + 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;'>" + | 
 |  |  |          html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" + | 
 |  |  |             +L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>" | 
 |  |  |             + ls_detail | 
 |  |  |             + L"</table>" | 
 |  |  | 
 |  |  |                   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) == L"") | 
 |  |  |                { | 
 |  |  |                   KXMLDOMNodeList options = fields.item(i).selectNodes(L"item"); | 
 |  |  |                   int tlen = options.length(); | 
 |  |  |                   xstring terms = L""; | 
 |  |  |                   for (int k = 0; k < tlen; k++) | 
 |  |  |                   { | 
 |  |  |                      if (options.item(k).text) | 
 |  |  |                      if (options.item(k).text()) | 
 |  |  |                      { | 
 |  |  |                         if (k > 0) terms += L", L"; | 
 |  |  |                         terms += L"[" + options.item(k).text + L"]"; | 
 |  |  |                         terms += L"[" + xstring(options.item(k).text()) + L"]"; | 
 |  |  |                      } | 
 |  |  |                   } | 
 |  |  |                   ls_star += L"<div ><span style='font-weight:700;width:50;font-size:10pt'  >" + label + L"*:</span><span  style='width:90;font-size:10pt'>" + terms + L"</span></div>"; | 
 |  |  |                } | 
 |  |  |                else | 
 |  |  |                { | 
 |  |  |                   ls_item = L"<td>" + label + L"</td>" + L"<td>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>"; | 
 |  |  |                   ls_item = L"<td>" + label + L"</td>" + L"<td>" + dw_list.GetItemString(row, name) + L"</td>"; | 
 |  |  |                   count++; | 
 |  |  |                } | 
 |  |  |                i++; | 
 |  |  | 
 |  |  |             ls_detail += ls_item; | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |          html += L"<div style='margin-left:8px;margin-right:16px;'>" + | 
 |  |  |          html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" + | 
 |  |  |             +L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>" | 
 |  |  |             + ls_detail | 
 |  |  |             + L"</table>" | 
 |  |  | 
 |  |  |             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'/>"; | 
 |  |  | 
 |  |  |  | 
 |  |  |          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 += (xstring)L"<table>" + | 
 |  |  |             L"<colgroup span='1' width='80'/>" + | 
 |  |  |             L"<colgroup span='1' width='120'/>" + | 
 |  |  |             L"<colgroup span='1' width='420'/>"; | 
 |  |  |          html += L"<tr>"; | 
 |  |  |          html += L"<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>"; | 
 |  |  |          html += L"</tr>"; | 
 |  |  | 
 |  |  |             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) + 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>"; | 
 |  |  | 
 |  |  |  | 
 |  |  |                if (dwc_list.GetItemString(row, L"pic") != L"*") | 
 |  |  |                { | 
 |  |  |                   alert(L"第" + row.toString() + L"行请增加产品图片!"); | 
 |  |  |                   alert(L"第" + xstring(row) + L"行请增加产品图片!"); | 
 |  |  |                   return 1; | 
 |  |  |                } | 
 |  |  |                row = dwc_list.GetNextSelectRow(row + 1); | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |          else { | 
 |  |  |             row = dw_list.GetNextSelectRow(1); | 
 |  |  |             int row = dw_list.GetNextSelectRow(1); | 
 |  |  |             while (row > 0) | 
 |  |  |             { | 
 |  |  |                if (dw_list.GetItemString(row, L"pic") != L"*") | 
 |  |  |                { | 
 |  |  |                   alert(L"第" + row.toString() + L"行请增加产品图片!"); | 
 |  |  |                   alert(L"第" + xstring(row) + L"行请增加产品图片!"); | 
 |  |  |                   return 1; | 
 |  |  |                } | 
 |  |  |                row = dw_list.GetNextSelectRow(row + 1); | 
 |  |  | 
 |  |  |          dw_list.Redraw(); | 
 |  |  |          impStr = L""; | 
 |  |  |  | 
 |  |  |          SendMessage(hObject, 0x401, ls_nos, 0); | 
 |  |  |          SendMessage(hObject, 0x401, (LPARAM)ls_nos.c_str(), 0); | 
 |  |  |          alert(L"转入完成!"); | 
 |  |  |  | 
 |  |  |          return 1; | 
 |  |  | 
 |  |  |  | 
 |  |  |       int OnSearch() | 
 |  |  |       { | 
 |  |  |          int hItem = tv_folder.GetSelectedItem(); | 
 |  |  |          HTREEITEM hItem = tv_folder.GetSelectedItem(); | 
 |  |  |          return RetrieveItem(hItem); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  | 
 |  |  |          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); | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |       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); | 
 |  |  |  | 
 |  |  |          if(name==L"") return 1; | 
 |  |  |          KXMLDOMElement e = tv_folder.GetItemData(hItem); | 
 |  |  |          xstring guid = e.getAttribute(L"guid"); | 
 |  |  |          if (guid == L"") return 1; | 
 |  |  | 
 |  |  |          if (Name == L"") Name = e.getAttribute(L"cname"); | 
 |  |  |          arg.AddArg(L"No", No); | 
 |  |  |          arg.AddArg(L"CName", Name); | 
 |  |  |          int p = arg; | 
 |  |  |          OpenWindow(L"dev:xpage[Quick.Input.NewProductEx.vx]", p); | 
 |  |  | 			 | 
 |  |  |          OpenWindow(L"dev:xpage[Quick.Input.NewProductEx.vx]", arg); | 
 |  |  |          if (arg.GetArgString(L"data.modify") == L"1")RetrieveItem(hItem); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int ItemMaint() | 
 |  |  |       { | 
 |  |  |          int hItem = tv_folder.GetSelectedItem(); | 
 |  |  |          HTREEITEM hItem = tv_folder.GetSelectedItem(); | 
 |  |  |          KXMLDOMElement e = tv_folder.GetItemData(hItem); | 
 |  |  |          //xstring no = e.getAttribute(L"no"); | 
 |  |  |          //if(no==L"") return 1; | 
 |  |  | 
 |  |  |             OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]"); | 
 |  |  |          }else | 
 |  |  |          { | 
 |  |  |             int pr = g_xdoc_product; | 
 |  |  |             OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr); | 
 |  |  |             OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",dw_list); | 
 |  |  |          } | 
 |  |  |          */ | 
 |  |  |          //KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1); | 
 |  |  |          //KXMLDOMElement ele = dw_list.getRowElement(L"data/Item", 1); | 
 |  |  |          //alert(ele.xml); | 
 |  |  |  | 
 |  |  |          int pr = g_xdoc_product; | 
 |  |  |          OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr); | 
 |  |  |          OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", dw_list); | 
 |  |  |  | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       //查找当前树项的顶级目录 | 
 |  |  |       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; | 
 |  |  | 
 |  |  |             xstring no = e.getAttribute(L"CategoryNo"); | 
 |  |  |             xstring label = no.trim() + L" " + name; | 
 |  |  |  | 
 |  |  |             int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15); | 
 |  |  |             tv_folder.SetItemChild(h, 1); | 
 |  |  |             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 MakeUserGoodsFolderItem(int hItem, xstring sno) | 
 |  |  |       int MakeUserGoodsFolderItem(HTREEITEM hItem, xstring sno) | 
 |  |  |       { | 
 |  |  |          xml x = ProductLibraryView::GetTreeUserChildItems3(sno); | 
 |  |  |          if (!x) return 0; | 
 |  |  | 
 |  |  |             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); | 
 |  |  | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       //插入购物车项 | 
 |  |  |       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(); | 
 |  |  | 
 |  |  |          { | 
 |  |  |             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) | 
 |  |  |       { | 
 |  |  |          xml x = ShoppingCartView::GetSupplierRoleList(SupplierID); | 
 |  |  |          if (!x) return 0; | 
 |  |  | 
 |  |  |          { | 
 |  |  |             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; | 
 |  |  |  | 
 |  |  | 
 |  |  |          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); | 
 |  |  | 
 |  |  |          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); | 
 |  |  |          tname = tv_folder.GetItemLabel(hTopItem); | 
 |  |  |          xstring selectname = tv_folder.GetItemLabel(hItem); | 
 |  |  |          ximageview im = GetControl(L"im1"); | 
 |  |  |          m_customer = L""; | 
 |  |  |          xcontrol query = GetControl(L"sl_search"); | 
 |  |  |          xstring queryString = query.GetText(); | 
 |  |  |          xshtml xs; | 
 |  |  |          xstring str = L""; | 
 |  |  |          if (hTopItem == 0 && queryString != L"") | 
 |  |  |          { | 
 |  |  |             tname = L"已询价产品"; | 
 |  |  | 
 |  |  |             ResetAgent(L"goodscar"); | 
 |  |  |             if (selectname != tname) | 
 |  |  |             { | 
 |  |  |                KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement); | 
 |  |  |                xstring str = e1.getAttribute(L"no"); | 
 |  |  |                if (str == L"Supplier") return 1; | 
 |  |  |                KXMLDOMElement e1 =tv_folder.GetItemData(hItem); | 
 |  |  |                str = e1.getAttribute(L"no"); | 
 |  |  |                if (str == L"Supplier") | 
 |  |  |                { | 
 |  |  |                   return 1; | 
 |  |  |                } | 
 |  |  |                if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0 || str.find(L"Supplier:") == 0 || str.find(L"Enquiry:") == 0) | 
 |  |  |                { | 
 |  |  |                   m_customer = LookupCustomer(hItem); | 
 |  |  | 
 |  |  |                   dwc_list.Reset(); | 
 |  |  |                   dwc_list.SetReadOnly(true); | 
 |  |  |                   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)); | 
 |  |  |                   if (str.find(L"Supplier:") == 0) | 
 |  |  |                   { | 
 |  |  |                      if (dwc_list.GetRowCount() > 0) | 
 |  |  | 
 |  |  |                   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 | 
 |  |  |                { | 
 |  |  | 
 |  |  |                   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 = 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"); | 
 |  |  | 
 |  |  |                else | 
 |  |  |                { | 
 |  |  |                   str = L"Supplier:All"; | 
 |  |  |                   g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString)); | 
 |  |  |                   dwc_list.PostRetrieve(); | 
 |  |  |                   dwc_list.Retrieve(ShoppingCartView::GetGoodsList(str, queryString)); | 
 |  |  |                   //dwc_list.PostRetrieve(); | 
 |  |  |                   dwc_list.Redraw(); | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  | 
 |  |  |                ResetAgent(L"userlib"); | 
 |  |  |             else | 
 |  |  |                ResetAgent(L"goodslib"); | 
 |  |  |             int hCursor = xutil::SetCursorWait(); | 
 |  |  |             HCURSOR hCursor = xutil::SetCursorWait(); | 
 |  |  |             if (tname == L"个人库" || tname == L"公司库") | 
 |  |  |             { | 
 |  |  |                xstring no = L"N000005"; | 
 |  |  | 
 |  |  |                      x = ProductLibraryView::GetMaintList3(no); | 
 |  |  |                   if (x) | 
 |  |  |                   { | 
 |  |  |                      g_xdoc_product.Retrieve(x); | 
 |  |  |                      x.Free(); | 
 |  |  |                      dw_list.Retrieve(x); | 
 |  |  | 							 | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |                else | 
 |  |  | 
 |  |  |                      else | 
 |  |  |                         x = ProductLibraryView::GetMaintList3(no); | 
 |  |  |                   } | 
 |  |  |                   if (x)g_xdoc_product.Retrieve(x); | 
 |  |  |                   if (x)dw_list.Retrieve(x); | 
 |  |  |                } | 
 |  |  |                dw_list.PostRetrieve(); | 
 |  |  |                //dw_list.PostRetrieve(); | 
 |  |  |                dw_list.Redraw(); | 
 |  |  |  | 
 |  |  |                if (dw_list.GetRowCount() > 0) | 
 |  |  |                { | 
 |  |  |                   xs = GetControl(L"html_detail"); | 
 |  |  |                   xs.SetContent(makeHtml(1)); | 
 |  |  |                   xstring id = g_xdoc_product.getData(0, L"data/Item", 1, L"@guid"); | 
 |  |  |                   xstring id = dw_list.GetItemString(1, L"@guid"); | 
 |  |  |                   OnShowImage(id); | 
 |  |  |                } | 
 |  |  |                else | 
 |  |  |                { | 
 |  |  |                   im.ResetEx(); | 
 |  |  |                   im.Reset(); | 
 |  |  |                   im.Redraw(); | 
 |  |  |  | 
 |  |  |                   xs = GetControl(L"html_detail"); | 
 |  |  | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |          impStr = L""; | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int OnTreeSelChanged(ref TNotifyEvent evt, int p) | 
 |  |  |       int OnTreeSelChanged(TEvent* evt, int 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(); | 
 |  |  | 
 |  |  |             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); | 
 |  |  |          } | 
 |  |  | 
 |  |  |          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; | 
 |  |  | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int OnDwcClicked(ref TNotifyEvent evt, int p) | 
 |  |  |       int OnDwcClicked(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; | 
 |  |  |          xstring str = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SOLineID"); | 
 |  |  |          xstring str = dwc_list.GetItemString(row, L"SOLineID"); | 
 |  |  |          if (str != L"") | 
 |  |  |             str = L"sl:" + str; | 
 |  |  |          else if (dwc_list.GetItemString(row, L"SKUNo") != L"") | 
 |  |  | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int OnDwcDoubleClicked(ref TNotifyEvent evt, int p) | 
 |  |  |       int OnDwcDoubleClicked(TEvent* evt, int 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"") | 
 |  |  | 
 |  |  |          dw_list.Redraw(); | 
 |  |  |          dwc_list.Redraw(); | 
 |  |  |          impStr = L""; | 
 |  |  |          SendMessage(hObject, 0x401, ls_nos, 0); | 
 |  |  |          SendMessage(hObject, 0x401, (LPARAM)ls_nos.c_str(), 0); | 
 |  |  |          xutil::RestoreCursor(hCursor); | 
 |  |  |          CloseWindow(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       int OnDwDoubleClicked(ref TNotifyEvent evt, int p) | 
 |  |  |       int OnDwDoubleClicked(TEvent* evt, int 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; | 
 |  |  |          if (row > 0) | 
 |  |  |          { | 
 |  |  |             if (dw_list.GetItemString(row, L"pic") != L"*") | 
 |  |  |             { | 
 |  |  |                alert(L"第" + row.toString() + L"行请增加产品图片!"); | 
 |  |  |                alert(L"第" + xstring(row) + L"行请增加产品图片!"); | 
 |  |  |                return 1; | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  | 
 |  |  |          dw_list.Redraw(); | 
 |  |  |          dwc_list.Redraw(); | 
 |  |  |          impStr = L""; | 
 |  |  |          SendMessage(hObject, 0x401, ls_nos, 0); | 
 |  |  |          SendMessage(hObject, 0x401, (LPARAM)ls_nos.c_str(), 0); | 
 |  |  |          xutil::RestoreCursor(hCursor); | 
 |  |  |          CloseWindow(); | 
 |  |  |          return 1; | 
 |  |  | 
 |  |  |       int OnAttachEvent() | 
 |  |  |       { | 
 |  |  |          //绑定工具条点击事件 | 
 |  |  |          AttachEvent(L"WM_XCOMMAND", (FEvent)&BasicFareList::OnXCommand); | 
 |  |  |          AttachEvent(L"WM_XCOMMAND", (FEvent)&EntityProductSelectWin::OnXCommand); | 
 |  |  |          //获取焦点事件,用于重置工具条 | 
 |  |  |          AttachEvent(L"WM_SETFOCUS", (FEvent)&BasicFareList::OnSetFocus); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BasicFareList::OnRowChanged); | 
 |  |  |          AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BasicFareList::OnGoodsCarRowChanged); | 
 |  |  |          AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&BasicFareList::OnTreeExpanding); | 
 |  |  |          AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&BasicFareList::OnTreeSelChanged); | 
 |  |  |          AttachEvent(L"WM_COMMAND", (FEvent)&BasicFareList::OnCkbCLick);   //checkbox打钩事件 | 
 |  |  |          AttachEvent(L"WM_COMMAND", (FEvent)&BasicFareList::OnCkbCLick2);   //checkbox打钩事件	 | 
 |  |  |          AttachEvent(L"WM_SETFOCUS", (FEvent)&EntityProductSelectWin::OnSetFocus); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&EntityProductSelectWin::OnRowChanged); | 
 |  |  |          AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&EntityProductSelectWin::OnGoodsCarRowChanged); | 
 |  |  |          AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&EntityProductSelectWin::OnTreeExpanding); | 
 |  |  |          AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&EntityProductSelectWin::OnTreeSelChanged); | 
 |  |  |          AttachEvent(L"WM_COMMAND", (FEvent)&EntityProductSelectWin::OnCkbCLick);   //checkbox打钩事件 | 
 |  |  |          AttachEvent(L"WM_COMMAND", (FEvent)&EntityProductSelectWin::OnCkbCLick2);   //checkbox打钩事件	 | 
 |  |  |  | 
 |  |  |          AttachEvent(L"dwc_list", L"DWV_DOUBLECLICKED", (FEvent)&BasicFareList::OnDwcDoubleClicked); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&BasicFareList::OnDwDoubleClicked); | 
 |  |  |          AttachEvent(L"dwc_list", L"DWV_DOUBLECLICKED", (FEvent)&EntityProductSelectWin::OnDwcDoubleClicked); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&EntityProductSelectWin::OnDwDoubleClicked); | 
 |  |  |  | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&BasicFareList::OnDwClicked); | 
 |  |  |          AttachEvent(L"dwc_list", L"DWV_CLICKED", (FEvent)&BasicFareList::OnDwcClicked); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&EntityProductSelectWin::OnDwClicked); | 
 |  |  |          AttachEvent(L"dwc_list", L"DWV_CLICKED", (FEvent)&EntityProductSelectWin::OnDwcClicked); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int onload() | 
 |  |  |       { | 
 |  |  |          SetArg(); | 
 |  |  |          agentFor = L"goodslib"; | 
 |  |  |          impStr = L""; | 
 |  |  |  | 
 |  |  |          OnAttachEvent(); | 
 |  |  |          imageElement = 0; | 
 |  |  |          //imageElement = 0; | 
 |  |  |  | 
 |  |  |          tv_folder = GetControl(L"tv_folder"); | 
 |  |  |          dw_list = GetControl(L"dw_list"); | 
 |  |  |          dwc_list = GetControl(L"dwc_list"); | 
 |  |  |  | 
 |  |  |          xaserverarg arg = GetParam(); | 
 |  |  |          xaserverarg arg = GetArg(); | 
 |  |  |          CustomerID = L""; | 
 |  |  |          SupplierID = L""; | 
 |  |  |          m_customer = L""; | 
 |  |  |          hObject = 0; | 
 |  |  |          if (arg) | 
 |  |  |          { | 
 |  |  |             hObject = arg.GetArgString(L"HWND").toInt(); | 
 |  |  |             hObject = (HWND)arg.GetParam(L"HWND"); | 
 |  |  |             CustomerID = arg.GetArgString(L"CustomerID"); | 
 |  |  |             CustomerID = arg.GetArgString(L"SupplierID"); | 
 |  |  |          } | 
 |  |  |          InitialFolder(); | 
 |  |  |  | 
 |  |  |          g_xdoc_product = new xdataset; | 
 |  |  |          g_xdoc_product.Init(); | 
 |  |  |          xbind bindproduct = new xbind; | 
 |  |  |          bindproduct.bindEx(dw_list, g_xdoc_product, L""); | 
 |  |  |  | 
 |  |  |          g_xdoc_shoppingcart = new xdataset; | 
 |  |  |          g_xdoc_shoppingcart.Init(); | 
 |  |  |  | 
 |  |  |          xbind bindcart = new xbind; | 
 |  |  |          bindcart.bindEx(dwc_list, g_xdoc_shoppingcart, L""); | 
 |  |  |  | 
 |  |  | 			 | 
 |  |  |          dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L"")); | 
 |  |  |          dw_list = GetControl(L"dw_list"); | 
 |  |  |          dw_list.SetReadOnly(true); | 
 |  |  | 
 |  |  |  | 
 |  |  |          if (dw_list.GetRowCount()) | 
 |  |  |          { | 
 |  |  |             htmlctrl xs = GetControl(L"html_detail"); | 
 |  |  |             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()))); | 
 |  |  | #if 0 | 
 |  |  |          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())))); | 
 |  |  |  | 
 |  |  | #endif // 0 | 
 |  |  |  | 
 |  |  | 			 | 
 |  |  |          dw_list.SetSelectionMode(3); | 
 |  |  |          dwc_list.SetSelectionMode(3); | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |    }; | 
 |  |  | ] | 
 |  |  |    }; |