þÿ#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) FreightExpenseInputWin : public xframe { public: xdwgrid dw_list; xdwtable dw_arg; xnode m_agentNode; //Agent Condition public: FreightExpenseInputWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static FreightExpenseInputWin* CreateInstance(void* implPtr, void* hWnd) { FreightExpenseInputWin* pWin = new FreightExpenseInputWin(implPtr, (HWND)hWnd); return pWin; } #if 0 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; } #endif // 0 //q&p¹oÀm;YtQýep int OnSetFocus(TEvent* evt, LPARAM param) { //‘Ín]åQwga //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",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(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; 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.xml()); //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.xml()); alert(L"OÝ[XbRŸÿ"); 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Ñ^Qýep 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"xn‹¤R –d9u(?", 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 arg0; arg0.setNativePointer(arg0.CreateInstance()); arg0.AddArg(L"html", str); OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg0); 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"xmRefresh", 0); } return ret1; } return 0; } //T}NäYtN‹Nö int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent(L"WM_XCOMMAND", (FEvent)&FreightExpenseInputWin::OnXCommand); // AttachEvent(L"WM_SETFOCUS", (FEvent)&FreightExpenseInputWin::OnSetFocus); AttachEvent(L"dw_list", L"DWV_ITEMCHANGED", (FEvent)&FreightExpenseInputWin::OnItemChanged); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&FreightExpenseInputWin::OnDoubleClicked);//ˆLSÌQû AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&FreightExpenseInputWin::OnRowChanged); AttachEvent(L"cbx_state", L"CBN_SELCHANGE", (FEvent)&FreightExpenseInputWin::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 = (string)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"Qhè") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query = L""; OnRetrieve(query); } else if (txt == L"_…{~e6") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query = L"2"; OnRetrieve(query); } else if (txt == L"Oîe9") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query = L"5"; OnRetrieve(query); } else if (txt == L"]ò{~e6") { 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()); trace(xcontrol(GetControl(L"search")).GetText() + L"=========L" + query + L"=========L" + 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_list.SetColumnState(L"Amount3", 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"g,g"); 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",L" + id; ll_row = dw_list.GetNextSelectRow(ll_row + 1); } if(EntityIDList != L"") arg.AddArg(L"EntityID",EntityIDList); return 1; } xstring GetEntityName(int pr) { return "Freight3"; } xstring GetEntityID(int pr) { int row = dw_list.GetRow(); xstring id=dw_list.GetItemString(row,L"FreightExpenseID"); return id; } int ViewUpdate(int pr,xstring updateItem,xaserverarg arg) { if( updateItem==L"del") { int DelRow = this.dw_list.GetRow(); this.dw_list.DeleteRow(DelRow); } else if( updateItem==L"setstate") { int row = this.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); } this.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Àm;YtQýep int OnSetFocus(ref TEvent evt,int param) { //‘Ín]åQwga SetAgent(L"list",GetEntityID(1)); return 1; } int OnSave() { xml x ; KXMLDOMDocument xdoc = x; dw_list.DwUpdateAllToEx(xdoc); xaserverarg arg; arg.AddArg(L"content",x.xml()); if(xurl::get(L"/sale/data/expense3/update/freight", arg.GetString(),x)!=1) { xstring error = x.text(); alert(L"err:"+error); return 1; } alert(L"OÝ[XbRŸÿ"); 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.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"‹÷ béNˆLÛˆLR –d"); 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"kdSU"R¡]òNØk>N €ýR –dÿ"); return 1; } } if(status==L"]òbyQÆ" || status==L"]ò[¡h8" ){ alert(L"kdSU]ò[¡h8N €ýR –dÿ"); return 1; } xml x ; xaserverarg arg;//e>nSÂep arg.AddArg(L"FreightExpenseID", FreightExpenseID); int res = MessageBox(this.GetHWND(), L"f/T&xn‹¤R –d"+InvoiceNo+L"v„9u(?",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"R –dbRŸ"); 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鉁Y R6v„'NãQlSø"); return 0; } xstring FreightExpenseID = dw_list.GetItemString(row,L"FreightExpenseID"); xaserverarg arg=new xaserverarg; arg.AddArg(L"FreightExpenseIDs", FreightExpenseID); OpenWindow(L"dev:xpage[FreightExpenseItem.vx]",cast(arg as int)); return 1; } int OnSearchEx() { xaserverarg arg=new xaserverarg; 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Ñ^Qýep 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"]ò{~e6") return OnRetrieve(L"6"); if(payType2==L"Qhè") 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"‹÷ béNˆLÛˆLSÖmˆ"); return 1; } xstring box=dw_list.GetItemString(row,L"box"); if(box==L"f/"){ alert(L""R¡]òNØk>ÿ ‹÷‹©"R¡\[ù^”NØk>epcnR –de¹Sïu3‹÷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.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"]ò{~e6") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"6"; OnRetrieve(query); } else if(txt==L"Qhè") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L""; OnRetrieve(query); } else if(txt==L"g*{~e6") { dw_list.openUrl(L"/sale/view/Expense3/freight/list"); //dataUrl = L"xsql:[GetFrData.xq]"; query=L"1"; OnRetrieve(query); } } return 1; } //T}NäYtN‹Nö int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { AttachEvent(L"WM_XCOMMAND",OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS",OnSetFocus); AttachEvent(L"dw_list",L"DWV_ITEMCHANGED",OnItemChanged); AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED",OnDoubleClicked);//ˆLSÌ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);//~Ñ[šˆLfôe9‰æSÑN‹NöOnRowChanged } xstring GetQueryArg() { dw_arg.AcceptText(); xml x ; dw_arg.DwUpdateAllTo(x); return x.xml(); } int OnRetrieveEx(xstring query) { //int hCursor = xutil::SetCursorWait(); int pdata = 0; int len = 0; xml x ; xaserverarg arg; // 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 ; xaserverarg arg; //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"g,g"); 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; } }; ] */