#include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) ProductFetchNoWin : public xframe { public: xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: ProductFetchNoWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static ProductFetchNoWin* CreateInstance(void* implPtr, void* hWnd) { ProductFetchNoWin* pWin = new ProductFetchNoWin(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 OnRowChanged(TEvent* evt, LPARAM p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; /* htmlctrl xs = GetControl(L"html_detail"); xstring html = makeHtml(row); xs.SetContent(html); xs.Redraw(); xstring id = g_xdoc_product.getData(0,L"data/Item",row,L"@guid"); OnShowImage(id); */ return 1; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(TEvent* evt, LPARAM p) { //ÖØÖù¤¾ßÌõ //SetAgent(); return 1; } int SendNotice() { xaserverarg arg; if (dw_list.GetRowCount() < 1) return 1; xstring Subject = L"±àºÅ£º" + dw_list.GetItemString(dw_list.GetRow(), L"SKUNo") + L" Æ·Ãû£º" + dw_list.GetItemString(dw_list.GetRow(), L"CName") + L"£¬ÉêÇë»õºÅ"; xstring EntityID = dw_list.GetItemString(dw_list.GetRow(), L"SKUID"); xstring EntityNo = dw_list.GetItemString(dw_list.GetRow(), L"SKUNo"); xstring Category = L"»õºÅÉêÇë"; xstring Reciever = L"00908"; xstring Content = L""; //alert(L"EntityID:"+EntityID); xml x = ViewObject::AddMessage(Category, Reciever, EntityNo, EntityID, Subject, Content); return 1; } int OnSubmit() { dw_list = GetControl(L"dw_list"); if (dw_list.GetRowCount() < 1) return 0; xml x; dw_list.DwUpdateAllToEx(x); xstring error = L""; xaserverarg arg; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/ProductLibrary3/update/product/askgoodsno", arg.GetString(), x) != 1) { xstring error = x.text(); trace(error); } else { if (error.find(L"error") >= 0) alert(L"Ìύʧ°Ü"); else alert(L"Ìá½»³É¹¦!"); SendNotice(); } return 1; } /* xstring makeHtml(int row) { xstring id = g_xdoc_product.getData(0,L"data/Item",row,L"@guid"); xml x = GetGoodsPropList(id); xml x1 = GetGoodsPropListEx(id); xstring html=L""; html += L"
±àºÅ:" + dw_list.GetItemString(row,L"SKUNo")+ " ÀàÏî:" + dw_list.GetItemString(row,L"RefNo")+ "
"; html += L"
¹«Ë¾ÐͺÅ:" + dw_list.GetItemString(row,L"GoodsNo")+ "
" ; html += L"
Æ·Ãû:" + dw_list.GetItemString(row,L"CName")+ "
" ; if(dw_list.GetItemString(row,L"CSpec")!=L"") html += L"
¹æ¸ñ:" + dw_list.GetItemString(row,L"CSpec")+ "
" ; KXMLDOMNodeList fieldsEx = x1.GetXmlDoc().selectNodes(L"data/field"); xstring ls_detail=L""; xstring ls_item =L""; xstring name; xstring label; int len = fieldsEx.length; int i= 0; for(i=0;i" + label + L"" + L"" + g_xdoc_product.getData(0,L"data/Item",row,name) + L"" ; cnt++; i++; if(i ==len)break; } ls_detail += L"" + ls_item + L""; } html += L"
" + +L"" + ls_detail +L"
" +L"
" ; xstring ls_star=L""; KXMLDOMNodeList fields = x().selectNodes(L"data/field"); len = fields.length; ls_detail = L""; if(len > 0) html += L"
¼¼ÊõÒªÇó:
" ; for(i=0;i= len)count = 2; continue; } else if(g_xdoc_product.getData(0,L"data/Item",row,name)==L"") { KXMLDOMNodeList options = fields.item(i).selectNodes(L"item"); int tlen = options.length; xstring terms = L"" ; for(int k=0; k0) terms += L", L"; terms += L"[" + options.item(k).text +L"]"; } } ls_star += L"
" + label +L"*:" + terms + L"
" ; }else { ls_item = L"" + label + L"" + L"" + g_xdoc_product.getData(0,L"data/Item",row,name) + L"" ; count++; } i++; if(i >= len)count = 2; } ls_item = L"" + ls_item + L""; ls_detail += ls_item; } html += L"
" + +L"" + ls_detail +L"
" +L"
" ; if(dw_list.GetItemString(row,L"QualityTerm")!=L"") { html += L"
"; html += L"
ÖÊÁ¿:
" ; html += L"
" + dw_list.GetItemString(row,L"QualityTerm") + L"
" ; } if(dw_list.GetItemString(row,L"PackTerm")!=L"") { html += L"
"; html += L"
°ü×°ÖÊÁ¿:
" ; html += L"
" + dw_list.GetItemString(row,L"PackTerm") + L"
" ; } if(g_xdoc_product.getData(0,L"data/Item",row,L"Remark")!=L"") { //html += L"
"; html += L"
±¸×¢:
" ; html += L"
" + g_xdoc_product.getData(0,L"data/Item",row,L"Remark") + L"
" ; } html += L"
"; //ÐDZêÏî html += ls_star; html += L""; //trace(html); return html; } */ //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if (comdid == L"xmSubmit") { return OnSubmit(); } if (comdid == L"xmCancel") { CloseWindow(); return 1; } return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt, LPARAM p) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductFetchNoWin::OnRowChanged); //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND", (FEvent)&ProductFetchNoWin::OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent(L"WM_SETFOCUS", (FEvent)&ProductFetchNoWin::OnSetFocus); } /* int OnRetrieve() { xml x = new.xml(); x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"xxx",L"xxx"); if (getUrl(L"",arg.GetString(),x)!=1) { trace(x().text); return -1; }else { //dw_list.Retrieve(x); //dw_list.Redraw(); } return 1; } */ int onload() { dw_list = GetControl(L"dw_list"); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L"").GetXmlDoc()); dw_list.SetColumnState(L"SKUID", false); dw_list.SetColumnState(L"category1", false); dw_list.SetColumnState(L"Submitter1", false); if (GetWinParam()) { xaserverarg arg; xml x; if (xurl::get(L"/sale/data/ProductLibrary3/data/list/skunolist", arg.GetString(), x) != 1) { xstring error = x.text(); trace(error); } else { //alert(x.GetXml()); dw_list.Retrieve(x); } } OnAttachEvent(); dw_list.SetReadOnly(true); return 1; } int onloaded() { //SetAgent(); return 1; } };