ÿþ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 ProductLibrary4Win : public frame { //§NÁT“^§NÁTRhˆ xdwgrid dw_list; //-irf§NÁTRhˆ xdwgrid dwc_list; //§NÁTX[ù[aŒ xdataset g_xdoc_product; xdataset g_xdoc_shoppingcart; xcombobox cbx_goodscar; ///f&TY  xnode m_agentNode; //Agent Condition xtreeview tv_folder; string agentFor; msxml::IXMLDOMElement imageElement; string m_customer; int FillGoodsCarList() { xcombobox xc = GetControl("frame:cbx_goodscar"); if(!xc) return 0; xml x = ShoppingCartView::GetRoleList(); if(!x) return 0; xc.SetText("== éb-irf=="); 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+"[@for='"+agentFor+"']/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); //FillGoodsCarList(); } } return 1; } //&q¹pÀo;mYtýQpe int OnSetFocus(ref TEvent evt,int param) { //͑nå]wQag 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); trace(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); trace(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(); if(m_customer) { string id = g_xdoc_shoppingcart.getData(0,"data/Item",row,"SKUID"); string customerItemNo = g_xdoc_shoppingcart.getData(0,"data/Item",row,"CustomerItemNo"); OnShowImage(id,customerItemNo); } return 1; } int DeleteRow(int row) { int IDOK = 1; int MB_OKCANCEL = 1; int MB_ICONQUESTION = 32; if(win32::MessageBox(GetHWND(),"nx¤‹ Rd–cš[„vy˜ ÿ Rd–T\ Ný€b` Y?","Ðc:y",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) { if (state== 1) { dw_obj.SetSelectionMode(3); } else if (state==-1) { dw_obj.SelectRow(0,false); dw_obj.SetSelectionMode(0); } 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; } xml GetGoodsPropListEx(string guid) { xml x=new xml; x.setNativePointer(xml::CreateInstance()); string fields="<data>"; //fields +="<field name='HighestPrice' label='gؚ÷N'/>"; //fields +="<field name='LowestPrice' label='gNO÷N'/>"; //fields +="<field name='BulkPrice' label='ce'÷N'/>"; //fields +="<field name='CardPrice' label='¸~aS÷N'/>"; //fields +="<field name='BuyPrice' label='Ǒ-÷N'/>"; //fields +="<field name='SupplierID' label=''n'/>"; fields +="<field name='Packing' label='Sň¹e_'/>"; fields +="<field name='PackingRate' label='Ïk±{peϑ'/>"; fields +="<field name='VolumeDesc' label='Sň:\x'/>"; fields +="<field name='GWPerPkg' label='Ûk͑'/>"; fields +="<field name='NWPerPkg' label='ÀQ͑'/>"; //fields +="<field name='DeveloperID' label='_ÑSºNXT'/>"; fields +="<field name='AttributeValue_1' label='§NÁT^\'`'/>"; //fields +="<field name='Remark' label='Yèl'/>"; fields += "</data>"; 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><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >÷S:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"SKUNo")+ "</span> <span style='font-weight:700;width:50;font-size:10pt' >{|y˜:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"RefNo")+ "</span></div>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >lQøS‹W÷S:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"GoodsNo")+ "</span></div>" ; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >ÁT T:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"CName")+ "</span></div>" ; if(dw_list.GetItemString(row,"CSpec")!="") html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >ĉ<span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row,"CSpec")+ "</span></div>" ; 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 += "<td>" + label + "</td>" + "<td style='text-align:center'>" + g_xdoc_product.getData(0,"data/Item",row,name) + "</td>" ; cnt++; i++; if(i ==len)break; } ls_detail += "<tr>" + ls_item + "</tr>"; } html += "<div style='margin-left:8px;margin-right:16px;'>" + +"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>" + ls_detail +"</table>" +"</div>" ; string ls_star=""; msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field"); len = fields.length; ls_detail = ""; if(len > 0) html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >€b/g‰Bl:</span></div>" ; 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=="Sň(Ï‘" || label=="€b/g‰Bl") { 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 += "<div ><span style='font-weight:700;width:50;font-size:10pt' >" + label +"*:</span><span style='width:90;font-size:10pt'>" + terms + "</span></div>" ; }else { ls_item = "<td>" + label + "</td>" + "<td>" + g_xdoc_product.getData(0,"data/Item",row,name) + "</td>" ; count++; } i++; if(i >= len)count = 2; } ls_item = "<tr>" + ls_item + "</tr>"; ls_detail += ls_item; } html += "<div style='margin-left:8px;margin-right:16px;'>" + +"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>" + ls_detail +"</table>" +"</div>" ; if(dw_list.GetItemString(row,"QualityTerm")!="") { html += "<div style='height:12px'/>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >(Ï‘:</span></div>" ; html += "<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row,"QualityTerm") + "</span></div>" ; } if(dw_list.GetItemString(row,"PackTerm")!="") { html += "<div style='height:12px'/>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >Sň(Ï‘:</span></div>" ; html += "<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row,"PackTerm") + "</span></div>" ; } if(g_xdoc_product.getData(0,"data/Item",row,"Remark")!="") { //html += "<div style='height:12px'/>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >Yèl:</span></div>" ; html += "<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + g_xdoc_product.getData(0,"data/Item",row,"Remark") + "</span></div>" ; } html += "<div style='height:24px'/>"; //fhy˜ html += ls_star; //>f:yþVGr /* if (id != "") { xml xp=new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic=new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUID",id); if(url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKU",arg_pic.GetString(),xp)!=1) { trace("xxx",xp.GetXml()); }else { html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >þVGr:</span>" ; msxml::IXMLDOMElement ep= xp.GetXmlDoc().selectSingleNode("ImageList"); if (ep) { if (ep.SelectNodes("image")){ msxml::IXMLDOMNodeList nlistp = ep.SelectNodes("image"); int ip=0; int lenp = nlistp.length; for(ip=0;ip<lenp;ip++) { msxml::IXMLDOMElement xitemp = nlistp.item(ip); string filename = xitemp.selectSingleNode("PicPath").text; //trace(filename); html += "<control visible='layer' controlclass='ximage' data='' src='http://192.168.7.241:7001" + filename +"'/>"; } } } html += "</div>"; } }else { 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 += "<div ><span style='font-weight:700;width:50;font-size:10pt' >þVGr:</span>"; html += "<control visible='layer' controlclass='ximage' data='' src='"+ serversrc +"'/></div>"; } */ html += "</body></html>"; //trace(html); return html; } string makeGoodscarHtml(int row) { string No = dwc_list.GetItemString(row,"RefNo");//·ƒÖS^\'`<style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >÷S:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,"No")+ "</span></div>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >ÁT T:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,"CName")+ "</span></div>" ; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >ĉ<span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row,"CSpec")+ "</span></div>" ; msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field"); int len = fields.length; html += "<table>" + "<colgroup span='1' width='80'/>" + "<colgroup span='1' width='120'/>" + "<colgroup span='1' width='420'/>" ; html += "<tr>" ; html += "<td style='text-align:center'>÷S</td><td style='text-align:center'>y˜îv</td><td style='text-align:center'>…Q¹[</td>" ; html +="</tr>"; for(int i=0;i<len; i++) { string name = fields.item(i).selectSingleNode("@name").text; string label = fields.item(i).selectSingleNode("@label").text; html += "<tr>" ; if(i==0) html += "<td rowspan='" + len.toString() + "'>" + No + "</td><td >"+ label + "</td><td >"+"</td>" ; else html += "<td >"+ label + "</td><td >"+ g_xdoc_shoppingcart.getData(0,"data/Item",row,name)+"</td>" ; html +="</tr>"; } html += "<tr>" ; html += "<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0,"data/Item",row,"PackCode") + "</td><td >Sň¹e_</td><td >"+ g_xdoc_shoppingcart.getData(0,"data/Item",row,"CPack") + "</td>" ; html +="</tr>"; html += "<tr height='48'>" ; html += "<td >Sň‰Bl</td><td >"+ g_xdoc_shoppingcart.getData(0,"data/Item",row,"PackQualityTerm")+"</td>" ; html +="</tr>"; html += "<tr>" ; html += "<td >§OU</td><td ></td>" ; html +="</tr>"; html += "<tr height='72'>" ; html += "<td>" + g_xdoc_shoppingcart.getData(0,"data/Item",row,"QualityCode") + "</td><td >(Ï‘‰Bl</td><td >"+ g_xdoc_shoppingcart.getData(0,"data/Item",row,"QualityTerm") + "</td>" ; html +="</tr>"; html +="</table>"; html += "</body></html>"; return html; } int CarGoodsDelete() { return 1; } 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(" N OþVGr1Y%"); return -1; } string originfile = ret1; string ext = originfile.right(7); if(ext.find(".")>=0) ext = ext.mid(ext.find(".")+1,9999); else ext = "jpg"; // þVGr T ReQpenc“^ xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml("<Item update.new='1' update.modify='1' guid='"+ id+"'>" + "<ProductPictureID>" + id +"</ProductPictureID>" + "<OriginFile>"+originfile+"</OriginFile>"+ "<FileExt>"+ext+"</FileExt>"+ "<SKUID>" + skuid +"</SKUID>" + "<Name>[" + SKUNo.trim() +"]</Name>" + "<FileName>" + id +".jpg</FileName>" + "</Item>" ); 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(); //7R°eN NLub— ÿ>f:yþVGr 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"); string 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(" N OþVGr1Y%"); return -1; } string originfile = ret1; string ext = originfile.right(7); if(ext.find(".")>=0) ext = ext.mid(ext.find(".")+1,9999); else ext = "jpg"; // þVGr T ReQpenc“^ xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml("<Item update.new='1' update.modify='1' guid='"+ id+"'>" + "<ProductPictureID>" + id +"</ProductPictureID>" + "<OriginFile>"+originfile+"</OriginFile>"+ "<FileExt>"+ext+"</FileExt>"+ "<SKUID>" + skuid +"</SKUID>" + "<CustomerItemNo>" + CustomerItemNo +"</CustomerItemNo>" + "<CustomerID>" + CustomerID +"</CustomerID>" + "<Name>[" + SKUNo.trim() +"]</Name>" + "<FileName>" + id +".jpg</FileName>" + "</Item>" ); 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(); //7R°eN NLub— ÿ>f:yþVGr 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(),"nx¤‹ Rd–S_MRþVGr?","Ðc:y", 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 = "<Item update.modify='1' update.delete='1' guid='"+id+"'/>"; 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"); string 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(),"nx¤‹ Rd–S_MRþVGr?","Ðc:y", 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 = "<Item update.modify='1' update.delete='1' guid='"+id+"'/>"; 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; } int OnPreviewImage() { 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); //msxml::IXMLDOMElement e = dw_list.GetRowElement(row); //alert(e.xml); string id = g_xdoc_product.getData(0,"data/Item",row,"@guid"); //alert(id); int hItem = tv_folder.GetSelectedItem(); msxml::IXMLDOMElement e1= tv_folder.GetItemData(hItem); string categoryid = e1.selectSingleNode("@guid").text; //alert(categoryid); xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("SKUID",id); arg.AddArg("CategoryID",categoryid); int pr = trust(arg as int); //g_xdoc_product OpenWindow("dev:xpage[PictureView.Product3.vx]",pr); 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 ItemAdd() { int hItem = tv_folder.GetSelectedItem(); int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); msxml::IXMLDOMElement e= tv_folder.GetItemData(hItem); //alert(e.xml); /*string no = e.getAttribute("no"); if(no=="") return 1; if(no=="NP0000FS" || no=="UP0000FS") { OpenWindow("dev:xpage[PackSchemaMaint.goodslib.vx]"); }else { int p = no; OpenWindow("dev:xpage[SO.autolist.goodslib.add.vx]",p); }*/ 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=="*NºN§NÁT") 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.NewProduct.vx]",p); if(arg.GetArgString("data.modify")=="1")RetrieveData(); return 1; } int OnAddFolder() { int hItem = tv_folder.GetSelectedItem(); int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); string selectname = tv_folder.GetItemLabel(hItem); xaserverarg arg = ViewObject::MakeArg(); if(hItem != hTopItem) { msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); string folder = e.getAttribute("guid"); if(folder !="" ) { arg.AddArg("parentCategoryID",folder); OpenWindow("dev:xpage[UserFolderMaint.vx]",cast(arg as int)); /*if(arg.GetArgString("FolderID")!="") { int child = tv_folder.GetChildItem(hItem); if(!child) { ExpandItem(hItem); } else { msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); msxml::IXMLDOMElement e2 = e1.cloneNode(0); e2. } }*/ } } return 1; } int OnMaintFolder() { int hItem = tv_folder.GetSelectedItem(); int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); string selectname = tv_folder.GetItemLabel(hItem); xaserverarg arg = ViewObject::MakeArg(); if(name=="*NºN“^" && selectname=="°e§NÁT" && tv_folder.GetParentItem(hItem)==hTopItem) return 1; if(hItem != hTopItem) { msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); string folder = e.getAttribute("guid"); if(folder !="" ) { arg.AddArg("CategoryID",folder); OpenWindow("dev:xpage[UserFolderMaint.vx]",cast(arg as int)); if(arg.GetArgString("label")!="") { tv_folder.SetItemLabel(hItem,arg.GetArgString("label")); } } } return 1; } //}TäNÑS^ýQpe int OnCmdDispatch(string comdid) { int hCursor; string name=""; if(comdid=="xmRefresh") { return RetrieveData(); } else if(comdid=="xmCarGoodsDelete") { CarGoodsDelete(); return 1; } else if(comdid=="xmAddFolder") { return OnAddFolder(); } else if(comdid=="xmMaintFolder") { return OnMaintFolder(); } else if(comdid=="xmClose") { CloseWindow(); return 1; } else if(comdid=="xmCarGoodsMaint") { OpenWindow("dev:xpage[ShoppingCartProductMaint.vx]",trust(g_xdoc_shoppingcart as int)); return 1; } else if(comdid=="xmCarMaint") { OpenWindow("dev:xpage[SO.autolist.Shopcar.vx]"); return 1; } else if(comdid=="xmSaleOrder") { int rw = dwc_list.GetNextSelectRow(1); string content = "<data>"; while (rw>0) { msxml::IXMLDOMElement xe = OnGetCarListRowElement(rw); content += xe.xml; rw = dwc_list.GetNextSelectRow(rw + 1); } content += "</data>"; xaserverarg carg=new xaserverarg; carg.setNativePointer(carg.CreateInstance()); carg.AddArg("content",content); int newArg2 = carg.ptr_native_; OpenWindow("dev:xpage[SO.Simulation.Import.vx]",newArg2); return 1; } else if(comdid=="xmEnquiry") { rw = dwc_list.GetNextSelectRow(1); content = "<data>"; while (rw>0) { xe = OnGetCarListRowElement(rw); content += xe.xml; rw = dwc_list.GetNextSelectRow(rw + 1); } content += "</data>"; carg=new xaserverarg; carg.setNativePointer(carg.CreateInstance()); carg.AddArg("content",content); newArg2 = carg.ptr_native_; OpenWindow("dev:xpage[Enquiry.Import.vx]",newArg2); return 1; } else if(comdid=="xmPurchar") { rw = dwc_list.GetNextSelectRow(1); content = "<data>"; while (rw>0) { xe = OnGetCarListRowElement(rw); content += xe.xml; rw = dwc_list.GetNextSelectRow(rw + 1); } content += "</data>"; carg=new xaserverarg; carg.setNativePointer(carg.CreateInstance()); carg.AddArg("content",content); newArg2 = carg.ptr_native_; OpenWindow("dev:xpage[PO.Import.vx]",newArg2); return 1; } else if(comdid=="xmSearch") { RetrieveData(); return 1; } else if(comdid=="xmQuote") { rw = dwc_list.GetNextSelectRow(1); content = "<data>"; while (rw>0) { xe = OnGetCarListRowElement(rw); content += xe.xml; rw = dwc_list.GetNextSelectRow(rw + 1); } content += "</data>"; carg=new xaserverarg; carg.setNativePointer(carg.CreateInstance()); carg.AddArg("content",content); newArg2 = carg.ptr_native_; OpenWindow("dev:xpage[Quote.Import.vx]",newArg2); return 1; } else if(comdid=="xmAdd") { return ItemAdd(); } else if(comdid=="xmDelete") { int row = dw_list.GetRow(); if(row < 1) return 1; string skuid = g_xdoc_product.getData(0,"data/Item",row,"@guid"); xml skuid_x = ViewObject::RetrieveData("/sale/data/ProductLibrary3/ProductNumberone","SKUID", skuid); string skuidEx=skuid_x.GetXmlDoc().text ; int skuid1=skuidEx.toInt() ; if(skuid1) { if(skuid1 >0) { alert("¢‹USò] g§NÁT ÿ NAQ¸‹ Rd–ÿ"); return 1; } } DeleteRow(row); return 1; } else if(comdid == "xmCarAdd") { hCursor = xutil::SetCursorWait(); name=GetControl("frame:ed_goodscar").GetText(); if(name !="") { if(ShoppingCartView::AddCar(name)==1) { tv_folder.InsertChildItem(LookupTopFolder(tv_folder.GetSelectedItem()), name, 0,35); } } xutil::RestoreCursor(hCursor); return 1; } else if(comdid=="xmMaint") { return ItemMaint(); } else if(comdid=="xmAddImage") { return OnAddImage(); } else if(comdid=="xmDeleteImage") { return OnDeleteImage(); } else if(comdid=="xmPreviewImage") { return OnPreviewImage(); } else if(comdid=="xmPropConfigure") { int r = cast(g_xdoc_product.getData("data/Item","@guid") as int); OpenWindow("dev:xpage[Product.ItemProp.Maint.vx]",r); return 1; } else if(comdid=="xmRertieve") { /* int hItem1 = tv_folder.GetSelectedItem(); msxml::IXMLDOMElement e2= tv_folder.GetItemData(hItem1); string no1 = e2.getAttribute("no"); xml x2 = vcontrol::RetrieveData("/sale/data/SO/goods/usergoods/listex1","parent",no1); g_xdoc_product.Retrieve(x2); */ return 1; } else if(comdid=="xmToCar") { name=GetControl("frame:cbx_goodscar").GetText(); if(name=="== éb-irf==") { alert("÷‹ éb-irf"); return 1; } int xrow = dw_list.GetNextSelectRow(1); string goodsid=""; string html = "<data>"; while (xrow>0) { msxml::IXMLDOMElement e = g_xdoc_product.getRowElement("data/Item", xrow); goodsid = ProductLibraryView::GetElementString(e, "@guid"); html += "<item goodid='"+goodsid+"' id ='"+ ProductLibraryView::GetGuid()+"'/>"; xrow = dw_list.GetNextSelectRow(xrow + 1); } html += "</data>"; trace(html); if(ShoppingCartView::GoodsImport(name, html)==1) alert("ûm R•ï‹!"); else alert("ûm RbŸR"); return 1; } return 0; } //}TäNYt‹NöN int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } //åg~bS_MRhy˜„vv˜§~îvU_ int LookupTopFolder(int hItem) { int hRoot = tv_folder.GetRootItem(); while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); return hItem; } //ÒceQ§NÁT{|y˜„vP[y˜ 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); string child = e.getAttribute("Childs"); if(child=="") tv_folder.SetItemChild(h,1); else if(child !="0") tv_folder.SetItemChild(h,1); } return 1; } //ÒceQ°e§NÁTîvU_P[y˜ 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; } //ÒceQ-irfy˜ 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::GetRoleList(); 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 ExpandItem(int hItem) { int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); int child = tv_folder.GetChildItem(hItem); string no =""; msxml::IXMLDOMElement e; if(name == "lQøS“^" && !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 == "*NºN“^" && !child ) { no =""; if(hTopItem != hItem) { e= tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); MakeUserGoodsFolderItem(hItem, no); } } else if(name == "-irf" && !child ) { if(hItem==hTopItem)MakeGoodCarFolderItem(hItem); } return 1; } //hU\_ int OnTreeExpanding(ref TNotifyEvent evt,int p) { ref NMTREEVIEW nmtv = evt.pnmh; int hItem = nmtv.itemNew.hItem; return ExpandItem(hItem); } 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 RetrieveData() { imageview im = GetControl("im1"); int hItem = tv_folder.GetSelectedItem(); int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); string selectname = tv_folder.GetItemLabel(hItem); xcontrol query = GetControl("sl_search"); string queryString = query.GetText(); if(hItem==hTopItem) { dw_list.Reset(); dw_list.SetReadOnly(true); dw_list.Redraw(); dwc_list.Reset(); dwc_list.SetReadOnly(true); dwc_list.Redraw(); im.ResetEx(); im.Redraw(); htmlctrl xs1 = GetControl("html_detail"); xs1.SetContent("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); if(name !="lQøS“^") return 1; } //return 1; int hCursor = xutil::SetCursorWait(); if(name == "-irf") { if(selectname !=name) { msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); string str = e1.getAttribute("no"); alert(str); if(str.find("Customer:")==0 || str.find("SO:")==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); g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str,queryString)); } else if(e1.getAttribute("categoryid") !="") { string categoryid = e1.getAttribute("categoryid"); dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid ).GetXmlDoc()); dwc_list.SetReadOnly(true); dwc_list.Reset(); g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid ,queryString,"" )); dwc_list.Redraw(); } else { dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodslist"); dwc_list.SetReadOnly(true); dwc_list.Reset(); 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("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); } xs.Redraw(); } } else { if(name == "*NºN“^" || name=="lQøS“^") { string no="N000005"; if(name=="*NºN“^") no="U000005"; if(hItem != hTopItem) { msxml::IXMLDOMElement e= tv_folder.GetItemData(hItem); no = e.getAttribute("guid"); } /* dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc()); dw_list = GetControl("dw_list"); dw_list.Reset(); dw_list.SetReadOnly(true); */ if(name == "*NºN“^") g_xdoc_product.Retrieve(ProductLibraryView::GetMaintRoleList3(no)); else { if(queryString !="") { if(no=="N000005") g_xdoc_product.Retrieve(ProductLibraryView::GetMaintList3("",queryString,"")); else g_xdoc_product.Retrieve(ProductLibraryView::GetMaintList3(no,queryString,"")); }else g_xdoc_product.Retrieve(ProductLibraryView::GetMaintList3(no)); } 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("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); } xs.Redraw(); } } xutil::RestoreCursor(hCursor); return 1; } int OnTreeSelChanged(ref TNotifyEvent evt,int p) { ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW); int hItem = nmtv.itemNew.hItem; int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); string selectname = tv_folder.GetItemLabel(hItem); imageview im = GetControl("im1"); m_customer = ""; //alert(name); if(name == "-irf") { if(agentFor !="goodscar")SwitchLayer("goodscarsheet","sheetframe"); ResetAgent("goodscar"); } else { if(agentFor !="goodslib")SwitchLayer("goodslibsheet","sheetframe"); if(name == "*NºN“^") ResetAgent("userlib"); else ResetAgent("goodslib"); } //RetrieveData(); win32::PostMessage(GetHWND(), 0x401,"xmRefresh",0); return 1; } 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 OnViewZoomChange(ref TCommandEvent evt,int lParam) { imageview im = GetControl("im1"); 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() { //Ñ~š[å]wQag¹pûQ‹NöN AttachEvent("WM_XCOMMAND",OnXCommand); //·ƒÖS&q¹p‹NöN ÿ(uŽN͑nå]wQag 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); //checkboxSb©”‹NöN AttachEvent("WM_COMMAND",OnCkbCLick2); //checkboxSb©”‹NöN AttachEvent("im1","IMG_LDBCLICK",OnImgDBClicked); AttachEvent("precent","CBN_SELCHANGE",OnViewZoomChange); } int onload() { agentFor = "goodslib"; m_customer = 0; imageElement = 0; OnAttachEvent(); tv_folder = GetControl("tv_folder"); dw_list = GetControl("dw_list"); dwc_list = GetControl("dwc_list"); 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); dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodslist"); dwc_list.SetReadOnly(true); if(dw_list.GetRowCount()) { htmlctrl xs = GetControl("html_detail"); xs.SetContent(makeHtml(1)); } tv_folder.ExpandItem(tv_folder.GetRootItem()); tv_folder.ItemFocus(tv_folder.GetRootItem()); return 1; } int onloaded() { SetAgent(); 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; } }; ]