#include #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 = 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.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); SetAgentNode(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, 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, 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 = 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 = 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, 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"±£´æÊ§°Ü!"); } } 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""; ViewObject::AddMessage(GetServerUrl(),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 ; 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((xstring)x0.xml() !=L"") { xml x1; dw_priceitem.DwUpdateAllToEx(x1); if(x0.documentElement()) { if(x1.documentElement()) x0.documentElement().appendChild(x1.documentElement()); } arg.AddArg(L"content", x0.xml() ); 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);//·¢ËÍ֪ͨ }else { alert(L"¹²ÏíÊý¾Ý±£´æÊ§°Ü!"); } } return 1; } int ViewUpdate(LPARAM 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() { HTREEITEM hItem = tv_folder.GetSelectedItem(); if(!hItem) return 1; HCURSOR hCursor = xutil::SetCursorWait(); KXMLDOMElement e1 = 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.Reset(); dw_list.Redraw(); dw_goods.Reset(); 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.Reset(); dw_list2.Redraw(); dw_goods2.Reset(); dw_goods2.Redraw(); } if(x) { dw_list1.Retrieve(x); dw_list1.Redraw(); }else { dw_list1.Reset(); dw_list1.Redraw(); dw_goods1.Reset(); 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.Reset(); dw_list1.Redraw(); dw_goods1.Reset(); 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; 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 OnPrint() { xaserverarg 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]",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 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(TEvent* evt,LPARAM p) { listwin::OnRowChanged(evt,p); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.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 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() { xaserverarg arg; OpenWindow(L"dev:xpage[UserGroupShareEx.vx]",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"; xframe::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; ilParam == (LPARAM)GetControl(L"cbx1")->GetHWND()) { if (state== -1) SwitchLayer(L"sheet1",L"frame"); else SwitchLayer(L"sheet2",L"frame"); return 1; }else if(evt->lParam == (LPARAM)GetControl(L"cbx2")->GetHWND()) { cbx_1 = GetControl(L"cbx2"); state=cbx_1.GetCheck(cbx_1.GetHWND()); 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_pricelist.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_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(TEvent* evt, LPARAM pr) { HCURSOR hCursor = xutil::SetCursorWait(); int row = dw_pricelistex.GetRow(); if(row > 0) OnTech(dw_pricelistex); xutil::RestoreCursor(hCursor); return 1; } int OnDoubleClicked(TEvent* evt, LPARAM) { HCURSOR hCursor = xutil::SetCursorWait(); int row = dw_list2.GetRow(); xaserverarg arg; xstring EnquiryNo = dw_list2.GetItemString(row,L"EnquiryNo"); arg.AddArg(L"EnquiryNo",EnquiryNo); openUrl(L"/sale/view/Enquiry3/xpage/maint",&arg); xutil::RestoreCursor(hCursor); return 1; } int AttachListon() { AttachEvent(L"tv_folder", L"TVN_SELCHANGED",(FEvent)&Enquiry3list::OnTreeSelChanged); //Ê÷Ñ¡Ôñ AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&Enquiry3list::OnTreeExpanding); //Ê÷Õ¹¿ª AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&Enquiry3list::OnRowChanged); AttachEvent(L"dw_list2",L"DWV_ROWFOCUSCHANGED", (FEvent)&Enquiry3list::OnRowChanged2); AttachEvent(L"dw_list1",L"DWV_ROWFOCUSCHANGED", (FEvent)&Enquiry3list::OnRowChanged1); AttachEvent(L"cbx_1",L"CBN_SELCHANGE", (FEvent)&Enquiry3list::OnSelectDdlb); AttachEvent(L"WM_COMMAND", (FEvent)&Enquiry3list::OnCkbCLick); AttachEvent(L"dw_list",L"DWV_ASKSTYLE", (FEvent)&Enquiry3list::OnItemAskStyle); AttachEvent(L"dw_pricelist",L"DWV_ROWFOCUSCHANGED", (FEvent)&Enquiry3list::OnPriceListRowChanged); AttachEvent(L"tv_folder_pricebill", L"TVN_SELCHANGED", (FEvent)&Enquiry3list::OnPriceBillTreeSelChanged); //Ê÷Ñ¡Ôñ AttachEvent(L"tv_folder_pricebill", L"TVN_ITEMEXPANDING", (FEvent)&Enquiry3list::OnPriceBillTreeExpanding); AttachEvent(L"dw_pricelistex",L"DWV_DOUBLECLICKED", (FEvent)&Enquiry3list::OnPriceListDoubleClicked); AttachEvent(L"dw_list2",L"DWV_DOUBLECLICKED", (FEvent)&Enquiry3list::OnDoubleClicked); return 1; } int OnRetrieveItem(xstring EnquiryPriceListID) { xml x; xaserverarg arg ; 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() { HTREEITEM hItem = tv_folder_pricebill.GetSelectedItem(); KXMLDOMElement e1 = 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 = 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/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; xaserverarg arg ; 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() { SetArg(); 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(); 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); 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) { HTREEITEM hItem = tv_folder.GetCaretItem(); arg.AddArg(L"sheetname",sheetname); if(!hItem) { 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"(")>=0) name = name.left(name.find(L"(")); arg.AddArg(L"CustomerName",name); } } } return 1; } };