use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" unit trade [ class SKUProductPictureView3 : public frame { imageview im; xml doc; int m_winHwnd; int ParentHWND; int hiddenBox(string name, bool f) { //xnode anode = GetAgentNode(name); xnode anode = GetAgentNode(name); int LayerFlow_None = 0x00000001; int LayerFlow_UnLayer = 0x00000100; int LayerFlow_NS = 0x00000004; int LayerFlow_WE = 0x00000008; int LayerFlow_Control = 0x00000010; if (f) anode.SetLayerFlow(LayerFlow_WE | LayerFlow_Control); else anode.SetLayerFlow(LayerFlow_None | LayerFlow_UnLayer); return 1; } int OnImgDBClicked(ref TNotifyEvent evt, int pr) { ref IMGNNMHDR nmtv = evt.pnmh; string src = nmtv.path; /*if(src.length() > 60) src = src.right(44); else src=src.mid(src.find("Thumbs", 0)+6, 50); */ xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); //arg.AddArg("src","/business/products/chanpin"+src); arg.AddArg("src", src); //win::OpenWindow("dev:xpage[BigPicture.vx]",arg); int h = openUrl("/sale/view/ProductLibrary/xpage/bigpictureview", arg); return 1; xwin x = new xwin; x.setNativePointer(h); m_winHwnd = x.GetHWND(); string sh = doc.GetXml(); int p = cast(sh as int); win32::SendMessage(m_winHwnd, 0x401, p, 0); return 1; } int OnCmdDispatch(string comdid) { if (comdid == "xmSave") { string x = " ".space(256); xutil::OpenDialog(this.GetHWND(), x); if (x == "") return 0; msxml::IXMLDOMElement e = doc.GetXmlDoc().selectSingleNode("ImageList"); msxml::IXMLDOMNodeList nlist = e.SelectNodes("image"); int hCursor = xutil::SetCursorWait(); int s = nlist.length; string result = ""; for (int i = 0; i < s; i++) { msxml::IXMLDOMElement xitem = nlist.item(i); string picname = xitem.selectSingleNode("PicPath").text; if (picname == "") continue; string goodsno = xitem.selectSingleNode("GoodsNo").text; string src = picname.mid(26, picname.length()); //trace(picname + "-->" + src + "\r\n"); if (src == "" || src == "/") continue; int openRet = xaserver::DownLoadFile(GetServerUrl(), "/business/products/chanpin/" + src, "", x + "/" + goodsno + ".jpg"); if (openRet < 0) { //trace(picname + "-->" + src + "\r\n"); result += goodsno + " "; } } xutil::RestoreCursor(hCursor); if (result != "") alert(result + "\r\nÒÔÉÏ»õºÅÏÂÔØÍ¼Æ¬Ê§°Ü!"); else alert("±£´æÍê±Ï!"); } else if (comdid == "xmDelete") { int hh = ParentHWND; if (hh > 0) { int nIndex = im.GetSelectIndex(); if (nIndex < 0 || nIndex >= im.GetImageCount()) return 0; im.RemoveImage(nIndex); im.Redraw(); string comd = "Delete:" + nIndex.toString(); win32::SendMessage(hh, 0x401, comd, 0); } } return 0; } int OnXCommand(ref TXCommandEvent evt, int p) { return OnCmdDispatch(evt.pStrID); } int OnCombboChange(ref TCommandEvent evt, int lParam) { xcombobox xc = GetControl("precent"); string text = xcombobox::GetLBText(xc.GetId()); int p = text.toInt(); if (p == 0) p = 100; im.Preview(p); return 1; } int OnAttachEvent() { AttachEvent("im1", "IMG_LDBCLICK", OnImgDBClicked); AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent("precent", "CBN_SELCHANGE", OnCombboChange); } int init() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; if (this.GetParam()) arg = this.GetParam(); else return 0; if (url::get(GetEntityName(1) + "/pref/category/picture/list", arg.GetString(), x) != 1) { trace("xxx", x.GetXml()); return 0; } //trace(arg.GetString()); //trace(x.GetXml()); return 1; } int onload() { im = GetControl("im1"); OnAttachEvent(); ParentHWND = 0; if (this.GetParam()) { xaserverarg arg = new xaserverarg; //arg.setNativePointer(arg.CreateInstance()); arg = this.GetParam(); string hh = arg.GetArgString("ParentHWND"); ParentHWND = hh.toInt(); string openflag = arg.GetArgString("OpenFlag"); //alert(openflag); if (openflag != "0") hiddenBox("xmDelete", false); //trace(arg.GetString()); xml x = new xml; x.setNativePointer(xml::CreateInstance()); //alert(arg.GetString()); //if(url::get("/sale/data/product/pref/category/picture/list",arg.GetString(),x)!=1) if (url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKUNoList", arg.GetString(), x) != 1) { trace("xxx", x.GetXml()); return 0; } doc = x; //alert(x.GetXml()); msxml::IXMLDOMElement e = x.GetXmlDoc().selectSingleNode("ImageList"); msxml::IXMLDOMNodeList nlist = e.SelectNodes("image"); int i; int s = nlist.length; for (i = 0; i < s; i++) { msxml::IXMLDOMElement xitem = nlist.item(i); string picname = xitem.selectSingleNode("PicPath").text; string goodno = xitem.selectSingleNode("GoodsNo").text; //trace(picname + "\r\n"); if (picname == "/business/products/Thumbs//") picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; im.AddImages(picname, goodno); } im.Redraw(); } else { im.AddImages("/business/products/chanpin/BL-002/291679.jpg", "x1"); im.AddImages("/business/products/chanpin/BL-002/291759.jpg", "x2"); im.AddImages("/business/products/chanpin/BL-002/417884.jpg", "x3"); im.Redraw(); } win32::SetFocus(im.GetId()); string userno = xaserver::GetUserNo(); /*if(userno == "1003" || userno == "1137" || userno == "admin") { //hiddenBox(); } else { hiddenBox("xmSave", false); }*/ hiddenBox("xmSave", false); return -1; } }; ]