#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" 
 | 
#include "viewobject/enquiry.view.hpp" 
 | 
#include "viewobject/quote.view.hpp" 
 | 
  
 | 
using xml = KXMLDOMDocument; 
 | 
    class __declspec(dllexport) EnquiryMaintView : public xframe 
 | 
    { 
 | 
    public: 
 | 
        xdwgrid    dw_goods; 
 | 
        xdwtable dw_base; 
 | 
  
 | 
        xnode    m_agentNode;    //Agent Condition 
 | 
        xstring sheetname; 
 | 
    public: 
 | 
        EnquiryMaintView(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} 
 | 
    public: 
 | 
        static EnquiryMaintView* CreateInstance(void* implPtr, void* hWnd) 
 | 
        { 
 | 
            EnquiryMaintView* pWin = new EnquiryMaintView(implPtr, (HWND)hWnd); 
 | 
            return pWin; 
 | 
        } 
 | 
        int SetAgent() 
 | 
        { 
 | 
            xstring xfNodeAgentArea = L"agentarea"; 
 | 
            xnode anode = GetAgentNode(xfNodeAgentArea); 
 | 
            if (m_agentNode) 
 | 
            { 
 | 
                SetAgentNode(anode, m_agentNode); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                KXMLDOMElement xframeElement = GetElement(); 
 | 
                KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); 
 | 
                if (agent) 
 | 
                { 
 | 
                    xstring s = agent.xml(); 
 | 
                    m_agentNode = SetAgentNode(anode, s); 
 | 
                } 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        //½¹µã¼¤»î´¦Àíº¯Êý 
 | 
        int OnSetFocus(TEvent* evt, LPARAM param) 
 | 
        { 
 | 
            //ÖØÖù¤¾ßÌõ 
 | 
            SetAgent(); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        xstring GetEntityData(LPARAM  pr) 
 | 
        { 
 | 
            dw_base.AcceptText(); 
 | 
            dw_goods.AcceptText(); 
 | 
            if (dw_base.GetItemString(1, L"EnquiryNo") == L"") 
 | 
            { 
 | 
                xstring EnquiryNo = EnquiryView::MakeBillNo(); 
 | 
                dw_base.SetItemString(1, L"EnquiryNo", EnquiryNo); 
 | 
            } 
 | 
  
 | 
            xml x ; 
 | 
             
 | 
            xaserverarg arg; 
 | 
             
 | 
            dw_goods.DwUpdateAllToEx(x); 
 | 
            dw_base.DwUpdateAllTo(x); 
 | 
            return x.xml(); 
 | 
        } 
 | 
  
 | 
        int SetSeqNo(xdwgrid dw_obj, xstring SeqNoColumn, int nRow) 
 | 
        { 
 | 
            if (nRow > 1) 
 | 
            { 
 | 
                int SeqNo = dw_goods.GetItemInt(nRow - 1, SeqNoColumn); 
 | 
                if (SeqNo != 0) SeqNo += 10; else SeqNo = nRow * 10; 
 | 
                dw_obj.SetItemInt(nRow, SeqNoColumn, SeqNo); 
 | 
            } 
 | 
            else 
 | 
                dw_obj.SetItemInt(nRow, SeqNoColumn, 10); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int Adjust() 
 | 
        { 
 | 
            xstring str; 
 | 
            for (int i = 1; i <= dw_goods.GetRowCount(); i++) 
 | 
            { 
 | 
                str = dw_goods.GetItemString(i, L"SupplierID"); 
 | 
                if (dw_goods.GetItemString(i, L"ItemID") != L"") 
 | 
                    if (str == L"") 
 | 
                    { 
 | 
                        if (i > 1) 
 | 
                        { 
 | 
                            if (dw_goods.GetItemString(i - 1, L"SupplierID") != L"") 
 | 
                            { 
 | 
                                dw_goods.SetItemDisplayString(i, L"SupplierID", dw_goods.GetItemDisplayString(i - 1, L"SupplierID")); 
 | 
                                dw_goods.ItemChangeTo(i, L"SupplierID", dw_goods.GetItemString(i - 1, L"SupplierID")); 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnSave() 
 | 
        { 
 | 
            dw_base.AcceptText(); 
 | 
            dw_goods.AcceptText(); 
 | 
            if (dw_base.GetItemString(1, L"Remark") != L"±£´æ") 
 | 
            { 
 | 
                 
 | 
  
 | 
                if (dw_base.GetItemString(1, L"ValidDay") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈëÓÐЧÆÚ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                /*if(dw_base.GetItemString(1,L"SupplierID")==L"") 
 | 
                { 
 | 
                    alert(L"¹©Ó¦ÉÌΪ¿Õ!"); 
 | 
                    return 1; 
 | 
                }*/ 
 | 
                if (dw_base.GetItemString(1, L"Source") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈëѯ¼ÛÀà±ð!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                xstring Packing = L""; 
 | 
                xstring Packings = L""; 
 | 
                Adjust(); 
 | 
                for (int i = 1; i <= dw_goods.GetRowCount(); i++) 
 | 
                { 
 | 
                    if (dw_goods.GetItemString(i, L"ItemMiniQty") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈëÆð¶©Á¿!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"Picture") == L"") 
 | 
                    { 
 | 
                        alert(L"Çë " + xstring(i) + L"ÐУ¬ÉÏ´«²úƷͼƬ!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"POPrice") == L"" || dw_goods.GetItemString(i, L"POPrice") == L".000") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈë²É¹º¼Û!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"PriceType") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈë¼Û¸ñÀàÐÍ!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
  
 | 
                    if (dw_goods.GetItemString(i, L"SampleFee") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈë´òÑù·Ñ!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"TestFee") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈë²âÊÔ·Ñ!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"ModelFee") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈëÄ£¾ß·Ñ!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"VolumeDesc") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈë°ü×°³ßÂë!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    if (dw_goods.GetItemString(i, L"WarehousingReason") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊäÈëÈë¿âÀíÓÉ!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
  
 | 
                    /*if(dw_goods.GetItemString(i,L"Packing") !=L"") 
 | 
                    { 
 | 
                        Packing = dw_goods.GetItemString(i,L"Packing"); 
 | 
                        if(Packings==L"") 
 | 
                        Packings = Packing; 
 | 
                        else if(Packings.find(Packing) < 0) Packings+=L","+Packing; 
 | 
                    }*/ 
 | 
                    if (dw_goods.GetItemString(i, L"Packing") == L"") 
 | 
                    { 
 | 
                        alert(L"ÇëÊä°ü×°·½Ê½!"); 
 | 
                        return 1; 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        xml xx = ViewObject::RetrieveData(L"/sale/data/Enquiry/GetPacking", L"str", dw_goods.GetItemString(i, L"Packing")); 
 | 
                        xstring Results = xx.text(); 
 | 
                        int ResultsInt = Results.toInt(); 
 | 
                        if (ResultsInt == 0) 
 | 
                        { 
 | 
                            alert(L"µÚ" + xstring(i) + L"Ðаü×°·½Ê½´íÎó£¬ÇëÖØÐÂÑ¡Ôñ£¡"); 
 | 
                            return 1; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                if (dw_base.GetItemString(1, L"EnquiryNo") == L"") 
 | 
                { 
 | 
                    xstring EnquiryNo = EnquiryView::MakeBillNo(); 
 | 
                    dw_base.SetItemString(1, L"EnquiryNo", EnquiryNo); 
 | 
                } 
 | 
  
 | 
                trace(L"********" + Packings + L"*********"); 
 | 
            } 
 | 
  
 | 
            xml x ; 
 | 
             
 | 
            xaserverarg arg; 
 | 
             
 | 
            dw_goods.DwUpdateAllToEx(x); 
 | 
            dw_base.DwUpdateAllTo(x); 
 | 
  
 | 
            //alert(x.xml()); 
 | 
  
 | 
            xstring error = L""; 
 | 
            arg.AddArg(L"content", x.xml()); 
 | 
            if (xurl::get(L"/sale/data/Enquiry/update", arg.GetString(), x) != 1) 
 | 
            { 
 | 
                error = x.text(); 
 | 
                alert(error); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                xstring str = x.documentElement().getAttribute(L"text"); 
 | 
                if (str == L"true") 
 | 
                { 
 | 
                    dw_goods.ResetUpdateStatus(); 
 | 
                    dw_base.ResetUpdateStatus(); 
 | 
                    UpdateEnquiryLineID(); 
 | 
  
 | 
                    xaserverarg arg_; 
 | 
                     
 | 
                    //trace(L"\r\nSource:"+arg_.GetArgString(L"Source")); 
 | 
                    if (arg_.GetArgString(L"Source") == L"quote") 
 | 
                        InsertEnquiryPriceList(); 
 | 
                    else if (arg_.GetArgString(L"Source") == L"pricebill") 
 | 
                        InsertEnquiryPriceListByEnquiryID(); 
 | 
  
 | 
                    alert(L"±£´æ³É¹¦!"); 
 | 
                    HWND hWnd = 0; 
 | 
                    if (arg_.GetArgString(L"Source") == L"pricebill") 
 | 
                    { 
 | 
                        if (arg_.GetArgString(L"hWnd") != L"") 
 | 
                        { 
 | 
                            hWnd = (HWND)arg_.GetParam(L"hWnd"); 
 | 
                            PostMessage(hWnd, 0x401, (LPARAM)L"xmRefresh", 0); 
 | 
                        } 
 | 
                    } 
 | 
                    if (arg_.GetArgString(L"Source") == L"") 
 | 
                    { 
 | 
                        if (arg_.GetArgString(L"hWnd") != L"") 
 | 
                        { 
 | 
                            hWnd = (HWND)arg_.GetParam(L"hWnd"); 
 | 
                            PostMessage(hWnd, 0x401, (LPARAM)L"xmReresh", 0); 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    alert(L"±£´æÊ§°Ü!"); 
 | 
                } 
 | 
            } 
 | 
            if (x) 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int InsertEnquiryPriceListByEnquiryID() 
 | 
        { 
 | 
            //trace(L"\r\nInsertEnquiryPriceListByEnquiryID Start!"); 
 | 
            xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/InsertEnquiryPriceListByEnquiryID", L"EnquiryID", dw_base.GetGuid(1)); 
 | 
            //trace(L"\r\nInsertEnquiryPriceListByEnquiryID:" + dw_base.GetGuid(1)+L" "+ x.xml()); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int InsertEnquiryPriceList() 
 | 
        { 
 | 
            xaserverarg arg; 
 | 
             
 | 
            xstring EntityIDList = arg.GetArgString(L"EntityIDList"); 
 | 
            xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/InsertEnquiryPriceList", L"ItemList", EntityIDList); 
 | 
            xml x1 = ViewObject::RetrieveData(L"/sale/data/Enquiry/Update/UpdateQuoteLine", L"ItemList", EntityIDList); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
  
 | 
        int UpdateEnquiryLineID() 
 | 
        { 
 | 
            xaserverarg arg; 
 | 
             
 | 
            int row = dw_base.GetRow(); 
 | 
            if (row < 1) return 0; 
 | 
  
 | 
            xstring EnquiryID = dw_base.GetGuid(1); 
 | 
  
 | 
            xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/Update/UpdateEnquiryLineID", L"EnquiryID", EnquiryID); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnSave1() 
 | 
        { 
 | 
            dw_base.AcceptText(); 
 | 
            dw_goods.AcceptText(); 
 | 
            if (dw_base.GetItemString(1, L"EnquiryNo") == L"") 
 | 
            { 
 | 
                xstring EnquiryNo = EnquiryView::MakeBillNo(); 
 | 
                dw_base.SetItemString(1, L"EnquiryNo", EnquiryNo); 
 | 
            } 
 | 
  
 | 
            if (dw_base.GetItemString(1, L"ValidDay") == L"") 
 | 
            { 
 | 
                alert(L"ÇëÊäÈëÓÐЧÆÚ!"); 
 | 
                return 1; 
 | 
            } 
 | 
  
 | 
            if (dw_base.GetItemString(1, L"Source") == L"") 
 | 
            { 
 | 
                alert(L"ÇëÊäÈëѯ¼ÛÀà±ð!"); 
 | 
                return 1; 
 | 
            } 
 | 
            xstring Packing = L""; 
 | 
            xstring Packings = L""; 
 | 
            for (int i = 1; i <= dw_goods.GetRowCount(); i++) 
 | 
            { 
 | 
                if (dw_goods.GetItemString(i, L"ItemMiniQty") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈëÆð¶©Á¿!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"Picture") == L"") 
 | 
                { 
 | 
                    alert(L"Çë " + xstring(i) + L"ÐУ¬ÉÏ´«²úƷͼƬ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"POPrice") == L"" || dw_goods.GetItemString(i, L"POPrice") == L".000") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈë²É¹º¼Û!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"PriceType") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈë¼Û¸ñÀàÐÍ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                if (dw_goods.GetItemString(i, L"SampleFee") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈë´òÑù·Ñ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"TestFee") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈë²âÊÔ·Ñ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"ModelFee") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈëÄ£¾ß·Ñ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"VolumeDesc") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈë°ü×°³ßÂë!"); 
 | 
                    return 1; 
 | 
                } 
 | 
                if (dw_goods.GetItemString(i, L"WarehousingReason") == L"") 
 | 
                { 
 | 
                    alert(L"ÇëÊäÈëÈë¿âÀíÓÉ!"); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
  
 | 
                if (dw_goods.GetItemString(i, L"Packing") != L"") 
 | 
                { 
 | 
                    Packing = dw_goods.GetItemString(i, L"Packing"); 
 | 
                    if (Packings == L"") 
 | 
                        Packings = Packing; 
 | 
                    else if (Packings.find(Packing) < 0) Packings += L"," + Packing; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            trace(L"********" + Packings + L"*********"); 
 | 
            xml x ; 
 | 
             
 | 
            xaserverarg arg; 
 | 
             
 | 
            dw_base.DwUpdateAllTo(x); 
 | 
            KXMLDOMElement ele = x.documentElement(); 
 | 
  
 | 
            xml x1 ; 
 | 
            dw_goods.DwUpdateAllToEx(x1); 
 | 
            KXMLDOMNodeList items = x1.selectNodes(L"Enquiry/Item"); 
 | 
            int len = items.length(); 
 | 
            bool processed = false; 
 | 
            KXMLDOMNode child; 
 | 
            KXMLDOMNode nodeColumn; 
 | 
            KXMLDOMElement eleItem; 
 | 
            KXMLDOMElement eleColumn; 
 | 
            xstring guid; 
 | 
            for (int k = 0; k < len; k++) 
 | 
            { 
 | 
                KXMLDOMElement e = items.item(k); 
 | 
                /*processed = false; 
 | 
                KXMLDOMNode col = e.selectSingleNode(L"QuoteNo"); 
 | 
                if(col) 
 | 
                { 
 | 
                    if(col.text !=L"") 
 | 
                    { 
 | 
                        child = e.cloneNode(-1); 
 | 
                        ele.appendChild(child); 
 | 
                        child.release(); 
 | 
                        processed = true; 
 | 
                    } 
 | 
                    col.release(); 
 | 
                } 
 | 
                if(!processed) 
 | 
                {*/ 
 | 
                xstring itemNew = e.getAttribute(L"update.new"); 
 | 
                xstring itemDelete = e.getAttribute(L"update.delete"); 
 | 
                xstring itemModify = e.getAttribute(L"update.modify"); 
 | 
                if (itemDelete == L"1") 
 | 
                { 
 | 
                    eleItem = x.createElement(L"Item"); 
 | 
                    eleItem.setAttribute(L"update.modify", L"1"); 
 | 
                    guid = e.getAttribute(L"guid"); 
 | 
                    eleItem.setAttribute(L"guid", guid); 
 | 
  
 | 
                    eleColumn = x.createElement(L"LineType"); 
 | 
                    eleColumn.setAttribute(L"update.modify", L"1"); //delete 
 | 
                    eleColumn.settext(L"1"); 
 | 
                    eleItem.appendChild(eleColumn); 
 | 
                    ele.appendChild(eleItem); 
 | 
                    processed = true; 
 | 
                } 
 | 
                else if (itemModify == L"1") 
 | 
                { 
 | 
                    if (itemNew != L"1") 
 | 
                    { 
 | 
                        //update origin row 
 | 
                        eleItem = x.createElement(L"Item"); 
 | 
                        eleItem.setAttribute(L"update.modify", L"1"); 
 | 
                        guid = e.getAttribute(L"guid"); 
 | 
                        eleItem.setAttribute(L"guid", guid); 
 | 
  
 | 
                        eleColumn = x.createElement(L"RealEnquiryLineID"); 
 | 
                        eleColumn.setAttribute(L"update.modify", L"1"); 
 | 
                        guid = publiccode::GetGuid(); 
 | 
                        eleColumn.settext(guid); 
 | 
                        eleItem.appendChild(eleColumn); 
 | 
  
 | 
                        eleColumn = x.createElement(L"LineType"); 
 | 
                        eleColumn.setAttribute(L"update.modify", L"1"); 
 | 
                        eleColumn.settext(L"1"); //modify 
 | 
                        eleItem.appendChild(eleColumn); 
 | 
                        ele.appendChild(eleItem); 
 | 
  
 | 
                        //insert new row 
 | 
                        eleItem = e.cloneNode(-1); 
 | 
                        eleItem.setAttribute(L"update.modify", L"1"); 
 | 
                        eleItem.setAttribute(L"update.new", L"1"); 
 | 
                        eleItem.setAttribute(L"guid", publiccode::GetGuid()); 
 | 
  
 | 
                        eleColumn = x.createElement(L"LineType"); 
 | 
                        eleColumn.setAttribute(L"update.modify", L"1"); 
 | 
                        eleColumn.settext(L"0");  //normal 
 | 
                        eleItem.appendChild(eleColumn); 
 | 
  
 | 
                        nodeColumn = e.selectSingleNode(L"ModifyDate"); 
 | 
                        if (!nodeColumn) 
 | 
                            eleColumn = x.createElement(L"ModifyDate"); 
 | 
                        else 
 | 
                            eleColumn = nodeColumn; 
 | 
                        eleColumn.settext(publiccode::GetCurrentDate()); 
 | 
                        eleItem.appendChild(eleColumn); 
 | 
  
 | 
                        ele.appendChild(eleItem); 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        guid = e.getAttribute(L"guid"); 
 | 
                        child = e.cloneNode(-1); 
 | 
                        child.selectSingleNode(L"RealEnquiryLineID").settext(guid); 
 | 
                        child.selectSingleNode(L"RelEnquiryLineID").settext(guid); 
 | 
                        ele.appendChild(child); 
 | 
                        //trace(child.xml); 
 | 
                    } 
 | 
                } 
 | 
                //} 
 | 
            } 
 | 
             
 | 
            xstring error = L""; 
 | 
            arg.AddArg(L"content", x.xml()); 
 | 
            if (xurl::get(L"/sale/data/Enquiry/update", arg.GetString(), x) != 1) 
 | 
            { 
 | 
                error = x.text(); 
 | 
                alert(error); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                xstring str = x.documentElement().getAttribute(L"text"); 
 | 
                if (str == L"true") 
 | 
                { 
 | 
                    alert(L"±£´æ³É¹¦!"); 
 | 
                    //dw_goods.ResetUpdateStatus(); 
 | 
                    //dw_base.ResetUpdateStatus(); 
 | 
                    OnRetrieve(dw_base.GetItemString(1, L"EnquiryNo")); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    alert(L"±£´æÊ§°Ü!"); 
 | 
                } 
 | 
            } 
 | 
            if (x)  
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int ImportProductByText(xstring str) 
 | 
        { 
 | 
            xstring CustomerID = dw_base.GetItemString(1, L"CustomerID"); 
 | 
            //trace(L"Customer:"+CustomerID); 
 | 
            xml x; 
 | 
            if (CustomerID == L"") 
 | 
                x = QuoteView::LookupProductsByText(str); 
 | 
            else 
 | 
                x = QuoteView::LookupProductsByText(str, CustomerID); 
 | 
  
 | 
            if (!x) return 1; 
 | 
            KXMLDOMNodeList items = x.selectNodes(L"/Items/Item"); 
 | 
            //trace(L"********" + x.xml() + L"********"); 
 | 
            int len = items.length(); 
 | 
            if (str.find(L" ") < 0 && len > 0) len = 1; 
 | 
            for (int i = 0; i < len; i++) 
 | 
            { 
 | 
                KXMLDOMElement e = items.item(i); 
 | 
                dw_goods.InsertRow(0); 
 | 
                int nRow = dw_goods.GetRowCount(); 
 | 
                SetSeqNo(dw_goods, L"SeqNo", nRow); 
 | 
                dw_goods.SetItemString(nRow, L"UOMCode", L"007"); 
 | 
                dw_goods.SetItemDisplayString(nRow, L"UOMCode", L"PCS"); 
 | 
                dw_goods.SetItemString(nRow, L"KOPCode", L"120"); 
 | 
                dw_goods.SetItemDisplayString(nRow, L"KOPCode", L"CTNS"); 
 | 
                dw_goods.SetItemString(nRow, L"SKUNo", e.getAttribute(L"SKUNo")); 
 | 
                dw_goods.SetItemString(nRow, L"ItemID", e.getAttribute(L"SKUID")); 
 | 
                //dw_goods.SetItemString(nRow,L"ItemName",e.getAttribute(L"EName")); 
 | 
                dw_goods.SetItemString(nRow, L"ItemName", e.getAttribute(L"CName")); 
 | 
                dw_goods.SetItemString(nRow, L"GoodsNo", e.getAttribute(L"GoodsNo")); 
 | 
                dw_goods.SetItemString(nRow, L"CustomerItemNo", e.getAttribute(L"CustomerItemNo")); 
 | 
                dw_goods.SetItemString(nRow, L"Packing", e.getAttribute(L"Packing")); 
 | 
                dw_goods.SetItemString(nRow, L"VolumeDesc", e.getAttribute(L"VolumeDesc")); 
 | 
                dw_goods.SetItemString(nRow, L"PackingRate", e.getAttribute(L"QtyPerPkg")); 
 | 
                dw_goods.SetItemString(nRow, L"InnerQty", e.getAttribute(L"InnerQty")); 
 | 
                dw_goods.SetItemString(nRow, L"VATRefundRate", e.getAttribute(L"VATRefundRate")); 
 | 
                dw_goods.SetItemString(nRow, L"VATRate", e.getAttribute(L"VATRate")); 
 | 
                dw_goods.SetItemString(nRow, L"HSCode", e.getAttribute(L"HSCode")); 
 | 
                //trace(L"+++++L"+e.getAttribute(L"Picture")+L"+++++L"); 
 | 
                dw_goods.SetItemString(nRow, L"Picture", e.getAttribute(L"Picture")); 
 | 
  
 | 
                if (dw_goods.GetItemString(nRow, L"VolumeDesc") != L"" && 
 | 
                    dw_goods.GetItemString(nRow, L"Packages") != L"") 
 | 
                { 
 | 
                    int qty = EvalQtyPerFCL45H(nRow); 
 | 
                    dw_goods.SetItemString(nRow, L"Packages45H", xstring(qty)); 
 | 
                    dw_goods.SetItemDouble(nRow, L"TransportationFee", 5000.0 / qty); 
 | 
                } 
 | 
                /* 
 | 
                dw_goods.SetItemString(nRow,L"NwPerPkg",e.getAttribute(L"NwPerPkg")); 
 | 
                dw_goods.SetItemString(nRow,L"GwPerPkg",e.getAttribute(L"GwPerPkg")); 
 | 
                dw_goods.SetItemString(nRow,L"QTYPerPk",e.getAttribute(L"QTYPerPk")); 
 | 
                dw_goods.SetItemString(nRow,L"InnerQty",e.getAttribute(L"InnerQty")); 
 | 
                */ 
 | 
            } 
 | 
  
 | 
            int row = dw_goods.GetRow(); 
 | 
            if (row >= 1) 
 | 
            { 
 | 
                ximageview im = GetControl(L"im1"); 
 | 
                im.Reset(); 
 | 
                xstring skuno = dw_goods.GetItemString(row, L"SKUNo"); 
 | 
                OnShowImage(skuno, row); 
 | 
                im.Redraw(); 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        double EvalCost(int row) 
 | 
        { 
 | 
            double cost = 0.0; 
 | 
            cost += dw_goods.GetItemDouble(row, L"POPrice"); 
 | 
            cost += dw_goods.GetItemDouble(row, L"PaperCardPrice"); 
 | 
            cost += dw_goods.GetItemDouble(row, L"TransportationFee"); 
 | 
            cost += dw_goods.GetItemDouble(row, L"OtherFee"); 
 | 
            cost += dw_goods.GetItemDouble(row, L"ManagementFee"); 
 | 
            return cost; 
 | 
        } 
 | 
  
 | 
        double EvalRefund(int row) 
 | 
        { 
 | 
            double VATRefundRate = dw_goods.GetItemDouble(row, L"VATRefundRate"); 
 | 
            double VATRefund = dw_goods.GetItemDouble(row, L"POPrice") * VATRefundRate / 117.0; 
 | 
            VATRefund += dw_goods.GetItemDouble(row, L"PaperCardPrice") * 13.0 / 117.0; 
 | 
            return VATRefund; 
 | 
        } 
 | 
  
 | 
        int EvalQtyPerFCL45H(int row) 
 | 
        { 
 | 
            double vol = EvalVol(dw_goods.GetItemString(row, L"VolumeDesc")); 
 | 
            double packages = dw_goods.GetItemDouble(row, L"Packages"); 
 | 
            return xdouble((packages * 67.0 / vol)).toInt(); 
 | 
        } 
 | 
        double EvalUnitProfit(int row) 
 | 
        { 
 | 
            double ExchangeRate = dw_base.GetItemDouble(1, L"ExchangeRate"); 
 | 
            double FobUnitPrice = dw_goods.GetItemDouble(row, L"FobUnitPrice"); 
 | 
            double UnitCost = dw_goods.GetItemDouble(row, L"UnitCost"); 
 | 
            double VATRefund = dw_goods.GetItemDouble(row, L"VATRefund"); 
 | 
            return ExchangeRate * FobUnitPrice - UnitCost + VATRefund; 
 | 
        } 
 | 
  
 | 
        double EvalProfitRate(int row) 
 | 
        { 
 | 
            double UnitProfit = EvalUnitProfit(row); 
 | 
            double UnitCost = dw_goods.GetItemDouble(row, L"UnitCost"); 
 | 
            return UnitProfit / UnitCost; 
 | 
        } 
 | 
        double EvalSaleProfitRate(int row) 
 | 
        { 
 | 
            double UnitProfit = EvalUnitProfit(row); 
 | 
            double FobUnitPrice = dw_goods.GetItemDouble(row, L"FobUnitPrice"); 
 | 
            return UnitProfit / FobUnitPrice; 
 | 
        } 
 | 
  
 | 
        double EvalExchangeCostRate(int row) 
 | 
        { 
 | 
            double FobUnitPrice = dw_goods.GetItemDouble(row, L"FobUnitPrice"); 
 | 
            double UnitCost = dw_goods.GetItemDouble(row, L"UnitCost"); 
 | 
            double VATRefund = dw_goods.GetItemDouble(row, L"VATRefund"); 
 | 
            return (UnitCost - VATRefund) / FobUnitPrice; 
 | 
        } 
 | 
  
 | 
        double EvalTransportationFee(int row) 
 | 
        { 
 | 
            double vol = EvalVol(dw_goods.GetItemString(row, L"VolumeDesc")); 
 | 
            double packages = dw_goods.GetItemDouble(row, L"Packages"); 
 | 
            return 80 * vol / packages; 
 | 
        } 
 | 
  
 | 
        double EvalVol(xstring value) 
 | 
        { 
 | 
            double vol = 1.0; 
 | 
            xstring volstr = value; 
 | 
            int pos1 = volstr.find(L"*"); 
 | 
            int pos2 = volstr.find(L"X"); 
 | 
            int pos3 = volstr.find(L"x"); 
 | 
            int pos = pos1; 
 | 
            //trace(L"pos: "+ pos.toString() + L"pos1: "+ pos1.toString() + L"pos2: "+ pos2.toString() +L"pos3: "+ pos3.toString()); 
 | 
            if (pos2 > 0 && pos == -1) pos = pos2; 
 | 
            if (pos2 >= 0 && pos2 < pos) pos = pos2; 
 | 
            //trace(L"pos: "+ pos.toString() + L"pos1: "+ pos1.toString() + L"pos2: "+ pos2.toString() +L"pos3: "+ pos3.toString()); 
 | 
            if (pos3 > 0 && pos == -1) pos = pos3; 
 | 
            if (pos3 >= 0 && pos3 < pos) pos = pos3; 
 | 
            //trace(L"pos: "+ pos.toString() + L"pos1: "+ pos1.toString() + L"pos2: "+ pos2.toString() +L"pos3: "+ pos3.toString()); 
 | 
            while (pos >= 0) 
 | 
            { 
 | 
                xstring tm = volstr.left(pos); 
 | 
                volstr = volstr.mid(pos + 1, 9999); 
 | 
                vol *= tm.toDouble(); 
 | 
  
 | 
                pos1 = volstr.find(L"*"); 
 | 
                pos2 = volstr.find(L"X"); 
 | 
                pos3 = volstr.find(L"x"); 
 | 
                pos = pos1; 
 | 
                if (pos2 > 0 && pos == -1) pos = pos2; 
 | 
                if (pos2 >= 0 && pos2 < pos) pos = pos2; 
 | 
                if (pos3 > 0 && pos == -1) pos = pos3; 
 | 
                if (pos3 >= 0 && pos3 < pos) pos = pos3; 
 | 
            } 
 | 
            if (volstr != L"") vol *= volstr.toDouble(); 
 | 
            return vol / 1000000.0; 
 | 
        } 
 | 
  
 | 
        int OnShare() 
 | 
        { 
 | 
            xaserverarg arg; 
 | 
             
 | 
            arg.AddArg(L"EntityID", dw_base.GetGuid(1)); 
 | 
            //arg.AddArg(L"EntityName", GetEntityName(0)); 
 | 
            arg.AddArg(L"EntityName", L"Enquiry3"); 
 | 
  
 | 
            OpenWindow(L"dev:xpage[UserGroupShare.vx]",arg ); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnItemChanged(TEvent* evt, int p) 
 | 
        { 
 | 
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; 
 | 
            xstring colname = hdr.colname; 
 | 
            xstring value = hdr.data; 
 | 
            int row = hdr.row; 
 | 
  
 | 
            double VATRefund = 0.0; 
 | 
            double VATRefundRate = 0.0; 
 | 
            if ((colname == L"GoodsNo" || colname == L"CustomerItemNo") && value != L"") 
 | 
            { 
 | 
                if (colname == L"CustomerItemNo") 
 | 
                { 
 | 
                    if (dw_goods.GetItemString(row, L"GoodsNo") != L"") return 1; 
 | 
                } 
 | 
                xml x; 
 | 
                xstring CustomerID = dw_base.GetItemString(1, L"CustomerID"); 
 | 
                xstring sval = value; 
 | 
                if (colname == L"GoodsNo") 
 | 
                { 
 | 
                    if (CustomerID != L"") 
 | 
                        sval = L"gs:" + value; 
 | 
                    else 
 | 
                        sval = value; 
 | 
                } 
 | 
                if (colname == L"CustomerItemNo") 
 | 
                    /*sval=L"cs:"+value; 
 | 
                if(CustomerID !=L"") 
 | 
                    x = QuoteView::LookupProductsByText(sval,CustomerID ); 
 | 
                else 
 | 
                    x = QuoteView::LookupProductsByText(sval);*/ 
 | 
                    sval = value; 
 | 
                x = ViewObject::RetrieveData(L"/sale/data/Quote/LookGDN", L"str", sval); 
 | 
                if (!x) return 1; 
 | 
                KXMLDOMNodeList items = x.selectNodes(L"/Items/Item"); 
 | 
                trace(x.xml()); 
 | 
                int len = items.length(); 
 | 
                if (len == 0) 
 | 
                { 
 | 
                    if (colname == L"GoodsNo") 
 | 
                    { 
 | 
                        alert(L"ûÓд˹«Ë¾ÐͺÅ!"); 
 | 
                        dw_goods.SetItemString(dw_goods.GetRow(), L"GoodsNo", L""); 
 | 
                    } 
 | 
                    return 1; 
 | 
                } 
 | 
                if (len >= 1) 
 | 
                { 
 | 
                    KXMLDOMElement e = items.item(0); 
 | 
                    int nRow = dw_goods.GetRow(); 
 | 
                    dw_goods.SetItemString(nRow, L"SKUNo", e.getAttribute(L"SKUNo")); 
 | 
                    dw_goods.SetItemString(nRow, L"ItemID", e.getAttribute(L"SKUID")); 
 | 
                    dw_goods.SetItemString(nRow, L"ItemName", e.getAttribute(L"CName")); 
 | 
                    if (colname == L"CustomerItemNo")dw_goods.SetItemString(nRow, L"GoodsNo", e.getAttribute(L"GoodsNo")); 
 | 
                    if (colname == L"GoodsNo")dw_goods.SetItemString(nRow, L"CustomerItemNo", e.getAttribute(L"CustomerItemNo")); 
 | 
                    dw_goods.SetItemString(nRow, L"Packing", e.getAttribute(L"Packing")); 
 | 
                    dw_goods.SetItemString(nRow, L"InnerQty", e.getAttribute(L"InnerQty")); 
 | 
                    dw_goods.SetItemString(nRow, L"PackingRate", e.getAttribute(L"PackingRate")); 
 | 
                    dw_goods.SetItemString(nRow, L"VolumeDesc", e.getAttribute(L"VolumeDesc")); 
 | 
                    dw_goods.SetItemString(nRow, L"Packages", e.getAttribute(L"QTYPerPkg")); 
 | 
                    dw_goods.SetItemString(nRow, L"SupplierID", e.getAttribute(L"SupplierID")); 
 | 
                    dw_goods.SetItemDisplayString(nRow, L"SupplierID", e.getAttribute(L"SupplierID1")); 
 | 
                    dw_goods.SetItemString(nRow, L"POCreatorID", e.getAttribute(L"POCreatorID")); 
 | 
                    dw_goods.SetItemDisplayString(nRow, L"POCreatorID", e.getAttribute(L"POCreatorID1")); 
 | 
                    dw_goods.SetItemString(nRow, L"Picture", e.getAttribute(L"Picture")); 
 | 
  
 | 
                    if (dw_goods.GetItemString(nRow, L"VolumeDesc") != L"" && 
 | 
                        dw_goods.GetItemString(nRow, L"Packages") != L"") 
 | 
                    { 
 | 
                        int qty1 = EvalQtyPerFCL45H(nRow); 
 | 
                        dw_goods.SetItemString(nRow, L"Packages45H", xstring(qty1)); 
 | 
                        dw_goods.SetItemDouble(nRow, L"TransportationFee", 5000.0 / qty1); 
 | 
                    } 
 | 
                    dw_goods.Redraw(); 
 | 
                } 
 | 
            } 
 | 
  
 | 
            else if (colname == L"POPrice" || colname == L"PaperCardPrice" || colname == L"TransportationFee" || 
 | 
                colname == L"OtherFee" || colname == L"ManagementFee") 
 | 
            { 
 | 
                dw_goods.SetItemDouble(row, L"UnitCost", EvalCost(row)); 
 | 
  
 | 
                if ((colname == L"POPrice" || colname == L"PaperCardPrice") && dw_goods.GetItemString(row, L"VATRefundRate") != L"") 
 | 
                { 
 | 
                    dw_goods.SetItemDouble(row, L"VATRefund", EvalRefund(row)); 
 | 
                } 
 | 
            } 
 | 
            else if (colname == L"VATRefundRate" && value != L"") 
 | 
            { 
 | 
                dw_goods.SetItemDouble(row, L"VATRefund", EvalRefund(row)); 
 | 
            } 
 | 
            else if (colname == L"VolumeDesc" || colname == L"Packages") 
 | 
            { 
 | 
                if (dw_goods.GetItemString(row, L"VolumeDesc") != L"" && 
 | 
                    dw_goods.GetItemString(row, L"Packages") != L"") 
 | 
                { 
 | 
                    int qty = EvalQtyPerFCL45H(row); 
 | 
                    dw_goods.SetItemString(row, L"Packages45H", xstring(qty)); 
 | 
                    dw_goods.SetItemDouble(row, L"TransportationFee", EvalTransportationFee(row)); 
 | 
                    dw_goods.SetItemDouble(row, L"UnitCost", EvalCost(row)); 
 | 
                } 
 | 
            } 
 | 
            else if (colname == L"FobUnitPrice") 
 | 
            { 
 | 
                xstring CurrencyCode = dw_base.GetItemString(1, L"CurrencyCode"); 
 | 
                xstring expRate = L""; 
 | 
                xstring exchRate = L""; 
 | 
  
 | 
                xml x0 = ViewObject::RetrieveData(L"/sale/data/GDN3/profit/param", L"item", L"dcomp_amt"); 
 | 
                if (x0.selectSingleNode(L"root/item/@value")) 
 | 
                    expRate = x0.selectSingleNode(L"root/item/@value").text(); 
 | 
                x0 = ViewObject::RetrieveData(L"/sale/data/GDN3/profit/param", L"item", L"cryrate"); 
 | 
                if (x0.selectSingleNode(L"root/item/@value")) 
 | 
                    exchRate = x0.selectSingleNode(L"root/item/@value").text(); 
 | 
                double r1 = exchRate.toDouble(); 
 | 
                double r2 = expRate.toDouble(); 
 | 
                double val = value.toDouble(); 
 | 
                if (CurrencyCode == L"RMB" || CurrencyCode == L"CNY") 
 | 
                { 
 | 
                    if (exchRate != L"") 
 | 
                    { 
 | 
                        double ManagementFee = (val / r1) * r2; 
 | 
                        double OtherFee = (val / r1) * 0.2; 
 | 
                        dw_goods.SetItemDouble(row, L"ManagementFee", ManagementFee); 
 | 
                        dw_goods.SetItemDouble(row, L"OtherFee", OtherFee); 
 | 
                    } 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    dw_goods.SetItemDouble(row, L"ManagementFee", val * 0.15); 
 | 
                    dw_goods.SetItemDouble(row, L"OtherFee", val * 0.2); 
 | 
                } 
 | 
                dw_goods.SetItemDouble(row, L"UnitCost", EvalCost(row)); 
 | 
            } 
 | 
            if (dw_goods.GetItemString(row, L"FobUnitPrice") != L"" && 
 | 
                dw_goods.GetItemString(row, L"POPrice") != L"" && 
 | 
                dw_goods.GetItemString(row, L"VolumeDesc") != L"" && 
 | 
                dw_goods.GetItemString(row, L"Packages") != L"") 
 | 
            { 
 | 
                dw_goods.SetItemDouble(row, L"UnitProfit", EvalUnitProfit(row)); 
 | 
                dw_goods.SetItemDouble(row, L"ProfitRate", EvalProfitRate(row)); 
 | 
                dw_goods.SetItemDouble(row, L"SaleProfitRate", EvalSaleProfitRate(row)); 
 | 
                dw_goods.SetItemDouble(row, L"ExchangeCostRate", EvalExchangeCostRate(row)); 
 | 
            } 
 | 
  
 | 
            dw_goods.SetItemString(row, L"ModifyDate", publiccode::GetCurrentDate()); 
 | 
            dw_goods.Redraw(); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnBaseItemChanged(TEvent* evt, int p) 
 | 
        { 
 | 
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; 
 | 
            xstring colname = hdr.colname; 
 | 
            xstring value = hdr.data; 
 | 
  
 | 
            xstring dwname = L"dw_base"; 
 | 
            if (value != L"") 
 | 
            { 
 | 
                //trace(L"\r\nsupplierid:"+value); 
 | 
                KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); 
 | 
                ViewObject::TransData(nlist, dw_base, hdr.row, colname, value); 
 | 
            } 
 | 
            if (colname == L"ExchangeRate") 
 | 
            { 
 | 
                if (dw_goods.GetRowCount() > 0) 
 | 
                { 
 | 
                    for (int i = 1; i <= dw_goods.GetRowCount(); i++) 
 | 
                    { 
 | 
                        dw_goods.SetItemDouble(i, L"UnitProfit", EvalUnitProfit(i)); 
 | 
                        dw_goods.SetItemDouble(i, L"ProfitRate", EvalProfitRate(i)); 
 | 
                        dw_goods.SetItemDouble(i, L"SaleProfitRate", EvalSaleProfitRate(i)); 
 | 
                        dw_goods.SetItemDouble(i, L"ExchangeCostRate", EvalExchangeCostRate(i)); 
 | 
                    } 
 | 
                } 
 | 
                dw_goods.Redraw(); 
 | 
            } 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnPriceEval() 
 | 
        { 
 | 
            OpenWindow(L"dev:xpage[eval.Enquiry3.vx]", (LPARAM)&dw_goods); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
  
 | 
        int OnRowChanged(TEvent* evt, int p) 
 | 
        { 
 | 
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; 
 | 
            int row = hdr.row; 
 | 
  
 | 
            ximageview im = GetControl(L"im1"); 
 | 
            im.Reset(); 
 | 
            xstring skuno = dw_goods.GetItemString(row, L"SKUNo"); 
 | 
            OnShowImage(skuno, row); 
 | 
            im.Redraw(); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnShowImage() 
 | 
        { 
 | 
            int rowCount = dw_goods.GetRowCount(); 
 | 
            xstring skunos; 
 | 
            for (int i = 1; i <= rowCount; i++) 
 | 
            { 
 | 
                xstring skuno = dw_goods.GetItemString(i, L"SKUNo"); 
 | 
                if (i == 1) 
 | 
                    skunos = skuno; 
 | 
                else 
 | 
                    skunos += L"," + skuno; 
 | 
            } 
 | 
  
 | 
            xaserverarg arg_pic; 
 | 
             
 | 
            arg_pic.AddArg(L"SKUNoList", skunos); 
 | 
            arg_pic.SetParam(L"ParentWindow", GetHWND()); 
 | 
            arg_pic.AddArg(L"OpenFlag", L"1"); 
 | 
            OpenWindow(L"dev:xpage[SKU.PictureView.Product3.vx]",arg_pic); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnShowImage(xstring skuno, int row) 
 | 
        { 
 | 
            ximageview im = GetControl(L"im1"); 
 | 
  
 | 
            xml xp ; 
 | 
             
 | 
            xaserverarg arg_pic; 
 | 
             
 | 
            arg_pic.AddArg(L"SKUNo", skuno); 
 | 
  
 | 
            xstring res = L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; 
 | 
            xstring customerID = dw_base.GetItemString(1, L"CustomerID"); 
 | 
            xstring customerItemNo = dw_goods.GetItemString(row, L"CustomerItemNo"); 
 | 
            KXMLDOMNodeList  nlistp; 
 | 
            int lenp = 0; 
 | 
            int ip = 0; 
 | 
            KXMLDOMElement xitem ; 
 | 
            xstring picname = L""; 
 | 
            xstring goodno = L""; 
 | 
            if (customerItemNo != L"") 
 | 
            { 
 | 
                //trace(customerID+L":"+customerItemNo); 
 | 
                res = L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; 
 | 
                arg_pic.AddArg(L"CustomerID", customerID); 
 | 
                arg_pic.AddArg(L"CustomerItemNo", customerItemNo); 
 | 
            } 
 | 
  
 | 
            bool hasIamge = false; 
 | 
            if (xurl::get(res, arg_pic.GetString(), xp) != 1) 
 | 
            { 
 | 
                //trace(xp.xml()); 
 | 
                return 1; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                //trace(xp.xml()); 
 | 
                 nlistp = xp.selectNodes(L"ImageList/image"); 
 | 
                 lenp = nlistp.length(); 
 | 
                for (ip = 0; ip < lenp; ip++) 
 | 
                { 
 | 
                    hasIamge = true; 
 | 
                    xitem = nlistp.item(ip); 
 | 
                    picname = xitem.selectSingleNode(L"PicPath").text(); 
 | 
                    goodno = xitem.selectSingleNode(L"GoodsNo").text(); 
 | 
                    if (picname == L"/business/products/Thumbs//") 
 | 
                        picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; 
 | 
                    im.AddImages(picname, goodno); 
 | 
                } 
 | 
            } 
 | 
            if (!hasIamge) 
 | 
            { 
 | 
                res = L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; 
 | 
                if (xurl::get(res, arg_pic.GetString(), xp) != 1) 
 | 
                { 
 | 
                    //trace(xp.xml()); 
 | 
                    return 1; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    nlistp = xp.selectNodes(L"ImageList/image"); 
 | 
                    lenp = nlistp.length(); 
 | 
                    for (ip = 0; ip < lenp; ip++) 
 | 
                    { 
 | 
                        xitem = nlistp.item(ip); 
 | 
                        picname = xitem.selectSingleNode(L"PicPath").text(); 
 | 
                        goodno = xitem.selectSingleNode(L"GoodsNo").text(); 
 | 
                        if (picname == L"/business/products/Thumbs//") 
 | 
                            picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; 
 | 
                        im.AddImages(picname, goodno); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
  
 | 
        int OnPrint() 
 | 
        { 
 | 
            if (dw_base.GetItemString(1, L"EnquiryNo") == L"") 
 | 
            { 
 | 
                alert(L"ÇëÏȱ£´æÊý¾Ý!"); 
 | 
                return 1; 
 | 
            } 
 | 
            xaserverarg& arg = *new xaserverarg; 
 | 
             
 | 
            arg.AddArg(L"EntityName", L"Enquiry", L""); 
 | 
            arg.AddArg(L"EntityID", dw_base.GetItemString(1, L"EnquiryID"), L""); 
 | 
            arg.AddArg(L"EntityNo", dw_base.GetItemString(1, L"EnquiryNo"), L""); 
 | 
             
 | 
            openUrl(L"/sale/view/view.base/xpage/Template/PrintViewEx", &arg); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int ReSeqNo(xstring SeqNoColumn) 
 | 
        { 
 | 
            for (int i = 1; i <= dw_goods.GetRowCount(); i++) 
 | 
            { 
 | 
                dw_goods.SetItemString(i, SeqNoColumn, xstring((i * 10))); 
 | 
            } 
 | 
            dw_goods.Redraw(); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int OnAskGoodsNo() 
 | 
        { 
 | 
            int rowCount = dw_goods.GetRowCount(); 
 | 
            xstring skunos = L""; 
 | 
  
 | 
            for (int i = 1; i <= rowCount; i++) 
 | 
            { 
 | 
                if (dw_goods.GetItemString(i, L"SKUNo") != L"" && dw_goods.GetItemString(i, L"GoodsNo") == L"" && dw_goods.GetItemString(i, L"Submitter") == L"") 
 | 
                { 
 | 
                    if (skunos == L"") 
 | 
                        skunos = dw_goods.GetItemString(i, L"SKUNo"); 
 | 
                    else 
 | 
                        skunos += L"," + dw_goods.GetItemString(i, L"SKUNo"); 
 | 
                } 
 | 
            } 
 | 
            xaserverarg arg ; 
 | 
            arg.AddArg(L"SKUNoList", skunos); 
 | 
            OpenWindow(L"dev:xpage[Product.FetchNo.vx]",arg ); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        //ÃüÁî·¢²¼º¯Êý 
 | 
        int OnCmdDispatch(xstring comdid) 
 | 
        { 
 | 
            if (comdid == L"xmNewProduct") 
 | 
            { 
 | 
                //xaserverarg arg; 
 | 
                //     
 | 
                openUrl(L"/sale/view/Enquiry3/xpage/quick/newestproduct"); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmPrint") return OnPrint(); 
 | 
            else if (comdid == L"xmImage") 
 | 
                return OnShowImage(); 
 | 
            else if (comdid == L"xmShare") 
 | 
                return OnShare(); 
 | 
            else if (comdid == L"xmImportProduct") 
 | 
            { 
 | 
                xstring str = xcontrol(GetControl(L"goods")).GetText(); 
 | 
                str = str.trim(); 
 | 
                if (str == L"") 
 | 
                { 
 | 
                    xaserverarg arg1; 
 | 
                     
 | 
                    arg1.SetParam(L"HWND", GetHWND()); 
 | 
                    arg1.AddArg(L"CustomerID", dw_base.GetItemString(1, L"CustomerID")); 
 | 
                    OpenWindow(L"dev:xpage[Entity.Product.Select.vx]",arg1); 
 | 
                    int row = dw_goods.GetRow(); 
 | 
                    if (row >= 1) 
 | 
                    { 
 | 
                        ximageview im = GetControl(L"im1"); 
 | 
                        im.Reset(); 
 | 
                        xstring skuno = dw_goods.GetItemString(row, L"SKUNo"); 
 | 
                        OnShowImage(skuno, row); 
 | 
                        im.Redraw(); 
 | 
                    } 
 | 
                } 
 | 
                else 
 | 
                    ImportProductByText(str); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmSave") 
 | 
            { 
 | 
                OnSave(); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmPriceEval") 
 | 
                return OnPriceEval(); 
 | 
            else if (comdid == L"xmOpen") 
 | 
            { 
 | 
                xaserverarg arg; 
 | 
                 
 | 
                OpenWindow(L"dev:xpage[SOEnquiry.list.vx]",arg); 
 | 
                if (arg.GetArgString(L"id") != L"") return OnRetrieve(arg.GetArgString(L"id")); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmDeleteRow") 
 | 
            { 
 | 
                if (dw_goods.GetItemString(dw_goods.GetRow(), L"QuoteNo") != L"") 
 | 
                { 
 | 
                    alert(L"²úÆ·Òѱ»Ó¦Ó㬲»ÄÜɾ³ý"); 
 | 
                    return 1; 
 | 
                } 
 | 
                dw_goods.DeleteRow(0); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmBOMSchema") 
 | 
            { 
 | 
                OpenWindow(L"dev:xpage[ProductSchema.vx]", 0); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmProductDesc") 
 | 
            { 
 | 
                xaserverarg arg2=GetArg(); 
 | 
                 
 | 
                int row2 = dw_goods.GetRow(); 
 | 
                if (row2 < 1) return 0; 
 | 
                xstring str2 = dw_goods.GetItemString(row2, L"ProductDesc"); 
 | 
                arg2.AddArg(L"value", str2); 
 | 
                OpenWindow(L"dev:xpage[memo.edit.new.vx]", arg2); 
 | 
  
 | 
                if (arg2.GetArgString(L"comdid") == L"xmOK") 
 | 
                { 
 | 
                    str2 = arg2.GetArgString(L"value"); 
 | 
                    dw_goods.AcceptText(); 
 | 
                    dw_goods.SetItemString(row2, L"ProductDesc", str2); 
 | 
                    dw_goods.Redraw(); 
 | 
                } 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmReSeqNo") 
 | 
            { 
 | 
                if (MessageBox(GetHWND(), L"ÊÇ·ñÖØÖÃÐòºÅ!", L"Ìáʾ1", 1) == 2) 
 | 
                    return 1; 
 | 
                return ReSeqNo(L"SeqNo"); 
 | 
            } 
 | 
            else if (comdid == L"xmAddRow") 
 | 
            { 
 | 
                int nRow = dw_goods.InsertRow(0); 
 | 
                SetSeqNo(dw_goods, L"SeqNo", nRow); 
 | 
                dw_goods.SetItemString(nRow, L"UOMCode", L"007"); 
 | 
                dw_goods.SetItemDisplayString(nRow, L"UOMCode", L"PCS"); 
 | 
                dw_goods.SetItemString(nRow, L"KOPCode", L"120"); 
 | 
                dw_goods.SetItemDisplayString(nRow, L"KOPCode", L"CTNS"); 
 | 
  
 | 
                xaserverarg arg3; 
 | 
                 
 | 
                int row3 = dw_goods.GetRow(); 
 | 
                if (row3 < 1) return 0; 
 | 
                dw_goods.SetItemString(nRow, L"SKUNo", dw_goods.GetItemString(row3, L"SKUNo")); 
 | 
                dw_goods.SetItemString(nRow, L"ItemID", dw_goods.GetItemString(row3, L"ItemID")); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmClose") 
 | 
            { 
 | 
                CloseWindow(); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid.find(L"ImportXml:", 0) == 0) 
 | 
            { 
 | 
                xstring strImport = comdid.mid(((xstring)L"ImportXml:").length(), 9999); 
 | 
                 
 | 
                ImportProductByText(strImport); 
 | 
                return 1; 
 | 
            } 
 | 
            else if (comdid == L"xmAskGoodsNo") 
 | 
            { 
 | 
                return OnAskGoodsNo(); 
 | 
            } 
 | 
            return 0; 
 | 
        } 
 | 
  
 | 
        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 = *new xaserverarg; 
 | 
             
 | 
            //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 OnXCommand(TEvent* evt, LPARAM param) 
 | 
        { 
 | 
            return OnCmdDispatch(evt->xcommand.pStrID); 
 | 
        } 
 | 
  
 | 
        int OnItemAskStyle(TEvent* evt, int p) 
 | 
        { 
 | 
            DWASKSTYLENMHDR& hdr = *(DWASKSTYLENMHDR*)evt->notify.pnmh; 
 | 
            int DMS_CSSSTYLE = 0x8; 
 | 
            int row = hdr.row; 
 | 
            int col = hdr.col; 
 | 
            xstring colname = hdr.colname; 
 | 
  
 | 
            int rows = dw_goods.GetRowCount(); 
 | 
            if (row < 1 || row > rows) 
 | 
            { 
 | 
                return 1; 
 | 
            } 
 | 
            if (colname == L"POPrice") 
 | 
            { 
 | 
                if (dw_goods.GetItemTipString(row, colname) != L"") 
 | 
                { 
 | 
                    hdr.mask = DMS_CSSSTYLE; 
 | 
                    hdr.pCssStyle = (LPTSTR)L"color:#cc0000"; 
 | 
                } 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
        int OnAttachEvent() 
 | 
        { 
 | 
            //°ó¶¨¹¤¾ßÌõµã»÷ʼþ 
 | 
            AttachEvent(L"WM_XCOMMAND", (FEvent)&EnquiryMaintView::OnXCommand); 
 | 
            //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ 
 | 
            AttachEvent(L"WM_SETFOCUS", (FEvent)&EnquiryMaintView::OnSetFocus); 
 | 
            AttachEvent(L"dw_goods", L"DWV_ITEMCHANGED", (FEvent)&EnquiryMaintView::OnItemChanged); 
 | 
            AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&EnquiryMaintView::OnBaseItemChanged); 
 | 
            AttachEvent(L"im1", L"IMG_LDBCLICK", (FEvent)&EnquiryMaintView::OnImgDBClicked); 
 | 
            AttachEvent(L"dw_goods", L"DWV_ROWFOCUSCHANGED", (FEvent)&EnquiryMaintView::OnRowChanged); 
 | 
            AttachCloseWindow(); 
 | 
            AttachEvent(L"dw_goods", L"DWV_ASKSTYLE", (FEvent)&EnquiryMaintView::OnItemAskStyle); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int  OnRetrieve(xstring id) 
 | 
        { 
 | 
            xml x ; 
 | 
             
 | 
            xaserverarg arg; 
 | 
             
 | 
            arg.AddArg(L"id", id); 
 | 
            if (getUrl(L"/sale/data/Enquiry/maint", arg.GetString(), x) != 1) 
 | 
            { 
 | 
                alert(x.text()); 
 | 
                return -1; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                //alert(x.xml()); 
 | 
                dw_base.Retrieve(x); 
 | 
                dw_goods.Retrieve(x); 
 | 
                dw_base.Redraw(); 
 | 
                dw_goods.Redraw(); 
 | 
  
 | 
                if (dw_goods.GetRowCount() > 0) 
 | 
                { 
 | 
                    ximageview im = GetControl(L"im1"); 
 | 
                    im.Reset(); 
 | 
                    xstring skuno = dw_goods.GetItemString(1, L"SKUNo"); 
 | 
                    OnShowImage(skuno, 1); 
 | 
                    im.Redraw(); 
 | 
                } 
 | 
  
 | 
                //x.LoadXml(L"<Enquiry/>"); 
 | 
                //dw_base.RetrieveDiff(x); 
 | 
                //dw_goods.RetrieveDiff(x); 
 | 
  
 | 
                //dw_goods.SetItemTipString(1,L"POPrice",L"21.4 2018/07/08\r\n23.4 2018/07/12"); 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int  Oncopy(xstring EnquiryID, xstring ItemID) 
 | 
        { 
 | 
            xaserverarg arg; 
 | 
             
 | 
  
 | 
  
 | 
            dw_base.SetItemString(1, L"ValidDay", arg.GetArgString(L"ValidDay")); 
 | 
            dw_base.SetItemString(1, L"SONo", arg.GetArgString(L"SONo")); 
 | 
            dw_base.SetItemString(1, L"Remark", arg.GetArgString(L"Remark")); 
 | 
            dw_base.SetItemString(1, L"Source", arg.GetArgString(L"Source")); 
 | 
            dw_base.SetItemString(1, L"PayTerm", arg.GetArgString(L"PayTerm")); 
 | 
            dw_base.SetItemString(1, L"SupplierID", arg.GetArgString(L"SupplierID")); 
 | 
            dw_base.SetItemDisplayString(1, L"SupplierID", arg.GetArgString(L"SupplierID/@_displaystring")); 
 | 
            dw_base.SetItemString(1, L"CustomerContactName", arg.GetArgString(L"CustomerContactName")); 
 | 
            dw_base.SetItemString(1, L"ContactTel", arg.GetArgString(L"ContactTel")); 
 | 
  
 | 
            xstring sdate = publiccode::GetCurrentDate(); 
 | 
            dw_base.SetItemString(1, L"EnquiryDate", sdate); 
 | 
            xstring suserid = publiccode::GetUser().id; 
 | 
            xstring susername = publiccode::GetUser().name; 
 | 
            dw_base.SetItemString(1, L"SalespersonID", suserid); 
 | 
            dw_base.SetItemDisplayString(1, L"SalespersonID", susername); 
 | 
            dw_base.SetItemString(1, L"CompanyID", L"E9E3C542-062C-4957-B8F4-9B92C3E351FC"); 
 | 
            dw_base.SetItemDisplayString(1, L"CompanyID", L"Äþ²¨¼Ò¶û¼Ñ½ø³ö¿ÚÓÐÏÞ¹«Ë¾"); 
 | 
  
 | 
            //xml x = QuoteView::Oncopy(EnquiryID,ItemID); 
 | 
  
 | 
            xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/Oncopy", L"EnquiryID", EnquiryID, L"ItemID", ItemID); 
 | 
            if (!x) return 1; 
 | 
            //alert(x.xml()); 
 | 
            KXMLDOMNodeList items = x.selectNodes(L"/Enquiry/Item"); 
 | 
            int len = items.length(); 
 | 
            for (int i = 0; i < len; i++) 
 | 
            { 
 | 
  
 | 
                KXMLDOMElement e = items.item(i); 
 | 
                dw_goods.InsertRow(i); 
 | 
  
 | 
                int nRow = dw_goods.GetRow(); 
 | 
  
 | 
                SetSeqNo(dw_goods, L"SeqNo", nRow); 
 | 
                dw_goods.SetItemString(nRow, L"UOMCode", L"007"); 
 | 
                dw_goods.SetItemDisplayString(nRow, L"UOMCode", L"PCS"); 
 | 
                dw_goods.SetItemString(nRow, L"KOPCode", L"120"); 
 | 
                dw_goods.SetItemDisplayString(nRow, L"KOPCode", L"CTNS"); 
 | 
                if (e.selectSingleNode(L"ItemName"))dw_goods.SetItemString(nRow, L"ItemName", e.selectSingleNode(L"ItemName").text()); 
 | 
                if (e.selectSingleNode(L"GoodsNo"))dw_goods.SetItemString(nRow, L"GoodsNo", e.selectSingleNode(L"GoodsNo").text()); 
 | 
                if (e.selectSingleNode(L"SKUNo"))dw_goods.SetItemString(nRow, L"SKUNo", e.selectSingleNode(L"SKUNo").text()); 
 | 
                if (e.selectSingleNode(L"ItemMiniQty"))dw_goods.SetItemString(nRow, L"ItemMiniQty", e.selectSingleNode(L"ItemMiniQty").text()); 
 | 
                if (e.selectSingleNode(L"Picture"))dw_goods.SetItemString(nRow, L"Picture", e.selectSingleNode(L"Picture").text()); 
 | 
                if (e.selectSingleNode(L"ItemID"))dw_goods.SetItemString(nRow, L"ItemID", e.selectSingleNode(L"ItemID").text()); 
 | 
                if (e.selectSingleNode(L"ProductDesc"))dw_goods.SetItemString(nRow, L"ProductDesc", e.selectSingleNode(L"ProductDesc").text()); 
 | 
                if (e.selectSingleNode(L"Packing"))dw_goods.SetItemString(nRow, L"Packing", e.selectSingleNode(L"Packing").text()); 
 | 
                if (e.selectSingleNode(L"POPrice"))dw_goods.SetItemString(nRow, L"POPrice", e.selectSingleNode(L"POPrice").text()); 
 | 
                if (e.selectSingleNode(L"PriceType"))dw_goods.SetItemString(nRow, L"PriceType", e.selectSingleNode(L"PriceType").text()); 
 | 
                if (e.selectSingleNode(L"InnerQty"))dw_goods.SetItemString(nRow, L"InnerQty", e.selectSingleNode(L"InnerQty").text()); 
 | 
                if (e.selectSingleNode(L"PackingRate"))dw_goods.SetItemString(nRow, L"PackingRate", e.selectSingleNode(L"PackingRate").text()); 
 | 
                if (e.selectSingleNode(L"VolumeDesc"))dw_goods.SetItemString(nRow, L"VolumeDesc", e.selectSingleNode(L"VolumeDesc").text()); 
 | 
                if (e.selectSingleNode(L"SampleFee"))dw_goods.SetItemString(nRow, L"SampleFee", e.selectSingleNode(L"SampleFee").text()); 
 | 
                if (e.selectSingleNode(L"TestFee"))dw_goods.SetItemString(nRow, L"TestFee", e.selectSingleNode(L"TestFee").text()); 
 | 
                if (e.selectSingleNode(L"ModelFee"))dw_goods.SetItemString(nRow, L"ModelFee", e.selectSingleNode(L"ModelFee").text()); 
 | 
                if (e.selectSingleNode(L"BOMPartNo"))dw_goods.SetItemString(nRow, L"BOMPartNo", e.selectSingleNode(L"BOMPartNo").text()); 
 | 
                if (e.selectSingleNode(L"ModifyDate"))dw_goods.SetItemString(nRow, L"ModifyDate", e.selectSingleNode(L"ModifyDate").text()); 
 | 
  
 | 
                if (e.selectSingleNode(L"EnquiryDate"))dw_goods.SetItemString(nRow, L"EnquiryDate", e.selectSingleNode(L"EnquiryDate").text()); 
 | 
                if (e.selectSingleNode(L"EnquiryPriceListID"))dw_goods.SetItemString(nRow, L"EnquiryPriceListID", e.selectSingleNode(L"EnquiryPriceListID").text()); 
 | 
                if (e.selectSingleNode(L"RelEnquiryLineID"))dw_goods.SetItemString(nRow, L"RelEnquiryLineID", e.selectSingleNode(L"RelEnquiryLineID").text()); 
 | 
                if (e.selectSingleNode(L"PirorEnquiryLineID"))dw_goods.SetItemString(nRow, L"PirorEnquiryLineID", e.selectSingleNode(L"PirorEnquiryLineID").text()); 
 | 
                if (e.selectSingleNode(L"RealEnquiryLineID"))dw_goods.SetItemString(nRow, L"RealEnquiryLineID", e.selectSingleNode(L"RealEnquiryLineID").text()); 
 | 
                if (e.selectSingleNode(L"category"))dw_goods.SetItemString(nRow, L"category", e.selectSingleNode(L"category").text()); 
 | 
  
 | 
  
 | 
                if (dw_goods.GetItemString(nRow, L"VolumeDesc") != L"" && 
 | 
                    dw_goods.GetItemString(nRow, L"Packages") != L"") 
 | 
                { 
 | 
                    int qty = EvalQtyPerFCL45H(nRow); 
 | 
                    dw_goods.SetItemString(nRow, L"Packages45H", xstring(qty)); 
 | 
                    dw_goods.SetItemDouble(nRow, L"TransportationFee", 5000.0 / qty); 
 | 
                } 
 | 
  
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
        int OnInit() 
 | 
        { 
 | 
            //¹«Ë¾Ì§Í·¡¢±¨¼ÛÈË¡¢±¨¼ÛÈÕÆÚ 
 | 
            xstring sdate = publiccode::GetCurrentDate(); 
 | 
            dw_base.SetItemString(1, L"EnquiryDate", sdate); 
 | 
            xstring suserid = publiccode::GetUser().id; 
 | 
            xstring susername = publiccode::GetUser().name; 
 | 
            dw_base.SetItemString(1, L"SalespersonID", suserid); 
 | 
            dw_base.SetItemDisplayString(1, L"SalespersonID", susername); 
 | 
            dw_base.SetItemString(1, L"CompanyID", L"E9E3C542-062C-4957-B8F4-9B92C3E351FC"); 
 | 
            dw_base.SetItemDisplayString(1, L"CompanyID", L"Äþ²¨¼Ò¶û¼Ñ½ø³ö¿ÚÓÐÏÞ¹«Ë¾"); 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        /* 
 | 
            pricebill:  one of enquiry pricebill quote pricebill 
 | 
        */ 
 | 
        int RetrieveItemList(xstring items, xstring pricebill = L"") 
 | 
        { 
 | 
            xml x ; 
 | 
             
 | 
            xaserverarg arg; 
 | 
             
 | 
            arg.AddArg(L"ItemList", items); 
 | 
            //alert(items); 
 | 
            xstring dataurl = L"/sale/data/Enquiry/maint/items"; 
 | 
            if (pricebill == L"pricebill") dataurl = L"/sale/data/Enquiry/maint/pricelist/items"; 
 | 
            if (pricebill == L"quote") dataurl = L"/sale/data/Enquiry/FetchItemListByQuoteItemID"; 
 | 
            if (getUrl(dataurl, arg.GetString(), x) != 1) 
 | 
            { 
 | 
                alert(x.text()); 
 | 
                return -1; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
  
 | 
                //trace(L"*****" + x.xml() + L"*****"); 
 | 
                dw_goods.Retrieve(x); 
 | 
                dw_goods.Redraw(); 
 | 
                ReSeqNo(L"SeqNo"); 
 | 
  
 | 
  
 | 
                if (dw_goods.GetRowCount() > 0) 
 | 
                { 
 | 
                    if (dw_goods.GetItemString(1, L"customerno")) 
 | 
                    { 
 | 
                        dw_base.SetItemString(1, L"CustomerNo", dw_goods.GetItemString(1, L"customerno")); 
 | 
                    } 
 | 
                    ximageview im = GetControl(L"im1"); 
 | 
                    im.Reset(); 
 | 
                    xstring skuno = dw_goods.GetItemString(1, L"SKUNo"); 
 | 
                    OnShowImage(skuno, 1); 
 | 
                    im.Redraw(); 
 | 
                } 
 | 
            } 
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int onload() 
 | 
        { 
 | 
            SetArg(); 
 | 
            dw_goods = GetControl(L"dw_goods"); 
 | 
            //dw_goods .openUrl(L"/sale/view/Enquiry3/template/goods"); 
 | 
            dw_goods.openUrl(L"/sale/view/Enquiry3/template/item/pricelist"); 
 | 
            dw_goods.SetColumnState(L"ItemID", false); 
 | 
            //dw_goods.SetColumnState(L"Picture",false); 
 | 
            dw_goods.SetColumnState(L"category", false); 
 | 
            dw_goods.SetColumnState(L"RealEnquiryLineID", false); 
 | 
            dw_goods.SetColumnState(L"RelEnquiryLineID", false); 
 | 
            dw_goods.SetColumnState(L"BOMPartNo", false); 
 | 
  
 | 
            dw_base = GetControl(L"dw_base"); 
 | 
  
 | 
            if (GetWinParam()) 
 | 
            { 
 | 
                xaserverarg arg=GetArg(); 
 | 
                 
 | 
  
 | 
                sheetname = arg.GetArgString(L"sheetname"); 
 | 
                if (sheetname == L"tab_list2") 
 | 
                { 
 | 
                    dw_base.openUrl(L"/sale/view/Enquiry3/template/base2"); 
 | 
                    //dw_base.SetItemString(1,L"Source",L"¿Í»§Ñ¯¼Û"); 
 | 
                    dw_goods.SetColumnState(L"SupplierID", true); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
  
 | 
                    dw_base.openUrl(L"/sale/view/Enquiry3/template/base"); 
 | 
                    //dw_base.SetItemString(1,L"Source",L"¿Í»§Ñ¯¼Û"); 
 | 
                    dw_goods.SetColumnState(L"SupplierID", false); 
 | 
                } 
 | 
                dw_base.SetColHeaderHeight(0); 
 | 
                dw_base.SetRowSelectorWidth(0); 
 | 
                dw_base.SetHScrollState(false); 
 | 
                dw_base.SetVScrollState(false); 
 | 
  
 | 
                xstring EnquiryNo = arg.GetArgString(L"EnquiryNo"); 
 | 
                xstring EnquiryID = arg.GetArgString(L"EnquiryID"); 
 | 
                xstring ItemID = arg.GetArgString(L"ItemID"); 
 | 
                if (EnquiryNo == L"") EnquiryNo = arg.GetArgString(L"EntityNo"); 
 | 
                if (EnquiryNo != L"") 
 | 
                { 
 | 
                    OnRetrieve(EnquiryNo); 
 | 
  
 | 
                } 
 | 
                else if (EnquiryID != L"") { 
 | 
                    Oncopy(EnquiryID, ItemID); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    OnInit(); 
 | 
  
 | 
                    if (arg.GetArgString(L"CustomerID") != L"") 
 | 
                    { 
 | 
                        dw_base.SetItemDisplayString(1, L"SupplierID", arg.GetArgString(L"CustomerName")); 
 | 
                        dw_base.ItemChangeTo(1, L"SupplierID", arg.GetArgString(L"CustomerID")); 
 | 
                        xstring dwname = L"dw_base"; 
 | 
                        xstring colname = L"SupplierID"; 
 | 
                        xstring value = arg.GetArgString(L"CustomerID"); 
 | 
                        KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); 
 | 
                        ViewObject::TransData(nlist, dw_base, 1, colname, value); 
 | 
                    } 
 | 
  
 | 
                    if (arg.GetArgString(L"EntityIDList") != L"") 
 | 
                    { 
 | 
                        RetrieveItemList(arg.GetArgString(L"EntityIDList"), arg.GetArgString(L"Source")); 
 | 
                    } 
 | 
  
 | 
                } 
 | 
            } 
 | 
            else 
 | 
                OnInit(); 
 | 
  
 | 
            OnAttachEvent(); 
 | 
  
 | 
            dw_base.SetEditUpperMode(true); 
 | 
            dw_goods.SetEditUpperMode(true); 
 | 
            dw_goods.SetAskStyle(true); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
  
 | 
        int onloaded() 
 | 
        { 
 | 
            SetAgent(); 
 | 
  
 | 
            return 1; 
 | 
        } 
 | 
    }; 
 |