use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "multi.vbind.vbind.wface.vd" use "productlibrary.vd" use "shoppingcart.vd" unit trade [ class EntityProductSelectWin : public xwin { int hObject = 0; string CustomerID; string SupplierID; string m_customer; //²úÆ·¿â²úÆ·Áбí xdwgrid dw_list; //¹ºÎï³µ²úÆ·Áбí xdwgrid dwc_list; //²úÆ·»º´æ¶ÔÏó xdataset g_xdoc_product; xdataset g_xdoc_shoppingcart; xcombobox cbx_goodscar; //ÊÇ·ñ¶àÑ¡ xnode m_agentNode; //Agent Condition xtreeview tv_folder; string agentFor; msxml::IXMLDOMElement imageElement; string impStr; string tname; int FillGoodsCarList() { xcombobox xc = GetControl("frame:cbx_goodscar"); if (!xc) return 0; xml x = ShoppingCartView::GetRoleList(CustomerID); if (!x) return 0; xc.SetText("==Ñ¡Ôñ¹ºÎï³µ=="); msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("name"); xcombobox::AddItem(xc.GetId(), name); } return 1; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); } } return 1; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(ref TEvent evt, int param) { //ÖØÖù¤¾ßÌõ SetAgent(); return 1; } msxml::IXMLDOMElement OnGetCarListRowElement(int row = 0) { if (row < 1) row = dwc_list.GetRow(); if (row < 1 || row > dwc_list.GetRowCount()) return 0; msxml::IXMLDOMElement e = g_xdoc_shoppingcart.getRowElement("data/Item", row); return e; } int OnShowImage(string skuid) { imageview im = GetControl("im1"); //im.RemoveImage(); im.ResetEx(); xml xp = new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic = new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUID", skuid); if (url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1) { trace("xxx", xp.GetXml()); } else { //trace(skuid+" "+xp.GetXml()); imageElement = xp.GetXmlDoc().documentElement; msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; for (int ip = 0; ip < lenp; ip++) { msxml::IXMLDOMElement xitem = nlistp.item(ip); string picname = xitem.selectSingleNode("PicPath").text; string goodno = xitem.selectSingleNode("GoodsNo").text; if (picname == "/business/products/Thumbs//") picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; im.AddImages(picname, ""); } im.Redraw(); //win32::SendMessage(im.GetId(),0x000f,0,1); //win32::InvalidateRect(im.GetId(),cast(0 as ref xrect),true); } return 1; } int OnShowImage(string skuid, string customerItemNo) { imageview im = GetControl("im1"); //im.RemoveImage(); im.ResetEx(); xml xp = new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic = new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUID", skuid); arg_pic.AddArg("CustomerID", m_customer); arg_pic.AddArg("CustomerItemNo", customerItemNo); if (url::get("/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1) { trace("error:" + xp.GetXml()); } else { imageElement = xp.GetXmlDoc().documentElement; msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; for (int ip = 0; ip < lenp; ip++) { msxml::IXMLDOMElement xitem = nlistp.item(ip); string picname = xitem.selectSingleNode("PicPath").text; string goodno = xitem.selectSingleNode("GoodsNo").text; if (picname == "/business/products/Thumbs//") picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; im.AddImages(picname, ""); } im.Redraw(); } return 1; } int OnRowChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; htmlctrl xs = GetControl("html_detail"); string html = makeHtml(row); xs.SetContent(html); xs.Redraw(); string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); OnShowImage(id); return 1; } int OnGoodsCarRowChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; htmlctrl xs = GetControl("html_detail"); string html = makeGoodscarHtml(row); xs.SetContent(html); xs.Redraw(); string id = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID"); if (m_customer != "") { string customerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo"); OnShowImage(id, customerItemNo); } else { OnShowImage(id); } return 1; } int DeleteRow(int row) { int IDOK = 1; int MB_OKCANCEL = 1; int MB_ICONQUESTION = 32; if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýÖ¸¶¨µÄÏɾ³ýºó½«²»Äָܻ´?", "Ìáʾ", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0); return 1; } int SetSelectState(xdwgrid dw_obj, int state) { dw_obj.SetSelectionMode(3); return 1; } int OnCkbCLick(ref TEvent evt, int p) { xcheckbox cbx_1 = GetControl("frame:cbx1"); int state = cbx_1.GetCheck(cbx_1.GetId()); return SetSelectState(dw_list, state); } int OnCkbCLick2(ref TEvent evt, int p) { xcheckbox cbx_2 = GetControl("frame:cbx2"); int state = cbx_2.GetCheck(cbx_2.GetId()); return SetSelectState(dwc_list, state); } xml GetGoodsPropList(string guid) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("guid", guid); if (url::get("/sale/data/SO/goods/goodsprop/list", arg.GetString(), x) != 1) { string error = x.GetXmlDoc().text; alert(error); } return x; } string Up(string name) { string str = name.mid(0, 2); str = str.upper(); return xaserver::UploadFile("product" + str, name + ".jpg", this.GetHWND(), "", false); } int OnAddImage() { if (m_customer != "") return OnAddImageEx(); int row = dw_list.GetNextSelectRow(1); if (row < 1) row = dw_list.GetRow(); if (row < 1 || row > dw_list.GetRowCount()) return 0; msxml::IXMLDOMElement e = g_xdoc_product.getRowElement("data/Item", row); string skuid = g_xdoc_product.getData(0, "data/Item", row, "@guid"); string SKUNo = g_xdoc_product.getData(0, "data/Item", row, "SKUNo"); string id = ViewObject::GetGuid(); string ret1 = Up(id); if (ret1 == "-1") return -1; if (ret1 == "0") { alert("ÉÏ´«Í¼Æ¬Ê§°Ü"); return -1; } string originfile = ret1; //alert(originfile); string ext = originfile.right(7); if (ext.find(".") >= 0) ext = ext.mid(ext.find(".") + 1, 9999); else ext = "jpg"; // ͼƬÃû¼ÓÈëÊý¾Ý¿â xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml("" + "" + id + "" + "" + originfile + "" + "" + ext + "" + "" + skuid + "" + "[" + SKUNo.trim() + "]" + "" + id + ".jpg" + "" ); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); return -1; } dw_list.SetItemString(row, "pic", "*"); dw_list.Redraw(); //Ë¢ÐÂһϽçÃæ£¬ÏÔʾͼƬ OnShowImage(skuid); return 1; } int OnAddImageEx() { int row = dwc_list.GetNextSelectRow(1); if (row < 1) row = dwc_list.GetRow(); if (row < 1 || row > dwc_list.GetRowCount()) return 0; msxml::IXMLDOMElement e = g_xdoc_shoppingcart.getRowElement("data/Item", row); string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID"); string SKUNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID/@__displaystring"); CustomerID = m_customer; string CustomerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo"); string id = ViewObject::GetGuid(); string ret1 = Up(id); if (ret1 == "-1") return -1; if (ret1 == "0") { alert("ÉÏ´«Í¼Æ¬Ê§°Ü"); return -1; } string originfile = ret1; string ext = originfile.right(7); if (ext.find(".") >= 0) ext = ext.mid(ext.find(".") + 1, 9999); else ext = "jpg"; // ͼƬÃû¼ÓÈëÊý¾Ý¿â xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml("" + "" + id + "" + "" + originfile + "" + "" + ext + "" + "" + skuid + "" + "" + CustomerItemNo + "" + "" + CustomerID + "" + "[" + SKUNo.trim() + "]" + "" + id + ".jpg" + "" ); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); return -1; } dwc_list.SetItemString(row, "pic", "*"); dwc_list.Redraw(); //Ë¢ÐÂһϽçÃæ£¬ÏÔʾͼƬ OnShowImage(skuid, CustomerItemNo); return 1; } int OnDeleteImageEx() { int row = dwc_list.GetNextSelectRow(1); if (row < 1) row = dwc_list.GetRow(); if (row < 1 || row > dwc_list.GetRowCount()) return 0; imageview im = GetControl("im1"); int index = im.GetSelectIndex(); int count = im.GetImageCount(); if (count < 1) return 1; msxml::IXMLDOMNodeList images = imageElement.selectNodes("image"); int length = images.length; if (length < index) return 1; int MB_OKCANCEL = 0x00000001; int IDOK = 1; if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýµ±Ç°Í¼Æ¬?", "Ìáʾ", MB_OKCANCEL) != IDOK) return 1; string id = images.item(index).selectSingleNode("@guid").text; xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); string str = ""; arg.AddArg("content", str); if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); return -1; } if (count == 1) { dwc_list.SetItemString(row, "pic", ""); dwc_list.Redraw(); } string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID"); string SKUNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID/@__displaystring"); CustomerID = m_customer; string CustomerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo"); OnShowImage(skuid, CustomerItemNo); return 1; } int OnDeleteImage() { if (m_customer != "") return OnDeleteImageEx(); int row = dw_list.GetNextSelectRow(1); if (row < 1) row = dw_list.GetRow(); if (row < 1 || row > dw_list.GetRowCount()) return 0; imageview im = GetControl("im1"); int index = im.GetSelectIndex(); int count = im.GetImageCount(); if (count < 1) return 1; msxml::IXMLDOMNodeList images = imageElement.selectNodes("image"); int length = images.length; if (length < index) return 1; int MB_OKCANCEL = 0x00000001; int IDOK = 1; if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýµ±Ç°Í¼Æ¬?", "Ìáʾ", MB_OKCANCEL) != IDOK) return 1; string id = images.item(index).selectSingleNode("@guid").text; xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); string str = ""; arg.AddArg("content", str); if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); return -1; } if (count == 1) { dw_list.SetItemString(row, "pic", ""); dw_list.Redraw(); } msxml::IXMLDOMElement e1 = g_xdoc_product.getRowElement("data/Item", row); string skuid = e1.getAttribute("guid"); OnShowImage(skuid); return 1; } xml GetGoodsPropListEx(string guid) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); string fields = ""; /* fields +=""; fields +=""; fields +=""; fields +=""; fields +=""; fields +=""; */ fields += ""; fields += ""; fields += ""; fields += ""; fields += ""; //fields +=""; fields += ""; //fields +=""; fields += ""; x.LoadXml(fields); return x; } string makeHtml(int row) { string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); xml x = GetGoodsPropList(id); xml x1 = GetGoodsPropListEx(id); string html = ""; html += "
±àºÅ:" + dw_list.GetItemString(row, "No") + " ÀàÏî:" + dw_list.GetItemString(row, "RefNo") + "
"; html += "
»õºÅ:" + dw_list.GetItemString(row, "GoodsNo") + "
"; html += "
Æ·Ãû:" + dw_list.GetItemString(row, "CName") + "
"; if (dw_list.GetItemString(row, "CSpec") != "") html += "
¹æ¸ñ:" + dw_list.GetItemString(row, "CSpec") + "
"; msxml::IXMLDOMNodeList fieldsEx = x1.GetXmlDoc().selectNodes("data/field"); string ls_detail = ""; string ls_item = ""; string name; string label; int len = fieldsEx.length; int i = 0; for (i = 0; i < len; true) { int cnt = 0; ls_item = ""; while (cnt < 2) { name = fieldsEx.item(i).selectSingleNode("@name").text; label = fieldsEx.item(i).selectSingleNode("@label").text; ls_item += "" + label + "" + "" + g_xdoc_product.getData(0, "data/Item", row, name) + ""; cnt++; i++; if (i == len)break; } ls_detail += "" + ls_item + ""; } html += "
" + +"" + ls_detail + "
" + "
"; string ls_star = ""; msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field"); len = fields.length; ls_detail = ""; if (len > 0) html += "
¼¼ÊõÒªÇó:
"; for (i = 0; i < len; true) { ls_item = ""; int count = 0; while (count < 2) { name = fields.item(i).selectSingleNode("@name").text; label = fields.item(i).selectSingleNode("@label").text; if (name == "QualityTerm" || name == "PackTerm" || label == "ÖÊÁ¿" || label == "°ü×°ÖÊÁ¿" || label == "¼¼ÊõÒªÇó") { i++; if (i >= len)count = 2; continue; } else if (g_xdoc_product.getData(0, "data/Item", row, name) == "") { msxml::IXMLDOMNodeList options = fields.item(i).selectNodes("item"); int tlen = options.length; string terms = ""; for (int k = 0; k < tlen; k++) { if (options.item(k).text) { if (k > 0) terms += ", "; terms += "[" + options.item(k).text + "]"; } } ls_star += "
" + label + "*:" + terms + "
"; } else { ls_item = "" + label + "" + "" + g_xdoc_product.getData(0, "data/Item", row, name) + ""; count++; } i++; if (i >= len)count = 2; } ls_item = "" + ls_item + ""; ls_detail += ls_item; } html += "
" + +"" + ls_detail + "
" + "
"; if (dw_list.GetItemString(row, "QualityTerm") != "") { html += "
"; html += "
ÖÊÁ¿:
"; html += "
" + dw_list.GetItemString(row, "QualityTerm") + "
"; } if (dw_list.GetItemString(row, "PackTerm") != "") { html += "
"; html += "
°ü×°ÖÊÁ¿:
"; html += "
" + dw_list.GetItemString(row, "PackTerm") + "
"; } if (g_xdoc_product.getData(0, "data/Item", row, "Remark") != "" && id == "23A8BBA2-DEF1-4C00-978E-646151A6082E") { html += "
±¸×¢:
"; html += "
" + g_xdoc_product.getData(0, "data/Item", row, "Remark") + "
"; } html += "
"; //ÐDZêÏî html += ls_star; //ÏÔʾͼƬ /*string picname = "1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,"ImgName"); //ItemID+".jpg"; string str = picname.mid(0,2); str = str.upper(); string serversrc ="http://192.168.7.241:1001/business/products/chanpin/"+str+"/"+picname; html += "
ͼƬ:"; html += "
"; */ html += ""; return html; } string makeGoodscarHtml(int row) { string No = dwc_list.GetItemString(row, "RefNo");//»ñÈ¡ÊôÐÔÖµid xml x = GetGoodsPropList(No); string html = ""; html += "
񅧏:" + dwc_list.GetItemString(row, "No") + "
"; html += "
Æ·Ãû:" + dwc_list.GetItemString(row, "CName") + "
"; html += "
¹æ¸ñ:" + dwc_list.GetItemString(row, "CSpec") + "
"; msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field"); int len = fields.length; html += "" + "" + "" + ""; html += ""; html += ""; html += ""; for (int i = 0; i < len; i++) { string name = fields.item(i).selectSingleNode("@name").text; string label = fields.item(i).selectSingleNode("@label").text; html += ""; if (i == 0) html += ""; else html += ""; html += ""; } html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += ""; html += "
±àºÅÏîÄ¿ÄÚÈÝ
" + No + "" + label + "" + "" + label + "" + g_xdoc_shoppingcart.getData(0, "data/Item", row, name) + "
" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "PackCode") + "°ü×°·½Ê½" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "CPack") + "
°ü×°ÒªÇó" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "PackQualityTerm") + "
²àßé
" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "QualityCode") + "ÖÊÁ¿ÒªÇó" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "QualityTerm") + "
"; html += ""; return html; } int OnImport() { if (!hObject) return 1; int rw = 0; string ls_nos = "ImportXml:"; if (impStr == "") { alert("ÇëÑ¡ÔñÉÌÆ·!"); return 1; } if (tname == "ÒÑѯ¼Û²úÆ·") { int row = dwc_list.GetNextSelectRow(1); while (row > 0) { if (dwc_list.GetItemString(row, "pic") != "*") { alert("µÚ" + row.toString() + "ÐÐÇëÔö¼Ó²úƷͼƬ!"); return 1; } row = dwc_list.GetNextSelectRow(row + 1); } } else { row = dw_list.GetNextSelectRow(1); while (row > 0) { if (dw_list.GetItemString(row, "pic") != "*") { alert("µÚ" + row.toString() + "ÐÐÇëÔö¼Ó²úƷͼƬ!"); return 1; } row = dw_list.GetNextSelectRow(row + 1); } } ls_nos += impStr; dwc_list.SelectRow(0, false); dwc_list.Redraw(); dw_list.SelectRow(0, false); dw_list.Redraw(); impStr = ""; win32::SendMessage(hObject, 0x401, ls_nos, 0); alert("תÈëÍê³É!"); return 1; } int OnSearch() { int hItem = tv_folder.GetSelectedItem(); return RetrieveItem(hItem); } int DeleteRow(int row) { int IDOK = 1; int MB_OKCANCEL = 1; int MB_ICONQUESTION = 32; if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýÖ¸¶¨µÄÏɾ³ýºó½«²»Äָܻ´?", "Ìáʾ", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(string comdid) { int hCursor; string name = ""; if (comdid == "xmClose") { CloseWindow(); return 1; } else if (comdid == "xmImport") { OnImport(); return 1; } else if (comdid == "xmSearch") { OnSearch(); return 1; } else if (comdid == "xmAdd") { ItemAdd(); return 1; } else if (comdid == "xmMaint") { ItemMaint(); return 1; } else if (comdid == "xmDelete") { int row = dw_list.GetRow(); if (row < 1) return 1; DeleteRow(row); return 1; } else if (comdid == "xmAddImage") { return OnAddImage(); } else if (comdid == "xmDeleteImage") { return OnDeleteImage(); } return 0; } int ItemAdd() { int hItem = tv_folder.GetSelectedItem(); int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); string guid = e.getAttribute("guid"); if (guid == "") return 1; xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("guid", e.getAttribute("guid")); if (name == "¸öÈ˲úÆ·") arg.AddArg("FolderID", e.getAttribute("guid")); else arg.AddArg("CategoryID", e.getAttribute("guid")); string No = e.getAttribute("CategoryNo"); if (No == "") No = e.getAttribute("no"); string Name = e.getAttribute("CName"); if (Name == "") Name = e.getAttribute("cname"); arg.AddArg("No", No); arg.AddArg("CName", Name); int p = arg; OpenWindow("dev:xpage[Quick.Input.NewProductEx.vx]", p); if (arg.GetArgString("data.modify") == "1")RetrieveItem(hItem); return 1; } int ItemMaint() { int hItem = tv_folder.GetSelectedItem(); msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); //string no = e.getAttribute("no"); //if(no=="") return 1; string guid = e.getAttribute("guid"); if (guid == "") return 1; /* if(no=="NP0000FS" || no=="UP0000FS") { OpenWindow("dev:xpage[PackSchemaMaint.goodslib.vx]"); }else { int pr = g_xdoc_product; OpenWindow("dev:xpage[ProductLibraryItemMaint.vx]",pr); } */ //msxml::IXMLDOMElement ele = g_xdoc_product.getRowElement("data/Item", 1); //alert(ele.xml); int pr = g_xdoc_product; OpenWindow("dev:xpage[ProductLibraryItemMaint3.vx]", pr); return 1; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt, int param) { return OnCmdDispatch(evt.pStrID); } //²éÕÒµ±Ç°Ê÷ÏîµÄ¶¥¼¶Ä¿Â¼ int LookupTopFolder(int hItem) { int hRoot = tv_folder.GetRootItem(); while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); return hItem; } //²åÈë²úÆ·ÀàÏîµÄ×ÓÏî int MakeGoodsFolderItem(int hItem, string sno) { xml x = ProductLibraryView::GetTreeChildItems3(sno); if (!x) return 0; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("CName"); string no = e.getAttribute("CategoryNo"); string label = no.trim() + " " + name; int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15); tv_folder.SetItemChild(h, 1); } return 1; } //²åÈëвúƷĿ¼×ÓÏî int MakeUserGoodsFolderItem(int hItem, string sno) { xml x = ProductLibraryView::GetTreeUserChildItems3(sno); if (!x) return 0; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("CName"); string no = e.getAttribute("CategoryNo"); string label = no.trim() + " " + name; int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15); string child = e.getAttribute("Childs"); if (child == "") tv_folder.SetItemChild(h, 1); else if (child != "0") tv_folder.SetItemChild(h, 1); } return 1; } //²åÈ빺Îï³µÏî int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image) { msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item"); int len = nlist.length; if (len > 0) tv_folder.SetItemChild(hItem, 1); for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("name"); int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image); ExpandCatChildFolder(h, e, 35); } return 1; } int MakeGoodCarFolderItem(int hItem) { xml x = ShoppingCartView::GetSupplierRoleList(SupplierID); if (!x) return 0; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("name"); int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35); ExpandCatChildFolder(h, e, 35); } return 1; } //Ê÷Õ¹¿ª int OnTreeExpanding(ref TNotifyEvent evt, int p) { ref NMTREEVIEW nmtv = evt.pnmh; int hItem = nmtv.itemNew.hItem; int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); int child = tv_folder.GetChildItem(hItem); string no = ""; msxml::IXMLDOMElement e; if (name == "¹«Ë¾¿â" && !child) { no = ""; if (hTopItem != hItem) { e = tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); } else { e = tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); } MakeGoodsFolderItem(hItem, no); } else if (name == "¸öÈË¿â" && !child) { no = ""; if (hTopItem != hItem) { e = tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); MakeUserGoodsFolderItem(hItem, no); } } else if (name == "ÒÑѯ¼Û²úÆ·" && !child) { if (hItem == hTopItem)MakeGoodCarFolderItem(hItem); } return 1; } int ResetAgent(string agentAsk) { if (agentFor != agentAsk) { agentFor = agentAsk; m_agentNode = 0; SetAgent(); } return 1; } int LookupCustomerFolder(int hItem) { while (true) { msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); string str = e1.getAttribute("no"); if (str.find("Customer:") >= 0) return hItem; hItem = tv_folder.GetParentItem(hItem); if (hItem == 0) break; } return 0; } string LookupCustomer(int hItem) { hItem = LookupCustomerFolder(hItem); if (hItem == 0) return ""; msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); string str = e1.getAttribute("no"); return str.mid("Customer:".length(), 9999); } int RetrieveItem(int hItem) { int hTopItem = LookupTopFolder(hItem); tname = tv_folder.GetItemLabel(hTopItem); string selectname = tv_folder.GetItemLabel(hItem); imageview im = GetControl("im1"); m_customer = ""; xcontrol query = GetControl("sl_search"); string queryString = query.GetText(); if (hTopItem == 0 && queryString != "") { tname = "ÒÑѯ¼Û²úÆ·"; selectname = "ÒÑѯ¼Û²úÆ·"; } if (tname == "ÒÑѯ¼Û²úÆ·") { if (agentFor != "goodscar")SwitchLayer("goodscarsheet", "sheetframe"); ResetAgent("goodscar"); if (selectname != tname) { msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); string str = e1.getAttribute("no"); if (str == "Supplier") return 1; if (str.find("Customer:") == 0 || str.find("SO:") == 0 || str.find("Supplier:") == 0 || str.find("Enquiry:") == 0) { m_customer = LookupCustomer(hItem); if (str.find("Customer:") == 0) dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodscustomerlist"); else dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.Reset(); dwc_list.SetReadOnly(true); if (queryString == "") g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str)); else g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString)); if (str.find("Supplier:") == 0) { if (dwc_list.GetRowCount() > 0) { OnShowImage(dwc_list.GetItemString(1, "SKUID")); } } } else if (e1.getAttribute("categoryid") != "") { string categoryid = e1.getAttribute("categoryid"); dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid).GetXmlDoc()); dwc_list.SetReadOnly(true); dwc_list.Reset(); if (queryString == "") g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid)); else g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, "")); } else { dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.SetReadOnly(true); dwc_list.Reset(); if (queryString == "") g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname)); else g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString)); } dwc_list.PostRetrieve(); dwc_list.Redraw(); if (dwc_list.GetRowCount() >= 1) { htmlctrl xs = GetControl("html_detail"); xs.SetContent(makeGoodscarHtml(1)); if (m_customer != "") { string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", 1, "SKUID"); string customerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", 1, "CustomerItemNo"); OnShowImage(skuid, customerItemNo); } } else { im.ResetEx(); im.Redraw(); xs = GetControl("html_detail"); xs.SetContent(""); } xs.Redraw(); } else { if (queryString == "") { return 0; } else { str = "Supplier:All"; g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString)); dwc_list.PostRetrieve(); dwc_list.Redraw(); } } } else { if (agentFor != "goodslib")SwitchLayer("goodslibsheet", "sheetframe"); if (tname == "¸öÈË¿â") ResetAgent("userlib"); else ResetAgent("goodslib"); int hCursor = xutil::SetCursorWait(); if (tname == "¸öÈË¿â" || tname == "¹«Ë¾¿â") { string no = "N000005"; if (tname == "¸öÈË¿â") no = "U000005"; if (hItem != hTopItem) { msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); no = e.getAttribute("guid"); } dw_list = GetControl("dw_list"); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc()); dw_list.Reset(); dw_list.SetReadOnly(true); dw_list.SetColumnState("Submitter1", false); dw_list.SetColumnState("HSCode", false); xml x; if (queryString == "") { if (tname == "¸öÈË¿â") x = ProductLibraryView::GetMaintRoleList3(no); else x = ProductLibraryView::GetMaintList3(no); if (x) { g_xdoc_product.Retrieve(x); x.Free(); } } else { if (tname == "¸öÈË¿â") { x = ProductLibraryView::GetMaintRoleList3(no, queryString); } else { if (queryString != "") { if (no == "N000005") x = ProductLibraryView::GetMaintList3("", queryString, ""); else x = ProductLibraryView::GetMaintList3(no, queryString, ""); } else x = ProductLibraryView::GetMaintList3(no); } if (x)g_xdoc_product.Retrieve(x); } dw_list.PostRetrieve(); dw_list.Redraw(); if (dw_list.GetRowCount() > 0) { xs = GetControl("html_detail"); xs.SetContent(makeHtml(1)); string id = g_xdoc_product.getData(0, "data/Item", 1, "@guid"); OnShowImage(id); } else { im.ResetEx(); im.Redraw(); xs = GetControl("html_detail"); xs.SetContent(""); } xs.Redraw(); xutil::RestoreCursor(hCursor); } } impStr = ""; } int OnTreeSelChanged(ref TNotifyEvent evt, int p) { ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW); int hItem = nmtv.itemNew.hItem; return RetrieveItem(hItem); } int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement) { msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("cname"); string sImage = e.getAttribute("image"); int image = 15; //if(sImage) image = sImage.toInt(); int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image); tv_folder.SetItemChild(h, 1); ExpandChildFolder(h, e); } return 1; } int InitialFolder() { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial"); ExpandChildFolder(0, e); return 1; } int OnDwClicked(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); char ch; int row = hdr.row; string col = hdr.colname; string str = ""; if (dw_list.GetItemString(row, "SKUNo") != "") str = dw_list.GetItemString(row, "SKUNo"); else str = dw_list.GetItemString(row, "No"); if (dw_list.IsRowSelected(row) & 0xff) { //will unselect impStr = impStr.replace(" " + str, ""); } else { //will select impStr += " " + str; } return 1; } int OnDwcClicked(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); char ch; int row = hdr.row; string col = hdr.colname; string str = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SOLineID"); if (str != "") str = "sl:" + str; else if (dwc_list.GetItemString(row, "SKUNo") != "") str = dwc_list.GetItemString(row, "SKUNo"); else str = dwc_list.GetItemString(row, "No"); if (dwc_list.IsRowSelected(row) & 0xff) { //will unselect impStr = impStr.replace(" " + str, ""); } else { //will select impStr += " " + str; } return 1; } int OnDwcDoubleClicked(ref TNotifyEvent evt, int p) { int hCursor = xutil::SetCursorWait(); ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); int row = hdr.row; string ls_nos = "ImportXml:"; string str = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SOLineID"); string str1 = g_xdoc_shoppingcart.getData(0, "data/Item", row, "EnquiryPriceListID"); if (str1 != "") str += "el:" + str1; else if (str != "") str = "sl:" + str; else if (dwc_list.GetItemString(row, "SKUNo") != "") str = dwc_list.GetItemString(row, "SKUNo"); else str = dwc_list.GetItemString(row, "No"); ls_nos += str; dw_list.SelectRow(0, false); dwc_list.SelectRow(0, false); dw_list.Redraw(); dwc_list.Redraw(); impStr = ""; win32::SendMessage(hObject, 0x401, ls_nos, 0); xutil::RestoreCursor(hCursor); CloseWindow(); return 1; } int OnDwDoubleClicked(ref TNotifyEvent evt, int p) { int hCursor = xutil::SetCursorWait(); ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); int row = hdr.row; if (row > 0) { if (dw_list.GetItemString(row, "pic") != "*") { alert("µÚ" + row.toString() + "ÐÐÇëÔö¼Ó²úƷͼƬ!"); return 1; } } string ls_nos = "ImportXml:"; string str = ""; if (dw_list.GetItemString(row, "SKUNo") != "") str = dw_list.GetItemString(row, "SKUNo"); else str = dw_list.GetItemString(row, "No"); ls_nos += str; dw_list.SelectRow(0, false); dwc_list.SelectRow(0, false); dw_list.Redraw(); dwc_list.Redraw(); impStr = ""; win32::SendMessage(hObject, 0x401, ls_nos, 0); xutil::RestoreCursor(hCursor); CloseWindow(); return 1; } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND", OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_list", "DWV_ROWFOCUSCHANGED", OnRowChanged); AttachEvent("dwc_list", "DWV_ROWFOCUSCHANGED", OnGoodsCarRowChanged); AttachEvent("tv_folder", "TVN_ITEMEXPANDING", OnTreeExpanding); AttachEvent("tv_folder", "TVN_SELCHANGED", OnTreeSelChanged); AttachEvent("WM_COMMAND", OnCkbCLick); //checkbox´ò¹³Ê¼þ AttachEvent("WM_COMMAND", OnCkbCLick2); //checkbox´ò¹³Ê¼þ AttachEvent("dwc_list", "DWV_DOUBLECLICKED", OnDwcDoubleClicked); AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDwDoubleClicked); AttachEvent("dw_list", "DWV_CLICKED", OnDwClicked); AttachEvent("dwc_list", "DWV_CLICKED", OnDwcClicked); } int onload() { agentFor = "goodslib"; impStr = ""; OnAttachEvent(); imageElement = 0; tv_folder = GetControl("tv_folder"); dw_list = GetControl("dw_list"); dwc_list = GetControl("dwc_list"); xaserverarg arg = GetParam(); CustomerID = ""; SupplierID = ""; m_customer = ""; hObject = 0; if (arg) { hObject = arg.GetArgString("HWND").toInt(); CustomerID = arg.GetArgString("CustomerID"); CustomerID = arg.GetArgString("SupplierID"); } InitialFolder(); g_xdoc_product = new xdataset; g_xdoc_product.Init(); xbind bindproduct = new xbind; bindproduct.bindEx(dw_list, g_xdoc_product, ""); g_xdoc_shoppingcart = new xdataset; g_xdoc_shoppingcart.Init(); xbind bindcart = new xbind; bindcart.bindEx(dwc_list, g_xdoc_shoppingcart, ""); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3("").GetXmlDoc()); dw_list = GetControl("dw_list"); dw_list.SetReadOnly(true); dw_list.SetColumnState("Submitter1", false); dw_list.SetColumnState("HSCode", false); dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.SetReadOnly(true); if (dw_list.GetRowCount()) { htmlctrl xs = GetControl("html_detail"); xs.SetContent(makeHtml(1)); } xtreeview::ExpandItem(tv_folder.GetId(), xtreeview::GetNextItem(tv_folder.GetId(), xtreeview::GetRootItem(tv_folder.GetId()))); xtreeview::ExpandItem(tv_folder.GetId(), xtreeview::GetNextItem(tv_folder.GetId(), xtreeview::GetNextItem(tv_folder.GetId(), xtreeview::GetRootItem(tv_folder.GetId())))); dw_list.SetSelectionMode(3); dwc_list.SetSelectionMode(3); return 1; } int onloaded() { SetAgent(); return 1; } }; ]