ÿþ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) FreightExpenseListWin : public xframe { public: xdwgrid dw_list; xdwtable dw_arg; xnode m_agentNode; //Agent Condition public: FreightExpenseListWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static FreightExpenseListWin* CreateInstance(void* implPtr, void* hWnd) { FreightExpenseListWin* pWin = new FreightExpenseListWin(implPtr, (HWND)hWnd); return pWin; } //&q¹pÀo;mYtýQpe int OnSetFocus(TEvent* evt, LPARAM param) { //͑nå]wQag //SetAgent(); SetAgent(L"list", GetEntityID(1)); return 1; } xstring GetEntityName(LPARAM pr) { return L"Freight3"; } xstring GetEntityID(LPARAM pr) { int row = dw_list.GetRow(); xstring id=dw_list.GetItemString(row,L"FreightExpenseID"); return id; } int ProcessUsedArg(xaserverarg arg) { xstring EntityIDList = L""; int ll_row = dw_list.GetNextSelectRow(1); while(ll_row > 0 && ll_row <= dw_list.GetRowCount()) { xstring id=dw_list.GetItemString(ll_row,L"FreightExpenseID"); if(EntityIDList == L"") EntityIDList = id; else EntityIDList += L"," + id; ll_row = dw_list.GetNextSelectRow(ll_row + 1); } if(EntityIDList != L"") arg.AddArg(L"EntityID",EntityIDList); return 1; } int OnRowChanged(TEvent* evt, LPARAM p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; SetAgent(L"list", dw_list.GetItemString(row, L"FreightExpenseID")); 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; SetAgent(L"list",GetEntityID(1)); if(arg.GetArgString(L"state") != L"") 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"Status", billstatus); dw_list.SetItemDisplayString(row, L"Status", statusName); } dw_list.Redraw(); } return 1; } int OnSave() { xml x; KXMLDOMDocument xdoc = x; dw_list.DwUpdateAllToEx(xdoc); xaserverarg arg; arg.AddArg(L"content",x.xml()); //alert(x.GetXml()); //return 1; if(xurl::get(L"/sale/data/expense3/update/freight", arg.GetString(),x)!=1) { xstring error = x.text(); alert(L"err:"+error); return 1; } //alert(x.GetXml()); alert(L"ÝOX[bŸRÿ"); dw_list.ResetUpdateStatus(); return 1; } int OnDoubleClicked(TEvent* evt, LPARAM p) { return OnCmdDispatch(L"xmModifyRow"); } int OnItemChanged(TEvent* evt, LPARAM p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname=hdr.colname; xstring value = hdr.data; xstring dwname = L"dw_list"; if(value != L"") { //alert(dwname); KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']"); //ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); } return 1; } int OnModifyRow(int row) { xaserverarg arg; arg.AddArg(L"FreightExpenseID", dw_list.GetItemString(row,L"FreightExpenseID")); OpenWindow(L"dev:xpage[FreightExpenseItem.vx]",arg); return 1; } //}TäNÑS^ýQpe int OnCmdDispatch(xstring comdid) { if (comdid == L"action:bill.new" || comdid==L"xmAddRow") { OpenWindow(L"dev:xpage[FreightExpenseItem.vx]",0); return 1; } else if (comdid == L"action:bill.open" || comdid == L"xmModifyRow") { return OnModifyRow(dw_list.GetRow()); } else if (comdid == L"action:bill.delete" || comdid == L"xmDeleteRow") { xstring EntityID = dw_list.GetGuid(dw_list.GetRow()); int MB_OKCANCEL = 1; int IDOK = 1; int ret = MessageBox(GetHWND(),L"nx¤‹ Rd–9(u?",L"Ðc:y",MB_OKCANCEL); if(ret == IDOK) { ViewObject::RetrieveData(L"/sale/data/expense3/delete/frightExpense",L"EntityID",EntityID); OnRetrieve(L""); } return 1; } else if (comdid==L"action:bill.refresh" || comdid == L"xmSearch") { return OnRetrieve(L""); } else if (comdid == L"xmSave") { OnSave(); } else if(comdid==L"xmAnalysis") { HCURSOR hCursor = xutil::SetCursorWait(); xstring str = dw_list.DataAnalysis(L""); xaserverarg arg; arg.AddArg(L"html", str); OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg); xutil::RestoreCursor(hCursor); return 1; } else if(comdid.find(L"action:",0)>=0) { int ret1 = ProcessFlowAction(comdid, 1); if(comdid==L"action:bill.check.ask") { PostMessage(GetFrameWindow().GetHWND(),0x401,(LPARAM)L"xmSearch",0); } return ret1; } return 0; } //}TäNYt‹NöN int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //Ñ~š[å]wQag¹pûQ‹NöN AttachEvent(L"WM_XCOMMAND", (FEvent)&FreightExpenseListWin::OnXCommand); // AttachEvent(L"WM_SETFOCUS", (FEvent)&FreightExpenseListWin::OnSetFocus); AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&FreightExpenseListWin::OnItemChanged); AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED", (FEvent)&FreightExpenseListWin::OnDoubleClicked);//LˆÌSûQ AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&FreightExpenseListWin::OnRowChanged); AttachEvent(L"cbx_state",L"CBN_SELCHANGE", (FEvent)&FreightExpenseListWin::OnCombboChanged); return 1; } int OnCombboChanged(TEvent* evt, LPARAM lParam) { xstring id = L""; xstring name = L""; int h = xcombobox::GetCurSel(evt->command.hCtrl); if(h > -1) { xstring txt = (xstring)xcombobox::GetLBText(evt->command.hCtrl, h); xstring query =L"---"; if(txt==L"°eú^") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"1"; OnRetrieve(query); } else if(txt==L"hQè") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L""; OnRetrieve(query); } else if(txt==L"…_~{6e") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"2"; OnRetrieve(query); } else if(txt==L"îO9e") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"5"; OnRetrieve(query); } else if(txt==L"ò]~{6e") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"6"; OnRetrieve(query); } } return 1; } xstring GetQueryArg() { dw_arg.AcceptText(); xml x ; dw_arg.DwUpdateAllTo(x); return x.xml(); } int OnRetrieve(xstring query) { xml x; xaserverarg arg ; //arg.AddArg(L"Status",L"1"); arg.AddArg(L"search",xcontrol(GetControl(L"search")).GetText()); arg.AddArg(L"query",query); arg.AddArg(L"QueryArg",GetQueryArg()); if (getUrl(L"/sale/data/Expense3/view/freightex",arg.GetString(),x)!=1) { trace(x.text()); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); } dw_list.SetReadOnly(true); return 1; } int onload() { dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Expense3/freight/list"); dw_arg = GetControl(L"dw_arg"); dw_arg.openUrl(L"/sale/view/AR/template/queryarg"); dw_arg.SetColHeaderHeight(0); dw_arg.SetRowSelectorWidth(0); dw_arg.SetHScrollState(false); dw_arg.SetVScrollState(false); //dw_arg.SetItemString(1,L"DateType",L",gg"); OnAttachEvent(); return 1; } int onloaded() { //SetAgent(); OnRetrieve(L""); SetAgent(L"list",GetEntityID(1)); return 1; } }; /* use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" use "datastore_bind.vd" unit trade [ class FreightExpenseInputWin : public frame { xdwgrid dw_list; xdwtable dw_arg; xnode m_agentNode; //Agent Condition xstring searchStr; xstring dataUrl; dsvcontrol datastore; int SetAgent() { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNode (anode,m_agentNode); } else { KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); if(agent) { xstring s = agent.xml(); m_agentNode = SetAgentNode (anode,s); } } return 1; } int ProcessUsedArg(xaserverarg arg) { xstring EntityIDList = L""; int ll_row = dw_list.GetNextSelectRow(1); while(ll_row > 0 && ll_row <= dw_list.GetRowCount()) { xstring id=dw_list.GetItemString(ll_row,L"FreightExpenseID"); if(EntityIDList == L"") EntityIDList = id; else EntityIDList += L"," + id; ll_row = dw_list.GetNextSelectRow(ll_row + 1); } if(EntityIDList != L"") arg.AddArg(L"EntityID",EntityIDList); return 1; } xstring GetEntityName(LPARAM pr) { return "Freight3"; } xstring GetEntityID(LPARAM pr) { int row = dw_list.GetRow(); xstring id=dw_list.GetItemString(row,L"FreightExpenseID"); return id; } 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; SetAgent(L"list",GetEntityID(1)); if(arg.GetArgString(L"state") != L"") 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"Status", billstatus); dw_list.SetItemDisplayString(row, L"Status", statusName); } dw_list.Redraw(); } return 1; } int OnRowChanged(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; SetAgent(L"list",dw_list.GetItemString(row,L"FreightExpenseID")); return 1; } //&q¹pÀo;mYtýQpe int OnSetFocus(ref TEvent evt,int param) { //͑nå]wQag SetAgent(L"list",GetEntityID(1)); return 1; } int OnSave() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); KXMLDOMDocument xdoc = x; dw_list.DwUpdateAllToEx(xdoc); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"content",x.GetXml()); if(url::get(L"/sale/data/expense3/update/freight", arg.GetString(),x)!=1) { xstring error = x.text; alert(L"err:"+error); return 1; } alert(L"ÝOX[bŸRÿ"); dw_list.ResetUpdateStatus(); return 1; } int OnDoubleClicked(ref TNotifyEvent evt,int p) { return OnCmdDispatch(L"xmModifyRow"); } int OnItemChanged(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); xstring colname=hdr.colname; xstring value = hdr.data; xstring dwname = L"dw_list"; if(value != L"") { KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']"); ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); } return 1; } int OnModifyRow(int row) { xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"FreightExpenseID", dw_list.GetItemString(row,L"FreightExpenseID")); OpenWindow(L"dev:xpage[FreightExpenseItem.vx]",cast(arg as int)); return 1; } int OnDelete() { int row = dw_list.GetNextSelectRow(1); if(row < 1) { alert(L"÷‹ ébNLˆÛLˆ Rd–"); return 1; } //KXMLDOMElement ele = dw_list.GetRowElement(row); xstring FreightExpenseID = dw_list.GetItemString(row,L"FreightExpenseID"); //åg w xstring InvoiceNo = dw_list.GetItemString(row,L"InvoiceNo"); xstring status = dw_list.GetItemString(row,L"Status"); xml y= ViewObject::RetrieveData(L"/sale/data/expense3/update/FreightExpenseApid",L"FreightExpenseID",FreightExpenseID); if(y){ xstring inv=y.text; if(inv==L" g"){ alert(L"dkUS"¡Rò]ØN>k Ný€ Rd–ÿ"); return 1; } } if(status==L"ò]ybÆQ" || status==L"ò]¡[8h" ){ alert(L"dkUSò]¡[8h Ný€ Rd–ÿ"); return 1; } xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg;//>enÂSpe arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"FreightExpenseID", FreightExpenseID); int res = win32::MessageBox(GetHWND(), L"/f&Tnx¤‹ Rd–"+InvoiceNo+L"„v9(u?",L"Ðc:y",4); if(res == 6){ if(getUrl(L"/sale/data/expense3/update/FreightExpensedelete", arg.GetString(),x)!=1) { xstring error = x.text; alert(L"err:"+error); return 1; } alert(L" Rd–bŸR"); dw_list.DeleteRow(0); dw_list.SelectRow(row,false); //OnRetrieve(L"1"); } return 1; } int OnSaveCopy() { int row = dw_list.GetNextSelectRow(1); if(row < 0) { alert(L"÷‹ éb‰ Y6R„v'ãNlQøS"); return 0; } xstring FreightExpenseID = dw_list.GetItemString(row,L"FreightExpenseID"); xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"FreightExpenseIDs", FreightExpenseID); OpenWindow(L"dev:xpage[FreightExpenseItem.vx]",cast(arg as int)); return 1; } int OnSearchEx() { xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"text", searchStr); OpenWindow(L"dev:xpage[search.dialog.vx]", cast(arg as int)); xstring str = arg.GetArgString(L"text"); if(str != searchStr) { searchStr = str; dw_list.Filter(L"*",searchStr); return 1; } return 1; } //}TäNÑS^ýQpe int OnCmdDispatch(xstring comdid) { if (comdid == L"xmAddRow" || comdid==L"action:bill.new") { OpenWindow(L"dev:xpage[FreightExpenseItem.vx]",0); return 1; } else if(comdid == L"xmSearchEx") { return OnSearchEx(); } else if (comdid == L"xmModifyRow") { return OnModifyRow(dw_list.GetRow()); } else if (comdid == L"xmDeleteRow"|| comdid==L"action:bill.delete") { return OnDelete(); } else if(comdid==L"action:bill.refresh" || comdid==L"xmSearch" ) { xstring payType2 = GetPayType(); //dataUrl = L"xsql:[GetFrData.xq]"; if(payType2==L"ò]~{6e") return OnRetrieve(L"6"); if(payType2==L"hQè") return OnRetrieve(L""); return OnRetrieve(L"1"); } else if (comdid == L"action:bill.open")//"xmModifyRow" { return OnModifyRow(dw_list.GetRow()); } else if (comdid == L"action:bill.check.unagree")//"xmModifyRow" { //alert(L"111"); int row = dw_list.GetNextSelectRow(1); if(row < 1) { alert(L"÷‹ ébNLˆÛLˆÖSˆm"); return 1; } xstring box=dw_list.GetItemString(row,L"box"); if(box==L"/f"){ alert(L""¡Rò]ØN>k ÿ÷‹©‹"¡R\ù[”^ØN>kpenc Rd–¹eïS3u÷‹ÖSˆm"); return 1; }else{ return ProcessFlowAction(comdid, 1); } } else if(comdid==L"xmAnalysis") { int hCursor = xutil::SetCursorWait(); xstring str = dw_list.DataAnalysis(L""); xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"html", str); int obj = cast(dw_list as int); arg.AddArg(L"obj",obj.toString()); OpenWindow(L"dev:xpage[data.vanalysis.vx]", cast(arg as int)); xutil::RestoreCursor(hCursor); return 1; } else if(comdid.find(L"action:",0)>=0) { int ret = ProcessFlowAction(comdid, 1); } else if(comdid == L"xmSaveCopy") { return OnSaveCopy(); } return 0; } xstring GetPayType() { xcombobox cbx_type = GetControl(L"cbx_state"); int h = xcombobox::GetCurSel(cbx_type.GetId()); if(h<0) return ""; return xcombobox::GetLBText(cbx_type.GetId(), h); } int OnCombboChanged(ref TCommandEvent evt,int lParam) { xstring id = L""; xstring name = L""; int h = xcombobox::GetCurSel(evt.hCtrl); if(h > -1) { xstring txt = xcombobox::GetLBText(evt.hCtrl, h); xstring query =L"---"; if(txt==L"ò]~{6e") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"6"; OnRetrieve(query); } else if(txt==L"hQè") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L""; OnRetrieve(query); } else if(txt==L"*g~{6e") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"1"; OnRetrieve(query); } } return 1; } //}TäNYt‹NöN int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { AttachEvent(L"WM_XCOMMAND",OnXCommand); //·ƒÖS&q¹p‹NöN ÿ(uŽN͑nå]wQag AttachEvent(L"WM_SETFOCUS",OnSetFocus); AttachEvent(L"dw_list",L"DWV_ITEMCHANGED",OnItemChanged); AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED",OnDoubleClicked);//LˆÌSûQ //AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED",OnRowChanged); AttachEvent(L"cbx_state",L"CBN_SELCHANGE",OnCombboChanged); AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED",OnRowChanged);//Ñ~š[Lˆôf9eæ‰ÑS‹NöNOnRowChanged } xstring GetQueryArg() { dw_arg.AcceptText(); xml x = new xml; x.setNativePointer(xml::CreateInstance()); dw_arg.DwUpdateAllTo(x); return x.GetXml(); } int OnRetrieveEx(xstring query) { //int hCursor = xutil::SetCursorWait(); int pdata = 0; int len = 0; xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); // arg.AddArg(L"QueryTxt",L""); arg.AddArg(L"search",L""); arg.AddArg(L"query",query); arg.AddArg(L"QueryArg",GetQueryArg()); if (xaserver::ProcessCmd(GetServerUrl(),L"uri.hxsoft.com/xaserver/"+dataUrl , arg.GetString(),pdata,len,dw_list.GetId()) !=1) { //CloseRetrieveTip(); xstring str = pdata; trace(str); } int rowCount = datastore.Retrieve(pdata); dw_list.PostRetrieve(); dw_list.SetReadOnly(true); dw_list.SetSelectionMode(1); dw_list.Redraw(); //xutil::RestoreCursor(hCursor); return 1; } int OnRetrieve(xstring query) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); //arg.AddArg(L"Status",L"1"); arg.AddArg(L"search",L""); arg.AddArg(L"query",query); arg.AddArg(L"QueryArg",GetQueryArg()); if (getUrl(L"/sale/data/Expense3/view/freightex",arg.GetString(),x)!=1) { trace(x.text); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); dw_list.SetSelectionMode(4); dw_list.SetColumnState(L"SalesPersonID",false); dw_list.SetColumnState(L"FreightExpenseID",false); } dw_list.SetReadOnly(true); return 1; } int onload() { searchStr = L""; dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Expense3/freight/list"); dw_list.SetColumnState(L"SalesPersonID",false); dw_list.SetColumnState(L"FreightExpenseID",false); dw_arg = GetControl(L"dw_arg"); dw_arg.openUrl(L"/sale/view/AR/template/queryarg"); dw_arg.SetColHeaderHeight(0); dw_arg.SetRowSelectorWidth(0); dw_arg.SetHScrollState(false); dw_arg.SetVScrollState(false); //dw_arg.SetItemString(1,L"DateType",L",gg"); OnAttachEvent(); return 1; } int onloaded() { //SetAgent(); SetAgent(L"list",GetEntityID(1)); //datastore = new dsvcontrol; //datastore.bind(dw_list); //dataUrl = L"xsql:[GetFrData.xq]"; OnRetrieve(L"1"); return 1; } }; ] */