#include <wobject/xstring.hpp> 
 | 
#include <xcontrol/xtreeview.hpp> 
 | 
#include <xcontrol/xdwgrid.hpp> 
 | 
#include <wobject/xdouble.hpp> 
 | 
#include <xcontrol/xlayersheet.hpp> 
 | 
#include <xcontrol/xdatetimepick.hpp> 
 | 
#include <xcontrol/ximageview.hpp> 
 | 
  
 | 
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" 
 | 
#include "viewobject/view.base.hpp" 
 | 
  
 | 
using xml = KXMLDOMDocument; 
 | 
    class __declspec(dllexport) SKUProductPictureView3 : public xframe 
 | 
    { 
 | 
    public: 
 | 
        ximageview im; 
 | 
        xml doc; 
 | 
        HWND m_winHwnd; 
 | 
        HWND ParentHWND; 
 | 
    public: 
 | 
        SKUProductPictureView3(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} 
 | 
    public: 
 | 
        static SKUProductPictureView3* CreateInstance(void* implPtr, void* hWnd) 
 | 
        { 
 | 
            SKUProductPictureView3* pWin = new SKUProductPictureView3(implPtr, (HWND)hWnd); 
 | 
            return pWin; 
 | 
        } 
 | 
        int hiddenBox(xstring 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(TEvent* evt, LPARAM  pr) 
 | 
        { 
 | 
            IMGNNMHDR& nmtv = *(IMGNNMHDR*)evt->notify.pnmh; 
 | 
            xstring src = nmtv.path; 
 | 
            /*if(src.length() > 60) 
 | 
                src = src.right(44); 
 | 
            else 
 | 
                src=src.mid(src.find(L"Thumbs", 0)+6, 50); 
 | 
            */ 
 | 
            xaserverarg arg; 
 | 
             
 | 
            //arg.AddArg(L"src",L"/business/products/chanpin"+src);     
 | 
            arg.AddArg(L"src", src); 
 | 
  
 | 
            //win::OpenWindow(L"dev:xpage[BigPicture.vx]",arg);     
 | 
  
 | 
            int h = openUrl(L"/sale/view/ProductLibrary/xpage/bigpictureview", arg); 
 | 
            return 1; 
 | 
  
 | 
            /*xwin x = new xwin; 
 | 
            x.setNativePointer(h); 
 | 
            m_winHwnd = x.GetHWND(); 
 | 
  
 | 
            xstring sh = doc.xml(); 
 | 
            int p = cast(sh as int); 
 | 
            win32::SendMessage(m_winHwnd, 0x401, p, 0); 
 | 
            return 1;*/ 
 | 
        } 
 | 
  
 | 
        int OnCmdDispatch(xstring comdid) 
 | 
        { 
 | 
            if (comdid == L"xmSave") 
 | 
            { 
 | 
                xstring x = L" "; 
 | 
                xutil::OpenDialog(GetHWND(), x); 
 | 
                if (x == L"") return 0; 
 | 
  
 | 
                KXMLDOMElement e = doc.selectSingleNode(L"ImageList"); 
 | 
                KXMLDOMNodeList nlist = e.selectNodes(L"image"); 
 | 
  
 | 
                HCURSOR hCursor = xutil::SetCursorWait(); 
 | 
                int s = nlist.length(); 
 | 
                xstring result = L""; 
 | 
                for (int i = 0; i < s; i++) 
 | 
                { 
 | 
                    KXMLDOMElement xitem = nlist.item(i); 
 | 
                    xstring picname = xitem.selectSingleNode(L"PicPath").text(); 
 | 
                    if (picname == L"") continue; 
 | 
                    xstring goodsno = xitem.selectSingleNode(L"GoodsNo").text(); 
 | 
                    xstring src = picname.mid(26, picname.length()); 
 | 
                    //trace(picname + L"-->" + src + L"\r\n"); 
 | 
                    if (src == L"" || src == L"/") continue; 
 | 
                    int openRet = xaserver::DownLoadFile(GetServerUrl(), L"/business/products/chanpin/" + src, L"", x + L"/" + goodsno + L".jpg"); 
 | 
                    if (openRet < 0) 
 | 
                    { 
 | 
                        //trace(picname + L"-->" + src + L"\r\n"); 
 | 
                        result += goodsno + L"   "; 
 | 
                    } 
 | 
                } 
 | 
                xutil::RestoreCursor(hCursor); 
 | 
                if (result != L"") 
 | 
                    alert(result + L"\r\nÒÔÉÏ»õºÅÏÂÔØÍ¼Æ¬Ê§°Ü!"); 
 | 
                else 
 | 
                    alert(L"±£´æÍê±Ï!"); 
 | 
            } 
 | 
            else if (comdid == L"xmDelete") 
 | 
            { 
 | 
                if (ParentHWND) 
 | 
                { 
 | 
                    int nIndex = im.GetSelectIndex(); 
 | 
                    if (nIndex < 0 || nIndex >= im.GetImageCount()) return 0; 
 | 
                    im.RemoveImage(nIndex); 
 | 
                    im.Redraw(); 
 | 
                    xstring comd = L"Delete:" +xstring(nIndex); 
 | 
                    SendMessage(ParentHWND, 0x401, (WPARAM)comd.c_str(), 0); 
 | 
                } 
 | 
            } 
 | 
            return 0; 
 | 
        } 
 | 
  
 | 
        int OnXCommand(TEvent* evt, int param) 
 | 
        { 
 | 
            return OnCmdDispatch(evt->xcommand.pStrID); 
 | 
        } 
 | 
  
 | 
        int OnCombboChange(TEvent* evt, int lParam) 
 | 
        { 
 | 
            xcombobox xc = GetControl(L"precent"); 
 | 
            xstring text = xc.GetLBText(); 
 | 
            int p = text.toInt(); 
 | 
            if (p == 0) p = 100; 
 | 
            im.Preview(p); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnAttachEvent() 
 | 
        { 
 | 
            AttachEvent(L"im1", L"IMG_LDBCLICK", (FEvent)&SKUProductPictureView3::OnImgDBClicked); 
 | 
            AttachEvent(L"WM_XCOMMAND", (FEvent)&SKUProductPictureView3::OnXCommand); 
 | 
            AttachEvent(L"precent", L"CBN_SELCHANGE", (FEvent)&SKUProductPictureView3::OnCombboChange); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int init() 
 | 
        { 
 | 
            xml x ; 
 | 
             
 | 
            xaserverarg arg; 
 | 
  
 | 
            if (GetWinParam()) 
 | 
                arg = GetArg(); 
 | 
            else 
 | 
                return 0; 
 | 
  
 | 
            if (xurl::get(GetEntityName(1) + L"/pref/category/picture/list", arg.GetString(), x) != 1) 
 | 
            { 
 | 
                trace(L"error:" + xstring(x.xml(), true)); 
 | 
                return 0; 
 | 
            } 
 | 
            //trace(arg.GetString()); 
 | 
            //trace(x.GetXml());         
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int onload() 
 | 
        { 
 | 
            SetArg(); 
 | 
            im = GetControl(L"im1"); 
 | 
            OnAttachEvent(); 
 | 
  
 | 
            ParentHWND = 0; 
 | 
  
 | 
            if (GetWinParam()) 
 | 
            { 
 | 
                xaserverarg arg = GetArg(); 
 | 
                ParentHWND  = (HWND)arg.GetParam(L"ParentHWND"); 
 | 
                xstring openflag = arg.GetArgString(L"OpenFlag"); 
 | 
                //alert(openflag); 
 | 
                if (openflag != L"0") hiddenBox(L"xmDelete", false); 
 | 
                //trace(arg.GetString());     
 | 
                xml x ; 
 | 
                 
 | 
                //alert(arg.GetString()); 
 | 
                    //if(url::get(L"/sale/data/product/pref/category/picture/list",arg.GetString(),x)!=1) 
 | 
                if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNoList", arg.GetString(), x) != 1) 
 | 
                { 
 | 
                    trace(L"error:" + xstring(x.xml(), true)); 
 | 
                    return 0; 
 | 
                } 
 | 
                doc = x; 
 | 
                //alert(x.xml());         
 | 
                KXMLDOMElement e = x.selectSingleNode(L"ImageList"); 
 | 
                KXMLDOMNodeList  nlist = e.selectNodes(L"image"); 
 | 
                int i; 
 | 
                int s = nlist.length(); 
 | 
                for (i = 0; i < s; i++) 
 | 
                { 
 | 
                    KXMLDOMElement xitem = nlist.item(i); 
 | 
                    xstring picname = xitem.selectSingleNode(L"PicPath").text(); 
 | 
                    xstring goodno = xitem.selectSingleNode(L"GoodsNo").text(); 
 | 
                    //trace(picname + L"\r\n");         
 | 
                    if (picname == L"/business/products/Thumbs//") 
 | 
                        picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; 
 | 
                    im.AddImages(picname, goodno); 
 | 
                } 
 | 
                im.Redraw(); 
 | 
            } 
 | 
            else { 
 | 
                im.AddImages(L"/business/products/chanpin/BL-002/291679.jpg", L"x1"); 
 | 
                im.AddImages(L"/business/products/chanpin/BL-002/291759.jpg", L"x2"); 
 | 
                im.AddImages(L"/business/products/chanpin/BL-002/417884.jpg", L"x3"); 
 | 
                im.Redraw(); 
 | 
            } 
 | 
            SetFocus(im.GetHWND()); 
 | 
  
 | 
            xstring userno = xaserver::GetUserNo(); 
 | 
            /*if(userno == L"1003" || userno == L"1137" || userno == L"admin") { 
 | 
                //hiddenBox(); 
 | 
            } else { 
 | 
                hiddenBox(L"xmSave", false); 
 | 
            }*/ 
 | 
            hiddenBox(L"xmSave", false); 
 | 
  
 | 
            return -1; 
 | 
        } 
 | 
    }; 
 |