#include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) Enquiry3list : public listwin { public: Enquiry3list(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {} public: static Enquiry3list* CreateInstance(void* implPtr, void* hWnd) { Enquiry3list* pWin = new Enquiry3list(implPtr, (HWND)hWnd); return pWin; } public: xstring m_sType; //树选中的类型 xstring m_sTypeTxt; //树选中的数据 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_pricelist; xdwgrid dw_pricelistex; xdwgrid dw_priceitem; xdwgrid dw_pricelistshare; int changeddlb; int state1; int state2; xstring sheetname; xnode m_agentNode; int SetAgentEx() { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); /*if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); } else {*/ KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[@id='"+sheetname+L"']/*"); if(agent) { xstring s = agent.xml(); m_agentNode = SetAgentNodeContent (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 = *new xaserverarg; 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""; if(scene==L"list") tools +=L""; for(index=0;index"; else tool = L""; tools += tool; } /*if(agent) { nlist = agent.selectNodes(L".//xtoolbutton"); nlen = nlist.length(); for(index=0;index"; //trace(tools); SetAgentNodeContent(anode, tools); return 1; } int SetAgent(xstring scene, xstring EntityID) { if(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 //查找当前树项的顶级目录 HTREEITEM LookupTopFolder(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 = 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) { KXMLDOMDocument x = ViewObject::RetrieveData(urlTree,L"no",no); //if(x) alert(x.xml()); if(!x) return 0; KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); int len = nlist.length(); for (int i = 0; i < len; i++) { KXMLDOMElement e = 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; } //树展开 int OnTreeExpanding(TEvent* evt, int p) { NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; HTREEITEM hItem = nmtv.itemNew.hItem; HTREEITEM hTopItem = LookupTopFolder(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, int p) { NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; HTREEITEM hItem = nmtv.itemNew.hItem; HTREEITEM hTopItem = LookupTopFolder(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 = 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, int p) { //OnPriceBillRetrieve(); //OnProductPriceBillRetrieve(); return OnPreRetrieve(); } int OnPriceBillTreeSelChanged(TEvent* evt, int p) { OnPriceBillRetrieve(); OnProductPriceBillRetrieve(); return 1; } int OnSaveShare() { dw_pricelistshare.AcceptText(); xml x ; xaserverarg arg; 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"保存成功!"); dw_pricelistshare.ResetUpdateStatus(); }else { alert(L"保存失败!"); } } if(x) x.Free(); return 1; } int Send(xstring PersonID, xstring CName,xstring NO,xstring EntityID) { KXMLDOMDocument 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"价格单已共享["+CName+L"]"; xstring Category = L"价格单共享"; xstring Content = L""; KXMLDOMDocument x = ViewObject::AddMessage(Category, Reciever, NO, EntityID, Subject, Content); return 1; } int SendNotice(xml content) { KXMLDOMNodeList nlist = content.selectNodes(L"//root/item[@update.new='1']"); int leng = nlist.length(); for(int i = 0; i < leng; i++) { KXMLDOMElement xitem = nlist.item(i); xstring PersonID = xitem.selectSingleNode(L"PersonID").text(); xstring UserGroupID = xitem.selectSingleNode(L"UserGroupID").text(); xstring CName = xitem.selectSingleNode(L"CName").text(); xstring NO = xitem.selectSingleNode(L"NO").text(); xstring EntityID = xitem.selectSingleNode(L"EntityID").text(); if(PersonID != L"") { Send(PersonID,CName,NO,EntityID); } if(UserGroupID != L"") { xml x = ViewObject::RetrieveData(L"/sale/data/business/message/getPersonIDByGroup",L"UserGroupID",UserGroupID); KXMLDOMNodeList nlist1 = x.selectNodes(L"//data/Item"); for(int j = 0 ; j < nlist1.length() ; j++) { KXMLDOMElement xitem1 = nlist1.item(j); PersonID = xitem1.selectSingleNode(L"PersonID").text(); Send(PersonID,CName,NO,EntityID); } } return 1; } return 1; } int OnSave() { xstring error = L""; xstring str = L""; dw_pricelist.AcceptText(); dw_pricelistex.AcceptText(); dw_pricelistshare.AcceptText(); xml x ; xaserverarg arg ; arg.setNativePointer(arg.CreateInstance()); dw_pricelistex.DwUpdateAllToEx(x); if(x.xml()!=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"成品价格单保存失败!"); return 1; } } xml x0 ; dw_pricelist.DwUpdateAllToEx(x0); if(x0.xml() !=L"") { xml x1 = xml::Make(); dw_priceitem.DwUpdateAllToEx(x1); if(x0.documentElement()) { if(x1.documentElement()) x0.documentElement().appendChild(x1.documentElement()); } x1.Free(); arg.AddArg(L"content", x0.xml() ); x0.Free(); if(xurl::get(L"/sale/data/Enquiry/update/pricelist", arg.GetString(),x)!=1) { error = x.text(); alert(error); return 1; } else { str = x.documentElement().getAttribute(L"text"); if(str == L"true") { dw_pricelist.ResetUpdateStatus(); dw_priceitem.ResetUpdateStatus(); }else { alert(L"组件价格单保存失败!"); return 1; } } } } xml x2; dw_pricelistshare.DwUpdateAllToEx(x2); arg.AddArg(L"content", x2.xml()); if(xurl::get(L"/sale/data/UserGroup/update/entity", arg.GetString(),x)!=1) { error = x.text(); alert(L"err:"+error); return 1; }else { str = x.documentElement().getAttribute(L"text"); if(str == L"true") { dw_pricelistshare.ResetUpdateStatus(); alert(L"保存成功!"); OnProductPriceShareRetrieve();//刷新数据 SendNotice(x2);//发送通知 x2.Free(); }else { alert(L"共享数据保存失败!"); } } x.Free(); return 1; } int ViewUpdate(int pr,xstring updateItem,xaserverarg arg) { if( updateItem==L"del") { int DelRow = dw_list.GetRow(); dw_list.DeleteRow(DelRow); } else if( updateItem==L"setstate") { int row = dw_list.GetRow(); if (row < 1) return 1; KXMLDOMElement ele = dw_list.GetRowElement(row); xstring id = GetEntityIDName(1); xstring entity = ele.selectSingleNode(id).text(); //trace(entity); SetAgent(L"list", entity); if(arg.GetArgString(L"state") != L"") //dw_list.SetItemString(row, L"ApprovalStatus", arg.GetArgString(L"state")); dw_list.SetItemString(row, L"ApplyStatus", arg.GetArgString(L"state")); if(arg.GetArgString(L"billstatus") != L"") { xstring billstatus = arg.GetArgString(L"billstatus"); xstring statusName = GetBillStatusName(billstatus); dw_list.SetItemString(row, L"ApprovalStatus", billstatus); dw_list.SetItemDisplayString(row, L"ApprovalStatus", statusName); } dw_list.Redraw(); } return 1; } bool IsEmptyQueryStr(xstring queryStr) { if(queryStr==L"") return true; if(queryStr==L"") return true; if(queryStr==L"") return true; return false; } //检索 int OnPreRetrieve() { int hItem = tv_folder.GetSelectedItem(); if(hItem <=0) return 1; int hCursor = xutil::SetCursorWait(); KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement); 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); xutil::RestoreCursor(hCursor); return 1; } //历史数据 int Onhistroydata() { return 1; int row = dw_list.GetNextSelectRow(1); if(row>0) { KXMLDOMElement e =dw_list.GetRowElement(row); xaserverarg arg=new xaserverarg; 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""); int p = arg.ptr_native_; openUrl(L"/sale/view/Enquiry3/xpage/histroydata", p); } return 1; } int OnPrint() { xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"EntityName",L"Enquiry",L""); arg.AddArg(L"EntityID",GetEntityID(1),L""); arg.AddArg(L"EntityNo",GetEntityNo(1),L""); int p = arg.ptr_native_; openUrl(L"/sale/view/view.base/xpage/Template/PrintViewEx", p); return 0; } int OnAddPriceList() { dw_priceitem.Reset(); xaserverarg arg = xaserverarg::Make(); arg.AddArg(L"action",L"AddPriceList"); OpenWindow(L"dev:xpage[ProductSchemaSelect.vx]",cast(arg as int)); if(arg.GetArgString(L"process") == L"ok") { xml x = new xml; x.setNativePointer(xml::CreateInstance()); 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 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 OnRowChanged(ref TNotifyEvent evt,int p) { listwin::OnRowChanged(evt,p); ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; int 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 OnRowChanged2(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; int 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(ref TNotifyEvent evt,int p) { //fixed one event only one process //listwin::OnRowChanged(evt,p); ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; int 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",state2.toString()); if(x) dw_goods1.Retrieve(x); else dw_goods1.Reset(); dw_goods1.Redraw(); dw_goods1.SetReadOnly(true); xutil::RestoreCursor(hCursor); return 1; } int OnShare() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); OpenWindow(L"dev:xpage[UserGroupShareEx.vx]",cast(arg as int)); 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 = xml::Make(); 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 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.cssstyle = L"color:#cccccc"; } } return 1; } int OnFilter() { xstring str = GetControl(L"sl_search").GetText(); xdwgrid dw_obj; if(sheetname==L"tab_goods") dw_obj = dw_list1; 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; dw_obj.Filter(L"*",str); return 1; } int OnPriceListDoubleClicked(ref TNotifyEvent evt,int p) { int hCursor = xutil::SetCursorWait(); int row = dw_pricelistex.GetRow(); if(row > 0) OnTech(dw_pricelistex); xutil::RestoreCursor(hCursor); return 1; } int OnDoubleClicked(ref TNotifyEvent evt,int p) { int 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); int pa = arg.getNativePointer(); openUrl(L"/sale/view/Enquiry3/xpage/maint", pa); xutil::RestoreCursor(hCursor); return 1; } int OnDoubleClicked(ref TNotifyEvent evt,int p) { int hCursor = xutil::SetCursorWait(); OnCmdDispatch(L"action:bill.open"); xutil::RestoreCursor(hCursor); return 1; } int AttachEvent() { AttachEvent(L"tv_folder", L"TVN_SELCHANGED",OnTreeSelChanged); //树选择 AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING",OnTreeExpanding); //树展开 AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED",OnRowChanged); AttachEvent(L"dw_list2",L"DWV_ROWFOCUSCHANGED",OnRowChanged2); AttachEvent(L"dw_list1",L"DWV_ROWFOCUSCHANGED",OnRowChanged1); AttachEvent(L"cbx_1",L"CBN_SELCHANGE",OnSelectDdlb); AttachEvent(L"WM_COMMAND",OnCkbCLick); AttachEvent(L"dw_list",L"DWV_ASKSTYLE",OnItemAskStyle); AttachEvent(L"dw_pricelist",L"DWV_ROWFOCUSCHANGED",OnPriceListRowChanged); AttachEvent(L"tv_folder_pricebill", L"TVN_SELCHANGED",OnPriceBillTreeSelChanged); //树选择 AttachEvent(L"tv_folder_pricebill", L"TVN_ITEMEXPANDING",OnPriceBillTreeExpanding); AttachEvent(L"dw_pricelistex",L"DWV_DOUBLECLICKED",OnPriceListDoubleClicked); AttachEvent(L"dw_list2",L"DWV_DOUBLECLICKED",OnDoubleClicked); return 1; } int OnRetrieveItem(xstring EnquiryPriceListID) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; 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); } return 1; } int OnPriceBillRetrieve() { int hItem = tv_folder_pricebill.GetSelectedItem(); KXMLDOMElement e1 = cast(tv_folder_pricebill.GetItemData(hItem) as KXMLDOMElement); xstring no = e1.getAttribute(L"no"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); 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() { int hItem = tv_folder_pricebill.GetSelectedItem(); KXMLDOMElement e1 = cast(tv_folder_pricebill.GetItemData(hItem) as KXMLDOMElement); xstring no = e1.getAttribute(L"no"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"no",no); if (getUrl(L"/sale/data/Enquiry/ProductPriceList/nobom",arg.GetString(),x)!=1) { trace(x.text()); return -1; }else { dw_pricelistex.Retrieve(x); dw_pricelistex.Redraw(); dw_pricelistex.SetSelectionMode(3); } return 1; } int OnProductPriceShareRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); if (getUrl(L"/sale/data/Enquiry/ProductPriceList/share",arg.GetString(),x)!=1) { trace(x.text()); return -1; }else { trace(x.xml()); 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); 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_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"SupplierID1",false); dw_pricelistex.SetColumnState(L"supplieridName1",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); 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"); //tv_folder.SetLineAtRoot(true); InitialFolder(); tv_folder_pricebill = GetControl(L"tv_folder_pricebill"); InitialFolderPriceBill(); } int onloaded() { listwin::onloaded(); AttachEvent(); 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(); int 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); sheetname = L"tab_list"; //dw_priceitem.SetColumnState(L"EnquiryLineID",false); //dw_priceitem.SetColumnState(L"EnquiryPriceListID",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_priceitem.SetReadOnly(true); return -1; } int ProcessUsedArg(xaserverarg arg) { int hItem = tv_folder.GetCaretItem(); arg.AddArg(L"sheetname",sheetname); if(hItem > 0) { KXMLDOMElement e = 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; } };