ÿþ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/ximageview.hpp> #include <xcontrol/xcheckbox.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "viewobject/enquiry.view.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) EnquiryEx3list : public listwin { public: xstring m_sType; //h -N„v{|‹W xstring m_sTypeTxt; //h -N„vpenc xstring urlTree; xstring myDataUrl; xstring myDataUrl1; xcombobox ddlb_1; xtreeview tv_folder; xtreeview tv_folder_pricebill; xdwgrid dw_goods; xdwgrid dw_list1; xdwgrid dw_list2; xdwgrid dw_goods1; xdwgrid dw_goods2; xdwgrid dw_list_goodssupplier; KXMLDOMElement imageElement; xdwgrid dw_pricelist; xdwgrid dw_pricelistex; xdwgrid dw_priceitem; xdwgrid dw_pricelistshare; xdwgrid dw_priceitemoption; int changeddlb; int state1; int state2; xstring sheetname; xnode m_agentNode; public: EnquiryEx3list(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {} public: static EnquiryEx3list* CreateInstance(void* implPtr, void* hWnd) { EnquiryEx3list* pWin = new EnquiryEx3list(implPtr, (HWND)hWnd); return pWin; } int SetAgentEx() { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[@id='" + sheetname + L"']/*"); if (agent) { xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } return 1; } int SetAgent1(xstring scene, xstring EntityID) { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); KXMLDOMElement xframeElement = GetElement(); KXMLDOMNode agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"scene", scene, L"xs:xstring"); arg.AddArg(L"EntityID", EntityID, L"xs:xstring"); arg.AddArg(L"EntityName", GetEntityName(1), L"xs:xstring"); xurl::get(L"/workflow/query/datarole/" + GetEntityName(1), arg.GetString(), x); SetObjectInfo(x.documentElement()); xstring sNodes; sNodes = L"datarole/actions/action[contains(@scene,'" + scene + L"')]"; KXMLDOMNodeList nlist = x.selectNodes(sNodes); int index; int nlen = nlist.length(); KXMLDOMElement ele; xstring tools = L"<vbox class=''>"; if (scene == L"list") tools += L"<xspace height='12'/>"; for (index = 0; index < nlen; index++) { ele = nlist.item(index); xstring name = ele.selectSingleNode(L"@id").text();//.getAttribute(L"id"); xstring label = ele.selectSingleNode(L"@caption").text();//ele.getAttribute(L"caption"); xstring image; xstring src = L""; if (ele.selectSingleNode(L"@image")) image = ele.selectSingleNode(L"@image").text(); else image = L"0 22"; if (ele.selectSingleNode(L"@src")) src = ele.selectSingleNode(L"@src").text(); xstring tool; if (src != L"") tool = L"<xtoolbutton src='" + src + L"' caption='" + label + L"' name='action:" + name + L"' height='23' style='background-color:none #ceecce none #ffffff'/>"; else tool = L"<xtoolbutton image='" + image + L"' caption='" + label + L"' name='action:" + name + L"' height='23' style='background-color:none #ceecce none #ffffff'/>"; tools += tool; } /*if(agent) { nlist = agent.selectNodes(L".//xtoolbutton"); nlen = nlist.length(); for(index=0;index<nlen;index++) { ele = nlist.item(index); xstring tmp = ele.xml(); tools += tmp; } }*/ tools += L"</vbox>"; //trace(tools); SetAgentNode(anode, tools); return 1; } int SetAgent(xstring scene) { return SetAgent(scene, L""); } int SetAgent(xstring scene, xstring EntityID) { if (sheetname != L"tab_list_goodssupplier" && sheetname != L"tab_pricebill" && sheetname != L"tab_pricebillex" && sheetname != L"tab_pricebillshare" && sheetname != L"tab_list2") { //SetAgent1(scene,EntityID); } else SetAgentEx(); return 1; } //process tree //åg~bS_MRhy˜„vv˜§~îvU_ HTREEITEM LookupTopFolder(xtreeview tv_folder, HTREEITEM hItem) { HTREEITEM hRoot = tv_folder.GetRootItem(); while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); return hItem; } int ExpandCatChildFolder(xtreeview tv_folder, HTREEITEM hItem, KXMLDOMElement ele, int image) { 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++) { KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i)); xstring name = e.getAttribute(L"name"); HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image); ExpandCatChildFolder(tv_folder, h, e, 35); } return 1; } int ExpandFolderItem(xtreeview tv_folder, HTREEITEM hItem, xstring no) { xml x = ViewObject::RetrieveData(urlTree, L"no", no); if (!x) return 0; KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); int len = nlist.length(); for (int i = 0; i < len; i++) { KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i)); xstring name = e.getAttribute(L"name"); HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35); ExpandCatChildFolder(tv_folder, h, e, 35); } return 1; } //hU\_ int OnTreeExpanding(TEvent * evt, LPARAM p) { NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; HTREEITEM hItem = nmtv.itemNew.hItem; HTREEITEM hTopItem = LookupTopFolder(tv_folder, hItem); xstring name = tv_folder.GetItemLabel(hTopItem); HTREEITEM child = tv_folder.GetChildItem(hItem); KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem); if (!child)ExpandFolderItem(tv_folder, hItem, e.getAttribute(L"no")); return 1; } int OnPriceBillTreeExpanding(TEvent * evt, LPARAM p) { NMTREEVIEW& nmtv =*(NMTREEVIEW*)evt->notify.pnmh; HTREEITEM hItem = nmtv.itemNew.hItem; HTREEITEM hTopItem = LookupTopFolder(tv_folder_pricebill, hItem); xstring name = tv_folder_pricebill.GetItemLabel(hTopItem); HTREEITEM child = tv_folder_pricebill.GetChildItem(hItem); KXMLDOMElement e = *(KXMLDOMElement*)tv_folder_pricebill.GetItemData(hItem); if (!child)ExpandFolderItem(tv_folder_pricebill, hItem, e.getAttribute(L"no")); return 1; } int ExpandChildFolder(xtreeview tv_folder, HTREEITEM hItem, KXMLDOMElement pElement) { KXMLDOMNodeList nlist = pElement.selectNodes(L"Item"); int len = nlist.length(); for (int i = 0; i < len; i++) { KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i)); xstring name = e.getAttribute(L"name"); xstring sImage = e.getAttribute(L"image"); xstring child = e.getAttribute(L"child"); int image = 15; if (sImage) image = sImage.toInt(); HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image); if (child != L"no") tv_folder.SetItemChild(h, 1); ExpandChildFolder(tv_folder, h, e); } return 1; } int InitialFolder() { KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); if (e)ExpandChildFolder(tv_folder, 0, e); return 1; } int InitialFolderPriceBill() { KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder_pricebill']/initial"); if (e)ExpandChildFolder(tv_folder_pricebill, 0, e); return 1; } int OnTreeSelChanged(TEvent * evt, LPARAM p) { //OnPriceBillRetrieve(); //OnProductPriceBillRetrieve(); return OnPreRetrieve(); } int OnPriceBillTreeSelChanged(TEvent * evt, LPARAM p) { OnPriceBillRetrieve(); OnProductPriceBillRetrieve(); return 1; } int OnSaveShare() { dw_pricelistshare.AcceptText(); xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); dw_pricelistshare.DwUpdateAllToEx(x); arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/UserGroup/update/entity", arg.GetString(), x) != 1) { xstring error = x.text(); alert(L"err:" + error); return 1; } else { xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { alert(L"ÝOX[bŸR!"); dw_pricelistshare.ResetUpdateStatus(); } else { alert(L"ÝOX[1Y%!"); } } return 1; } int Send(xstring PersonID, xstring CName, xstring NO, xstring EntityID) { xml x = ViewObject::RetrieveData(L"/sale/data/business/message/getUserNO", L"PersonID", PersonID); KXMLDOMNodeList nlist = x.selectNodes(L"//data/Item"); KXMLDOMElement xitem = nlist.item(0); xstring Reciever = xitem.selectSingleNode(L"userno").text(); xstring Subject = L"÷N 1) { for (int i = 1; i <= dw_priceitem.GetRowCount(); i++) { if (dw_priceitem.GetItemString(i, L"PartQty") == L"") { alert(L"÷‹“eQM‘öNpeϑ"); return 1; } } } if (dw_pricelistex.GetRowCount() > 1) { for (int t = 1; t <= dw_pricelistex.GetRowCount(); t++) { if (dw_pricelistex.GetItemString(t, L"SupplierID") == L"") { alert(L"›O”^FU:Nzzÿ"); return 1; } } } xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); dw_pricelistex.DwUpdateAllToEx(x); if (x.xml() != L"") { xstring error = L""; xstring str = L""; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/Enquiry/update/pricelistex", arg.GetString(), x) != 1) { error = x.text(); alert(error); return 1; } else { str = x.documentElement().getAttribute(L"text"); if (str == L"true") { dw_pricelistex.ResetUpdateStatus(); } else { alert(L"bÁT÷N") return true; if (queryStr == L"<items join=\"and\"/>") return true; return false; } int OnAskGoodsNo() { int rowCount = dw_list_goodssupplier.GetRowCount(); xstring skunos = L""; int row = dw_list_goodssupplier.GetNextSelectRow(1); while (row > 0 && row <= rowCount) { xstring GoodsNo1 = dw_list_goodssupplier.GetItemString(row, L"GoodsNo"); if (dw_list_goodssupplier.GetItemString(row, L"SKUNo") != L"" && dw_list_goodssupplier.GetItemString(row, L"GoodsNo") == L"" || GoodsNo1.find(L"N") >= 0 || GoodsNo1.find(L"n") >= 0) { if (skunos == L"") skunos = dw_list_goodssupplier.GetItemString(row, L"SKUNo"); else skunos += L",L" + dw_list_goodssupplier.GetItemString(row, L"SKUNo"); } row = dw_list_goodssupplier.GetNextSelectRow(row + 1); } xaserverarg arg; arg.AddArg(L"SKUNoList", skunos); OpenWindow(L"dev:xpage[Product.FetchNo.vx]", (LPARAM) & arg); return 1; } //Àh"} int OnPreRetrieve() { HTREEITEM hItem = tv_folder.GetSelectedItem(); if (!hItem) return 1; HCURSOR hCursor = xutil::SetCursorWait(); KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem); xstring no = e1.getAttribute(L"no"); xml x = 0; /* if(!(no ==L"Category:All" && IsEmptyQueryStr(m_QueryTxt))) x = ViewObject::RetrieveData(myDataUrl,L"no",no,L"QueryTxt", m_QueryTxt); if(x) { dw_list.Retrieve(x); dw_list.Redraw(); }else { dw_list.ResetEx(); dw_list.Redraw(); dw_goods.ResetEx(); dw_goods.Redraw(); } */ /*if(!(no ==L"Category:All" && IsEmptyQueryStr(m_QueryTxt))) x = ViewObject::RetrieveData(L"/sale/data/Enquiry/folder/list2",L"no",no,L"QueryTxt", m_QueryTxt); if(x) { dw_list2.Retrieve(x); dw_list2.Redraw(); }else { dw_list2.ResetEx(); dw_list2.Redraw(); dw_goods2.ResetEx(); dw_goods2.Redraw(); } */ /* if(x) { dw_list1.Retrieve(x); dw_list1.Redraw(); }else { dw_list1.ResetEx(); dw_list1.Redraw(); dw_goods1.ResetEx(); dw_goods1.Redraw(); } */ /*x = ViewObject::RetrieveData(myDataUrl1,L"no",no,L"QueryTxt", m_QueryTxt); if(x) { dw_list1.Retrieve(x); dw_list1.Redraw(); }else { dw_list1.ResetEx(); dw_list1.Redraw(); dw_goods1.ResetEx(); dw_goods1.Redraw(); } dw_list1.SetReadOnly(true); */ trace(no + L"++++++L" + m_QueryTxt); x = ViewObject::RetrieveData(L"/sale/data/Enquiry/folder/listitem/supplier", L"no", no, L"QueryTxt", m_QueryTxt); if (x) { dw_list_goodssupplier.Retrieve(x); dw_list_goodssupplier.Redraw(); } else { dw_list_goodssupplier.Reset(); dw_list_goodssupplier.Redraw(); } dw_list_goodssupplier.SetReadOnly(true); dw_list_goodssupplier.SetSelectionMode(3); xutil::RestoreCursor(hCursor); return 1; } //†SòSpenc int Onhistroydata() { return 1; int row = dw_list.GetNextSelectRow(1); if (row > 0) { KXMLDOMElement e = dw_list.GetRowElement(row); xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); xstring sCustomerID = e.selectSingleNode(L"CustomerID").text(); arg.AddArg(L"CustomerID", sCustomerID, L""); xstring sCustomerName = e.selectSingleNode(L"CustomerName").text(); arg.AddArg(L"CustomerName", sCustomerName, L""); arg.AddArg(L"EntityName", GetEntityName(1), L""); arg.AddArg(L"EntityID", GetEntityID(1), L""); openUrl(L"/sale/view/Enquiry3/xpage/histroydata", &arg); } return 1; } int OnNewPriceList() { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); 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"pricebill"); arg.SetParam(L"hWnd", (LPARAM)GetHWND()); OpenWindow(L"dev:xpage[Enquiry.maint.vx]", (LPARAM)&arg); return 1; } int OnPriceListSupplierEx() { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); 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"pricebill"); arg.SetParam(L"hWnd", (LPARAM)GetHWND()); int row = dw_pricelistex.GetNextSelectRow(1); xstring items = L""; while (row > 0 && row <= dw_pricelistex.GetRowCount()) { KXMLDOMElement e = dw_pricelistex.GetRowElement(row); xstring id = e.selectSingleNode(L"@guid").text(); if (items == L"") items = id; else items += L",L" + id; row = dw_pricelistex.GetNextSelectRow(row + 1); } //alert(items); arg.AddArg(L"EntityIDList", items); OpenWindow(L"dev:xpage[Enquiry.maint.vx]", (LPARAM) & arg); return 1; } int OnPriceListSupplier() { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"sheetname", L"tab_list2"); arg.AddArg(L"EntityName", L"Enquiry3"); arg.AddArg(L"EntityID", L""); arg.AddArg(L"EntityNo", L""); arg.SetParam(L"hWnd", (LPARAM)GetHWND()); int row = dw_list_goodssupplier.GetNextSelectRow(1); xstring items = L""; while (row > 0 && row <= dw_list_goodssupplier.GetRowCount()) { KXMLDOMElement e = dw_list_goodssupplier.GetRowElement(row); xstring id = e.selectSingleNode(L"EnquiryLineID").text(); if (items == L"") items = id; else items += L",L" + id; row = dw_list_goodssupplier.GetNextSelectRow(row + 1); } arg.AddArg(L"EntityIDList", items); OpenWindow(L"dev:xpage[Enquiry.maint.vx]", arg); return 1; } int OnPrint() { xaserverargPtr arg; arg->AddArg(L"EntityName", L"Enquiry", L""); arg->AddArg(L"EntityID", GetEntityID(1), L""); arg->AddArg(L"EntityNo", GetEntityNo(1), L""); openUrl(L"/sale/view/view.base/xpage/Template/PrintViewEx", arg); return 0; } int OnAddPriceList() { dw_priceitem.Reset(); xaserverarg arg ; arg.AddArg(L"action", L"AddPriceList"); OpenWindow(L"dev:xpage[ProductSchemaSelect.vx]", (LPARAM)&arg); if (arg.GetArgString(L"process") == L"ok") { xml x; if (getUrl(L"/sale/data/Enquiry/PriceListEx/SKU", arg.GetString(), x) != 1) return 1; KXMLDOMNodeList nodes = x.selectNodes(L"data/Item"); int len = nodes.length(); for (int i = 0; i < len; i++) { dw_pricelist.InsertRow(0); int row = dw_pricelist.GetRowCount(); dw_pricelist.SetRow(row); KXMLDOMNode ele = nodes.item(i); if (ele.selectSingleNode(L"SKUID")) dw_pricelist.SetItemString(row, L"SKUID", ele.selectSingleNode(L"SKUID").text()); if (ele.selectSingleNode(L"SKUID/@_displaystring")) dw_pricelist.SetItemDisplayString(row, L"SKUID", ele.selectSingleNode(L"SKUID/@_displaystring").text()); if (ele.selectSingleNode(L"GoodsNo")) dw_pricelist.SetItemString(row, L"GoodsNo", ele.selectSingleNode(L"GoodsNo").text()); if (ele.selectSingleNode(L"CName")) dw_pricelist.SetItemString(row, L"CName", ele.selectSingleNode(L"CName").text()); if (ele.selectSingleNode(L"BOMSchema")) dw_pricelist.SetItemString(row, L"BOMSchema", ele.selectSingleNode(L"BOMSchema").text()); if (ele.selectSingleNode(L"Version")) dw_pricelist.SetItemString(row, L"Version", ele.selectSingleNode(L"Version").text()); if (ele.selectSingleNode(L"SchemaNote")) dw_pricelist.SetItemString(row, L"SchemaNote", ele.selectSingleNode(L"SchemaNote").text()); if (ele.selectSingleNode(L"Current")) dw_pricelist.SetItemString(row, L"Current", ele.selectSingleNode(L"Current").text()); if (ele.selectSingleNode(L"PriceInfo")) dw_pricelist.SetItemString(row, L"PriceInfo", ele.selectSingleNode(L"PriceInfo").text()); xstring id = dw_pricelist.GetGuid(row); if (id == L"") { id = publiccode::GetGuid(); dw_pricelist.SetGuid(row, id); } KXMLDOMNodeList items = ele.selectNodes(L"data/Item"); AddItems(id, items); } } //OnRetrieveItem(dw_pricelist.GetGuid(row)); return 1; } int OnAddPriceListVersion() { int row = dw_pricelist.GetRow(); if (row < 1) return 1; dw_priceitem.Reset(); xaserverarg arg ; xml x; arg.AddArg(L"SKUID", dw_pricelist.GetItemString(row, L"SKUID")); arg.AddArg(L"SchemaNo", dw_pricelist.GetItemString(row, L"BOMSchema")); if (getUrl(L"/sale/data/Enquiry/PriceListEx/SKU", arg.GetString(), x) != 1) return 1; KXMLDOMNodeList nodes = x.selectNodes(L"data/Item"); int len = nodes.length(); for (int i = 0; i < len; i++) { dw_pricelist.InsertRow(0); row = dw_pricelist.GetRowCount(); dw_pricelist.SetRow(row); KXMLDOMNode ele = nodes.item(i); if (ele.selectSingleNode(L"SKUID")) dw_pricelist.SetItemString(row, L"SKUID", ele.selectSingleNode(L"SKUID").text()); if (ele.selectSingleNode(L"SKUID/@_displaystring")) dw_pricelist.SetItemDisplayString(row, L"SKUID", ele.selectSingleNode(L"SKUID/@_displaystring").text()); if (ele.selectSingleNode(L"GoodsNo")) dw_pricelist.SetItemString(row, L"GoodsNo", ele.selectSingleNode(L"GoodsNo").text()); if (ele.selectSingleNode(L"CName")) dw_pricelist.SetItemString(row, L"CName", ele.selectSingleNode(L"CName").text()); if (ele.selectSingleNode(L"BOMSchema")) dw_pricelist.SetItemString(row, L"BOMSchema", ele.selectSingleNode(L"BOMSchema").text()); if (ele.selectSingleNode(L"Version")) dw_pricelist.SetItemString(row, L"Version", ele.selectSingleNode(L"Version").text()); if (ele.selectSingleNode(L"SchemaNote")) dw_pricelist.SetItemString(row, L"SchemaNote", ele.selectSingleNode(L"SchemaNote").text()); if (ele.selectSingleNode(L"Current")) dw_pricelist.SetItemString(row, L"Current", ele.selectSingleNode(L"Current").text()); if (ele.selectSingleNode(L"PriceInfo")) dw_pricelist.SetItemString(row, L"PriceInfo", ele.selectSingleNode(L"PriceInfo").text()); xstring id = dw_pricelist.GetGuid(row); if (id == L"") { id = publiccode::GetGuid(); dw_pricelist.SetGuid(row, id); } KXMLDOMNodeList items = ele.selectNodes(L"data/Item"); AddItems(id, items); } //OnRetrieveItem(dw_pricelist.GetGuid(row)); return 1; } int AddItems(xstring id, KXMLDOMNodeList nodes) { //dw_pricelist.Filter(L"EnquiryPriceListID",L""); int len = nodes.length(); for (int i = 0; i < len; i++) { dw_priceitem.InsertRow(0); int row = dw_priceitem.GetRowCount(); dw_priceitem.SetItemString(row, L"EnquiryPriceListID", id); KXMLDOMNode ele = nodes.item(i); if (ele.selectSingleNode(L"SchemaNote")) dw_priceitem.SetItemString(row, L"SchemaNote", ele.selectSingleNode(L"SchemaNote").text()); if (ele.selectSingleNode(L"BOMType")) dw_priceitem.SetItemString(row, L"BOMType", ele.selectSingleNode(L"BOMType").text()); if (ele.selectSingleNode(L"BOMPartNo")) dw_priceitem.SetItemString(row, L"BOMPartNo", ele.selectSingleNode(L"BOMPartNo").text()); if (ele.selectSingleNode(L"SupplierID")) dw_priceitem.SetItemString(row, L"SupplierID", ele.selectSingleNode(L"SupplierID").text()); if (ele.selectSingleNode(L"SupplierID/@_displaystring")) dw_priceitem.SetItemDisplayString(row, L"SupplierID", ele.selectSingleNode(L"SupplierID/@_displaystring").text()); if (ele.selectSingleNode(L"BuyPrice")) dw_priceitem.SetItemString(row, L"BuyPrice", ele.selectSingleNode(L"BuyPrice").text()); if (ele.selectSingleNode(L"ItemMiniQty")) dw_priceitem.SetItemString(row, L"ItemMiniQty", ele.selectSingleNode(L"ItemMiniQty").text()); if (ele.selectSingleNode(L"EnquiryNo")) dw_priceitem.SetItemString(row, L"EnquiryNo", ele.selectSingleNode(L"EnquiryNo").text()); if (ele.selectSingleNode(L"EnquiryDate")) dw_priceitem.SetItemString(row, L"EnquiryDate", ele.selectSingleNode(L"EnquiryDate").text()); if (ele.selectSingleNode(L"ValidDay")) dw_priceitem.SetItemString(row, L"ValidDay", ele.selectSingleNode(L"ValidDay").text()); if (ele.selectSingleNode(L"ItemNote")) dw_priceitem.SetItemString(row, L"ItemNote", ele.selectSingleNode(L"ItemNote").text()); if (ele.selectSingleNode(L"EnquiryLineID")) dw_priceitem.SetItemString(row, L"EnquiryLineID", ele.selectSingleNode(L"EnquiryLineID").text()); if (ele.selectSingleNode(L"PriceInfo")) dw_priceitem.SetItemString(row, L"PriceInfo", ele.selectSingleNode(L"PriceInfo").text()); dw_priceitem.SetItemString(row, L"ProductQty", L"1"); dw_priceitem.SetItemString(row, L"PartQty", L"1"); } return 1; } int OnAddRow() { if (dw_pricelistex.GetRow() < 1) return 1; int row = dw_pricelistex.GetRow(); xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"SKUID", dw_pricelistex.GetItemString(row, L"ItemID")); trace(L"\r\nguid1:" + dw_pricelistex.GetItemString(row, L"ItemID") + L"\r\GoodsNo:" + dw_pricelistex.GetItemString(row, L"GoodsNo")); arg.AddArg(L"SchemaNo", dw_pricelistex.GetItemString(row, L"BOMSchema")); arg.AddArg(L"GoodsNo", dw_pricelistex.GetItemString(row, L"GoodsNo")); OpenWindow(L"dev:xpage[PriceList.PurcharItemSelect.vx]", (LPARAM)&arg); xstring id = dw_pricelistex.GetGuid(dw_pricelistex.GetRow()); if (id == L"") { id = publiccode::GetGuid(); dw_pricelistex.SetGuid(dw_pricelistex.GetRow(), id); } if (arg.GetArgString(L"process") == L"ok") { xstring content = arg.GetArgString(L"result"); xml x ; x.loadXML(content); KXMLDOMNodeList nodes = x.selectNodes(L"data/Item"); AddItems(id, nodes); xstring PriceInfo = L""; for (int i = 1; i <= dw_pricelistex.GetRowCount(); i++) { if (i == 1) PriceInfo = dw_priceitem.GetItemString(i, L"PriceInfo"); else PriceInfo = PriceInfo + L" " + dw_priceitem.GetItemString(i, L"PriceInfo"); } dw_pricelistex.SetItemString(dw_pricelistex.GetRow(), L"PriceInfo", PriceInfo); dw_pricelistex.Redraw(); } return 1; } int OnDeletePriceList() { /*dw_pricelist.DeleteRow(0); for(int i = dw_priceitem.GetRowCount(); i > 0 ; i = i - 1) { dw_priceitem.DeleteRow(i); }*/ return 1; } int OnDeleteRow() { if (dw_pricelist.GetRow() < 1) return 1; dw_priceitem.DeleteRow(0); xstring PriceInfo = L""; for (int i = 1; i <= dw_pricelist.GetRowCount(); i++) { if (i == 1) PriceInfo = dw_priceitem.GetItemString(i, L"PriceInfo"); else PriceInfo = PriceInfo + L" " + dw_priceitem.GetItemString(i, L"PriceInfo"); } dw_pricelist.SetItemString(dw_pricelist.GetRow(), L"PriceInfo", PriceInfo); dw_pricelist.Redraw(); return 1; } int OnDelEnquiry() { xstring EntityID = dw_pricelistex.GetGuid(dw_pricelistex.GetRow()); trace(L" " + xstring(dw_pricelistex.GetRow())); int MB_OKCANCEL = 1; int IDOK = 1; int ret = MessageBox(GetHWND(), L"nx¤‹ Rd–,{" + xstring(dw_pricelistex.GetRow()) + L"Lˆ÷Nnotify.pnmh; int row = hdr.row; HCURSOR hCursor = xutil::SetCursorWait(); xstring EnquiryNo = dw_list.GetItemString(row, L"EnquiryNo"); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/maint", L"id", EnquiryNo); if (x) dw_goods.Retrieve(x); else dw_goods.Reset(); dw_goods.Redraw(); dw_goods.SetReadOnly(true); xutil::RestoreCursor(hCursor); return 1; } int OnRowChanged3(TEvent * evt, LPARAM p) { DWNMHDR& hdr =*(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; HCURSOR hCursor = xutil::SetCursorWait(); if (row > 0) { HCURSOR hCursor = xutil::SetCursorWait(); xstring skuid = dw_list_goodssupplier.GetItemString(row, L"ItemID"); xstring SKUNo = dw_list_goodssupplier.GetItemString(row, L"SKUNo"); xstring CustomerID = dw_list_goodssupplier.GetItemString(row, L"SupplierID"); xstring CustomerItemNo = dw_list_goodssupplier.GetItemString(row, L"CustomerItemNo"); OnShowImage(skuid, CustomerID, CustomerItemNo); } xutil::RestoreCursor(hCursor); return 1; } int OnRowChanged2(TEvent * evt, LPARAM p) { DWNMHDR& hdr =*(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; HCURSOR hCursor = xutil::SetCursorWait(); xstring EnquiryNo = dw_list2.GetItemString(row, L"EnquiryNo"); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/maint", L"id", EnquiryNo); if (x) dw_goods2.Retrieve(x); else dw_goods2.Reset(); dw_goods2.Redraw(); dw_goods2.SetReadOnly(true); xutil::RestoreCursor(hCursor); return 1; } int OnRowChanged1(TEvent * evt, LPARAM p) { //fixed one event only one process //listwin::OnRowChanged(evt,p); DWNMHDR& hdr =*(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; HCURSOR hCursor = xutil::SetCursorWait(); xstring ItemID = dw_list1.GetItemString(row, L"ItemID"); //alert(ItemID); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/folder/listitemsex", L"itemID", ItemID, L"type", xstring(state2)); if (x) dw_goods1.Retrieve(x); else dw_goods1.Reset(); dw_goods1.Redraw(); dw_goods1.SetReadOnly(true); xutil::RestoreCursor(hCursor); return 1; } int OnShare() { int row1 = dw_pricelistex.GetRow(); xstring SupplierID = dw_pricelistex.GetItemString(row1, L"SupplierID"); xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); OpenWindow(L"dev:xpage[UserGroupShareEx.vx]", (LPARAM)&arg); if (arg.GetArgString(L"process") == L"ok") { xdwgrid dw_obj = dw_pricelistex; if (sheetname == L"tab_pricebillex") dw_obj = dw_pricelist; //sheetname=L"tab_pricebillshare"; //SetAgent(L"list"); //SwitchLayer(L"sheet5",L"frame"); xml x ; x.loadXML(arg.GetArgString(L"result")); KXMLDOMNodeList nodes = x.selectNodes(L"root/item"); int count = nodes.length(); int row = dw_obj.GetNextSelectRow(1); while (row > 0 && row <= dw_obj.GetRowCount()) { xstring SKUID = dw_obj.GetItemString(row, L"SKUID"); xstring SKUNo = dw_obj.GetItemDisplayString(row, L"SKUID"); xstring CName = dw_obj.GetItemString(row, L"CName"); xstring Version = dw_obj.GetItemString(row, L"Version"); xstring GoodsNo = dw_obj.GetItemString(row, L"GoodsNo"); xstring BOMSchema = dw_obj.GetItemString(row, L"BOMSchema"); xstring EntityID = dw_obj.GetGuid(row); if (EntityID == L"") EntityID = dw_obj.GetItemString(row, L"EnquiryPriceListID"); for (int i = 0; i < count; i++) { KXMLDOMNode node = nodes.item(i); xstring No = L""; xstring GroupOrEmp = L""; if (node.selectSingleNode(L"NO")) No = node.selectSingleNode(L"NO").text(); if (node.selectSingleNode(L"Name")) GroupOrEmp = node.selectSingleNode(L"Name").text(); int crow = dw_pricelistshare.InsertRow(1); //int crow = dw_pricelistshare.GetRowCount(); dw_pricelistshare.SetItemString(crow, L"NO", No); dw_pricelistshare.SetItemString(crow, L"GroupOrEmp", GroupOrEmp); dw_pricelistshare.SetItemString(crow, L"EntityID", EntityID); dw_pricelistshare.SetItemString(crow, L"EntityName", L"§NÁT÷N 1 && dw_pricelistex.GetItemString(row, L"BOMType") == L"") dw_pricelistex.SetItemString(row, L"BOMType", L"ce'"); if (dw_pricelistex.GetItemString(1, L"BOMType") == L"") dw_pricelistex.SetItemString(row, L"BOMType", L"bÁT"); } } return 1; } int OnTransPriceBill() { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"no", L"Category:All"); arg.AddArg(L"QueryTxt", L""); OpenWindow(L"dev:xpage[PriceList.PurcharItemSelectEx.vx]", (LPARAM)&arg); if (arg.GetArgString(L"process") == L"ok") { xml x; x.loadXML(arg.GetArgString(L"result")); KXMLDOMNodeList nodes = x.selectNodes(L"data/Item"); int len = nodes.length(); for (int i = 0; i < len; i++) { dw_pricelist.InsertRow(0); int row = dw_pricelist.GetRowCount(); //dw_pricelist.SetRow(row); KXMLDOMNode ele = nodes.item(i); if (ele.selectSingleNode(L"SKUID")) dw_pricelist.SetItemString(row, L"Item", ele.selectSingleNode(L"SKUID").text()); if (ele.selectSingleNode(L"SKUNo")) dw_pricelist.SetItemDisplayString(row, L"SKUID", ele.selectSingleNode(L"SKUNo").text()); if (ele.selectSingleNode(L"GoodsNo")) dw_pricelist.SetItemString(row, L"GoodsNo", ele.selectSingleNode(L"GoodsNo").text()); if (ele.selectSingleNode(L"CName")) dw_pricelist.SetItemString(row, L"CName", ele.selectSingleNode(L"CName").text()); if (ele.selectSingleNode(L"BOMSchema")) dw_pricelist.SetItemString(row, L"BOMSchema", ele.selectSingleNode(L"BOMSchema").text()); if (ele.selectSingleNode(L"Version")) dw_pricelist.SetItemString(row, L"Version", ele.selectSingleNode(L"Version").text()); if (ele.selectSingleNode(L"SchemaNote")) dw_pricelist.SetItemString(row, L"SchemaNote", ele.selectSingleNode(L"SchemaNote").text()); if (ele.selectSingleNode(L"Current")) dw_pricelist.SetItemString(row, L"Current", ele.selectSingleNode(L"Current").text()); if (ele.selectSingleNode(L"PriceInfo")) dw_pricelist.SetItemString(row, L"PriceInfo", ele.selectSingleNode(L"PriceInfo").text()); xstring edate = ele.selectSingleNode(L"EnquiryDate").text(); xstring ver = edate.mid(2, 2) + L"." + edate.mid(5, 2) + L"." + edate.mid(5, 2); dw_pricelist.SetItemString(row, L"Version", ver); if (ele.selectSingleNode(L"SupplierID/@_displaystring")) { xstring name = ele.selectSingleNode(L"SupplierID/@_displaystring").text(); xstring price = ele.selectSingleNode(L"POPrice").text(); xstring PriceInfo = price + L" " + name; dw_pricelist.SetItemString(row, L"PriceInfo", PriceInfo); } xstring id = dw_pricelist.GetGuid(row); if (id == L"") { id = publiccode::GetGuid(); dw_pricelist.SetGuid(row, id); } dw_priceitem.InsertRow(0); row = dw_priceitem.GetRowCount(); dw_priceitem.SetItemString(row, L"EnquiryPriceListID", id); if (ele.selectSingleNode(L"SchemaNote")) dw_priceitem.SetItemString(row, L"SchemaNote", ele.selectSingleNode(L"SchemaNote").text()); if (ele.selectSingleNode(L"BOMType")) dw_priceitem.SetItemString(row, L"BOMType", ele.selectSingleNode(L"BOMType").text()); if (ele.selectSingleNode(L"BOMPartNo")) dw_priceitem.SetItemString(row, L"BOMPartNo", ele.selectSingleNode(L"BOMPartNo").text()); if (ele.selectSingleNode(L"SupplierID")) dw_priceitem.SetItemString(row, L"SupplierID", ele.selectSingleNode(L"SupplierID").text()); if (ele.selectSingleNode(L"SupplierID/@_displaystring")) dw_priceitem.SetItemDisplayString(row, L"SupplierID", ele.selectSingleNode(L"SupplierID/@_displaystring").text()); if (ele.selectSingleNode(L"POPrice")) dw_priceitem.SetItemString(row, L"BuyPrice", ele.selectSingleNode(L"POPrice").text()); if (ele.selectSingleNode(L"ItemMiniQty")) dw_priceitem.SetItemString(row, L"ItemMiniQty", ele.selectSingleNode(L"ItemMiniQty").text()); if (ele.selectSingleNode(L"EnquiryNo")) dw_priceitem.SetItemString(row, L"EnquiryNo", ele.selectSingleNode(L"EnquiryNo").text()); if (ele.selectSingleNode(L"EnquiryDate")) dw_priceitem.SetItemString(row, L"EnquiryDate", ele.selectSingleNode(L"EnquiryDate").text()); if (ele.selectSingleNode(L"ValidDay")) dw_priceitem.SetItemString(row, L"ValidDay", ele.selectSingleNode(L"ValidDay").text()); if (ele.selectSingleNode(L"ItemNote")) dw_priceitem.SetItemString(row, L"ItemNote", ele.selectSingleNode(L"ItemNote").text()); if (ele.selectSingleNode(L"EnquiryLineID")) dw_priceitem.SetItemString(row, L"EnquiryLineID", ele.selectSingleNode(L"EnquiryLineID").text()); //AddItems(id,items); //items.Release(); } } return 1; } int OnTech(xdwgrid dw_term) { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); int row = dw_term.GetRow(); if (row < 1) return 0; xstring str = dw_term.GetItemString(row, L"TechNote"); arg.AddArg(L"value", str); OpenWindow(L"dev:xpage[memo.edit.new.vx]", (LPARAM) & arg); if (arg.GetArgString(L"comdid") == L"xmOK") { str = arg.GetArgString(L"value"); dw_term.AcceptText(); dw_term.SetItemString(row, L"TechNote", str); dw_term.Redraw(); } return 0; } int OnCopy() { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); int row = dw_pricelistex.GetRow(); if (row < 1) return 0; xstring ItemID = dw_pricelistex.GetItemString(row, L"ItemID"); xstring EnquiryID = dw_pricelistex.GetItemString(row, L"EnquiryID"); xstring OriginEnquiryLineID = dw_pricelistex.GetItemString(row, L"OriginEnquiryLineID"); xstring ValidDay = dw_pricelistex.GetItemString(row, L"ValidDay"); xstring SupplierID = dw_pricelistex.GetItemString(row, L"SupplierID"); xstring SupplierIDName = dw_pricelistex.GetItemString(row, L"SupplierID/@_displaystring"); xstring SONo = dw_pricelistex.GetItemString(row, L"SONo"); xstring Remark = dw_pricelistex.GetItemString(row, L"Remark"); xstring Source = dw_pricelistex.GetItemString(row, L"Source"); xstring PayTerm = dw_pricelistex.GetItemString(row, L"PayTerm"); xstring CustomerContactName = dw_pricelistex.GetItemString(row, L"CustomerContactName"); xstring ContactTel = dw_pricelistex.GetItemString(row, L"ContactTel"); xstring EnquiryNo = EnquiryView::MakeBillNo(); arg.AddArg(L"ItemID", ItemID); arg.AddArg(L"EnquiryID", EnquiryID); arg.AddArg(L"ValidDay", ValidDay); arg.AddArg(L"SupplierID", SupplierID); arg.AddArg(L"SupplierID/@_displaystring", SupplierIDName); arg.AddArg(L"SONo", SONo); arg.AddArg(L"Remark", Remark); arg.AddArg(L"Source", Source); arg.AddArg(L"PayTerm", PayTerm); arg.AddArg(L"CustomerContactName", CustomerContactName); arg.AddArg(L"ContactTel", ContactTel); openUrl(L"/sale/view/Enquiry3/xpage/maint", &arg); return 1; } int OnGroupCopy() { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); int row = dw_priceitem.GetRow(); int row1 = dw_pricelist.GetRow(); if (row < 1) return 0; if (row1 < 1) return 0; xstring ItemID = dw_pricelist.GetItemString(row1, L"ItemID"); xstring EnquiryID = dw_priceitem.GetItemString(row, L"EnquiryID"); xstring OriginEnquiryLineID = dw_priceitem.GetItemString(row, L"OriginEnquiryLineID"); xstring ValidDay = dw_priceitem.GetItemString(row, L"ValidDay"); xstring SupplierID = dw_priceitem.GetItemString(row, L"SupplierID1"); xstring SupplierIDName = dw_priceitem.GetItemString(row, L"supplieridName1"); xstring SONo = dw_priceitem.GetItemString(row, L"SONo"); xstring Remark = dw_priceitem.GetItemString(row, L"Remark"); xstring Source = dw_priceitem.GetItemString(row, L"Source"); xstring PayTerm = dw_priceitem.GetItemString(row, L"PayTerm"); xstring CustomerContactName = dw_priceitem.GetItemString(row, L"CustomerContactName"); xstring ContactTel = dw_priceitem.GetItemString(row, L"ContactTel"); //xstring EnquiryNo = EnquiryView::MakeBillNo(); arg.AddArg(L"ItemID", ItemID); arg.AddArg(L"EnquiryID", EnquiryID); arg.AddArg(L"ValidDay", ValidDay); arg.AddArg(L"SupplierID", SupplierID); arg.AddArg(L"SupplierID/@_displaystring", SupplierIDName); arg.AddArg(L"SONo", SONo); arg.AddArg(L"Remark", Remark); arg.AddArg(L"Source", Source); arg.AddArg(L"PayTerm", PayTerm); arg.AddArg(L"CustomerContactName", CustomerContactName); arg.AddArg(L"ContactTel", ContactTel); openUrl(L"/sale/view/Enquiry3/xpage/maint", &arg); return 1; } int PreOnCmdDispatch(xstring comdid) { if (comdid == L"action:bill.new" || comdid == L"xmMaint" || comdid == L"xmNewEnquiry" || comdid == L"xmEnquiry" || comdid == L"action:bill.trantopricebill" || comdid == L"bill.trantopricebill") { xstring s = publiccode::GetUser().id; xstring no = publiccode::GetUser().no; if (no != L"00303" && no != L"admin") { xml supplier_x = ViewObject::RetrieveData(L"/sale/data/SupplierV3/entity/FindBySaleType", L"id", s); if (supplier_x) { if (supplier_x.text() != L"Ǒ-XT") { alert(L"S_MR҉r‚ N/fǑ-XT Ný€°ežXUSP[ ÿ÷‹Í‘°e éb҉r‚"); return 0; } } } } //trace(L"\r\n:"+comdid); if (comdid == L"xmPictureAdd") { OnAddImage(); return 0; } if (comdid == L"xmPictureDel") { OnDeleteImage(); return 0; } else if (comdid == L"xmAskGoodsNo") { OnAskGoodsNo(); return 0; } if (comdid == L"xmReresh") { OnPreRetrieve(); return 0; } if (comdid == L"xmImage") { if (sheetname == L"tab_list_goodssupplier") OnShowImage(dw_list_goodssupplier); else if (sheetname == L"tab_pricebill") OnShowImage(dw_pricelistex); return 0; } if (comdid == L"xmImageOne") { if (sheetname == L"tab_list_goodssupplier") OnShowImageTwo(); else if (sheetname == L"tab_pricebill") OnShowImageOne(); return 0; } if (comdid == L"xmMaint") { OnPriceListSupplier(); return 0; } if (comdid == L"xmNewEnquiry") { OnNewPriceList(); return 0; } if (comdid == L"xmEnquiry") { OnPriceListSupplierEx(); return 0; } if (comdid == L"xmDelEnquiry") { xstring SalespersonID = dw_pricelistex.GetItemString(dw_pricelistex.GetRow(), L"SalespersonID"); if (SalespersonID == L"") { dw_pricelistex.DeleteRow(0); } else { OnDelEnquiry(); } return 0; } if (comdid == L"xmImportProduct") { xstring str = xcontrol(GetControl(L"goods")).GetText(); str = str.trim(); if (str == L"") { xaserverarg arg1; arg1.setNativePointer(arg1.CreateInstance()); arg1.SetParam(L"HWND", (LPARAM)GetHWND()); //arg1.AddArg(L"CustomerID",dw_base.GetItemString(1,L"CustomerID")); OpenWindow(L"dev:xpage[Entity.Product.Select.vx]", (LPARAM)&arg1); int row = dw_pricelistex.GetRow(); /*if(row >= 1) { ximageview im = GetControl(L"im1"); im.ResetEx(); xstring skuno = dw_goods.GetItemString(row,L"SKUNo"); OnShowImage(skuno,row); im.Redraw(); }*/ } else { //ImportProductByText(str); } return 0; } if (comdid == L"xmSearch") { OnFilter(); return 0; } if (comdid == L"xmQuote") { OpenWindow(L"dev:xpage[EnquiryEx.quote.vx]", 0); return 0; } if (comdid == L"xmTech") { return OnTech(dw_pricelistex); } else if (comdid == L"xmTech1") { return OnTech(dw_pricelist); } else if (comdid == L"xmTech2") { return OnTech(dw_priceitem); } if (comdid == L"tab_pricebill") { sheetname = L"tab_pricebill"; SetAgent(L"list"); SwitchLayer(L"tv_folder_pricebill", L"folder_frame"); if (dw_pricelistex.GetRowCount() < 1) OnProductPriceBillRetrieve(); return 0; } else if (comdid == L"tab_pricebillex") { sheetname = L"tab_pricebillex"; SetAgent(L"list"); SwitchLayer(L"tv_folder_pricebill", L"folder_frame"); if (dw_pricelist.GetRowCount() < 1) OnPriceBillRetrieve(); return 0; } else if (comdid == L"tab_list2") { dw_list = GetControl(L"dw_list2"); sheetname = L"tab_list2"; SetAgent(L"list"); } else if (comdid.left(4) == L"tab_") { if (comdid == L"" || comdid == L"") return 0; if (comdid == L"tab_list") { dw_list = GetControl(L"dw_list"); sheetname = L"dw_list"; } if (comdid == L"tab_pricebillshare") SwitchLayer(L"tv_folder_pricebill", L"folder_frame"); else SwitchLayer(L"tv_folder", L"folder_frame"); sheetname = comdid; SetAgent(L"list"); return 0; } if (comdid == L"xmAddRow") { OnAddRow(); return 0; } if (comdid == L"xmDeleteRow") { OnDeleteRow(); return 0; } if (comdid == L"xmDelete") { OnDeletePriceList(); return 0; } if (comdid == L"xmRefresh") { OnProductPriceBillRetrieve(); return 0; } if (comdid == L"xmBOMSchema") { OpenWindow(L"dev:xpage[ProductSchema.vx]"); return 0; } else if (comdid == L"xmAddPriceList") { OnAddPriceList(); return 0; } else if (comdid == L"xmAddPriceListVersion") { OnAddPriceListVersion(); return 0; } if (comdid == L"action:bill.trantopricebill" || comdid == L"bill.trantopricebill") { OnTransPriceBillEx(); return 0; } if (comdid == L"action:bill.histroydata") return Onhistroydata(); else if (comdid == L"action:bill.refresh") return OnPreRetrieve(); else if (comdid == L"action:bill.print") return OnPrint(); else if (comdid == L"action:bill.share" || comdid == L"xmShare") { OnShare(); return 0; } else if (comdid == L"xmShare2") { OnShare2(); return 0; } else if (comdid == L"xmSave") { OnSave(); return 0; } else if (comdid == L"xmCopy") { OnCopy(); return 0; } else if (comdid == L"xmGroupCopy") { OnGroupCopy(); return 0; } else if (comdid == L"xmShareSave") { OnSaveShare(); return 0; } else if (comdid == L"xmPriceListDeleteRow") { dw_pricelistex.DeleteRow(0); return 0; } else if (comdid == L"xmShareRefresh") { OnProductPriceShareRetrieve(); return 0; } else if (comdid == L"xmPriceBillRefresh") { OnPriceBillRetrieve(); return 0; } else if (comdid == L"xmShareDeleteRow") { dw_pricelistshare.DeleteRow(0); return 0; } return 1; } int OnShowImageOne() { int row = dw_pricelistex.GetNextSelectRow(1); xstring SKUIDS = L""; while (row > 0 && row <= dw_pricelistex.GetRowCount()) { KXMLDOMElement e = dw_pricelistex.GetRowElement(row); xstring SKUID = dw_pricelistex.GetItemString(row, L"SKUID"); if (SKUIDS == L"") SKUIDS = SKUID; else SKUIDS += L",L" + SKUID; row = dw_pricelistex.GetNextSelectRow(row + 1); } //alert(SKUIDS); HCURSOR hCursor = xutil::SetCursorWait(); xaserverarg& arg = *new xaserverarg; arg.AddArg(L"guid", SKUIDS); OpenWindow(L"dev:xpage[ViewPictures.vx]", (LPARAM)&arg); xutil::RestoreCursor(hCursor); return 1; } int OnShowImageTwo() { int row = dw_list_goodssupplier.GetNextSelectRow(1); xstring SKUIDS = L""; while (row > 0 && row <= dw_list_goodssupplier.GetRowCount()) { KXMLDOMElement e = dw_list_goodssupplier.GetRowElement(row); xstring SKUID = dw_list_goodssupplier.GetItemString(row, L"SKUID"); if (SKUIDS == L"") SKUIDS = SKUID; else SKUIDS += L",L" + SKUID; row = dw_list_goodssupplier.GetNextSelectRow(row + 1); } //alert(SKUIDS); HCURSOR hCursor = xutil::SetCursorWait(); xaserverarg& arg = *new xaserverarg; arg.AddArg(L"guid", SKUIDS); OpenWindow(L"dev:xpage[ViewPictures.vx]", (LPARAM)&arg); xutil::RestoreCursor(hCursor); return 1; } //xcombobox NÉb int OnSelectDdlb(TEvent * evt, LPARAM p) { changeddlb = 1; HWND wid = ddlb_1.GetHWND(); int CB_GETCURSEL = 0x0147; int nIndex = SendMessage(wid, CB_GETCURSEL, 0, 0); KXMLDOMElement e = ddlb_1.GetElement(); KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]"); xstring no = e2.selectSingleNode(L"@element").text(); HTREEITEM hItem = tv_folder.GetRootItem(); while (tv_folder.GetChildItem(hItem)) tv_folder.DeleteItem(tv_folder.GetChildItem(hItem)); ExpandFolderItem(tv_folder, hItem, no); changeddlb = 0; return 1; } int OnCkbCLick(TEvent& evt, int p) { xcheckbox cbx_1 = GetControl(L"cbx1"); int state = cbx_1.GetCheck(); if ((HWND)evt.lParam == GetControl(L"cbx1")->GetHWND()) { if (state == -1) SwitchLayer(L"sheet1", L"frame"); else SwitchLayer(L"sheet2", L"frame"); return 1; } else if ((HWND)evt.lParam == GetControl(L"cbx2")->GetHWND()) { cbx_1 = GetControl(L"cbx2"); state = cbx_1.GetCheck(); HCURSOR hCursor = xutil::SetCursorWait(); xstring ItemID = dw_list1.GetItemString(dw_list1.GetRow(), L"ItemID"); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/folder/listitemsex", L"itemID", ItemID, L"type", xstring(state)); if (x) dw_goods1.Retrieve(x); else dw_goods1.Reset(); dw_goods1.Redraw(); dw_goods1.SetReadOnly(true); xutil::RestoreCursor(hCursor); if (state == -1) state2 = 1; else state2 = -1; return 1; } } int OnPriceListRowChanged(TEvent * evt, LPARAM p) { DWNMHDR& hdr =*(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; //HCURSOR hCursor = xutil::SetCursorWait(); OnRetrieveItem(dw_pricelistex.GetGuid(row)); return 1; } int OnItemAskStyle(TEvent * evt, LPARAM p) { int DMS_CSSSTYLE = 0x8; DWASKSTYLENMHDR& hdr = *(DWASKSTYLENMHDR*)evt->notify.pnmh; int row = hdr.row; int col = hdr.col; xstring colname = hdr.colname; int rows = dw_list.GetRowCount(); if (row < 1 || row > rows) { return 1; } if (colname == L"EnquiryNo" || colname == L"SupplierID" || colname == L"EnquiryDate" || colname == L"ValidDate" || colname == L"ApprovalStatus" || colname == L"SalespersonID" || colname == L"PayTerm" || colname == L"OrgName") { int days = dw_list.GetItemInt(row, L"Days"); if (days < 0) { hdr.mask = DMS_CSSSTYLE; hdr.pCssStyle = (LPTSTR)L"color:#cccccc"; } } return 1; } int OnFilter() { xstring str = xcontrol(GetControl(L"sl_search")).GetText(); xdwgrid dw_obj; if (sheetname == L"tab_list_goodssupplier") dw_obj = dw_list_goodssupplier; else if (sheetname == L"tab_pricebill") dw_obj = dw_pricelistex; else if (sheetname == L"tab_pricebillex") dw_obj = dw_pricelist; else if (sheetname == L"tab_pricebillshare") dw_obj = dw_pricelistshare; else if (sheetname == L"tab_goods") dw_obj = dw_list1; dw_obj.Filter(L"*", str); return 1; } int OnSupplierPriceListDoubleClicked(TEvent * evt, LPARAM p) { HCURSOR hCursor = xutil::SetCursorWait(); int row = dw_list_goodssupplier.GetRow(); xaserverarg& arg = *new xaserverarg; xstring EnquiryNo = dw_list_goodssupplier.GetItemString(row, L"EnquiryNo"); arg.AddArg(L"EnquiryNo", EnquiryNo); xstring source = dw_list_goodssupplier.GetItemString(row, L"Source"); if (source == L"¢[7b US") arg.AddArg(L"sheetname", L"tab_list2"); else arg.AddArg(L"sheetname", L"tab_list2"); KXMLDOMElement ele = dw_list_goodssupplier.GetRowElement(row); xstring BusinessItemID = L""; xstring myTaskID = L""; xstring myEntityID = L""; if (ele.selectSingleNode(L"BusinessItemID"))BusinessItemID = ele.selectSingleNode(L"BusinessItemID").text(); if (ele.selectSingleNode(L"QuoteStepTaskID"))myTaskID = ele.selectSingleNode(L"QuoteStepTaskID").text(); if (ele.selectSingleNode(L"QuoteEntityID"))myEntityID = ele.selectSingleNode(L"QuoteEntityID").text(); if (BusinessItemID != L"") { xstring templ = L"<data action='purch' ItemID='" + BusinessItemID + L"'/>"; arg.AddArg(L"template", templ); arg.AddArg(L"EntityID", myEntityID); arg.AddArg(L"TaskID", myTaskID); OpenWindow(L"dev:xpage[QuoteFile.vx]", (LPARAM)&arg); } else openUrl(L"/sale/view/Enquiry3/xpage/maint", &arg); xutil::RestoreCursor(hCursor); return 1; } int OnPriceListDoubleClicked(TEvent * evt, LPARAM p) { HCURSOR hCursor = xutil::SetCursorWait(); int row = dw_pricelistex.GetRow(); xaserverarg& arg = *new xaserverarg; xstring EnquiryNo = dw_pricelistex.GetItemString(row, L"EnquiryNo"); arg.AddArg(L"EnquiryNo", EnquiryNo); xstring source = dw_list_goodssupplier.GetItemString(row, L"Source"); if (source == L"¢[7b US") arg.AddArg(L"sheetname", L"tab_list2"); else arg.AddArg(L"sheetname", L"tab_list2"); KXMLDOMElement ele = dw_pricelistex.GetRowElement(row); xstring BusinessItemID = L""; xstring myTaskID = L""; xstring myEntityID = L""; if (ele.selectSingleNode(L"BusinessItemID"))BusinessItemID = ele.selectSingleNode(L"BusinessItemID").text(); if (ele.selectSingleNode(L"QuoteStepTaskID"))myTaskID = ele.selectSingleNode(L"QuoteStepTaskID").text(); if (ele.selectSingleNode(L"QuoteEntityID"))myEntityID = ele.selectSingleNode(L"QuoteEntityID").text(); if (BusinessItemID != L"") { xstring templ = L"<data action='purch' ItemID='" + BusinessItemID + L"'/>"; arg.AddArg(L"template", templ); arg.AddArg(L"EntityID", myEntityID); arg.AddArg(L"TaskID", myTaskID); OpenWindow(L"dev:xpage[QuoteFile.vx]", (LPARAM)&arg); } else openUrl(L"/sale/view/Enquiry3/xpage/maint", &arg); xutil::RestoreCursor(hCursor); return 1; } int OnDoubleClicked(TEvent * evt, LPARAM p) { HCURSOR hCursor = xutil::SetCursorWait(); int row = dw_list2.GetRow(); xaserverarg& arg = *new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xstring EnquiryNo = dw_list2.GetItemString(row, L"EnquiryNo"); arg.AddArg(L"EnquiryNo", EnquiryNo); KXMLDOMElement ele = dw_list2.GetRowElement(row); xstring BusinessItemID = L""; xstring myTaskID = L""; xstring myEntityID = L""; if (ele.selectSingleNode(L"BusinessItemID"))BusinessItemID = ele.selectSingleNode(L"BusinessItemID").text(); if (ele.selectSingleNode(L"QuoteStepTaskID"))myTaskID = ele.selectSingleNode(L"QuoteStepTaskID").text(); if (ele.selectSingleNode(L"QuoteEntityID"))myEntityID = ele.selectSingleNode(L"QuoteEntityID").text(); xstring source = dw_list2.GetItemString(row, L"Source"); if (source == L"¢[7b US") arg.AddArg(L"sheetname", L"tab_list2"); else arg.AddArg(L"sheetname", L""); if (BusinessItemID != L"") { xstring templ = L"<data action='purch' ItemID='" + BusinessItemID + L"'/>"; arg.AddArg(L"template", templ); arg.AddArg(L"EntityID", myEntityID); arg.AddArg(L"TaskID", myTaskID); OpenWindow(L"dev:xpage[QuoteFile.vx]", (LPARAM)&arg); } else openUrl(L"/sale/view/Enquiry3/xpage/maint", &arg); xutil::RestoreCursor(hCursor); return 1; } /*int OnDoubleClicked(TEvent * evtint p) { HCURSOR hCursor = xutil::SetCursorWait(); OnCmdDispatch(L"action:bill.open"); xutil::RestoreCursor(hCursor); return 1; }*/ int AttachListon() { AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)& EnquiryEx3list::OnTreeSelChanged); //h éb AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&EnquiryEx3list::OnTreeExpanding); //hU\_ AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&EnquiryEx3list::OnRowChanged); AttachEvent(L"dw_list2", L"DWV_ROWFOCUSCHANGED", (FEvent)&EnquiryEx3list::OnRowChanged2); AttachEvent(L"dw_list1", L"DWV_ROWFOCUSCHANGED", (FEvent)&EnquiryEx3list::OnRowChanged1); AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&EnquiryEx3list::OnSelectDdlb); AttachEvent(L"WM_COMMAND", (FEvent)&EnquiryEx3list::OnCkbCLick); AttachEvent(L"dw_list", L"DWV_ASKSTYLE", (FEvent)&EnquiryEx3list::OnItemAskStyle); AttachEvent(L"dw_pricelistex", L"DWV_ROWFOCUSCHANGED", (FEvent)&EnquiryEx3list::OnPriceListRowChanged); //AttachEvent(L"dw_pricelist",L"DWV_ROWFOCUSCHANGED",OnPriceListRowChanged); AttachEvent(L"tv_folder_pricebill", L"TVN_SELCHANGED", (FEvent)&EnquiryEx3list::OnPriceBillTreeSelChanged); //h éb AttachEvent(L"tv_folder_pricebill", L"TVN_ITEMEXPANDING", (FEvent)&EnquiryEx3list::OnPriceBillTreeExpanding); AttachEvent(L"dw_pricelistex", L"DWV_DOUBLECLICKED", (FEvent)&EnquiryEx3list::OnPriceListDoubleClicked); AttachEvent(L"dw_list_goodssupplier", L"DWV_DOUBLECLICKED", (FEvent)&EnquiryEx3list::OnSupplierPriceListDoubleClicked); AttachEvent(L"dw_list_goodssupplier", L"DWV_ROWFOCUSCHANGED", (FEvent)&EnquiryEx3list::OnRowChanged3); AttachEvent(L"dw_list2", L"DWV_DOUBLECLICKED", (FEvent)&EnquiryEx3list::OnDoubleClicked); return 1; } int OnRetrieveItem(xstring EnquiryPriceListID) { xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"EnquiryPriceListID", EnquiryPriceListID); if (getUrl(L"/sale/data/Enquiry/fetch/PriceList/item", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_priceitem.Retrieve(x); dw_priceitem.Redraw(); //dw_priceitem.SetReadOnly(true); } x = ViewObject::RetrieveData(L"/sale/data/Enquiry/folder/item/list", L"EnquiryPriceListID", EnquiryPriceListID); if (x) dw_priceitemoption.Retrieve(x); else dw_priceitemoption.Reset(); dw_priceitemoption.Redraw(); dw_priceitemoption.SetReadOnly(true); return 1; } int OnPriceBillRetrieve() { HTREEITEM hItem = tv_folder_pricebill.GetSelectedItem(); KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder_pricebill.GetItemData(hItem); xstring no = e1.getAttribute(L"no"); xml x ; xaserverarg arg; arg.AddArg(L"no", no); if (getUrl(L"/sale/data/Enquiry/fetch/PriceList", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_pricelist.Retrieve(x); dw_pricelist.Redraw(); //dw_pricelist.SetSelectionMode(3); } /* if(dw_pricelist.GetRowCount() > 0) OnRetrieveItem(dw_pricelist.GetGuid(1)); else { dw_priceitem.Reset(); }*/ return 1; } int OnProductPriceBillRetrieve() { HTREEITEM hItem = tv_folder_pricebill.GetSelectedItem(); KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder_pricebill.GetItemData(hItem); xstring no = e1.getAttribute(L"no"); xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"no", no); if (getUrl(L"/sale/data/Enquiry/ProductPriceList/list", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { //alert(x.xml()); dw_pricelistex.Retrieve(x); dw_pricelistex.Redraw(); dw_pricelistex.SetSelectionMode(3); } if (dw_pricelistex.GetRowCount() > 0) OnRetrieveItem(dw_pricelistex.GetGuid(1)); else { dw_priceitem.Reset(); } return 1; } int OnProductPriceShareRetrieve() { xml x; xaserverarg arg; if (getUrl(L"/sale/data/Enquiry/ProductPriceList/share", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_pricelistshare.Retrieve(x); dw_pricelistshare.Redraw(); dw_pricelistshare.SetReadOnly(true); } } int onload() { state1 = -1; state2 = -1; listwin::onload(); dw_list.SetAskStyle(true); dw_list2 = GetControl(L"dw_list2"); dw_list2.openUrl(L"/sale/view/Enquiry3/template/list"); dw_list2.SetColumnState(L"SupplierID", false); dw_list2.SetColumnState(L"PayTerm", false); dw_list2.SetColumnState(L"EnquiryID", false); dw_list2.SetColumnState(L"Days", false); //dw_list2.SetSelectionMode(3); dw_goods2 = GetControl(L"dw_goods2"); dw_goods2.openUrl(L"/sale/view/Enquiry3/template/item/pricelist"); dw_goods2.SetColumnState(L"ItemID", false); dw_goods2.SetColumnState(L"Picture", false); dw_goods2.SetColumnState(L"category", false); dw_goods2.SetColumnState(L"RealEnquiryLineID", false); dw_goods2.SetColumnState(L"RelEnquiryLineID", false); dw_priceitemoption = GetControl(L"dw_priceitemoption"); dw_priceitemoption.openUrl(L"/sale/view/Enquiry3/template/purcharpricelist/item"); ddlb_1 = GetControl(L"cbx_1"); dw_goods = GetControl(L"dw_goods"); dw_goods.openUrl(L"/sale/view/Enquiry3/template/item/pricelist"); dw_goods.SetColumnState(L"ItemID", false); dw_goods.SetColumnState(L"SupplierID", false); dw_list_goodssupplier = GetControl(L"dw_list_goodssupplier"); dw_list_goodssupplier.openUrl(L"/sale/view/Enquiry3/template/item/itempricelist"); dw_list_goodssupplier.SetColumnState(L"ItemID", false); dw_list_goodssupplier.SetColumnState(L"SKUID", false); dw_list1 = GetControl(L"dw_list1"); dw_list1.openUrl(L"/sale/view/Enquiry3/template/item/itempricelist"); dw_list1.SetColumnState(L"ItemID", false); dw_goods1 = GetControl(L"dw_goods1"); dw_goods1.openUrl(L"/sale/view/Enquiry3/template/item/itempricelist"); dw_goods1.SetColumnState(L"ItemID", false); dw_pricelistex = GetControl(L"dw_pricelistex"); dw_pricelistex.openUrl(L"/sale/view/Enquiry3/template/purcharpricelist"); dw_pricelistex.SetColumnState(L"EnquiryID", false); dw_pricelistex.SetColumnState(L"PayTerm", false); //dw_pricelistex.SetColumnState(L"Source",false); dw_pricelistex.SetColumnState(L"SONo", false); dw_pricelistex.SetColumnState(L"OriginEnquiryLineID", false); dw_pricelistex.SetColumnState(L"EnquiryLineID", false); dw_pricelistex.SetColumnState(L"SupplierID/@_displaystring", false); dw_pricelistex.SetColumnState(L"CustomerContactName", false); dw_pricelistex.SetColumnState(L"ContactTel", false); dw_pricelist = GetControl(L"dw_pricelist"); dw_pricelist.openUrl(L"/sale/view/Enquiry3/template/purcharpricelistex"); dw_pricelist.SetColumnState(L"ItemID", false); dw_priceitem = GetControl(L"dw_priceitem"); dw_priceitem.openUrl(L"/sale/view/Enquiry3/template/purcharpricelist/item"); dw_pricelistshare = GetControl(L"dw_pricelistshare"); dw_pricelistshare.openUrl(L"/sale/view/Enquiry3/template/purcharpricelist/item/share"); dw_pricelistshare.SetReadOnly(true); dw_pricelistex.SetColumnState(L"ItemID", false); dw_pricelistex.SetColumnState(L"EnquiryLineID", false); dw_pricelistshare.SetColumnState(L"UserGroupID", false); dw_pricelistshare.SetColumnState(L"EntityID", false); dw_pricelistshare.SetColumnState(L"EntityName", false); dw_pricelistshare.SetColumnState(L"PersonID", false); dw_pricelistshare.SetColumnState(L"NO", false); dw_priceitem.SetColumnState(L"PriceInfo", false); dw_priceitem.SetColumnState(L"EnquiryID", false); dw_priceitem.SetColumnState(L"PayTerm", false); //dw_priceitem.SetColumnState(L"Source",false); dw_priceitem.SetColumnState(L"SONo", false); dw_priceitem.SetColumnState(L"OriginEnquiryLineID", false); dw_priceitem.SetColumnState(L"EnquiryLineID", false); dw_priceitem.SetColumnState(L"SupplierID1", false); dw_priceitem.SetColumnState(L"supplieridName1", false); dw_priceitem.SetColumnState(L"CustomerContactName", false); dw_priceitem.SetColumnState(L"ContactTel", false); dw_priceitem.SetColumnState(L"Remark", false); dw_priceitem.SetColumnState(L"BOMPartNo", false); sheetname = L"tab_pricebill"; myDataUrl = L"/sale/data/Enquiry/folder/list"; myDataUrl1 = L"/sale/data/Enquiry/folder/listitems"; urlTree = L"/sale/data/Enquiry/folder"; tv_folder = GetControl(L"tv_folder"); InitialFolder(); tv_folder_pricebill = GetControl(L"tv_folder_pricebill"); InitialFolderPriceBill(); return 1; } int onloaded() { listwin::onloaded(); AttachListon(); dw_list.SetColumnState(L"EnquiryID", false); dw_list.SetColumnState(L"Days", false); dw_list1.SetColumnState(L"EnquiryLineID", false); dw_list1.SetColumnState(L"EnquiryPriceListID", false); OnAttachEvent(); OnRetrieve(); dw_list1.SetReadOnly(true); OnProductPriceShareRetrieve(); HTREEITEM hItem = tv_folder.GetRootItem(); tv_folder.ExpandItem(hItem); tv_folder.ItemFocus(hItem); hItem = tv_folder_pricebill.GetRootItem(); tv_folder_pricebill.ExpandItem(hItem); tv_folder_pricebill.ItemFocus(hItem); dw_pricelistex.SetColumnState(L"Version", false); dw_pricelistex.SetColumnState(L"BOMPartNo", false); dw_pricelistex.SetColumnState(L"BOMSchema", false); dw_pricelistex.SetColumnState(L"BOMType", false); dw_pricelistex.SetColumnState(L"Current", false); dw_pricelistex.SetColumnState(L"SubCode", false); dw_pricelistex.SetColumnState(L"Modified", false); //dw_priceitem.SetReadOnly(true); return -1; } int OnShowImage(xstring skuid, xstring supplierID, xstring customerItemNo) { //return 1; ximageview im = GetControl(L"im1"); if (!im) return 1; //im.RemoveImage(); im.Reset(); xml xp = new xml; xaserverarg arg_pic; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg(L"SKUID", skuid); arg_pic.AddArg(L"CustomerID", supplierID); arg_pic.AddArg(L"CustomerItemNo", customerItemNo); if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1) { trace(L"error:" + (xstring)xp.xml()); } else { //alert( xp.xml()); imageElement = xp.documentElement(); KXMLDOMNodeList nlistp = xp.selectNodes(L"ImageList/image"); int lenp = nlistp.length(); for (int ip = 0; ip < lenp; ip++) { 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 OnShowImage(xstring skuid) { //return 1; ximageview im = GetControl(L"im1"); if (!im) return 1; //im.RemoveImage(); im.Reset(); 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((xstring)L"xxx"+xp.xml()); } else { //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++) { 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); } return 1; } int OnShowImage(xdwgrid dw_obj) { int rowCount = dw_obj.GetRowCount(); xstring skunos; for (int i = 1; i <= rowCount; i++) { xstring skuno = dw_obj.GetItemString(i, L"SKUNo"); if (skuno == L"") skuno = dw_obj.GetItemDisplayString(i, L"SKUID"); if (i == 1) skunos = skuno; else skunos += L",L" + skuno; } //alert(skunos); xaserverarg& arg_pic= *new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg(L"SKUNoList", skunos); arg_pic.SetParam(L"ParentWindow", (LPARAM)GetHWND()); arg_pic.AddArg(L"OpenFlag", L"1"); OpenWindow(L"dev:xpage[SKU.PictureView.Product3.vx]", arg_pic); return 1; } 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() { int row = dw_list_goodssupplier.GetNextSelectRow(1); if (row < 1) row = dw_list_goodssupplier.GetRow(); if (row < 1 || row > dw_list_goodssupplier.GetRowCount()) return 0; xstring poprice = dw_list_goodssupplier.GetItemString(row, L"POPrice"); if (poprice.find(L"C") < 0) { alert(L"^—ce' Ný€ûm RþVGr"); return 0; } KXMLDOMElement e = dw_list_goodssupplier.GetRowElement(row); xstring skuid = dw_list_goodssupplier.GetItemString(row, L"ItemID"); xstring SKUNo = dw_list_goodssupplier.GetItemString(row, L"SKUNo"); xstring CustomerID = dw_list_goodssupplier.GetItemString(row, L"SupplierID"); xstring CustomerItemNo = dw_list_goodssupplier.GetItemString(row, L"CustomerItemNo"); xstring id = ViewObject::GetGuid(); xstring ret1 = Up(id); if (ret1 == L"-1") return -1; if (ret1 == L"0") { alert(L" N OþVGr1Y%"); return -1; } xstring originfile = ret1; xstring ext = originfile.right(7); if (ext.find(L".") >= 0) ext = ext.mid(ext.find(L".") + 1, 9999); else ext = L"jpg"; // þVGr T ReQpenc“^ xml x; x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" + L"<ProductPictureID>" + id + L"</ProductPictureID>" + L"<OriginFile>" + originfile + L"</OriginFile>" + L"<FileExt>" + ext + L"</FileExt>" + L"<SKUID>" + skuid + L"</SKUID>" + L"<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" + L"<CustomerID>" + CustomerID + L"</CustomerID>" + L"<Name>[" + SKUNo.trim() + L"]</Name>" + L"<FileName>" + id + L".jpg</FileName>" + L"</Item>" ); xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1) { alert(x.text()); return -1; } dw_list_goodssupplier.SetItemString(row, L"pic", L"*"); dw_list_goodssupplier.Redraw(); //7R°eN NLub— ÿ>f:yþVGr OnShowImage(skuid, CustomerID, CustomerItemNo); return 1; } int OnDeleteImage() { int row = dw_list_goodssupplier.GetNextSelectRow(1); if (row < 1) row = dw_list_goodssupplier.GetRow(); if (row < 1 || row > dw_list_goodssupplier.GetRowCount()) return 0; xstring poprice = dw_list_goodssupplier.GetItemString(row, L"POPrice"); if (poprice.find(L"C") < 0) { alert(L"^—ce' Ný€ Rd–þVGr"); return 0; } ximageview im = GetControl(L"im1"); int index = im.GetSelectIndex(); int count = im.GetImageCount(); if (count < 1) return 1; KXMLDOMNodeList images = imageElement.selectNodes(L"image"); int length = images.length(); if (length < index) return 1; int MB_OKCANCEL = 0x00000001; int IDOK = 1; if (MessageBox(GetHWND(), L"nx¤‹ Rd–S_MRþVGr?", L"Ðc:y", MB_OKCANCEL) != IDOK) return 1; xstring id = images.item(index).selectSingleNode(L"@guid").text(); xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); 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.text()); return -1; } if (count == 1) { dw_list_goodssupplier.SetItemString(row, L"pic", L""); dw_list_goodssupplier.Redraw(); } xstring skuid = dw_list_goodssupplier.GetItemString(row, L"ItemID"); xstring SKUNo = dw_list_goodssupplier.GetItemString(row, L"SKUNo"); xstring CustomerID = dw_list_goodssupplier.GetItemString(row, L"SupplierID"); xstring CustomerItemNo = dw_list_goodssupplier.GetItemString(row, L"CustomerItemNo"); OnShowImage(skuid, CustomerID, CustomerItemNo); return 1; } int ProcessUsedArg(xaserverarg arg) { HTREEITEM hItem = tv_folder.GetCaretItem(); arg.AddArg(L"sheetname", sheetname); if (hItem) { KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem); if (e) { xstring no = e.getAttribute(L"no"); if (no.find(L"Customer:") >= 0) { arg.AddArg(L"CustomerID", e.getAttribute(L"id")); xstring name = e.getAttribute(L"name"); if (name.find(L"(L") >= 0) name = name.left(name.find(L"(L")); arg.AddArg(L"CustomerName", name); } } } return 1; } };