jrj/project/business/Enquiry/Enquiry.maint.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/EnquiryEx.quote.vx.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/Entity.Product.Select.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/PriceList.PurcharItemSelect.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/PriceList.PurcharItemSelectEx.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/ProductSchema.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/ProductSchemaSelect.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/SKU.PictureView.Product3.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Enquiry/ViewPictures.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
jrj/project/business/Enquiry/Enquiry.maint.cpp
@@ -1,68 +1,82 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "enquiry.view.vd" use "quote.view.vd" use "publiccode.vutil.vbusiness.vd" #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> unit trade [ class EnquiryMaintView : public frame #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 string sheetname; 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() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); return 1; } string GetEntityData(int pr) xstring GetEntityData(int pr) { dw_base.AcceptText(); dw_goods.AcceptText(); if (dw_base.GetItemString(1, "EnquiryNo") == "") if (dw_base.GetItemString(1, L"EnquiryNo") == L"") { string EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, "EnquiryNo", EnquiryNo); xstring EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, L"EnquiryNo", EnquiryNo); } xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); dw_goods.DwUpdateAllToEx(x.GetXmlDoc()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); return x.GetXml(); xml x ; xaserverarg arg; dw_goods.DwUpdateAllToEx(x); dw_base.DwUpdateAllTo(x); return x.xml(); } int SetSeqNo(xdwgrid dw_obj, string SeqNoColumn, int nRow) int SetSeqNo(xdwgrid dw_obj, xstring SeqNoColumn, int nRow) { if (nRow > 1) { @@ -77,19 +91,19 @@ int Adjust() { string str; xstring str; for (int i = 1; i <= dw_goods.GetRowCount(); i++) { str = dw_goods.GetItemString(i, "SupplierID"); if (dw_goods.GetItemString(i, "ItemID") != "") if (str == "") 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, "SupplierID") != "") if (dw_goods.GetItemString(i - 1, L"SupplierID") != L"") { dw_goods.SetItemDisplayString(i, "SupplierID", dw_goods.GetItemDisplayString(i - 1, "SupplierID")); dw_goods.ItemChangeTo(i, "SupplierID", dw_goods.GetItemString(i - 1, "SupplierID")); 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")); } } } @@ -101,184 +115,184 @@ { dw_base.AcceptText(); dw_goods.AcceptText(); if (dw_base.GetItemString(1, "Remark") != "保存") if (dw_base.GetItemString(1, L"Remark") != L"保存") { if (dw_base.GetItemString(1, "EnquiryNo") == "") if (dw_base.GetItemString(1, L"EnquiryNo") == L"") { string EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, "EnquiryNo", EnquiryNo); xstring EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, L"EnquiryNo", EnquiryNo); } if (dw_base.GetItemString(1, "ValidDay") == "") if (dw_base.GetItemString(1, L"ValidDay") == L"") { alert("请输入有效期!"); alert(L"请输入有效期!"); return 1; } /*if(dw_base.GetItemString(1,"SupplierID")=="") /*if(dw_base.GetItemString(1,L"SupplierID")==L"") { alert("供应商为空!"); alert(L"供应商为空!"); return 1; }*/ if (dw_base.GetItemString(1, "Source") == "") if (dw_base.GetItemString(1, L"Source") == L"") { alert("请输入询价类别!"); alert(L"请输入询价类别!"); return 1; } string Packing = ""; string Packings = ""; xstring Packing = L""; xstring Packings = L""; Adjust(); for (int i = 1; i <= dw_goods.GetRowCount(); i++) { if (dw_goods.GetItemString(i, "ItemMiniQty") == "") if (dw_goods.GetItemString(i, L"ItemMiniQty") == L"") { alert("请输入起订量!"); alert(L"请输入起订量!"); return 1; } if (dw_goods.GetItemString(i, "Picture") == "") if (dw_goods.GetItemString(i, L"Picture") == L"") { alert("请 " + i.toString() + "行,上传产品图片!"); alert(L"请 " + xstring(i) + L"行,上传产品图片!"); return 1; } if (dw_goods.GetItemString(i, "POPrice") == "" || dw_goods.GetItemString(i, "POPrice") == ".000") if (dw_goods.GetItemString(i, L"POPrice") == L"" || dw_goods.GetItemString(i, L"POPrice") == L".000") { alert("请输入采购价!"); alert(L"请输入采购价!"); return 1; } if (dw_goods.GetItemString(i, "PriceType") == "") if (dw_goods.GetItemString(i, L"PriceType") == L"") { alert("请输入价格类型!"); alert(L"请输入价格类型!"); return 1; } if (dw_goods.GetItemString(i, "SampleFee") == "") if (dw_goods.GetItemString(i, L"SampleFee") == L"") { alert("请输入打样费!"); alert(L"请输入打样费!"); return 1; } if (dw_goods.GetItemString(i, "TestFee") == "") if (dw_goods.GetItemString(i, L"TestFee") == L"") { alert("请输入测试费!"); alert(L"请输入测试费!"); return 1; } if (dw_goods.GetItemString(i, "ModelFee") == "") if (dw_goods.GetItemString(i, L"ModelFee") == L"") { alert("请输入模具费!"); alert(L"请输入模具费!"); return 1; } if (dw_goods.GetItemString(i, "VolumeDesc") == "") if (dw_goods.GetItemString(i, L"VolumeDesc") == L"") { alert("请输入包装尺码!"); alert(L"请输入包装尺码!"); return 1; } if (dw_goods.GetItemString(i, "WarehousingReason") == "") if (dw_goods.GetItemString(i, L"WarehousingReason") == L"") { alert("请输入入库理由!"); alert(L"请输入入库理由!"); return 1; } /*if(dw_goods.GetItemString(i,"Packing") !="") /*if(dw_goods.GetItemString(i,L"Packing") !=L"") { Packing = dw_goods.GetItemString(i,"Packing"); if(Packings=="") Packing = dw_goods.GetItemString(i,L"Packing"); if(Packings==L"") Packings = Packing; else if(Packings.find(Packing) < 0) Packings+=","+Packing; else if(Packings.find(Packing) < 0) Packings+=L",L"+Packing; }*/ if (dw_goods.GetItemString(i, "Packing") == "") if (dw_goods.GetItemString(i, L"Packing") == L"") { alert("请输包装方式!"); alert(L"请输包装方式!"); return 1; } else { xml xx = ViewObject::RetrieveData("/sale/data/Enquiry/GetPacking", "str", dw_goods.GetItemString(i, "Packing")); string Results = xx.GetXmlDoc().text; 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("第" + i.toString() + "行包装方式错误,请重新选择!"); alert(L"第" + xstring(i) + L"行包装方式错误,请重新选择!"); return 1; } } } trace("********" + Packings + "*********"); trace(L"********" + Packings + L"*********"); } xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); dw_goods.DwUpdateAllToEx(x.GetXmlDoc()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); xml x ; xaserverarg arg; dw_goods.DwUpdateAllToEx(x); dw_base.DwUpdateAllTo(x); //alert(x.GetXml()); //alert(x.xml()); string error = ""; arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/Enquiry/update", arg.GetString(), x) != 1) xstring error = L""; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/Enquiry/update", arg.GetString(), x) != 1) { error = x.GetXmlDoc().text; error = x.text(); alert(error); } else { string str = x.GetXmlDoc().documentElement.getAttribute("text"); if (str == "true") xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { dw_goods.ResetUpdateStatus(); dw_base.ResetUpdateStatus(); UpdateEnquiryLineID(); xaserverarg arg_ = new xaserverarg; arg_.setNativePointer(GetParam()); //trace("\r\nSource:"+arg_.GetArgString("Source")); if (arg_.GetArgString("Source") == "quote") xaserverarg arg_; //trace(L"\r\nSource:"+arg_.GetArgString(L"Source")); if (arg_.GetArgString(L"Source") == L"quote") InsertEnquiryPriceList(); else if (arg_.GetArgString("Source") == "pricebill") else if (arg_.GetArgString(L"Source") == L"pricebill") InsertEnquiryPriceListByEnquiryID(); alert("保存成功!"); int hWnd = 0; if (arg_.GetArgString("Source") == "pricebill") alert(L"保存成功!"); HWND hWnd = 0; if (arg_.GetArgString(L"Source") == L"pricebill") { if (arg_.GetArgString("hWnd") != "") if (arg_.GetArgString(L"hWnd") != L"") { hWnd = arg_.GetArgString("hWnd").toInt(); win32::PostMessage(hWnd, 0x401, "xmRefresh", 0); hWnd = (HWND)arg_.GetParam(L"hWnd"); PostMessage(hWnd, 0x401, (LPARAM)L"xmRefresh", 0); } } if (arg_.GetArgString("Source") == "") if (arg_.GetArgString(L"Source") == L"") { if (arg_.GetArgString("hWnd") != "") if (arg_.GetArgString(L"hWnd") != L"") { hWnd = arg_.GetArgString("hWnd").toInt(); win32::PostMessage(hWnd, 0x401, "xmReresh", 0); hWnd = (HWND)arg_.GetParam(L"hWnd"); PostMessage(hWnd, 0x401, (LPARAM)L"xmReresh", 0); } } } else { alert("保存失败!"); alert(L"保存失败!"); } } if (x) x.Free(); if (x) return 1; } int InsertEnquiryPriceListByEnquiryID() { //trace("\r\nInsertEnquiryPriceListByEnquiryID Start!"); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/InsertEnquiryPriceListByEnquiryID", "EnquiryID", dw_base.GetGuid(1)); //trace("\r\nInsertEnquiryPriceListByEnquiryID:" + dw_base.GetGuid(1)+" "+ x.GetXml()); //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 = new xaserverarg; arg.setNativePointer(GetParam()); string EntityIDList = arg.GetArgString("EntityIDList"); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/InsertEnquiryPriceList", "ItemList", EntityIDList); xml x1 = ViewObject::RetrieveData("/sale/data/Enquiry/Update/UpdateQuoteLine", "ItemList", EntityIDList); 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; } @@ -286,14 +300,14 @@ int UpdateEnquiryLineID() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xaserverarg arg; int row = dw_base.GetRow(); if (row < 1) return 0; string EnquiryID = dw_base.GetGuid(1); xstring EnquiryID = dw_base.GetGuid(1); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/Update/UpdateEnquiryLineID", "EnquiryID", EnquiryID); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/Update/UpdateEnquiryLineID", L"EnquiryID", EnquiryID); return 1; } @@ -301,110 +315,110 @@ { dw_base.AcceptText(); dw_goods.AcceptText(); if (dw_base.GetItemString(1, "EnquiryNo") == "") if (dw_base.GetItemString(1, L"EnquiryNo") == L"") { string EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, "EnquiryNo", EnquiryNo); xstring EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, L"EnquiryNo", EnquiryNo); } if (dw_base.GetItemString(1, "ValidDay") == "") if (dw_base.GetItemString(1, L"ValidDay") == L"") { alert("请输入有效期!"); alert(L"请输入有效期!"); return 1; } if (dw_base.GetItemString(1, "Source") == "") if (dw_base.GetItemString(1, L"Source") == L"") { alert("请输入询价类别!"); alert(L"请输入询价类别!"); return 1; } string Packing = ""; string Packings = ""; xstring Packing = L""; xstring Packings = L""; for (int i = 1; i <= dw_goods.GetRowCount(); i++) { if (dw_goods.GetItemString(i, "ItemMiniQty") == "") if (dw_goods.GetItemString(i, L"ItemMiniQty") == L"") { alert("请输入起订量!"); alert(L"请输入起订量!"); return 1; } if (dw_goods.GetItemString(i, "Picture") == "") if (dw_goods.GetItemString(i, L"Picture") == L"") { alert("请 " + i.toString() + "行,上传产品图片!"); alert(L"请 " + xstring(i) + L"行,上传产品图片!"); return 1; } if (dw_goods.GetItemString(i, "POPrice") == "" || dw_goods.GetItemString(i, "POPrice") == ".000") if (dw_goods.GetItemString(i, L"POPrice") == L"" || dw_goods.GetItemString(i, L"POPrice") == L".000") { alert("请输入采购价!"); alert(L"请输入采购价!"); return 1; } if (dw_goods.GetItemString(i, "PriceType") == "") if (dw_goods.GetItemString(i, L"PriceType") == L"") { alert("请输入价格类型!"); alert(L"请输入价格类型!"); return 1; } if (dw_goods.GetItemString(i, "SampleFee") == "") if (dw_goods.GetItemString(i, L"SampleFee") == L"") { alert("请输入打样费!"); alert(L"请输入打样费!"); return 1; } if (dw_goods.GetItemString(i, "TestFee") == "") if (dw_goods.GetItemString(i, L"TestFee") == L"") { alert("请输入测试费!"); alert(L"请输入测试费!"); return 1; } if (dw_goods.GetItemString(i, "ModelFee") == "") if (dw_goods.GetItemString(i, L"ModelFee") == L"") { alert("请输入模具费!"); alert(L"请输入模具费!"); return 1; } if (dw_goods.GetItemString(i, "VolumeDesc") == "") if (dw_goods.GetItemString(i, L"VolumeDesc") == L"") { alert("请输入包装尺码!"); alert(L"请输入包装尺码!"); return 1; } if (dw_goods.GetItemString(i, "WarehousingReason") == "") if (dw_goods.GetItemString(i, L"WarehousingReason") == L"") { alert("请输入入库理由!"); alert(L"请输入入库理由!"); return 1; } if (dw_goods.GetItemString(i, "Packing") != "") if (dw_goods.GetItemString(i, L"Packing") != L"") { Packing = dw_goods.GetItemString(i, "Packing"); if (Packings == "") Packing = dw_goods.GetItemString(i, L"Packing"); if (Packings == L"") Packings = Packing; else if (Packings.find(Packing) < 0) Packings += "," + Packing; else if (Packings.find(Packing) < 0) Packings += L",L" + Packing; } } trace("********" + Packings + "*********"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); msxml::IXMLDOMElement ele = x.GetXmlDoc().documentElement; trace(L"********" + Packings + L"*********"); xml x ; xaserverarg arg; dw_base.DwUpdateAllTo(x); KXMLDOMElement ele = x.documentElement(); xml x1 = xml::Make(); dw_goods.DwUpdateAllToEx(x1.GetXmlDoc()); msxml::IXMLDOMNodeList items = x1.GetXmlDoc().selectNodes("Enquiry/Item"); int len = items.length; xml x1 ; dw_goods.DwUpdateAllToEx(x1); KXMLDOMNodeList items = x1.selectNodes(L"Enquiry/Item"); int len = items.length(); bool processed = false; msxml::IXMLDOMNode child; msxml::IXMLDOMNode nodeColumn; msxml::IXMLDOMElement eleItem; msxml::IXMLDOMElement eleColumn; string guid; KXMLDOMNode child; KXMLDOMNode nodeColumn; KXMLDOMElement eleItem; KXMLDOMElement eleColumn; xstring guid; for (int k = 0; k < len; k++) { msxml::IXMLDOMElement e = items.item(k); KXMLDOMElement e = items.item(k); /*processed = false; msxml::IXMLDOMNode col = e.selectSingleNode("QuoteNo"); KXMLDOMNode col = e.selectSingleNode(L"QuoteNo"); if(col) { if(col.text !="") if(col.text !=L"") { child = e.cloneNode(-1); ele.appendChild(child); @@ -415,45 +429,45 @@ } if(!processed) {*/ string itemNew = e.getAttribute("update.new"); string itemDelete = e.getAttribute("update.delete"); string itemModify = e.getAttribute("update.modify"); if (itemDelete == "1") 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.GetXmlDoc().createElement("Item"); eleItem.setAttribute("update.modify", "1"); guid = e.getAttribute("guid"); eleItem.setAttribute("guid", guid); eleItem = x.createElement(L"Item"); eleItem.setAttribute(L"update.modify", L"1"); guid = e.getAttribute(L"guid"); eleItem.setAttribute(L"guid", guid); eleColumn = x.GetXmlDoc().createElement("LineType"); eleColumn.setAttribute("update.modify", "1"); //delete eleColumn.text = "1"; eleColumn = x.createElement(L"LineType"); eleColumn.setAttribute(L"update.modify", L"1"); //delete eleColumn.text = L"1"; eleItem.appendChild(eleColumn); ele.appendChild(eleItem); eleColumn.release(); eleItem.release(); processed = true; } else if (itemModify == "1") else if (itemModify == L"1") { if (itemNew != "1") if (itemNew != L"1") { //update origin row eleItem = x.GetXmlDoc().createElement("Item"); eleItem.setAttribute("update.modify", "1"); guid = e.getAttribute("guid"); eleItem.setAttribute("guid", guid); eleItem = x.createElement(L"Item"); eleItem.setAttribute(L"update.modify", L"1"); guid = e.getAttribute(L"guid"); eleItem.setAttribute(L"guid", guid); eleColumn = x.GetXmlDoc().createElement("RealEnquiryLineID"); eleColumn.setAttribute("update.modify", "1"); eleColumn = x.createElement(L"RealEnquiryLineID"); eleColumn.setAttribute(L"update.modify", L"1"); guid = publiccode::GetGuid(); eleColumn.text = guid; eleItem.appendChild(eleColumn); eleColumn.release(); eleColumn = x.GetXmlDoc().createElement("LineType"); eleColumn.setAttribute("update.modify", "1"); eleColumn.text = "1"; //modify eleColumn = x.createElement(L"LineType"); eleColumn.setAttribute(L"update.modify", L"1"); eleColumn.text = L"1"; //modify eleItem.appendChild(eleColumn); ele.appendChild(eleItem); eleColumn.release(); @@ -461,19 +475,19 @@ //insert new row eleItem = e.cloneNode(-1); eleItem.setAttribute("update.modify", "1"); eleItem.setAttribute("update.new", "1"); eleItem.setAttribute("guid", publiccode::GetGuid()); eleItem.setAttribute(L"update.modify", L"1"); eleItem.setAttribute(L"update.new", L"1"); eleItem.setAttribute(L"guid", publiccode::GetGuid()); eleColumn = x.GetXmlDoc().createElement("LineType"); eleColumn.setAttribute("update.modify", "1"); eleColumn.text = "0"; //normal eleColumn = x.createElement(L"LineType"); eleColumn.setAttribute(L"update.modify", L"1"); eleColumn.text = L"0"; //normal eleItem.appendChild(eleColumn); eleColumn.release(); nodeColumn = e.selectSingleNode("ModifyDate"); nodeColumn = e.selectSingleNode(L"ModifyDate"); if (!nodeColumn) eleColumn = x.GetXmlDoc().createElement("ModifyDate"); eleColumn = x.createElement(L"ModifyDate"); else eleColumn = nodeColumn; eleColumn.text = publiccode::GetCurrentDate(); @@ -485,10 +499,10 @@ } else { guid = e.getAttribute("guid"); guid = e.getAttribute(L"guid"); child = e.cloneNode(-1); child.selectSingleNode("RealEnquiryLineID").text = guid; child.selectSingleNode("RelEnquiryLineID").text = guid; child.selectSingleNode(L"RealEnquiryLineID").text = guid; child.selectSingleNode(L"RelEnquiryLineID").text = guid; ele.appendChild(child); //trace(child.xml); child.release(); @@ -497,96 +511,96 @@ //} e.release(); } x1.Free(); string error = ""; arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/Enquiry/update", arg.GetString(), x) != 1) xstring error = L""; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/Enquiry/update", arg.GetString(), x) != 1) { error = x.GetXmlDoc().text; error = x.text(); alert(error); } else { string str = x.GetXmlDoc().documentElement.getAttribute("text"); if (str == "true") xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { alert("保存成功!"); alert(L"保存成功!"); //dw_goods.ResetUpdateStatus(); //dw_base.ResetUpdateStatus(); OnRetrieve(dw_base.GetItemString(1, "EnquiryNo")); OnRetrieve(dw_base.GetItemString(1, L"EnquiryNo")); } else { alert("保存失败!"); alert(L"保存失败!"); } } if (x) x.Free(); if (x) return 1; } int ImportProductByText(string str) int ImportProductByText(xstring str) { string CustomerID = dw_base.GetItemString(1, "CustomerID"); //trace("Customer:"+CustomerID); xstring CustomerID = dw_base.GetItemString(1, L"CustomerID"); //trace(L"Customer:"+CustomerID); xml x; if (CustomerID == "") if (CustomerID == L"") x = QuoteView::LookupProductsByText(str); else x = QuoteView::LookupProductsByText(str, CustomerID); if (!x) return 1; msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("/Items/Item"); trace("********" + x.GetXml() + "********"); int len = items.length; if (str.find(" ") < 0 && len > 0) len = 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++) { msxml::IXMLDOMElement e = items.item(i); KXMLDOMElement e = items.item(i); dw_goods.InsertRow(0); int nRow = dw_goods.GetRowCount(); SetSeqNo(dw_goods, "SeqNo", nRow); dw_goods.SetItemString(nRow, "UOMCode", "007"); dw_goods.SetItemDisplayString(nRow, "UOMCode", "PCS"); dw_goods.SetItemString(nRow, "KOPCode", "120"); dw_goods.SetItemDisplayString(nRow, "KOPCode", "CTNS"); dw_goods.SetItemString(nRow, "SKUNo", e.getAttribute("SKUNo")); dw_goods.SetItemString(nRow, "ItemID", e.getAttribute("SKUID")); //dw_goods.SetItemString(nRow,"ItemName",e.getAttribute("EName")); dw_goods.SetItemString(nRow, "ItemName", e.getAttribute("CName")); dw_goods.SetItemString(nRow, "GoodsNo", e.getAttribute("GoodsNo")); dw_goods.SetItemString(nRow, "CustomerItemNo", e.getAttribute("CustomerItemNo")); dw_goods.SetItemString(nRow, "Packing", e.getAttribute("Packing")); dw_goods.SetItemString(nRow, "VolumeDesc", e.getAttribute("VolumeDesc")); dw_goods.SetItemString(nRow, "PackingRate", e.getAttribute("QtyPerPkg")); dw_goods.SetItemString(nRow, "InnerQty", e.getAttribute("InnerQty")); dw_goods.SetItemString(nRow, "VATRefundRate", e.getAttribute("VATRefundRate")); dw_goods.SetItemString(nRow, "VATRate", e.getAttribute("VATRate")); dw_goods.SetItemString(nRow, "HSCode", e.getAttribute("HSCode")); //trace("+++++"+e.getAttribute("Picture")+"+++++"); dw_goods.SetItemString(nRow, "Picture", e.getAttribute("Picture")); 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, "VolumeDesc") != "" && dw_goods.GetItemString(nRow, "Packages") != "") if (dw_goods.GetItemString(nRow, L"VolumeDesc") != L"" && dw_goods.GetItemString(nRow, L"Packages") != L"") { int qty = EvalQtyPerFCL45H(nRow); dw_goods.SetItemString(nRow, "Packages45H", qty.toString()); dw_goods.SetItemDouble(nRow, "TransportationFee", 5000.0 / qty); dw_goods.SetItemString(nRow, L"Packages45H", xstring(qty)); dw_goods.SetItemDouble(nRow, L"TransportationFee", 5000.0 / qty); } /* dw_goods.SetItemString(nRow,"NwPerPkg",e.getAttribute("NwPerPkg")); dw_goods.SetItemString(nRow,"GwPerPkg",e.getAttribute("GwPerPkg")); dw_goods.SetItemString(nRow,"QTYPerPk",e.getAttribute("QTYPerPk")); dw_goods.SetItemString(nRow,"InnerQty",e.getAttribute("InnerQty")); 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) { imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(row, "SKUNo"); ximageview im = GetControl(L"im1"); im.Reset(); xstring skuno = dw_goods.GetItemString(row, L"SKUNo"); OnShowImage(skuno, row); im.Redraw(); } @@ -596,285 +610,285 @@ double EvalCost(int row) { double cost = 0.0; cost += dw_goods.GetItemDouble(row, "POPrice"); cost += dw_goods.GetItemDouble(row, "PaperCardPrice"); cost += dw_goods.GetItemDouble(row, "TransportationFee"); cost += dw_goods.GetItemDouble(row, "OtherFee"); cost += dw_goods.GetItemDouble(row, "ManagementFee"); 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, "VATRefundRate"); double VATRefund = dw_goods.GetItemDouble(row, "POPrice") * VATRefundRate / 117.0; VATRefund += dw_goods.GetItemDouble(row, "PaperCardPrice") * 13.0 / 117.0; 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, "VolumeDesc")); double packages = dw_goods.GetItemDouble(row, "Packages"); return (packages * 67.0 / vol).toInt(); 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, "ExchangeRate"); double FobUnitPrice = dw_goods.GetItemDouble(row, "FobUnitPrice"); double UnitCost = dw_goods.GetItemDouble(row, "UnitCost"); double VATRefund = dw_goods.GetItemDouble(row, "VATRefund"); 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, "UnitCost"); 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, "FobUnitPrice"); double FobUnitPrice = dw_goods.GetItemDouble(row, L"FobUnitPrice"); return UnitProfit / FobUnitPrice; } double EvalExchangeCostRate(int row) { double FobUnitPrice = dw_goods.GetItemDouble(row, "FobUnitPrice"); double UnitCost = dw_goods.GetItemDouble(row, "UnitCost"); double VATRefund = dw_goods.GetItemDouble(row, "VATRefund"); 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, "VolumeDesc")); double packages = dw_goods.GetItemDouble(row, "Packages"); double vol = EvalVol(dw_goods.GetItemString(row, L"VolumeDesc")); double packages = dw_goods.GetItemDouble(row, L"Packages"); return 80 * vol / packages; } double EvalVol(string value) double EvalVol(xstring value) { double vol = 1.0; string volstr = value; int pos1 = volstr.find("*"); int pos2 = volstr.find("X"); int pos3 = volstr.find("x"); xstring volstr = value; int pos1 = volstr.find(L"*"); int pos2 = volstr.find(L"X"); int pos3 = volstr.find(L"x"); int pos = pos1; //trace("pos: "+ pos.toString() + "pos1: "+ pos1.toString() + "pos2: "+ pos2.toString() +"pos3: "+ pos3.toString()); //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("pos: "+ pos.toString() + "pos1: "+ pos1.toString() + "pos2: "+ pos2.toString() +"pos3: "+ pos3.toString()); //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("pos: "+ pos.toString() + "pos1: "+ pos1.toString() + "pos2: "+ pos2.toString() +"pos3: "+ pos3.toString()); //trace(L"pos: "+ pos.toString() + L"pos1: "+ pos1.toString() + L"pos2: "+ pos2.toString() +L"pos3: "+ pos3.toString()); while (pos >= 0) { string tm = volstr.left(pos); xstring tm = volstr.left(pos); volstr = volstr.mid(pos + 1, 9999); vol *= tm.toDouble(); pos1 = volstr.find("*"); pos2 = volstr.find("X"); pos3 = volstr.find("x"); 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 != "") vol *= volstr.toDouble(); if (volstr != L"") vol *= volstr.toDouble(); return vol / 1000000.0; } int OnShare() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("EntityID", dw_base.GetGuid(1)); //arg.AddArg("EntityName", GetEntityName(0)); arg.AddArg("EntityName", "Enquiry3"); xaserverarg arg; arg.AddArg(L"EntityID", dw_base.GetGuid(1)); //arg.AddArg(L"EntityName", GetEntityName(0)); arg.AddArg(L"EntityName", L"Enquiry3"); OpenWindow("dev:xpage[UserGroupShare.vx]", cast(arg as int)); OpenWindow(L"dev:xpage[UserGroupShare.vx]",arg ); return 1; } int OnItemChanged(ref TNotifyEvent evt, int p) int OnItemChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; 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 == "GoodsNo" || colname == "CustomerItemNo") && value != "") if ((colname == L"GoodsNo" || colname == L"CustomerItemNo") && value != L"") { if (colname == "CustomerItemNo") if (colname == L"CustomerItemNo") { if (dw_goods.GetItemString(row, "GoodsNo") != "") return 1; if (dw_goods.GetItemString(row, L"GoodsNo") != L"") return 1; } xml x; string CustomerID = dw_base.GetItemString(1, "CustomerID"); string sval = value; if (colname == "GoodsNo") xstring CustomerID = dw_base.GetItemString(1, L"CustomerID"); xstring sval = value; if (colname == L"GoodsNo") { if (CustomerID != "") sval = "gs:" + value; if (CustomerID != L"") sval = L"gs:" + value; else sval = value; } if (colname == "CustomerItemNo") /*sval="cs:"+value; if(CustomerID !="") 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("/sale/data/Quote/LookGDN", "str", sval); x = ViewObject::RetrieveData(L"/sale/data/Quote/LookGDN", L"str", sval); if (!x) return 1; msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("/Items/Item"); trace(x.GetXml()); int len = items.length; KXMLDOMNodeList items = x.selectNodes(L"/Items/Item"); trace(x.xml()); int len = items.length(); if (len == 0) { if (colname == "GoodsNo") if (colname == L"GoodsNo") { alert("没有此公司型号!"); dw_goods.SetItemString(dw_goods.GetRow(), "GoodsNo", ""); alert(L"没有此公司型号!"); dw_goods.SetItemString(dw_goods.GetRow(), L"GoodsNo", L""); } return 1; } if (len >= 1) { msxml::IXMLDOMElement e = items.item(0); KXMLDOMElement e = items.item(0); int nRow = dw_goods.GetRow(); dw_goods.SetItemString(nRow, "SKUNo", e.getAttribute("SKUNo")); dw_goods.SetItemString(nRow, "ItemID", e.getAttribute("SKUID")); dw_goods.SetItemString(nRow, "ItemName", e.getAttribute("CName")); if (colname == "CustomerItemNo")dw_goods.SetItemString(nRow, "GoodsNo", e.getAttribute("GoodsNo")); if (colname == "GoodsNo")dw_goods.SetItemString(nRow, "CustomerItemNo", e.getAttribute("CustomerItemNo")); dw_goods.SetItemString(nRow, "Packing", e.getAttribute("Packing")); dw_goods.SetItemString(nRow, "InnerQty", e.getAttribute("InnerQty")); dw_goods.SetItemString(nRow, "PackingRate", e.getAttribute("PackingRate")); dw_goods.SetItemString(nRow, "VolumeDesc", e.getAttribute("VolumeDesc")); dw_goods.SetItemString(nRow, "Packages", e.getAttribute("QTYPerPkg")); dw_goods.SetItemString(nRow, "SupplierID", e.getAttribute("SupplierID")); dw_goods.SetItemDisplayString(nRow, "SupplierID", e.getAttribute("SupplierID1")); dw_goods.SetItemString(nRow, "POCreatorID", e.getAttribute("POCreatorID")); dw_goods.SetItemDisplayString(nRow, "POCreatorID", e.getAttribute("POCreatorID1")); dw_goods.SetItemString(nRow, "Picture", e.getAttribute("Picture")); 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, "VolumeDesc") != "" && dw_goods.GetItemString(nRow, "Packages") != "") if (dw_goods.GetItemString(nRow, L"VolumeDesc") != L"" && dw_goods.GetItemString(nRow, L"Packages") != L"") { int qty1 = EvalQtyPerFCL45H(nRow); dw_goods.SetItemString(nRow, "Packages45H", qty1.toString()); dw_goods.SetItemDouble(nRow, "TransportationFee", 5000.0 / qty1); dw_goods.SetItemString(nRow, L"Packages45H", xstring(qty1)); dw_goods.SetItemDouble(nRow, L"TransportationFee", 5000.0 / qty1); } dw_goods.Redraw(); } } else if (colname == "POPrice" || colname == "PaperCardPrice" || colname == "TransportationFee" || colname == "OtherFee" || colname == "ManagementFee") else if (colname == L"POPrice" || colname == L"PaperCardPrice" || colname == L"TransportationFee" || colname == L"OtherFee" || colname == L"ManagementFee") { dw_goods.SetItemDouble(row, "UnitCost", EvalCost(row)); dw_goods.SetItemDouble(row, L"UnitCost", EvalCost(row)); if ((colname == "POPrice" || colname == "PaperCardPrice") && dw_goods.GetItemString(row, "VATRefundRate") != "") if ((colname == L"POPrice" || colname == L"PaperCardPrice") && dw_goods.GetItemString(row, L"VATRefundRate") != L"") { dw_goods.SetItemDouble(row, "VATRefund", EvalRefund(row)); dw_goods.SetItemDouble(row, L"VATRefund", EvalRefund(row)); } } else if (colname == "VATRefundRate" && value != "") else if (colname == L"VATRefundRate" && value != L"") { dw_goods.SetItemDouble(row, "VATRefund", EvalRefund(row)); dw_goods.SetItemDouble(row, L"VATRefund", EvalRefund(row)); } else if (colname == "VolumeDesc" || colname == "Packages") else if (colname == L"VolumeDesc" || colname == L"Packages") { if (dw_goods.GetItemString(row, "VolumeDesc") != "" && dw_goods.GetItemString(row, "Packages") != "") if (dw_goods.GetItemString(row, L"VolumeDesc") != L"" && dw_goods.GetItemString(row, L"Packages") != L"") { int qty = EvalQtyPerFCL45H(row); dw_goods.SetItemString(row, "Packages45H", qty.toString()); dw_goods.SetItemDouble(row, "TransportationFee", EvalTransportationFee(row)); dw_goods.SetItemDouble(row, "UnitCost", EvalCost(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 == "FobUnitPrice") else if (colname == L"FobUnitPrice") { string CurrencyCode = dw_base.GetItemString(1, "CurrencyCode"); string expRate = ""; string exchRate = ""; xstring CurrencyCode = dw_base.GetItemString(1, L"CurrencyCode"); xstring expRate = L""; xstring exchRate = L""; xml x0 = ViewObject::RetrieveData("/sale/data/GDN3/profit/param", "item", "dcomp_amt"); if (x0.GetXmlDoc().selectSingleNode("root/item/@value")) expRate = x0.GetXmlDoc().selectSingleNode("root/item/@value").text; x0 = ViewObject::RetrieveData("/sale/data/GDN3/profit/param", "item", "cryrate"); if (x0.GetXmlDoc().selectSingleNode("root/item/@value")) exchRate = x0.GetXmlDoc().selectSingleNode("root/item/@value").text; 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 == "RMB" || CurrencyCode == "CNY") if (CurrencyCode == L"RMB" || CurrencyCode == L"CNY") { if (exchRate != "") if (exchRate != L"") { double ManagementFee = (val / r1) * r2; double OtherFee = (val / r1) * 0.2; dw_goods.SetItemDouble(row, "ManagementFee", ManagementFee); dw_goods.SetItemDouble(row, "OtherFee", OtherFee); dw_goods.SetItemDouble(row, L"ManagementFee", ManagementFee); dw_goods.SetItemDouble(row, L"OtherFee", OtherFee); } } else { dw_goods.SetItemDouble(row, "ManagementFee", val * 0.15); dw_goods.SetItemDouble(row, "OtherFee", val * 0.2); dw_goods.SetItemDouble(row, L"ManagementFee", val * 0.15); dw_goods.SetItemDouble(row, L"OtherFee", val * 0.2); } dw_goods.SetItemDouble(row, "UnitCost", EvalCost(row)); dw_goods.SetItemDouble(row, L"UnitCost", EvalCost(row)); } if (dw_goods.GetItemString(row, "FobUnitPrice") != "" && dw_goods.GetItemString(row, "POPrice") != "" && dw_goods.GetItemString(row, "VolumeDesc") != "" && dw_goods.GetItemString(row, "Packages") != "") 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, "UnitProfit", EvalUnitProfit(row)); dw_goods.SetItemDouble(row, "ProfitRate", EvalProfitRate(row)); dw_goods.SetItemDouble(row, "SaleProfitRate", EvalSaleProfitRate(row)); dw_goods.SetItemDouble(row, "ExchangeCostRate", EvalExchangeCostRate(row)); 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, "ModifyDate", publiccode::GetCurrentDate()); dw_goods.SetItemString(row, L"ModifyDate", publiccode::GetCurrentDate()); dw_goods.Redraw(); return 1; } int OnBaseItemChanged(ref TNotifyEvent evt, int p) int OnBaseItemChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring value = hdr.data; string dwname = "dw_base"; if (value != "") xstring dwname = L"dw_base"; if (value != L"") { //trace("\r\nsupplierid:"+value); msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']"); //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 == "ExchangeRate") if (colname == L"ExchangeRate") { if (dw_goods.GetRowCount() > 0) { for (int i = 1; i <= dw_goods.GetRowCount(); i++) { dw_goods.SetItemDouble(i, "UnitProfit", EvalUnitProfit(i)); dw_goods.SetItemDouble(i, "ProfitRate", EvalProfitRate(i)); dw_goods.SetItemDouble(i, "SaleProfitRate", EvalSaleProfitRate(i)); dw_goods.SetItemDouble(i, "ExchangeCostRate", EvalExchangeCostRate(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(); @@ -885,19 +899,19 @@ int OnPriceEval() { OpenWindow("dev:xpage[eval.Enquiry3.vx]", cast(dw_goods as int)); OpenWindow(L"dev:xpage[eval.Enquiry3.vx]", cast(dw_goods as int)); return 1; } int OnRowChanged(ref TNotifyEvent evt, int p) int OnRowChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(row, "SKUNo"); ximageview im = GetControl(L"im1"); im.Reset(); xstring skuno = dw_goods.GetItemString(row, L"SKUNo"); OnShowImage(skuno, row); im.Redraw(); @@ -907,88 +921,94 @@ int OnShowImage() { int rowCount = dw_goods.GetRowCount(); string skunos; xstring skunos; for (int i = 1; i <= rowCount; i++) { string skuno = dw_goods.GetItemString(i, "SKUNo"); xstring skuno = dw_goods.GetItemString(i, L"SKUNo"); if (i == 1) skunos = skuno; else skunos += "," + skuno; skunos += L",L" + skuno; } xaserverarg arg_pic = new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUNoList", skunos); arg_pic.AddArg("ParentWindow", GetHWND().toString()); arg_pic.AddArg("OpenFlag", "1"); OpenWindow("dev:xpage[SKU.PictureView.Product3.vx]", cast(arg_pic as int)); xaserverarg arg_pic; arg_pic.AddArg(L"SKUNoList", skunos); arg_pic.AddArg(L"ParentWindow", GetHWND()); arg_pic.AddArg(L"OpenFlag", L"1"); OpenWindow(L"dev:xpage[SKU.PictureView.Product3.vx]",arg_pic); return 1; } int OnShowImage(string skuno, int row) int OnShowImage(xstring skuno, int row) { imageview im = GetControl("im1"); ximageview im = GetControl(L"im1"); xml xp = new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic = new xaserverarg; xml xp ; xaserverarg arg_pic; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUNo", skuno); arg_pic.AddArg(L"SKUNo", skuno); string res = "/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; string customerID = dw_base.GetItemString(1, "CustomerID"); string customerItemNo = dw_goods.GetItemString(row, "CustomerItemNo"); if (customerItemNo != "") 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+":"+customerItemNo); res = "/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; arg_pic.AddArg("CustomerID", customerID); arg_pic.AddArg("CustomerItemNo", customerItemNo); //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 (url::get(res, arg_pic.GetString(), xp) != 1) if (xurl::get(res, arg_pic.GetString(), xp) != 1) { //trace(xp.GetXml()); //trace(xp.xml()); return 1; } else { //trace(xp.GetXml()); msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; for (int ip = 0; ip < lenp; ip++) //trace(xp.xml()); nlistp = xp.selectNodes(L"ImageList/image"); lenp = nlistp.length(); for (ip = 0; ip < lenp; ip++) { hasIamge = true; 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"; 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 = "/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if (url::get(res, arg_pic.GetString(), xp) != 1) res = L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if (xurl::get(res, arg_pic.GetString(), xp) != 1) { //trace(xp.GetXml()); //trace(xp.xml()); return 1; } else { nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); lenp = nlistp.length; nlistp = xp.selectNodes(L"ImageList/image"); lenp = nlistp.length(); for (ip = 0; ip < lenp; ip++) { xitem = nlistp.item(ip); picname = xitem.selectSingleNode("PicPath").text; goodno = xitem.selectSingleNode("GoodsNo").text; if (picname == "/business/products/Thumbs//") picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; 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); } } @@ -999,26 +1019,26 @@ int OnPrint() { if (dw_base.GetItemString(1, "EnquiryNo") == "") if (dw_base.GetItemString(1, L"EnquiryNo") == L"") { alert("请先保存数据!"); alert(L"请先保存数据!"); return 1; } xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("EntityName", "Enquiry", ""); arg.AddArg("EntityID", dw_base.GetItemString(1, "EnquiryID"), ""); arg.AddArg("EntityNo", dw_base.GetItemString(1, "EnquiryNo"), ""); int p = arg.ptr_native_; openUrl("/sale/view/view.base/xpage/Template/PrintViewEx", p); 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(string SeqNoColumn) int ReSeqNo(xstring SeqNoColumn) { for (int i = 1; i <= dw_goods.GetRowCount(); i++) { dw_goods.SetItemString(i, SeqNoColumn, (i * 10).toString()); dw_goods.SetItemString(i, SeqNoColumn, xstring((i * 10))); } dw_goods.Redraw(); return 1; @@ -1027,56 +1047,56 @@ int OnAskGoodsNo() { int rowCount = dw_goods.GetRowCount(); string skunos = ""; xstring skunos = L""; for (int i = 1; i <= rowCount; i++) { if (dw_goods.GetItemString(i, "SKUNo") != "" && dw_goods.GetItemString(i, "GoodsNo") == "" && dw_goods.GetItemString(i, "Submitter") == "") if (dw_goods.GetItemString(i, L"SKUNo") != L"" && dw_goods.GetItemString(i, L"GoodsNo") == L"" && dw_goods.GetItemString(i, L"Submitter") == L"") { if (skunos == "") skunos = dw_goods.GetItemString(i, "SKUNo"); if (skunos == L"") skunos = dw_goods.GetItemString(i, L"SKUNo"); else skunos += "," + dw_goods.GetItemString(i, "SKUNo"); skunos += L",L" + dw_goods.GetItemString(i, L"SKUNo"); } } xaserverarg arg = ViewObject::MakeArg(); arg.AddArg("SKUNoList", skunos); OpenWindow("dev:xpage[Product.FetchNo.vx]", cast(arg as int)); xaserverarg arg ; arg.AddArg(L"SKUNoList", skunos); OpenWindow(L"dev:xpage[Product.FetchNo.vx]",arg ); return 1; } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmNewProduct") if (comdid == L"xmNewProduct") { //xaserverarg arg = new xaserverarg; //arg.setNativePointer(arg.CreateInstance()); openUrl("/sale/view/Enquiry3/xpage/quick/newestproduct", GetHWND()); //xaserverarg arg; // openUrl(L"/sale/view/Enquiry3/xpage/quick/newestproduct"); return 1; } else if (comdid == "xmPrint") return OnPrint(); else if (comdid == "xmImage") else if (comdid == L"xmPrint") return OnPrint(); else if (comdid == L"xmImage") return OnShowImage(); else if (comdid == "xmShare") else if (comdid == L"xmShare") return OnShare(); else if (comdid == "xmImportProduct") else if (comdid == L"xmImportProduct") { string str = GetControl("goods").GetText(); xstring str = xcontrol(GetControl(L"goods")).GetText(); str = str.trim(); if (str == "") if (str == L"") { xaserverarg arg1 = new xaserverarg; xaserverarg arg1; arg1.setNativePointer(arg1.CreateInstance()); arg1.AddArg("HWND", GetHWND().toString()); arg1.AddArg("CustomerID", dw_base.GetItemString(1, "CustomerID")); OpenWindow("dev:xpage[Entity.Product.Select.vx]", cast(arg1 as int)); arg1.AddArg(L"HWND", GetHWND().toString()); 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) { imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(row, "SKUNo"); ximageview im = GetControl(L"im1"); im.Reset(); xstring skuno = dw_goods.GetItemString(row, L"SKUNo"); OnShowImage(skuno, row); im.Redraw(); } @@ -1085,119 +1105,120 @@ ImportProductByText(str); return 1; } else if (comdid == "xmSave") else if (comdid == L"xmSave") { OnSave(); return 1; } else if (comdid == "xmPriceEval") else if (comdid == L"xmPriceEval") return OnPriceEval(); else if (comdid == "xmOpen") else if (comdid == L"xmOpen") { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); OpenWindow("dev:xpage[SOEnquiry.list.vx]", cast(arg as int)); if (arg.GetArgString("id") != "") return OnRetrieve(arg.GetArgString("id")); 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 == "xmDeleteRow") else if (comdid == L"xmDeleteRow") { if (dw_goods.GetItemString(dw_goods.GetRow(), "QuoteNo") != "") if (dw_goods.GetItemString(dw_goods.GetRow(), L"QuoteNo") != L"") { alert("产品已被应用,不能删除"); alert(L"产品已被应用,不能删除"); return 1; } dw_goods.DeleteRow(0); return 1; } else if (comdid == "xmBOMSchema") else if (comdid == L"xmBOMSchema") { OpenWindow("dev:xpage[ProductSchema.vx]", 0); OpenWindow(L"dev:xpage[ProductSchema.vx]", 0); return 1; } else if (comdid == "xmProductDesc") else if (comdid == L"xmProductDesc") { xaserverarg arg2 = new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); xaserverarg arg2; int row2 = dw_goods.GetRow(); if (row2 < 1) return 0; string str2 = dw_goods.GetItemString(row2, "ProductDesc"); arg2.AddArg("value", str2); OpenWindow("dev:xpage[memo.edit.new.vx]", arg2.getNativePointer()); if (arg2.GetArgString("comdid") == "xmOK") 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("value"); str2 = arg2.GetArgString(L"value"); dw_goods.AcceptText(); dw_goods.SetItemString(row2, "ProductDesc", str2); dw_goods.SetItemString(row2, L"ProductDesc", str2); dw_goods.Redraw(); } return 1; } else if (comdid == "xmReSeqNo") else if (comdid == L"xmReSeqNo") { if (win32::MessageBox(GetHWND(), "是否重置序号!", "提示1", 1) == 2) if (MessageBox(GetHWND(), L"是否重置序号!", L"提示1", 1) == 2) return 1; return ReSeqNo("SeqNo"); return ReSeqNo(L"SeqNo"); } else if (comdid == "xmAddRow") else if (comdid == L"xmAddRow") { int nRow = dw_goods.InsertRow(0); SetSeqNo(dw_goods, "SeqNo", nRow); dw_goods.SetItemString(nRow, "UOMCode", "007"); dw_goods.SetItemDisplayString(nRow, "UOMCode", "PCS"); dw_goods.SetItemString(nRow, "KOPCode", "120"); dw_goods.SetItemDisplayString(nRow, "KOPCode", "CTNS"); 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 = new xaserverarg; xaserverarg arg3; arg3.setNativePointer(arg3.CreateInstance()); int row3 = dw_goods.GetRow(); if (row3 < 1) return 0; dw_goods.SetItemString(nRow, "SKUNo", dw_goods.GetItemString(row3, "SKUNo")); dw_goods.SetItemString(nRow, "ItemID", dw_goods.GetItemString(row3, "ItemID")); 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 == "xmClose") else if (comdid == L"xmClose") { CloseWindow(); return 1; } else if (comdid.find("ImportXml:", 0) == 0) else if (comdid.find(L"ImportXml:", 0) == 0) { string strImport = comdid.mid("ImportXml:".length(), 9999); xstring strImport = comdid.mid(L"ImportXml:".length(), 9999); ImportProductByText(strImport); return 1; } else if (comdid == "xmAskGoodsNo") else if (comdid == L"xmAskGoodsNo") { return OnAskGoodsNo(); } return 0; } int OnImgDBClicked(ref TNotifyEvent evt, int pr) int OnImgDBClicked(TEvent* evt, int pr) { ref IMGNNMHDR nmtv = evt.pnmh; string src = nmtv.path; IMGNNMHDR& nmtv = *(IMGNNMHDR*)evt->notify.pnmh; xstring src = nmtv.path; /*if(src.length() > 60) src = src.right(44); else src=src.mid(src.find("Thumbs", 0)+6, 50); src=src.mid(src.find(L"Thumbs", 0)+6, 50); */ xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); //arg.AddArg("src","/business/products/chanpin"+src); arg.AddArg("src", src); xaserverarg& arg = *new xaserverarg; //arg.AddArg(L"src",L"/business/products/chanpin"+src); arg.AddArg(L"src", src); //win::OpenWindow("dev:xpage[BigPicture.vx]",arg); //win::OpenWindow(L"dev:xpage[BigPicture.vx]",arg); int h = openUrl("/sale/view/ProductLibrary/xpage/bigpictureview", arg); int h = openUrl(L"/sale/view/ProductLibrary/xpage/bigpictureview", &arg); return 1; /* xwin x = new xwin; x.setNativePointer(h); m_winHwnd = x.GetHWND(); string sh = doc.GetXml(); xstring sh = doc.xml(); int p = cast(sh as int); win32::SendMessage(m_winHwnd, 0x401, p, 0); */ @@ -1205,30 +1226,30 @@ } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnItemAskStyle(ref TNotifyEvent evt, int p) int OnItemAskStyle(TEvent* evt, int p) { DWASKSTYLENMHDR& hdr = *(DWASKSTYLENMHDR*)evt->notify.pnmh; int DMS_CSSSTYLE = 0x8; ref DWASKSTYLENMHDR hdr = trust(evt.pnmh as ref DWASKSTYLENMHDR); int row = hdr.row; int col = hdr.col; string colname = hdr.colname; xstring colname = hdr.colname; int rows = dw_goods.GetRowCount(); if (row < 1 || row > rows) { return 1; } if (colname == "POPrice") if (colname == L"POPrice") { if (dw_goods.GetItemTipString(row, colname) != "") if (dw_goods.GetItemTipString(row, colname) != L"") { hdr.mask = DMS_CSSSTYLE; hdr.cssstyle = "color:#cc0000"; hdr.pCssStyle = (LPTSTR)L"color:#cc0000"; } } return 1; @@ -1236,34 +1257,34 @@ int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&EnquiryMaintView::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_goods", "DWV_ITEMCHANGED", OnItemChanged); AttachEvent("dw_base", "DWV_ITEMCHANGED", OnBaseItemChanged); AttachEvent("im1", "IMG_LDBCLICK", OnImgDBClicked); AttachEvent("dw_goods", "DWV_ROWFOCUSCHANGED", OnRowChanged); 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("dw_goods", "DWV_ASKSTYLE", OnItemAskStyle); AttachEvent(L"dw_goods", L"DWV_ASKSTYLE", (FEvent)&EnquiryMaintView::OnItemAskStyle); return 1; } int OnRetrieve(string id) int OnRetrieve(xstring id) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("id", id); if (getUrl("/sale/data/Enquiry/maint", arg.GetString(), x) != 1) xml x ; xaserverarg arg; arg.AddArg(L"id", id); if (getUrl(L"/sale/data/Enquiry/maint", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); alert(x.text()); return -1; } else { //alert(x.GetXml()); //alert(x.xml()); dw_base.Retrieve(x); dw_goods.Retrieve(x); dw_base.Redraw(); @@ -1271,100 +1292,100 @@ if (dw_goods.GetRowCount() > 0) { imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(1, "SKUNo"); ximageview im = GetControl(L"im1"); im.Reset(); xstring skuno = dw_goods.GetItemString(1, L"SKUNo"); OnShowImage(skuno, 1); im.Redraw(); } //x.LoadXml("<Enquiry/>"); //x.LoadXml(L"<Enquiry/>"); //dw_base.RetrieveDiff(x); //dw_goods.RetrieveDiff(x); //dw_goods.SetItemTipString(1,"POPrice","21.4 2018/07/08\r\n23.4 2018/07/12"); //dw_goods.SetItemTipString(1,L"POPrice",L"21.4 2018/07/08\r\n23.4 2018/07/12"); } return 1; } int Oncopy(string EnquiryID, string ItemID) int Oncopy(xstring EnquiryID, xstring ItemID) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); xaserverarg arg; dw_base.SetItemString(1, "ValidDay", arg.GetArgString("ValidDay")); dw_base.SetItemString(1, "SONo", arg.GetArgString("SONo")); dw_base.SetItemString(1, "Remark", arg.GetArgString("Remark")); dw_base.SetItemString(1, "Source", arg.GetArgString("Source")); dw_base.SetItemString(1, "PayTerm", arg.GetArgString("PayTerm")); dw_base.SetItemString(1, "SupplierID", arg.GetArgString("SupplierID")); dw_base.SetItemDisplayString(1, "SupplierID", arg.GetArgString("SupplierID/@_displaystring")); dw_base.SetItemString(1, "CustomerContactName", arg.GetArgString("CustomerContactName")); dw_base.SetItemString(1, "ContactTel", arg.GetArgString("ContactTel")); 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")); string sdate = publiccode::GetCurrentDate(); dw_base.SetItemString(1, "EnquiryDate", sdate); string suserid = publiccode::GetUser().id; string susername = publiccode::GetUser().name; dw_base.SetItemString(1, "SalespersonID", suserid); dw_base.SetItemDisplayString(1, "SalespersonID", susername); dw_base.SetItemString(1, "CompanyID", "E9E3C542-062C-4957-B8F4-9B92C3E351FC"); dw_base.SetItemDisplayString(1, "CompanyID", "宁波家尔佳进出口有限公司"); 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("/sale/data/Enquiry/Oncopy", "EnquiryID", EnquiryID, "ItemID", ItemID); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/Oncopy", L"EnquiryID", EnquiryID, L"ItemID", ItemID); if (!x) return 1; //alert(x.GetXml()); msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("/Enquiry/Item"); int len = items.length; //alert(x.xml()); KXMLDOMNodeList items = x.selectNodes(L"/Enquiry/Item"); int len = items.length(); for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = items.item(i); KXMLDOMElement e = items.item(i); dw_goods.InsertRow(i); int nRow = dw_goods.GetRow(); SetSeqNo(dw_goods, "SeqNo", nRow); dw_goods.SetItemString(nRow, "UOMCode", "007"); dw_goods.SetItemDisplayString(nRow, "UOMCode", "PCS"); dw_goods.SetItemString(nRow, "KOPCode", "120"); dw_goods.SetItemDisplayString(nRow, "KOPCode", "CTNS"); if (e.selectSingleNode("ItemName"))dw_goods.SetItemString(nRow, "ItemName", e.selectSingleNode("ItemName").text); if (e.selectSingleNode("GoodsNo"))dw_goods.SetItemString(nRow, "GoodsNo", e.selectSingleNode("GoodsNo").text); if (e.selectSingleNode("SKUNo"))dw_goods.SetItemString(nRow, "SKUNo", e.selectSingleNode("SKUNo").text); if (e.selectSingleNode("ItemMiniQty"))dw_goods.SetItemString(nRow, "ItemMiniQty", e.selectSingleNode("ItemMiniQty").text); if (e.selectSingleNode("Picture"))dw_goods.SetItemString(nRow, "Picture", e.selectSingleNode("Picture").text); if (e.selectSingleNode("ItemID"))dw_goods.SetItemString(nRow, "ItemID", e.selectSingleNode("ItemID").text); if (e.selectSingleNode("ProductDesc"))dw_goods.SetItemString(nRow, "ProductDesc", e.selectSingleNode("ProductDesc").text); if (e.selectSingleNode("Packing"))dw_goods.SetItemString(nRow, "Packing", e.selectSingleNode("Packing").text); if (e.selectSingleNode("POPrice"))dw_goods.SetItemString(nRow, "POPrice", e.selectSingleNode("POPrice").text); if (e.selectSingleNode("PriceType"))dw_goods.SetItemString(nRow, "PriceType", e.selectSingleNode("PriceType").text); if (e.selectSingleNode("InnerQty"))dw_goods.SetItemString(nRow, "InnerQty", e.selectSingleNode("InnerQty").text); if (e.selectSingleNode("PackingRate"))dw_goods.SetItemString(nRow, "PackingRate", e.selectSingleNode("PackingRate").text); if (e.selectSingleNode("VolumeDesc"))dw_goods.SetItemString(nRow, "VolumeDesc", e.selectSingleNode("VolumeDesc").text); if (e.selectSingleNode("SampleFee"))dw_goods.SetItemString(nRow, "SampleFee", e.selectSingleNode("SampleFee").text); if (e.selectSingleNode("TestFee"))dw_goods.SetItemString(nRow, "TestFee", e.selectSingleNode("TestFee").text); if (e.selectSingleNode("ModelFee"))dw_goods.SetItemString(nRow, "ModelFee", e.selectSingleNode("ModelFee").text); if (e.selectSingleNode("BOMPartNo"))dw_goods.SetItemString(nRow, "BOMPartNo", e.selectSingleNode("BOMPartNo").text); if (e.selectSingleNode("ModifyDate"))dw_goods.SetItemString(nRow, "ModifyDate", e.selectSingleNode("ModifyDate").text); 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("EnquiryDate"))dw_goods.SetItemString(nRow, "EnquiryDate", e.selectSingleNode("EnquiryDate").text); if (e.selectSingleNode("EnquiryPriceListID"))dw_goods.SetItemString(nRow, "EnquiryPriceListID", e.selectSingleNode("EnquiryPriceListID").text); if (e.selectSingleNode("RelEnquiryLineID"))dw_goods.SetItemString(nRow, "RelEnquiryLineID", e.selectSingleNode("RelEnquiryLineID").text); if (e.selectSingleNode("PirorEnquiryLineID"))dw_goods.SetItemString(nRow, "PirorEnquiryLineID", e.selectSingleNode("PirorEnquiryLineID").text); if (e.selectSingleNode("RealEnquiryLineID"))dw_goods.SetItemString(nRow, "RealEnquiryLineID", e.selectSingleNode("RealEnquiryLineID").text); if (e.selectSingleNode("category"))dw_goods.SetItemString(nRow, "category", e.selectSingleNode("category").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, "VolumeDesc") != "" && dw_goods.GetItemString(nRow, "Packages") != "") if (dw_goods.GetItemString(nRow, L"VolumeDesc") != L"" && dw_goods.GetItemString(nRow, L"Packages") != L"") { int qty = EvalQtyPerFCL45H(nRow); dw_goods.SetItemString(nRow, "Packages45H", qty.toString()); dw_goods.SetItemDouble(nRow, "TransportationFee", 5000.0 / qty); dw_goods.SetItemString(nRow, L"Packages45H", xstring(qty)); dw_goods.SetItemDouble(nRow, L"TransportationFee", 5000.0 / qty); } } @@ -1373,54 +1394,54 @@ int OnInit() { //公司抬头、报价人、报价日期 string sdate = publiccode::GetCurrentDate(); dw_base.SetItemString(1, "EnquiryDate", sdate); string suserid = publiccode::GetUser().id; string susername = publiccode::GetUser().name; dw_base.SetItemString(1, "SalespersonID", suserid); dw_base.SetItemDisplayString(1, "SalespersonID", susername); dw_base.SetItemString(1, "CompanyID", "E9E3C542-062C-4957-B8F4-9B92C3E351FC"); dw_base.SetItemDisplayString(1, "CompanyID", "宁波家尔佳进出口有限公司"); 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(string items, string pricebill = "") int RetrieveItemList(xstring items, xstring pricebill = L"") { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("ItemList", items); xml x ; xaserverarg arg; arg.AddArg(L"ItemList", items); //alert(items); string dataurl = "/sale/data/Enquiry/maint/items"; if (pricebill == "pricebill") dataurl = "/sale/data/Enquiry/maint/pricelist/items"; if (pricebill == "quote") dataurl = "/sale/data/Enquiry/FetchItemListByQuoteItemID"; 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.GetXmlDoc().text); alert(x.text()); return -1; } else { trace("*****" + x.GetXml() + "*****"); //trace(L"*****" + x.xml() + L"*****"); dw_goods.Retrieve(x); dw_goods.Redraw(); ReSeqNo("SeqNo"); ReSeqNo(L"SeqNo"); if (dw_goods.GetRowCount() > 0) { if (dw_goods.GetItemString(1, "customerno")) if (dw_goods.GetItemString(1, L"customerno")) { dw_base.SetItemString(1, "CustomerNo", dw_goods.GetItemString(1, "customerno")); dw_base.SetItemString(1, L"CustomerNo", dw_goods.GetItemString(1, L"customerno")); } imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(1, "SKUNo"); ximageview im = GetControl(L"im1"); im.Reset(); xstring skuno = dw_goods.GetItemString(1, L"SKUNo"); OnShowImage(skuno, 1); im.Redraw(); } @@ -1430,72 +1451,73 @@ int onload() { dw_goods = GetControl("dw_goods"); //dw_goods .openUrl("/sale/view/Enquiry3/template/goods"); dw_goods.openUrl("/sale/view/Enquiry3/template/item/pricelist"); dw_goods.SetColumnState("ItemID", false); //dw_goods.SetColumnState("Picture",false); dw_goods.SetColumnState("category", false); dw_goods.SetColumnState("RealEnquiryLineID", false); dw_goods.SetColumnState("RelEnquiryLineID", false); dw_goods.SetColumnState("BOMPartNo", false); 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("dw_base"); dw_base = GetControl(L"dw_base"); if (GetParam()) if (GetWinParam()) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); xaserverarg arg=GetArg(); sheetname = arg.GetArgString("sheetname"); if (sheetname == "tab_list2") sheetname = arg.GetArgString(L"sheetname"); if (sheetname == L"tab_list2") { dw_base.openUrl("/sale/view/Enquiry3/template/base2"); //dw_base.SetItemString(1,"Source","客户询价"); dw_goods.SetColumnState("SupplierID", true); 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("/sale/view/Enquiry3/template/base"); //dw_base.SetItemString(1,"Source","客户询价"); dw_goods.SetColumnState("SupplierID", false); 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); string EnquiryNo = arg.GetArgString("EnquiryNo"); string EnquiryID = arg.GetArgString("EnquiryID"); string ItemID = arg.GetArgString("ItemID"); if (EnquiryNo == "") EnquiryNo = arg.GetArgString("EntityNo"); if (EnquiryNo != "") 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 != "") { else if (EnquiryID != L"") { Oncopy(EnquiryID, ItemID); } else { OnInit(); if (arg.GetArgString("CustomerID") != "") if (arg.GetArgString(L"CustomerID") != L"") { dw_base.SetItemDisplayString(1, "SupplierID", arg.GetArgString("CustomerName")); dw_base.ItemChangeTo(1, "SupplierID", arg.GetArgString("CustomerID")); string dwname = "dw_base"; string colname = "SupplierID"; string value = arg.GetArgString("CustomerID"); msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']"); 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("EntityIDList") != "") if (arg.GetArgString(L"EntityIDList") != L"") { RetrieveItemList(arg.GetArgString("EntityIDList"), arg.GetArgString("Source")); RetrieveItemList(arg.GetArgString(L"EntityIDList"), arg.GetArgString(L"Source")); } } @@ -1519,4 +1541,3 @@ return 1; } }; ] jrj/project/business/Enquiry/EnquiryEx.quote.vx.cpp
@@ -1,31 +1,44 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> unit trade [ class EnquiryExQuoteWin : public frame #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) EnquiryExQuoteWin : public xframe { public: xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: EnquiryExQuoteWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static EnquiryExQuoteWin* CreateInstance(void* implPtr, void* hWnd) { EnquiryExQuoteWin* pWin = new EnquiryExQuoteWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; @@ -34,19 +47,19 @@ int OnSearch() { xml x = new xml; string EnquiryNo; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = GetParam(); xcontrol QuoteNo = GetControl("QuoteNo"); xml x ; xstring EnquiryNo; xaserverarg arg; xcontrol QuoteNo = GetControl(L"QuoteNo"); EnquiryNo = QuoteNo.GetText(); //alert(EnquiryNo); //string PartyID = arg.GetArgString("PartyID"); //x = ViewObject::RetrieveData("/sale/data/Customerv3/entity/XmShare"); //xstring PartyID = arg.GetArgString(L"PartyID"); //x = ViewObject::RetrieveData(L"/sale/data/Customerv3/entity/XmShare"); x = ViewObject::RetrieveData("/sale/data/Quote3/maint", "id", EnquiryNo); x = ViewObject::RetrieveData(L"/sale/data/Quote3/maint", L"id", EnquiryNo); if (x)dw_list.Retrieve(x); dw_list.SetReadOnly(true); dw_list.Redraw(); @@ -55,7 +68,7 @@ } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); @@ -64,95 +77,95 @@ int OnSaveAs() { int i = dw_list.SaveAs(""); int i = dw_list.SaveAs(L""); if (i == 1) alert("导出成功"); alert(L"导出成功"); return 1; } int OnMatch() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xaserverarg arg; int row = dw_list.GetNextSelectRow(1); string items = ""; xstring items = L""; while (row > 0 && row <= dw_list.GetRowCount()) { msxml::IXMLDOMElement e = dw_list.GetRowElement(row); string id = e.selectSingleNode("@guid").text; KXMLDOMElement e = dw_list.GetRowElement(row); xstring id = e.selectSingleNode(L"@guid").text(); if (items == "") if (items == L"") items = id; else items += "," + id; items += L",L" + id; row = dw_list.GetNextSelectRow(row + 1); } xml x = ViewObject::RetrieveData("/sale/data/Enquiry/Update/UpdateQuoteLine", "ItemList", items); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/Update/UpdateQuoteLine", L"ItemList", items); OnSearch(); return 1; } int OnPriceListSupplierEx() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("sheetname", "tab_list2"); arg.AddArg("EntityName", "Enquiry3"); arg.AddArg("EntityID", ""); arg.AddArg("EntityNo", ""); arg.AddArg("Source", "quote"); arg.AddArg("QuoteNo", GetControl("QuoteNo").GetText()); xaserverarg arg; arg.AddArg(L"sheetname", L"tab_list2"); arg.AddArg(L"EntityName", L"Enquiry3"); arg.AddArg(L"EntityID", L""); arg.AddArg(L"EntityNo", L""); arg.AddArg(L"Source", L"quote"); arg.AddArg(L"QuoteNo", xcontrol(GetControl(L"QuoteNo")).GetText()); int row = dw_list.GetNextSelectRow(1); string items = ""; xstring items = L""; //while(row > 0 && row <= dw_list.GetRowCount()) for (row = 1; row <= dw_list.GetRowCount(); row++) { msxml::IXMLDOMElement e = dw_list.GetRowElement(row); string id = e.selectSingleNode("@guid").text; KXMLDOMElement e = dw_list.GetRowElement(row); xstring id = e.selectSingleNode(L"@guid").text(); if (items == "") if (items == L"") items = id; else items += "," + id; items += L",L" + id; //row = dw_list.GetNextSelectRow(row + 1); } arg.AddArg("EntityIDList", items); int p = arg.ptr_native_; OpenWindow("dev:xpage[Enquiry.maint.vx]", p); arg.AddArg(L"EntityIDList", items); OpenWindow(L"dev:xpage[Enquiry.maint.vx]", arg); return 1; } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmClose") if (comdid == L"xmClose") { CloseWindow(); return 1; } if (comdid == "xmSearch") if (comdid == L"xmSearch") { OnSearch(); return 1; } if (comdid == "xmMatch") if (comdid == L"xmMatch") { OnMatch(); return 1; } if (comdid == "xmMaint") if (comdid == L"xmMaint") { //win32::HideWindow(1); OnPriceListSupplierEx(); CloseWindow(); return 1; } if (comdid == "xmSave") if (comdid == L"xmSave") { return 1; } if (comdid == "xmSaveAs") if (comdid == L"xmSaveAs") { return OnSaveAs(); } @@ -160,29 +173,30 @@ } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&EnquiryExQuoteWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent(L"WM_SETFOCUS", (FEvent)&EnquiryExQuoteWin::OnSetFocus); return 1; } /*int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("xxx","xxx"); if (getUrl("",arg.GetString(),x)!=1) xml x ; xaserverarg arg; arg.AddArg(L"xxx",L"xxx"); if (getUrl(L"",arg.GetString(),x)!=1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; }else { @@ -196,21 +210,22 @@ int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/Quote3/template/item/pricelist"); dw_list.SetColumnState("ItemID", false); dw_list.SetColumnState("Picture", false); dw_list.SetColumnState("category", false); dw_list.SetColumnState("RealEnquiryLineID", false); dw_list.SetColumnState("RelEnquiryLineID", false); SetArg(); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Quote3/template/item/pricelist"); dw_list.SetColumnState(L"ItemID", false); dw_list.SetColumnState(L"Picture", false); dw_list.SetColumnState(L"category", false); dw_list.SetColumnState(L"RealEnquiryLineID", false); dw_list.SetColumnState(L"RelEnquiryLineID", false); dw_list.SetSelectionMode(3); if (GetParam()) if (GetWinParam()) { string no = GetParam(); xstring no = GetWinParam(); GetControl("QuoteNo").SetText(no); xcontrol(GetControl(L"QuoteNo")).SetText(no); OnSearch(); } @@ -226,4 +241,3 @@ return 1; } }; ] jrj/project/business/Enquiry/Entity.Product.Select.cpp
@@ -1,17 +1,26 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "multi.vbind.vbind.wface.vd" use "productlibrary.vd" use "shoppingcart.vd" #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 "xcontrol/xcheckbox.hpp" #include "xcontrol/xshtml.hpp" unit trade [ class EntityProductSelectWin : public xwin #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "viewobject/shoppingcart.view.hpp" #include "viewobject/productlibrary.view.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) EntityProductSelectWin : public xwin { public: int hObject = 0; string CustomerID; string SupplierID; string m_customer; xstring CustomerID; xstring SupplierID; xstring m_customer; //产品库产品列表 xdwgrid dw_list; @@ -27,26 +36,33 @@ xnode m_agentNode; //Agent Condition xtreeview tv_folder; string agentFor; msxml::IXMLDOMElement imageElement; xstring agentFor; KXMLDOMElement imageElement; string impStr; string tname; xstring impStr; xstring tname; public: EntityProductSelectWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {} public: static EntityProductSelectWin* CreateInstance(void* implPtr, void* hWnd) { EntityProductSelectWin* pWin = new EntityProductSelectWin(implPtr, (HWND)hWnd); return pWin; } int FillGoodsCarList() { xcombobox xc = GetControl("frame:cbx_goodscar"); xcombobox xc = GetControl(L"frame:cbx_goodscar"); if (!xc) return 0; xml x = ShoppingCartView::GetRoleList(CustomerID); if (!x) return 0; xc.SetText("==选择购物车=="); xc.SetText(L"==选择购物车==L"); msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//item"); int len = nlist.length; KXMLDOMNodeList nlist = x.selectNodes(L"//item"); int len = nlist.length(); for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("name"); KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); xcombobox::AddItem(xc.GetId(), name); } return 1; @@ -54,144 +70,144 @@ int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); return 1; } msxml::IXMLDOMElement OnGetCarListRowElement(int row = 0) KXMLDOMElement 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); KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row); return e; } int OnShowImage(string skuid) int OnShowImage(xstring skuid) { imageview im = GetControl("im1"); ximageview im = GetControl(L"im1"); //im.RemoveImage(); im.ResetEx(); im.Reset(); xml xp = new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic = new xaserverarg; xml xp ; xaserverarg arg_pic; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUID", skuid); if (url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1) arg_pic.AddArg(L"SKUID", skuid); if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1) { trace("xxx", xp.GetXml()); trace(L"error:" + xstring(xp.xml(), true)); } else { //trace(skuid+" "+xp.GetXml()); imageElement = xp.GetXmlDoc().documentElement; msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; //trace(skuid+L" "+xp.xml()); imageElement = xp.documentElement(); KXMLDOMNodeList nlistp = xp.selectNodes(L"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, ""); KXMLDOMElement xitem = nlistp.item(ip); xstring picname = xitem.selectSingleNode(L"PicPath").text(); xstring 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, L""); } im.Redraw(); //win32::SendMessage(im.GetId(),0x000f,0,1); //win32::InvalidateRect(im.GetId(),cast(0 as ref xrect),true); //SendMessage(im.GetId(),0x000f,0,1); //InvalidateRect(im.GetId(),cast(0 as ref xrect),true); } return 1; } int OnShowImage(string skuid, string customerItemNo) int OnShowImage(xstring skuid, xstring customerItemNo) { imageview im = GetControl("im1"); ximageview im = GetControl(L"im1"); //im.RemoveImage(); im.ResetEx(); im.Reset(); xml xp = new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic = new xaserverarg; xml xp ; xaserverarg arg_pic; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUID", skuid); arg_pic.AddArg("CustomerID", m_customer); arg_pic.AddArg("CustomerItemNo", customerItemNo); arg_pic.AddArg(L"SKUID", skuid); arg_pic.AddArg(L"CustomerID", m_customer); arg_pic.AddArg(L"CustomerItemNo", customerItemNo); if (url::get("/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1) if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1) { trace("error:" + xp.GetXml()); trace(L"error:" + xstring(xp.xml(), true)); } else { imageElement = xp.GetXmlDoc().documentElement; msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; imageElement = xp.documentElement(); KXMLDOMNodeList nlistp = xp.selectNodes(L"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, ""); KXMLDOMElement xitem = nlistp.item(ip); xstring picname = xitem.selectSingleNode(L"PicPath").text(); xstring 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, L""); } im.Redraw(); } return 1; } int OnRowChanged(ref TNotifyEvent evt, int p) int OnRowChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; htmlctrl xs = GetControl("html_detail"); string html = makeHtml(row); xshtml xs = GetControl(L"html_detail"); xstring html = makeHtml(row); xs.SetContent(html); xs.Redraw(); string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); OnShowImage(id); return 1; } int OnGoodsCarRowChanged(ref TNotifyEvent evt, int p) int OnGoodsCarRowChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; htmlctrl xs = GetControl("html_detail"); string html = makeGoodscarHtml(row); xshtml xs = GetControl(L"html_detail"); xstring html = makeGoodscarHtml(row); xs.SetContent(html); xs.Redraw(); string id = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID"); if (m_customer != "") xstring id = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID"); if (m_customer != L"") { string customerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo"); xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo"); OnShowImage(id, customerItemNo); } else @@ -207,8 +223,8 @@ int IDOK = 1; int MB_OKCANCEL = 1; int MB_ICONQUESTION = 32; if (win32::MessageBox(GetHWND(), "确认删除指定的项,删除后将不能恢复?", "提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); if (MessageBox(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0); return 1; @@ -220,30 +236,30 @@ return 1; } int OnCkbCLick(ref TEvent evt, int p) int OnCkbCLick(TEvent* evt, int p) { xcheckbox cbx_1 = GetControl("frame:cbx1"); int state = cbx_1.GetCheck(cbx_1.GetId()); xcheckbox cbx_1 = GetControl(L"frame:cbx1"); int state = cbx_1.GetCheck(); return SetSelectState(dw_list, state); } int OnCkbCLick2(ref TEvent evt, int p) int OnCkbCLick2(TEvent* evt, int p) { xcheckbox cbx_2 = GetControl("frame:cbx2"); int state = cbx_2.GetCheck(cbx_2.GetId()); xcheckbox cbx_2 = GetControl(L"frame:cbx2"); int state = cbx_2.GetCheck(); return SetSelectState(dwc_list, state); } xml GetGoodsPropList(string guid) xml GetGoodsPropList(xstring 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) xml x ; xaserverarg arg; arg.AddArg(L"guid", guid); if (xurl::get(L"/sale/data/SO/goods/goodsprop/list", arg.GetString(), x) != 1) { string error = x.GetXmlDoc().text; xstring error = x.text(); alert(error); } return x; @@ -251,59 +267,59 @@ string Up(string name) { string str = name.mid(0, 2); str = str.upper(); return xaserver::UploadFile("product" + str, name + ".jpg", this.GetHWND(), "", false); xstring Up(xstring name) { xstring str = name.mid(0, 2); str = str.toUpper(); return xaserver::UploadFile(L"product" + str, name + L".jpg",GetHWND(), L"", false); } int OnAddImage() { if (m_customer != "") return OnAddImageEx(); if (m_customer != L"") 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") KXMLDOMElement e = g_xdoc_product.getRowElement(L"data/Item", row); xstring skuid = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); xstring SKUNo = g_xdoc_product.getData(0, L"data/Item", row, L"SKUNo"); xstring id = ViewObject::GetGuid(); xstring ret1 = Up(id); if (ret1 == L"-1") return -1; if (ret1 == L"0") { alert("上传图片失败"); alert(L"上传图片失败"); return -1; } string originfile = ret1; xstring originfile = ret1; //alert(originfile); string ext = originfile.right(7); if (ext.find(".") >= 0) ext = ext.mid(ext.find(".") + 1, 9999); xstring ext = originfile.right(7); if (ext.find(L".") >= 0) ext = ext.mid(ext.find(L".") + 1, 9999); else ext = "jpg"; ext = L"jpg"; // 图片名加入数据库 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>" + xml x ; x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" + "<ProductPictureID>" + id + L"</ProductPictureID>" + "<OriginFile>" + originfile + L"</OriginFile>" + "<FileExt>" + ext + L"</FileExt>" + "<SKUID>" + skuid + L"</SKUID>" + "<Name>[" + SKUNo.trim() + L"]</Name>" + "<FileName>" + id + L".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) xaserverarg arg; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); alert(x.text()); return -1; } dw_list.SetItemString(row, "pic", "*"); dw_list.SetItemString(row, L"pic", L"*"); dw_list.Redraw(); //刷新一下界面,显示图片 OnShowImage(skuid); @@ -315,50 +331,50 @@ 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"); KXMLDOMElement e = g_xdoc_shoppingcart.getRowElement(L"data/Item", row); xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID"); xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring"); 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") xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo"); xstring id = ViewObject::GetGuid(); xstring ret1 = Up(id); if (ret1 == L"-1") return -1; if (ret1 == L"0") { alert("上传图片失败"); alert(L"上传图片失败"); return -1; } string originfile = ret1; string ext = originfile.right(7); if (ext.find(".") >= 0) ext = ext.mid(ext.find(".") + 1, 9999); xstring originfile = ret1; xstring ext = originfile.right(7); if (ext.find(L".") >= 0) ext = ext.mid(ext.find(L".") + 1, 9999); else ext = "jpg"; ext = L"jpg"; // 图片名加入数据库 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>" + xml x ; x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" + "<ProductPictureID>" + id + L"</ProductPictureID>" + "<OriginFile>" + originfile + L"</OriginFile>" + "<FileExt>" + ext + L"</FileExt>" + "<SKUID>" + skuid + L"</SKUID>" + "<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" + "<CustomerID>" + CustomerID + L"</CustomerID>" + "<Name>[" + SKUNo.trim() + L"]</Name>" + "<FileName>" + id + L".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) xaserverarg arg; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); alert(x.text()); return -1; } dwc_list.SetItemString(row, "pic", "*"); dwc_list.SetItemString(row, L"pic", L"*"); dwc_list.Redraw(); //刷新一下界面,显示图片 OnShowImage(skuid, CustomerItemNo); @@ -371,318 +387,318 @@ if (row < 1) row = dwc_list.GetRow(); if (row < 1 || row > dwc_list.GetRowCount()) return 0; imageview im = GetControl("im1"); ximageview im = GetControl(L"im1"); int index = im.GetSelectIndex(); int count = im.GetImageCount(); if (count < 1) return 1; msxml::IXMLDOMNodeList images = imageElement.selectNodes("image"); int length = images.length; KXMLDOMNodeList images = imageElement.selectNodes(L"image"); int length = images.length(); if (length < index) return 1; int MB_OKCANCEL = 0x00000001; int IDOK = 1; if (win32::MessageBox(GetHWND(), "确认删除当前图片?", "提示", MB_OKCANCEL) != IDOK) return 1; if (MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1; string id = images.item(index).selectSingleNode("@guid").text; xstring id = images.item(index).selectSingleNode(L"@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) xml x ; xaserverarg arg; xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>"; arg.AddArg(L"content", str); if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); alert(x.text()); return -1; } if (count == 1) { dwc_list.SetItemString(row, "pic", ""); dwc_list.SetItemString(row, L"pic", L""); 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"); xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID"); xstring SKUNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SKUID/@__displaystring"); CustomerID = m_customer; string CustomerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo"); xstring CustomerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CustomerItemNo"); OnShowImage(skuid, CustomerItemNo); return 1; } int OnDeleteImage() { if (m_customer != "") return OnDeleteImageEx(); if (m_customer != L"") 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"); ximageview im = GetControl(L"im1"); int index = im.GetSelectIndex(); int count = im.GetImageCount(); if (count < 1) return 1; msxml::IXMLDOMNodeList images = imageElement.selectNodes("image"); int length = images.length; KXMLDOMNodeList images = imageElement.selectNodes(L"image"); int length = images.length(); if (length < index) return 1; int MB_OKCANCEL = 0x00000001; int IDOK = 1; if (win32::MessageBox(GetHWND(), "确认删除当前图片?", "提示", MB_OKCANCEL) != IDOK) return 1; if (MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1; string id = images.item(index).selectSingleNode("@guid").text; xstring id = images.item(index).selectSingleNode(L"@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) xml x ; xaserverarg arg; xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>"; arg.AddArg(L"content", str); if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); alert(x.text()); return -1; } if (count == 1) { dw_list.SetItemString(row, "pic", ""); dw_list.SetItemString(row, L"pic", L""); dw_list.Redraw(); } msxml::IXMLDOMElement e1 = g_xdoc_product.getRowElement("data/Item", row); string skuid = e1.getAttribute("guid"); KXMLDOMElement e1 = g_xdoc_product.getRowElement(L"data/Item", row); xstring skuid = e1.getAttribute(L"guid"); OnShowImage(skuid); return 1; } xml GetGoodsPropListEx(string guid) xml GetGoodsPropListEx(xstring guid) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); string fields = "<data>"; xml x ; xstring fields = L"<data>"; /* fields +="<field name='HighestPrice' label='最高价'/>"; fields +="<field name='LowestPrice' label='最低价'/>"; fields +=L"<field name='HighestPrice' label='最高价'/>"; fields +=L"<field name='LowestPrice' label='最低价'/>"; fields +="<field name='BulkPrice' label='散货价'/>"; fields +="<field name='CardPrice' label='纸卡价'/>"; fields +="<field name='BuyPrice' label='采购价'/>"; fields +="<field name='SupplierID' label='货源'/>"; fields +=L"<field name='BulkPrice' label='散货价'/>"; fields +=L"<field name='CardPrice' label='纸卡价'/>"; fields +=L"<field name='BuyPrice' label='采购价'/>"; fields +=L"<field name='SupplierID' label='货源'/>"; */ fields += "<field name='Packing' label='包装方式'/>"; fields += "<field name='PackingRate' label='每箱数量'/>"; fields += "<field name='VolumeDesc' label='包装尺码'/>"; fields += "<field name='GWPerPkg' label='毛重'/>"; fields += "<field name='NWPerPkg' label='净重'/>"; //fields +="<field name='DeveloperID' label='开发人员'/>"; fields += "<field name='AttributeValue_1' label='产品属性'/>"; //fields +="<field name='Remark' label='备注'/>"; fields += L"<field name='Packing' label='包装方式'/>"; fields += L"<field name='PackingRate' label='每箱数量'/>"; fields += L"<field name='VolumeDesc' label='包装尺码'/>"; fields += L"<field name='GWPerPkg' label='毛重'/>"; fields += L"<field name='NWPerPkg' label='净重'/>"; //fields +=L"<field name='DeveloperID' label='开发人员'/>"; fields += L"<field name='AttributeValue_1' label='产品属性'/>"; //fields +=L"<field name='Remark' label='备注'/>"; fields += "</data>"; x.LoadXml(fields); fields += L"</data>"; x.loadXML(fields); return x; } string makeHtml(int row) xstring makeHtml(int row) { string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@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-color1:#ccdccc none #f0f0f0 none'>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, "No") + "</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, "RefNo") + xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>"; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"No") + "</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"RefNo") + "</span></div>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >货号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, "GoodsNo") + html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >货号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"GoodsNo") + "</span></div>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, "CName") + html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CName") + "</span></div>"; if (dw_list.GetItemString(row, "CSpec") != "") html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, "CSpec") + if (dw_list.GetItemString(row, L"CSpec") != L"") html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"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; KXMLDOMNodeList fieldsEx = x1.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 < len; true) { int cnt = 0; ls_item = ""; ls_item = L""; 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>"; name = fieldsEx.item(i).selectSingleNode(L"@name").text(); label = fieldsEx.item(i).selectSingleNode(L"@label").text(); ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>"; cnt++; i++; if (i == len)break; } ls_detail += "<tr>" + ls_item + "</tr>"; ls_detail += L"<tr>" + ls_item + L"</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'/>" html += L"<div style='margin-left:8px;margin-right:16px;'>" + +L"<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>"; + L"</table>" + L"</div>"; string ls_star = ""; msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field"); len = fields.length; xstring ls_star = L""; KXMLDOMNodeList fields = x.selectNodes(L"data/field"); len = fields.length(); ls_detail = ""; ls_detail = L""; if (len > 0) html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >技术要求:</span></div>"; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >技术要求:</span></div>"; for (i = 0; i < len; true) { ls_item = ""; ls_item = L""; int count = 0; while (count < 2) { name = fields.item(i).selectSingleNode("@name").text; label = fields.item(i).selectSingleNode("@label").text; name = fields.item(i).selectSingleNode(L"@name").text(); label = fields.item(i).selectSingleNode(L"@label").text(); if (name == "QualityTerm" || name == "PackTerm" || label == "质量" || label == "包装质量" || label == "技术要求") if (name == L"QualityTerm" || name == L"PackTerm" || label == L"质量" || label == L"包装质量" || label == L"技术要求") { i++; if (i >= len)count = 2; continue; } else if (g_xdoc_product.getData(0, "data/Item", row, name) == "") else if (g_xdoc_product.getData(0, L"data/Item", row, name) == L"") { msxml::IXMLDOMNodeList options = fields.item(i).selectNodes("item"); int tlen = options.length; string terms = ""; KXMLDOMNodeList options = fields.item(i).selectNodes(L"item"); int tlen = options.length(); xstring terms = L""; for (int k = 0; k < tlen; k++) { if (options.item(k).text) { if (k > 0) terms += ", "; terms += "[" + options.item(k).text + "]"; if (k > 0) terms += L", L"; terms += L"[" + options.item(k).text + L"]"; } } 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>"; ls_star += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >" + label + L"*:</span><span style='width:90;font-size:10pt'>" + terms + L"</span></div>"; } else { ls_item = "<td>" + label + "</td>" + "<td>" + g_xdoc_product.getData(0, "data/Item", row, name) + "</td>"; ls_item = L"<td>" + label + L"</td>" + L"<td>" + g_xdoc_product.getData(0, L"data/Item", row, name) + L"</td>"; count++; } i++; if (i >= len)count = 2; } ls_item = "<tr>" + ls_item + "</tr>"; ls_item = L"<tr>" + ls_item + L"</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'/>" html += L"<div style='margin-left:8px;margin-right:16px;'>" + +L"<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") != "") + L"</table>" + L"</div>"; if (dw_list.GetItemString(row, L"QualityTerm") != L"") { 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>"; html += L"<div style='height:12px'/>"; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >质量:</span></div>"; html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"QualityTerm") + L"</span></div>"; } if (dw_list.GetItemString(row, "PackTerm") != "") if (dw_list.GetItemString(row, L"PackTerm") != L"") { 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, "PackTerm") + "</span></div>"; html += L"<div style='height:12px'/>"; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >包装质量:</span></div>"; html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"PackTerm") + L"</span></div>"; } if (g_xdoc_product.getData(0, "data/Item", row, "Remark") != "" && id == "23A8BBA2-DEF1-4C00-978E-646151A6082E") if (g_xdoc_product.getData(0, L"data/Item", row, L"Remark") != L"" && id == L"23A8BBA2-DEF1-4C00-978E-646151A6082E") { 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' >" + g_xdoc_product.getData(0, "data/Item", row, "Remark") + "</span></div>"; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >备注:</span></div>"; html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + g_xdoc_product.getData(0, L"data/Item", row, L"Remark") + L"</span></div>"; } html += "<div style='height:24px'/>"; html += L"<div style='height:24px'/>"; //星标项 html += ls_star; //显示图片 /*string picname = "1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,"ImgName"); //ItemID+".jpg"; string str = picname.mid(0,2); /*xstring picname = L"1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,L"ImgName"); //ItemID+L".jpg"; xstring 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' >ͼƬ:</span>"; html += "<control visible='layer' controlclass='ximage' data='' src='"+ serversrc +"'/></div>"; xstring serversrc =L"http://192.168.7.241:1001/business/products/chanpin/"+str+L"/"+picname; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >ͼƬ:</span>"; html += L"<control visible='layer' controlclass='ximage' data='' src='"+ serversrc +L"'/></div>"; */ html += "</body></html>"; html += L"</body></html>"; return html; } string makeGoodscarHtml(int row) xstring makeGoodscarHtml(int row) { string No = dwc_list.GetItemString(row, "RefNo");//获取属性值id xstring No = dwc_list.GetItemString(row, L"RefNo");//获取属性值id xml x = GetGoodsPropList(No); string html = "<html><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' >编号:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, "No") + xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>"; html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"No") + "</span></div>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, "CName") + html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CName") + "</span></div>"; html += "<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, "CSpec") + html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CSpec") + "</span></div>"; msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field"); int len = fields.length; html += "<table>" + KXMLDOMNodeList fields = x.selectNodes(L"data/field"); int len = fields.length(); html += L"<table>" + "<colgroup span='1' width='80'/>" + "<colgroup span='1' width='120'/>" + "<colgroup span='1' width='420'/>"; html += "<tr>"; html += "<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>"; html += "</tr>"; html += L"<tr>"; html += L"<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>"; html += L"</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>"; xstring name = fields.item(i).selectSingleNode(L"@name").text(); xstring label = fields.item(i).selectSingleNode(L"@label").text(); html += L"<tr>"; if (i == 0) html += "<td rowspan='" + len.toString() + "'>" + No + "</td><td >" + label + "</td><td >" + "</td>"; html += L"<td rowspan='" + len.toString() + L"'>" + No + L"</td><td >" + label + L"</td><td >" + L"</td>"; else html += "<td >" + label + "</td><td >" + g_xdoc_shoppingcart.getData(0, "data/Item", row, name) + "</td>"; html += "</tr>"; html += L"<td >" + label + L"</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, name) + L"</td>"; html += L"</tr>"; } html += "<tr>"; html += "<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "PackCode") + "</td><td >包装方式</td><td >" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "CPack") + "</td>"; html += "</tr>"; html += "<tr height='48'>"; html += "<td >包装要求</td><td >" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "PackQualityTerm") + "</td>"; html += "</tr>"; html += "<tr>"; html += "<td >侧唛</td><td ></td>"; html += "</tr>"; html += L"<tr>"; html += L"<td rowspan='3'>" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"PackCode") + L"</td><td >包装方式</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"CPack") + L"</td>"; html += L"</tr>"; html += L"<tr height='48'>"; html += L"<td >包装要求</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"PackQualityTerm") + L"</td>"; html += L"</tr>"; html += L"<tr>"; html += L"<td >侧唛</td><td ></td>"; html += L"</tr>"; html += "<tr height='72'>"; html += "<td>" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "QualityCode") + "</td><td >质量要求</td><td >" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "QualityTerm") + "</td>"; html += "</tr>"; html += L"<tr height='72'>"; html += L"<td>" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"QualityCode") + L"</td><td >质量要求</td><td >" + g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"QualityTerm") + L"</td>"; html += L"</tr>"; html += "</table>"; html += L"</table>"; html += "</body></html>"; html += L"</body></html>"; return html; } @@ -691,22 +707,22 @@ if (!hObject) return 1; int rw = 0; string ls_nos = "ImportXml:"; xstring ls_nos = L"ImportXml:"; if (impStr == "") if (impStr == L"") { alert("请选择商品!"); alert(L"请选择商品!"); return 1; } if (tname == "已询价产品") if (tname == L"已询价产品") { int row = dwc_list.GetNextSelectRow(1); while (row > 0) { if (dwc_list.GetItemString(row, "pic") != "*") if (dwc_list.GetItemString(row, L"pic") != L"*") { alert("第" + row.toString() + "行请增加产品图片!"); alert(L"第" + row.toString() + L"行请增加产品图片!"); return 1; } row = dwc_list.GetNextSelectRow(row + 1); @@ -716,9 +732,9 @@ row = dw_list.GetNextSelectRow(1); while (row > 0) { if (dw_list.GetItemString(row, "pic") != "*") if (dw_list.GetItemString(row, L"pic") != L"*") { alert("第" + row.toString() + "行请增加产品图片!"); alert(L"第" + row.toString() + L"行请增加产品图片!"); return 1; } row = dw_list.GetNextSelectRow(row + 1); @@ -730,10 +746,10 @@ dwc_list.Redraw(); dw_list.SelectRow(0, false); dw_list.Redraw(); impStr = ""; impStr = L""; win32::SendMessage(hObject, 0x401, ls_nos, 0); alert("转入完成!"); SendMessage(hObject, 0x401, ls_nos, 0); alert(L"转入完成!"); return 1; } @@ -749,8 +765,8 @@ int IDOK = 1; int MB_OKCANCEL = 1; int MB_ICONQUESTION = 32; if (win32::MessageBox(GetHWND(), "确认删除指定的项,删除后将不能恢复?", "提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; string id = g_xdoc_product.getData(0, "data/Item", row, "@guid"); if (MessageBox(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1; xstring id = g_xdoc_product.getData(0, L"data/Item", row, L"@guid"); if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0); @@ -758,36 +774,36 @@ } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { int hCursor; string name = ""; if (comdid == "xmClose") xstring name = L""; if (comdid == L"xmClose") { CloseWindow(); return 1; } else if (comdid == "xmImport") else if (comdid == L"xmImport") { OnImport(); return 1; } else if (comdid == "xmSearch") else if (comdid == L"xmSearch") { OnSearch(); return 1; } else if (comdid == "xmAdd") else if (comdid == L"xmAdd") { ItemAdd(); return 1; } else if (comdid == "xmMaint") else if (comdid == L"xmMaint") { ItemMaint(); return 1; } else if (comdid == "xmDelete") else if (comdid == L"xmDelete") { int row = dw_list.GetRow(); if (row < 1) return 1; @@ -795,11 +811,11 @@ return 1; } else if (comdid == "xmAddImage") else if (comdid == L"xmAddImage") { return OnAddImage(); } else if (comdid == "xmDeleteImage") else if (comdid == L"xmDeleteImage") { return OnDeleteImage(); } @@ -810,62 +826,62 @@ { int hItem = tv_folder.GetSelectedItem(); int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); xstring name = tv_folder.GetItemLabel(hTopItem); msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); 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 == "个人产品") arg.AddArg("FolderID", e.getAttribute("guid")); KXMLDOMElement e = tv_folder.GetItemData(hItem); xstring guid = e.getAttribute(L"guid"); if (guid == L"") return 1; xaserverarg arg; arg.AddArg(L"guid", e.getAttribute(L"guid")); if (name == L"个人产品") arg.AddArg(L"FolderID", e.getAttribute(L"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); arg.AddArg(L"CategoryID", e.getAttribute(L"guid")); xstring No = e.getAttribute(L"CategoryNo"); if (No == L"") No = e.getAttribute(L"no"); xstring Name = e.getAttribute(L"CName"); if (Name == L"") Name = e.getAttribute(L"cname"); arg.AddArg(L"No", No); arg.AddArg(L"CName", Name); int p = arg; OpenWindow("dev:xpage[Quick.Input.NewProductEx.vx]", p); if (arg.GetArgString("data.modify") == "1")RetrieveItem(hItem); OpenWindow(L"dev:xpage[Quick.Input.NewProductEx.vx]", p); if (arg.GetArgString(L"data.modify") == L"1")RetrieveItem(hItem); 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; KXMLDOMElement e = tv_folder.GetItemData(hItem); //xstring no = e.getAttribute(L"no"); //if(no==L"") return 1; xstring guid = e.getAttribute(L"guid"); if (guid == L"") return 1; /* if(no=="NP0000FS" || no=="UP0000FS") if(no==L"NP0000FS" || no==L"UP0000FS") { OpenWindow("dev:xpage[PackSchemaMaint.goodslib.vx]"); OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]"); }else { int pr = g_xdoc_product; OpenWindow("dev:xpage[ProductLibraryItemMaint.vx]",pr); OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr); } */ //msxml::IXMLDOMElement ele = g_xdoc_product.getRowElement("data/Item", 1); //KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1); //alert(ele.xml); int pr = g_xdoc_product; OpenWindow("dev:xpage[ProductLibraryItemMaint3.vx]", pr); OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr); return 1; } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } //查找当前树项的顶级目录 @@ -877,19 +893,19 @@ } //插入产品类项的子项 int MakeGoodsFolderItem(int hItem, string sno) int MakeGoodsFolderItem(int hItem, xstring sno) { xml x = ProductLibraryView::GetTreeChildItems3(sno); if (!x) return 0; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item"); int len = nlist.length; KXMLDOMNodeList nlist = x.selectNodes(L"//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; KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"CName"); xstring no = e.getAttribute(L"CategoryNo"); xstring label = no.trim() + L" " + name; int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15); tv_folder.SetItemChild(h, 1); @@ -898,40 +914,40 @@ } //插入新产品目录子项 int MakeUserGoodsFolderItem(int hItem, string sno) int MakeUserGoodsFolderItem(int hItem, xstring sno) { xml x = ProductLibraryView::GetTreeUserChildItems3(sno); if (!x) return 0; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item"); int len = nlist.length; KXMLDOMNodeList nlist = x.selectNodes(L"//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; KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"CName"); xstring no = e.getAttribute(L"CategoryNo"); xstring label = no.trim() + L" " + name; int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15); string child = e.getAttribute("Childs"); if (child == "") xstring child = e.getAttribute(L"Childs"); if (child == L"") tv_folder.SetItemChild(h, 1); else if (child != "0") else if (child != L"0") tv_folder.SetItemChild(h, 1); } return 1; } //插入购物车项 int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image) int ExpandCatChildFolder(int hItem, KXMLDOMElement ele, int image) { msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item"); int len = nlist.length; KXMLDOMNodeList nlist = ele.selectNodes(L"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"); KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image); ExpandCatChildFolder(h, e, 35); } @@ -941,12 +957,12 @@ { xml x = ShoppingCartView::GetSupplierRoleList(SupplierID); if (!x) return 0; msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item"); int len = nlist.length; KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); int len = nlist.length(); for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("name"); KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35); ExpandCatChildFolder(h, e, 35); } @@ -959,44 +975,44 @@ ref NMTREEVIEW nmtv = evt.pnmh; int hItem = nmtv.itemNew.hItem; int hTopItem = LookupTopFolder(hItem); string name = tv_folder.GetItemLabel(hTopItem); xstring name = tv_folder.GetItemLabel(hTopItem); int child = tv_folder.GetChildItem(hItem); string no = ""; msxml::IXMLDOMElement e; xstring no = L""; KXMLDOMElement e; if (name == "公司库" && !child) if (name == L"公司库" && !child) { no = ""; no = L""; if (hTopItem != hItem) { e = tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); no = e.getAttribute(L"categoryid"); } else { e = tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); no = e.getAttribute(L"categoryid"); } MakeGoodsFolderItem(hItem, no); } else if (name == "个人库" && !child) else if (name == L"个人库" && !child) { no = ""; no = L""; if (hTopItem != hItem) { e = tv_folder.GetItemData(hItem); no = e.getAttribute("categoryid"); no = e.getAttribute(L"categoryid"); MakeUserGoodsFolderItem(hItem, no); } } else if (name == "已询价产品" && !child) else if (name == L"已询价产品" && !child) { if (hItem == hTopItem)MakeGoodCarFolderItem(hItem); } return 1; } int ResetAgent(string agentAsk) int ResetAgent(xstring agentAsk) { if (agentFor != agentAsk) { @@ -1011,86 +1027,86 @@ { 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; KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement); xstring str = e1.getAttribute(L"no"); if (str.find(L"Customer:") >= 0) return hItem; hItem = tv_folder.GetParentItem(hItem); if (hItem == 0) break; } return 0; } string LookupCustomer(int hItem) xstring 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); KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement); xstring str = e1.getAttribute(L"no"); return str.mid(L"Customer:".length(), 9999); } int RetrieveItem(int hItem) { int hTopItem = LookupTopFolder(hItem); tname = tv_folder.GetItemLabel(hTopItem); string selectname = tv_folder.GetItemLabel(hItem); imageview im = GetControl("im1"); m_customer = ""; xcontrol query = GetControl("sl_search"); string queryString = query.GetText(); if (hTopItem == 0 && queryString != "") xstring selectname = tv_folder.GetItemLabel(hItem); ximageview im = GetControl(L"im1"); m_customer = L""; xcontrol query = GetControl(L"sl_search"); xstring queryString = query.GetText(); if (hTopItem == 0 && queryString != L"") { tname = "已询价产品"; selectname = "已询价产品"; tname = L"已询价产品"; selectname = L"已询价产品"; } if (tname == "已询价产品") if (tname == L"已询价产品") { if (agentFor != "goodscar")SwitchLayer("goodscarsheet", "sheetframe"); ResetAgent("goodscar"); if (agentFor != L"goodscar")SwitchLayer(L"goodscarsheet", L"sheetframe"); ResetAgent(L"goodscar"); if (selectname != tname) { msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); string str = e1.getAttribute("no"); if (str == "Supplier") return 1; if (str.find("Customer:") == 0 || str.find("SO:") == 0 || str.find("Supplier:") == 0 || str.find("Enquiry:") == 0) KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement); xstring str = e1.getAttribute(L"no"); if (str == L"Supplier") return 1; if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0 || str.find(L"Supplier:") == 0 || str.find(L"Enquiry:") == 0) { m_customer = LookupCustomer(hItem); if (str.find("Customer:") == 0) dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodscustomerlist"); if (str.find(L"Customer:") == 0) dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodscustomerlist"); else dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.Reset(); dwc_list.SetReadOnly(true); if (queryString == "") if (queryString == L"") g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str)); else g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString)); if (str.find("Supplier:") == 0) if (str.find(L"Supplier:") == 0) { if (dwc_list.GetRowCount() > 0) { OnShowImage(dwc_list.GetItemString(1, "SKUID")); OnShowImage(dwc_list.GetItemString(1, L"SKUID")); } } } else if (e1.getAttribute("categoryid") != "") else if (e1.getAttribute(L"categoryid") != L"") { string categoryid = e1.getAttribute("categoryid"); dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid).GetXmlDoc()); xstring categoryid = e1.getAttribute(L"categoryid"); dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid)); dwc_list.SetReadOnly(true); dwc_list.Reset(); if (queryString == "") if (queryString == L"") g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid)); else g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, "")); g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, L"")); } else { dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.SetReadOnly(true); dwc_list.Reset(); if (queryString == "") if (queryString == L"") g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname)); else g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString)); @@ -1100,13 +1116,13 @@ if (dwc_list.GetRowCount() >= 1) { htmlctrl xs = GetControl("html_detail"); htmlctrl xs = GetControl(L"html_detail"); xs.SetContent(makeGoodscarHtml(1)); if (m_customer != "") if (m_customer != L"") { string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", 1, "SKUID"); string customerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", 1, "CustomerItemNo"); xstring skuid = g_xdoc_shoppingcart.getData(0, L"data/Item", 1, L"SKUID"); xstring customerItemNo = g_xdoc_shoppingcart.getData(0, L"data/Item", 1, L"CustomerItemNo"); OnShowImage(skuid, customerItemNo); } } @@ -1114,20 +1130,20 @@ im.ResetEx(); im.Redraw(); xs = GetControl("html_detail"); xs.SetContent("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); xs = GetControl(L"html_detail"); xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); } xs.Redraw(); } else { if (queryString == "") if (queryString == L"") { return 0; } else { str = "Supplier:All"; str = L"Supplier:All"; g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString)); dwc_list.PostRetrieve(); dwc_list.Redraw(); @@ -1136,34 +1152,34 @@ } else { if (agentFor != "goodslib")SwitchLayer("goodslibsheet", "sheetframe"); if (tname == "个人库") ResetAgent("userlib"); if (agentFor != L"goodslib")SwitchLayer(L"goodslibsheet", L"sheetframe"); if (tname == L"个人库") ResetAgent(L"userlib"); else ResetAgent("goodslib"); ResetAgent(L"goodslib"); int hCursor = xutil::SetCursorWait(); if (tname == "个人库" || tname == "公司库") if (tname == L"个人库" || tname == L"公司库") { string no = "N000005"; if (tname == "个人库") no = "U000005"; xstring no = L"N000005"; if (tname == L"个人库") no = L"U000005"; if (hItem != hTopItem) { msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem); no = e.getAttribute("guid"); KXMLDOMElement e = tv_folder.GetItemData(hItem); no = e.getAttribute(L"guid"); } dw_list = GetControl("dw_list"); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc()); dw_list = GetControl(L"dw_list"); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no)); dw_list.Reset(); dw_list.SetReadOnly(true); dw_list.SetColumnState("Submitter1", false); dw_list.SetColumnState("HSCode", false); dw_list.SetColumnState(L"Submitter1", false); dw_list.SetColumnState(L"HSCode", false); xml x; if (queryString == "") if (queryString == L"") { if (tname == "个人库") if (tname == L"个人库") x = ProductLibraryView::GetMaintRoleList3(no); else x = ProductLibraryView::GetMaintList3(no); @@ -1175,18 +1191,18 @@ } else { if (tname == "个人库") if (tname == L"个人库") { x = ProductLibraryView::GetMaintRoleList3(no, queryString); } else { if (queryString != "") if (queryString != L"") { if (no == "N000005") x = ProductLibraryView::GetMaintList3("", queryString, ""); if (no == L"N000005") x = ProductLibraryView::GetMaintList3(L"", queryString, L""); else x = ProductLibraryView::GetMaintList3(no, queryString, ""); x = ProductLibraryView::GetMaintList3(no, queryString, L""); } else x = ProductLibraryView::GetMaintList3(no); @@ -1198,9 +1214,9 @@ if (dw_list.GetRowCount() > 0) { xs = GetControl("html_detail"); xs = GetControl(L"html_detail"); xs.SetContent(makeHtml(1)); string id = g_xdoc_product.getData(0, "data/Item", 1, "@guid"); xstring id = g_xdoc_product.getData(0, L"data/Item", 1, L"@guid"); OnShowImage(id); } else @@ -1208,14 +1224,14 @@ im.ResetEx(); im.Redraw(); xs = GetControl("html_detail"); xs.SetContent("<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); xs = GetControl(L"html_detail"); xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>"); } xs.Redraw(); xutil::RestoreCursor(hCursor); } } impStr = ""; impStr = L""; } int OnTreeSelChanged(ref TNotifyEvent evt, int p) @@ -1225,15 +1241,15 @@ return RetrieveItem(hItem); } int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement) int ExpandChildFolder(int hItem, KXMLDOMElement pElement) { msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item"); int len = nlist.length; KXMLDOMNodeList nlist = pElement.selectNodes(L"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"); KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"cname"); xstring sImage = e.getAttribute(L"image"); int image = 15; //if(sImage) image = sImage.toInt(); int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image); @@ -1245,8 +1261,8 @@ int InitialFolder() { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); ExpandChildFolder(0, e); return 1; } @@ -1256,23 +1272,23 @@ ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); char ch; int row = hdr.row; string col = hdr.colname; xstring col = hdr.colname; string str = ""; if (dw_list.GetItemString(row, "SKUNo") != "") str = dw_list.GetItemString(row, "SKUNo"); xstring str = L""; if (dw_list.GetItemString(row, L"SKUNo") != L"") str = dw_list.GetItemString(row, L"SKUNo"); else str = dw_list.GetItemString(row, "No"); str = dw_list.GetItemString(row, L"No"); if (dw_list.IsRowSelected(row) & 0xff) { //will unselect impStr = impStr.replace(" " + str, ""); impStr = impStr.replace(L" " + str, L""); } else { //will select impStr += " " + str; impStr += L" " + str; } return 1; } @@ -1282,24 +1298,24 @@ ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); char ch; int row = hdr.row; string col = hdr.colname; string str = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SOLineID"); if (str != "") str = "sl:" + str; else if (dwc_list.GetItemString(row, "SKUNo") != "") str = dwc_list.GetItemString(row, "SKUNo"); xstring col = hdr.colname; xstring str = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SOLineID"); if (str != L"") str = L"sl:" + str; else if (dwc_list.GetItemString(row, L"SKUNo") != L"") str = dwc_list.GetItemString(row, L"SKUNo"); else str = dwc_list.GetItemString(row, "No"); str = dwc_list.GetItemString(row, L"No"); if (dwc_list.IsRowSelected(row) & 0xff) { //will unselect impStr = impStr.replace(" " + str, ""); impStr = impStr.replace(L" " + str, L""); } else { //will select impStr += " " + str; impStr += L" " + str; } return 1; } @@ -1310,25 +1326,25 @@ int hCursor = xutil::SetCursorWait(); ref DWNMHDR hdr = cast(evt.pnmh as ref DWNMHDR); int row = hdr.row; string ls_nos = "ImportXml:"; string str = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SOLineID"); string str1 = g_xdoc_shoppingcart.getData(0, "data/Item", row, "EnquiryPriceListID"); if (str1 != "") str += "el:" + str1; else if (str != "") str = "sl:" + str; else if (dwc_list.GetItemString(row, "SKUNo") != "") str = dwc_list.GetItemString(row, "SKUNo"); xstring ls_nos = L"ImportXml:"; xstring str = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"SOLineID"); xstring str1 = g_xdoc_shoppingcart.getData(0, L"data/Item", row, L"EnquiryPriceListID"); if (str1 != L"") str += L"el:" + str1; else if (str != L"") str = L"sl:" + str; else if (dwc_list.GetItemString(row, L"SKUNo") != L"") str = dwc_list.GetItemString(row, L"SKUNo"); else str = dwc_list.GetItemString(row, "No"); str = dwc_list.GetItemString(row, L"No"); ls_nos += str; dw_list.SelectRow(0, false); dwc_list.SelectRow(0, false); dw_list.Redraw(); dwc_list.Redraw(); impStr = ""; win32::SendMessage(hObject, 0x401, ls_nos, 0); impStr = L""; SendMessage(hObject, 0x401, ls_nos, 0); xutil::RestoreCursor(hCursor); CloseWindow(); return 1; @@ -1340,25 +1356,25 @@ int row = hdr.row; if (row > 0) { if (dw_list.GetItemString(row, "pic") != "*") if (dw_list.GetItemString(row, L"pic") != L"*") { alert("第" + row.toString() + "行请增加产品图片!"); alert(L"第" + row.toString() + L"行请增加产品图片!"); return 1; } } string ls_nos = "ImportXml:"; string str = ""; if (dw_list.GetItemString(row, "SKUNo") != "") str = dw_list.GetItemString(row, "SKUNo"); xstring ls_nos = L"ImportXml:"; xstring str = L""; if (dw_list.GetItemString(row, L"SKUNo") != L"") str = dw_list.GetItemString(row, L"SKUNo"); else str = dw_list.GetItemString(row, "No"); str = dw_list.GetItemString(row, L"No"); ls_nos += str; dw_list.SelectRow(0, false); dwc_list.SelectRow(0, false); dw_list.Redraw(); dwc_list.Redraw(); impStr = ""; win32::SendMessage(hObject, 0x401, ls_nos, 0); impStr = L""; SendMessage(hObject, 0x401, ls_nos, 0); xutil::RestoreCursor(hCursor); CloseWindow(); return 1; @@ -1367,71 +1383,71 @@ int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&BasicFareList::OnXCommand); //获取焦点事件,用于重置工具条 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); //checkbox打钩事件 AttachEvent("WM_COMMAND", OnCkbCLick2); //checkbox打钩事件 AttachEvent(L"WM_SETFOCUS", (FEvent)&BasicFareList::OnSetFocus); AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BasicFareList::OnRowChanged); AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BasicFareList::OnGoodsCarRowChanged); AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&BasicFareList::OnTreeExpanding); AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&BasicFareList::OnTreeSelChanged); AttachEvent(L"WM_COMMAND", (FEvent)&BasicFareList::OnCkbCLick); //checkbox打钩事件 AttachEvent(L"WM_COMMAND", (FEvent)&BasicFareList::OnCkbCLick2); //checkbox打钩事件 AttachEvent("dwc_list", "DWV_DOUBLECLICKED", OnDwcDoubleClicked); AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDwDoubleClicked); AttachEvent(L"dwc_list", L"DWV_DOUBLECLICKED", (FEvent)&BasicFareList::OnDwcDoubleClicked); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&BasicFareList::OnDwDoubleClicked); AttachEvent("dw_list", "DWV_CLICKED", OnDwClicked); AttachEvent("dwc_list", "DWV_CLICKED", OnDwcClicked); AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&BasicFareList::OnDwClicked); AttachEvent(L"dwc_list", L"DWV_CLICKED", (FEvent)&BasicFareList::OnDwcClicked); } int onload() { agentFor = "goodslib"; impStr = ""; agentFor = L"goodslib"; impStr = L""; OnAttachEvent(); imageElement = 0; tv_folder = GetControl("tv_folder"); dw_list = GetControl("dw_list"); dwc_list = GetControl("dwc_list"); tv_folder = GetControl(L"tv_folder"); dw_list = GetControl(L"dw_list"); dwc_list = GetControl(L"dwc_list"); xaserverarg arg = GetParam(); CustomerID = ""; SupplierID = ""; m_customer = ""; CustomerID = L""; SupplierID = L""; m_customer = L""; hObject = 0; if (arg) { hObject = arg.GetArgString("HWND").toInt(); CustomerID = arg.GetArgString("CustomerID"); CustomerID = arg.GetArgString("SupplierID"); hObject = arg.GetArgString(L"HWND").toInt(); CustomerID = arg.GetArgString(L"CustomerID"); CustomerID = arg.GetArgString(L"SupplierID"); } InitialFolder(); g_xdoc_product = new xdataset; g_xdoc_product.Init(); xbind bindproduct = new xbind; bindproduct.bindEx(dw_list, g_xdoc_product, ""); bindproduct.bindEx(dw_list, g_xdoc_product, L""); g_xdoc_shoppingcart = new xdataset; g_xdoc_shoppingcart.Init(); xbind bindcart = new xbind; bindcart.bindEx(dwc_list, g_xdoc_shoppingcart, ""); bindcart.bindEx(dwc_list, g_xdoc_shoppingcart, L""); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3("").GetXmlDoc()); dw_list = GetControl("dw_list"); dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L"")); dw_list = GetControl(L"dw_list"); dw_list.SetReadOnly(true); dw_list.SetColumnState("Submitter1", false); dw_list.SetColumnState("HSCode", false); dw_list.SetColumnState(L"Submitter1", false); dw_list.SetColumnState(L"HSCode", false); dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist"); dwc_list.SetReadOnly(true); if (dw_list.GetRowCount()) { htmlctrl xs = GetControl("html_detail"); htmlctrl xs = GetControl(L"html_detail"); xs.SetContent(makeHtml(1)); } jrj/project/business/Enquiry/PriceList.PurcharItemSelect.cpp
@@ -1,36 +1,50 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> unit trade [ class PurcharItemSelectWin : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) PurcharItemSelectWin : public xframe { public: xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: PurcharItemSelectWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static PurcharItemSelectWin* CreateInstance(void* implPtr, void* hWnd) { PurcharItemSelectWin* pWin = new PurcharItemSelectWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 //SetAgent(); @@ -39,9 +53,9 @@ int OnFilter() { string str = GetControl("sl_search").GetText(); xstring str = xcontrol(GetControl(L"sl_search")).GetText(); xdwgrid dw_obj; dw_list.Filter("*", str); dw_list.Filter(L"*", str); return 1; } @@ -49,47 +63,47 @@ int OnOK() { int rw = dw_list.GetNextSelectRow(1); string content = "<data>"; xstring content = L"<data>"; while (rw > 0) { msxml::IXMLDOMElement xe = dw_list.GetRowElement(rw); content += xe.xml; KXMLDOMElement xe = dw_list.GetRowElement(rw); content += xe.xml(); rw = dw_list.GetNextSelectRow(rw + 1); } content += "</data>"; xaserverarg arg = GetParam(); arg.AddArg("process", "ok"); arg.AddArg("result", content); content += L"</data>"; xaserverarg arg ; arg.AddArg(L"process", L"ok"); arg.AddArg(L"result", content); CloseWindow(); } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmSearch") if (comdid == L"xmSearch") { OnFilter(); return 0; } if (comdid == "xmCancel") if (comdid == L"xmCancel") { CloseWindow(); return 1; } if (comdid == "xmOK") if (comdid == L"xmOK") { /*int rw = dw_list.GetNextSelectRow(1); string content = "<data>"; xstring content = L"<data>"; while (rw>0) { msxml::IXMLDOMElement xe = dw_list.GetRowElement(rw); content += xe.xml; KXMLDOMElement xe = dw_list.GetRowElement(rw); content += xe.xml(); rw = dw_list.GetNextSelectRow(rw + 1); } content += "</data>"; content += L"</data>"; xaserverarg arg = GetParam(); arg.AddArg("process","ok"); arg.AddArg("result",content); arg.AddArg(L"process",L"ok"); arg.AddArg(L"result",content); CloseWindow();*/ OnOK(); @@ -100,28 +114,29 @@ } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&PurcharItemSelectWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnOK); AttachEvent(L"WM_SETFOCUS", (FEvent)&PurcharItemSelectWin::OnSetFocus); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&PurcharItemSelectWin::OnOK); return 1; } int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = GetParam(); if (getUrl("/sale/data/Enquiry/PriceList/ItemSelect", arg.GetString(), x) != 1) xml x ; xaserverarg arg; if (getUrl(L"/sale/data/Enquiry/PriceList/ItemSelect", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; } else @@ -135,14 +150,14 @@ int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/Enquiry3/template/purcharpricelist/item"); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Enquiry3/template/purcharpricelist/item"); dw_list.SetReadOnly(true); OnAttachEvent(); OnRetrieve(); dw_list.SetSelectionMode(3); xaserverarg arg = GetParam(); arg.AddArg("process", ""); xaserverarg arg ; arg.AddArg(L"process", L""); return 1; } @@ -152,4 +167,3 @@ return 1; } }; ] jrj/project/business/Enquiry/PriceList.PurcharItemSelectEx.cpp
@@ -1,36 +1,50 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> unit trade [ class PurcharItemSelectExWin : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) PurcharItemSelectExWin : public xframe { public: xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: PurcharItemSelectExWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static PurcharItemSelectExWin* CreateInstance(void* implPtr, void* hWnd) { PurcharItemSelectExWin* pWin = new PurcharItemSelectExWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 //SetAgent(); @@ -39,9 +53,9 @@ int OnFilter() { string str = GetControl("sl_search").GetText(); xstring str = xcontrol(GetControl(L"sl_search")).GetText(); xdwgrid dw_obj; dw_list.Filter("*", str); dw_list.Filter(L"*", str); return 1; } @@ -49,34 +63,34 @@ int xmOk() { int rw = dw_list.GetNextSelectRow(1); string content = "<data>"; xstring content = L"<data>"; while (rw > 0) { msxml::IXMLDOMElement xe = dw_list.GetRowElement(rw); content += xe.xml; KXMLDOMElement xe = dw_list.GetRowElement(rw); content += xe.xml(); rw = dw_list.GetNextSelectRow(rw + 1); } content += "</data>"; xaserverarg arg = GetParam(); arg.AddArg("process", "ok"); arg.AddArg("result", content); content += L"</data>"; xaserverarg arg; arg.AddArg(L"process", L"ok"); arg.AddArg(L"result", content); CloseWindow(); } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmSearch") if (comdid == L"xmSearch") { OnFilter(); return 0; } if (comdid == "xmCancel") if (comdid == L"xmCancel") { CloseWindow(); return 1; } if (comdid == "xmOK") if (comdid == L"xmOK") { xmOk(); return 1; @@ -86,29 +100,29 @@ } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&PurcharItemSelectExWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_list", "DWV_DOUBLECLICKED", xmOk); AttachEvent(L"WM_SETFOCUS", (FEvent)&PurcharItemSelectExWin::OnSetFocus); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&PurcharItemSelectExWin::xmOk); return 1; } int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = GetParam(); if (getUrl("/sale/data/Enquiry/folder/listitems", arg.GetString(), x) != 1) xml x ; xaserverarg arg; if (getUrl(L"/sale/data/Enquiry/folder/listitems", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; } else @@ -122,14 +136,15 @@ int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/Enquiry3/template/item/itempricelist"); SetArg(); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Enquiry3/template/item/itempricelist"); dw_list.SetReadOnly(true); OnAttachEvent(); OnRetrieve(); dw_list.SetSelectionMode(3); xaserverarg arg = GetParam(); arg.AddArg("process", ""); xaserverarg arg = GetArg(); arg.AddArg(L"process", L""); return 1; } @@ -139,4 +154,3 @@ return 1; } }; ] jrj/project/business/Enquiry/ProductSchema.cpp
@@ -1,38 +1,51 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> unit trade [ class ProductSchemaWin : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) ProductSchemaWin : public xframe { public: xdwtable dw_base; xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: ProductSchemaWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static ProductSchemaWin* CreateInstance(void* implPtr, void* hWnd) { ProductSchemaWin* pWin = new ProductSchemaWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); @@ -40,48 +53,48 @@ } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmAddRow") if (comdid == L"xmAddRow") { int row = dw_list.InsertRow(0); string sdate = publiccode::GetCurrentDate(); dw_list.SetItemString(row, "SKUID", dw_base.GetItemString(1, "SKUID")); dw_list.SetItemDisplayString(row, "SKUID", dw_base.GetItemString(1, "SKUNo")); dw_list.SetItemString(row, "GoodsNo", dw_base.GetItemString(1, "GoodsNo")); dw_list.SetItemString(row, "CName", dw_base.GetItemString(1, "CName")); dw_list.SetItemString(row, "ProductQty", "1"); dw_list.SetItemString(row, "PartQty", "1"); dw_list.SetItemString(row, "CreateDate", sdate); xstring sdate = publiccode::GetCurrentDate(); dw_list.SetItemString(row, L"SKUID", dw_base.GetItemString(1, L"SKUID")); dw_list.SetItemDisplayString(row, L"SKUID", dw_base.GetItemString(1, L"SKUNo")); dw_list.SetItemString(row, L"GoodsNo", dw_base.GetItemString(1, L"GoodsNo")); dw_list.SetItemString(row, L"CName", dw_base.GetItemString(1, L"CName")); dw_list.SetItemString(row, L"ProductQty", L"1"); dw_list.SetItemString(row, L"PartQty", L"1"); dw_list.SetItemString(row, L"CreateDate", sdate); return 1; } else if (comdid == "xmDeleteRow") else if (comdid == L"xmDeleteRow") { dw_list.DeleteRow(0); return 1; } else if (comdid == "xmClose") else if (comdid == L"xmClose") { CloseWindow(); return 1; } else if (comdid == "xmSave") else if (comdid == L"xmSave") { return OnSave(); } return 0; } int OnArgItemChanged(ref TNotifyEvent evt, int p) int OnArgItemChanged(TEvent* evt, LPARAM p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring value = hdr.data; string dwname = "dw_base"; if (value != "") xstring dwname = L"dw_base"; if (value != L"") { msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']"); KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); ViewObject::TransData(nlist, dw_base, hdr.row, colname, value); } OnRetrieve(); @@ -92,46 +105,47 @@ int OnSave() { dw_list.AcceptText(); xml x = xml::Make(); xaserverarg arg = xaserverarg::Make(); dw_list.DwUpdateAllToEx(x.GetXmlDoc()); xml x ; xaserverarg arg; dw_list.DwUpdateAllToEx(x); arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/ProductLibrary3/update/product/schema", arg.GetString(), x) != 1) arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/ProductLibrary3/update/product/schema", arg.GetString(), x) != 1) { string error = x.GetXmlDoc().text; alert("err:" + error); x.Free(); xstring error = x.text(); alert(L"err:" + error); return -1; } string str = x.GetXmlDoc().documentElement.getAttribute("text"); xstring str = x.documentElement().getAttribute(L"text"); //alert(str); x.Free(); if (str == "false") if (str == L"false") { alert("保存失败!"); alert(L"保存失败!"); return -1; } dw_list.ResetUpdateStatus(); alert("保存成功!"); alert(L"保存成功!"); return 1; } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&ProductSchemaWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_base", "DWV_ITEMCHANGED", OnArgItemChanged); AttachEvent(L"WM_SETFOCUS", (FEvent)&ProductSchemaWin::OnSetFocus); AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&ProductSchemaWin::OnArgItemChanged); return 1; } int OnRetrieve() @@ -139,15 +153,15 @@ dw_list.Reset(); dw_list.Redraw(); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("SKUID", dw_base.GetItemString(1, "SKUID")); //alert(dw_base.GetItemString(1,"SKUID")); if (getUrl("/sale/data/ProductLibrary3/ProductSchemaList", arg.GetString(), x) != 1) xml x ; xaserverarg arg; arg.AddArg(L"SKUID", dw_base.GetItemString(1, L"SKUID")); //alert(dw_base.GetItemString(1,L"SKUID")); if (getUrl(L"/sale/data/ProductLibrary3/ProductSchemaList", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; } else @@ -160,12 +174,12 @@ int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/ProductLibrary/template/ProductSchema"); dw_list.SetColumnState("CreateDate", false); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/ProductLibrary/template/ProductSchema"); dw_list.SetColumnState(L"CreateDate", false); dw_base = GetControl("dw_base"); dw_base.openUrl("/sale/view/ProductLibrary/template/ProductArg"); dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/ProductLibrary/template/ProductArg"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); @@ -183,5 +197,4 @@ return 1; } }; ] }; jrj/project/business/Enquiry/ProductSchemaSelect.cpp
@@ -1,38 +1,51 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> unit trade [ class ProductSchemaSelectWin : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) ProductSchemaSelectWin : public xframe { public: xdwtable dw_base; xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: ProductSchemaSelectWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static ProductSchemaSelectWin* CreateInstance(void* implPtr, void* hWnd) { ProductSchemaSelectWin* pWin = new ProductSchemaSelectWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); SetAgentNode(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt, int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); @@ -40,20 +53,20 @@ } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmOK") if (comdid == L"xmOK") { int row = dw_list.GetRow(); if (row < 1 || row > dw_list.GetRowCount()) return 1; xaserverarg arg = GetParam(); arg.AddArg("process", "ok"); arg.AddArg("SKUID", dw_list.GetItemString(row, "SKUID")); arg.AddArg("SchemaNo", dw_list.GetItemString(row, "SchemaNo")); xaserverarg arg; arg.AddArg(L"process", L"ok"); arg.AddArg(L"SKUID", dw_list.GetItemString(row, L"SKUID")); arg.AddArg(L"SchemaNo", dw_list.GetItemString(row, L"SchemaNo")); CloseWindow(); return 1; } else if (comdid == "xmCancel") else if (comdid == L"xmCancel") { CloseWindow(); return 1; @@ -61,16 +74,16 @@ return 0; } int OnArgItemChanged(ref TNotifyEvent evt, int p) int OnArgItemChanged(TEvent* evt, LPARAM p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring value = hdr.data; string dwname = "dw_base"; if (value != "") xstring dwname = L"dw_base"; if (value != L"") { msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']"); KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); ViewObject::TransData(nlist, dw_base, hdr.row, colname, value); } OnRetrieve(); @@ -81,43 +94,44 @@ int OnSave() { dw_list.AcceptText(); xml x = xml::Make(); xaserverarg arg = xaserverarg::Make(); dw_list.DwUpdateAllToEx(x.GetXmlDoc()); xml x ; xaserverarg arg; dw_list.DwUpdateAllToEx(x); arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/ProductLibrary3/update/product/schema", arg.GetString(), x) != 1) arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/ProductLibrary3/update/product/schema", arg.GetString(), x) != 1) { string error = x.GetXmlDoc().text; alert("err:" + error); x.Free(); xstring error = x.text(); alert(L"err:" + error); return -1; } string str = x.GetXmlDoc().documentElement.getAttribute("text"); x.Free(); if (str == "false") xstring str = x.documentElement().getAttribute(L"text"); if (str == L"false") { alert("保存失败!"); alert(L"保存失败!"); return -1; } alert("保存成功!"); alert(L"保存成功!"); return 1; } //命令处理事件 int OnXCommand(ref TXCommandEvent evt, int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&ProductSchemaSelectWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_base", "DWV_ITEMCHANGED", OnArgItemChanged); AttachEvent(L"WM_SETFOCUS", (FEvent)&ProductSchemaSelectWin::OnSetFocus); AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&ProductSchemaSelectWin::OnArgItemChanged); return 1; } int OnRetrieve() @@ -125,15 +139,15 @@ dw_list.Reset(); dw_list.Redraw(); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("SKUID", dw_base.GetItemString(1, "SKUID")); //alert(dw_base.GetItemString(1,"SKUID")); if (getUrl("/sale/data/ProductLibrary3/ProductSchemaList", arg.GetString(), x) != 1) xml x ; xaserverarg arg; arg.AddArg(L"SKUID", dw_base.GetItemString(1, L"SKUID")); //alert(dw_base.GetItemString(1,L"SKUID")); if (getUrl(L"/sale/data/ProductLibrary3/ProductSchemaList", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; } else @@ -147,11 +161,11 @@ int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/ProductLibrary/template/ProductSchema"); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/ProductLibrary/template/ProductSchema"); dw_base = GetControl("dw_base"); dw_base.openUrl("/sale/view/ProductLibrary/template/ProductArg"); dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/ProductLibrary/template/ProductArg"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); @@ -169,5 +183,4 @@ return 1; } }; ] }; jrj/project/business/Enquiry/SKU.PictureView.Product3.cpp
@@ -1,16 +1,31 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" #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> unit trade [ class SKUProductPictureView3 : public frame #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) SKUProductPictureView3 : public xframe { imageview im; public: ximageview im; xml doc; int m_winHwnd; int ParentHWND; int hiddenBox(string name, bool f) 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); @@ -26,72 +41,72 @@ return 1; } int OnImgDBClicked(ref TNotifyEvent evt, int pr) int OnImgDBClicked(TEvent* evt, int pr) { ref IMGNNMHDR nmtv = evt.pnmh; string src = nmtv.path; IMGNNMHDR& nmtv = *(IMGNNMHDR*)evt->notify.pnmh; xstring src = nmtv.path; /*if(src.length() > 60) src = src.right(44); else src=src.mid(src.find("Thumbs", 0)+6, 50); src=src.mid(src.find(L"Thumbs", 0)+6, 50); */ xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); //arg.AddArg("src","/business/products/chanpin"+src); arg.AddArg("src", src); xaserverarg& arg = *new xaserverarg; //arg.AddArg(L"src",L"/business/products/chanpin"+src); arg.AddArg(L"src", src); //win::OpenWindow("dev:xpage[BigPicture.vx]",arg); //win::OpenWindow(L"dev:xpage[BigPicture.vx]",arg); int h = openUrl("/sale/view/ProductLibrary/xpage/bigpictureview", arg); int h = openUrl(L"/sale/view/ProductLibrary/xpage/bigpictureview", &arg); return 1; xwin x = new xwin; /*xwin x = new xwin; x.setNativePointer(h); m_winHwnd = x.GetHWND(); string sh = doc.GetXml(); xstring sh = doc.xml(); int p = cast(sh as int); win32::SendMessage(m_winHwnd, 0x401, p, 0); return 1; return 1;*/ } int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if (comdid == "xmSave") if (comdid == L"xmSave") { string x = " ".space(256); xutil::OpenDialog(this.GetHWND(), x); if (x == "") return 0; xstring x = L" "; xutil::OpenDialog(GetHWND(), x); if (x == L"") return 0; msxml::IXMLDOMElement e = doc.GetXmlDoc().selectSingleNode("ImageList"); msxml::IXMLDOMNodeList nlist = e.SelectNodes("image"); KXMLDOMElement e = doc.selectSingleNode(L"ImageList"); KXMLDOMNodeList nlist = e.selectNodes(L"image"); int hCursor = xutil::SetCursorWait(); int s = nlist.length; string result = ""; HCURSOR hCursor = xutil::SetCursorWait(); int s = nlist.length(); xstring result = L""; for (int i = 0; i < s; i++) { msxml::IXMLDOMElement xitem = nlist.item(i); string picname = xitem.selectSingleNode("PicPath").text; if (picname == "") continue; string goodsno = xitem.selectSingleNode("GoodsNo").text; string src = picname.mid(26, picname.length()); //trace(picname + "-->" + src + "\r\n"); if (src == "" || src == "/") continue; int openRet = xaserver::DownLoadFile(GetServerUrl(), "/business/products/chanpin/" + src, "", x + "/" + goodsno + ".jpg"); 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 + "-->" + src + "\r\n"); result += goodsno + " "; //trace(picname + L"-->" + src + L"\r\n"); result += goodsno + L" "; } } xutil::RestoreCursor(hCursor); if (result != "") alert(result + "\r\n以上货号下载图片失败!"); if (result != L"") alert(result + L"\r\n以上货号下载图片失败!"); else alert("保存完毕!"); alert(L"保存完毕!"); } else if (comdid == "xmDelete") else if (comdid == L"xmDelete") { int hh = ParentHWND; if (hh > 0) @@ -100,22 +115,22 @@ if (nIndex < 0 || nIndex >= im.GetImageCount()) return 0; im.RemoveImage(nIndex); im.Redraw(); string comd = "Delete:" + nIndex.toString(); win32::SendMessage(hh, 0x401, comd, 0); xstring comd = L"Delete:" +xstring(nIndex); SendMessage(hh, 0x401, comd, 0); } } return 0; } int OnXCommand(ref TXCommandEvent evt, int p) int OnXCommand(TEvent* evt, int param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnCombboChange(ref TCommandEvent evt, int lParam) int OnCombboChange(TEvent* evt, int lParam) { xcombobox xc = GetControl("precent"); string text = xcombobox::GetLBText(xc.GetId()); xcombobox xc = GetControl(L"precent"); xstring text = xc.GetLBText(); int p = text.toInt(); if (p == 0) p = 100; im.Preview(p); @@ -124,25 +139,26 @@ int OnAttachEvent() { AttachEvent("im1", "IMG_LDBCLICK", OnImgDBClicked); AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent("precent", "CBN_SELCHANGE", OnCombboChange); 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 = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; xml x ; xaserverarg arg; if (this.GetParam()) arg = this.GetParam(); if (GetWinParam()) arg = GetArg(); else return 0; if (url::get(GetEntityName(1) + "/pref/category/picture/list", arg.GetString(), x) != 1) if (xurl::get(GetEntityName(1) + L"/pref/category/picture/list", arg.GetString(), x) != 1) { trace("xxx", x.GetXml()); trace(L"error:" + xstring(x.xml(), true)); return 0; } //trace(arg.GetString()); @@ -152,66 +168,66 @@ int onload() { im = GetControl("im1"); SetArg(); im = GetControl(L"im1"); OnAttachEvent(); ParentHWND = 0; if (this.GetParam()) if (GetWinParam()) { xaserverarg arg = new xaserverarg; //arg.setNativePointer(arg.CreateInstance()); arg = this.GetParam(); string hh = arg.GetArgString("ParentHWND"); xaserverarg arg; // arg = GetArg(); xstring hh = arg.GetArgString(L"ParentHWND"); ParentHWND = hh.toInt(); string openflag = arg.GetArgString("OpenFlag"); xstring openflag = arg.GetArgString(L"OpenFlag"); //alert(openflag); if (openflag != "0") hiddenBox("xmDelete", false); if (openflag != L"0") hiddenBox(L"xmDelete", false); //trace(arg.GetString()); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xml x ; //alert(arg.GetString()); //if(url::get("/sale/data/product/pref/category/picture/list",arg.GetString(),x)!=1) if (url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKUNoList", arg.GetString(), x) != 1) //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("xxx", x.GetXml()); trace(L"error:" + xstring(x.xml(), true)); return 0; } doc = x; //alert(x.GetXml()); msxml::IXMLDOMElement e = x.GetXmlDoc().selectSingleNode("ImageList"); msxml::IXMLDOMNodeList nlist = e.SelectNodes("image"); KXMLDOMElement e = x.selectSingleNode(L"ImageList"); KXMLDOMNodeList nlist = e.selectNodes(L"image"); int i; int s = nlist.length; int s = nlist.length(); for (i = 0; i < s; i++) { msxml::IXMLDOMElement xitem = nlist.item(i); string picname = xitem.selectSingleNode("PicPath").text; string goodno = xitem.selectSingleNode("GoodsNo").text; //trace(picname + "\r\n"); if (picname == "/business/products/Thumbs//") picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; 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("/business/products/chanpin/BL-002/291679.jpg", "x1"); im.AddImages("/business/products/chanpin/BL-002/291759.jpg", "x2"); im.AddImages("/business/products/chanpin/BL-002/417884.jpg", "x3"); im.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(); } win32::SetFocus(im.GetId()); string userno = xaserver::GetUserNo(); /*if(userno == "1003" || userno == "1137" || userno == "admin") { xstring userno = xaserver::GetUserNo(); /*if(userno == L"1003" || userno == L"1137" || userno == L"admin") { //hiddenBox(); } else { hiddenBox("xmSave", false); hiddenBox(L"xmSave", false); }*/ hiddenBox("xmSave", false); hiddenBox(L"xmSave", false); return -1; } }; ] }; jrj/project/business/Enquiry/ViewPictures.cpp
@@ -1,19 +1,30 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "multi.vbind.vbind.wface.vd" use "productlibrary.vd" use "shoppingcart.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> unit trade [ class ViewPictures : public frame #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) ViewPictures : public xframe { msxml::IXMLDOMElement imageElement; string m_customer; int OnCmdDispatch(string comdid) public: KXMLDOMElement imageElement; xstring m_customer; public: ViewPictures(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static ViewPictures* CreateInstance(void* implPtr, void* hWnd) { if (comdid == "xmClose") ViewPictures* pWin = new ViewPictures(implPtr, (HWND)hWnd); return pWin; } int OnCmdDispatch(xstring comdid) { if (comdid == L"xmClose") { CloseWindow(); return 1; @@ -21,47 +32,47 @@ return 0; } int OnXCommand(ref TXCommandEvent evt, int p) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { AttachEvent("WM_XCOMMAND", OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewPictures::OnXCommand); return 1; } int OnShowImage(string skuid) int OnShowImage(xstring skuid) { imageview im = GetControl("im1"); imageview im = GetControl(L"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); if (url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1) xml xp ; xaserverarg arg_pic; arg_pic.AddArg(L"SKUID", skuid); if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1) { trace("xxx", xp.GetXml()); trace(L"error:" + xstring(xp.xml(), true)); } else { trace(skuid + "===== " + xp.GetXml()); imageElement = xp.GetXmlDoc().documentElement; msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; trace(skuid + L"===== L" + xp.xml()); imageElement = xp.documentElement(); KXMLDOMNodeList nlistp = xp.selectNodes(L"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, ""); KXMLDOMElement xitem = nlistp.item(ip); xstring picname = xitem.selectSingleNode(L"PicPath").text(); xstring 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, L""); } im.Redraw(); //win32::SendMessage(im.GetId(),0x000f,0,1); @@ -72,15 +83,15 @@ int onload() { SetArg(); OnAttachEvent(); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); int p = GetParam(); arg.setNativePointer(p); string skuid = arg.GetArgString("guid"); string customerItemNo = arg.GetArgString("CustomerItemNo"); xaserverarg arg; int p = GetArg(); xstring skuid = arg.GetArgString(L"guid"); xstring customerItemNo = arg.GetArgString(L"CustomerItemNo"); OnShowImage(skuid); return 1; } }; ]