þÿ#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) TestExpenseWin : public xframe { public: xdwgrid dw_list; xdwtable dw_arg; xnode m_agentNode; //Agent Condition xstring DatePicker = L"ETD"; public: TestExpenseWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static TestExpenseWin* CreateInstance(void* implPtr, void* hWnd) { TestExpenseWin* pWin = new TestExpenseWin(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"TestExpense"; } xstring GetEntityID(LPARAM pr) { int row = dw_list.GetRow(); xstring id = dw_list.GetItemString(row, L"TestExpensID"); //alert(id); return id; } int OnSave() { xml x; dw_list.AcceptText(); dw_list.DwUpdateAllToEx(x); xml x0; x0.loadXML(L"<Test/>"); KXMLDOMNodeList t = x.selectNodes(L"Test/Item[@update.modify='1' or @update.delete ='1']"); KXMLDOMElement e1 = x0.documentElement(); int len = t.length(); for (int i = 0; i < len; i++) { e1.appendChild(t.item(i)); } xaserverarg arg; arg.AddArg(L"content", x0.xml()); trace(x0.xml()); //alert(x.xml()); //return 1; if (xurl::get(L"/sale/data/expense3/update/Test", arg.GetString(), x) != 1) { xstring error = x.text(); alert(L"err:" + error); return 1; } xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { dw_list.ResetUpdateStatus(); alert(L"OÝ[XbRŸ!"); } else { alert(L"OÝ[XY1%!"); } return 1; } //T}NäSÑ^Qýep int OnCmdDispatch(xstring comdid) { xstring s = publiccode::GetUser().deptname; HCURSOR hCursor = 0; xstring userno = publiccode::GetUser().no; xstring positionname = publiccode::GetUser().positionname; xstring TestExpensID=L""; //alert(s); /*if(s ==L""R¡è" || s ==L"~Ït[¤"){ if(comdid==L"xmAddRow") { int row =dw_list.GetRowCount(); dw_list.InsertRow(0); dw_list.SetItemString(row+1,L"SaveType",L"SŸNö"); dw_list.SetItemString(row+1,L"ReportType",L"mK‹Õb¥TJ"); xstring sdate = publiccode::GetCurrentDate(); dw_list.SetItemString(row+1,L"CreateDate",sdate); xstring suserid = publiccode::GetUser().id; xstring susername = publiccode::GetUser().name; dw_list.SetItemString(row+1,L"CreateID",suserid); dw_list.SetItemDisplayString(row+1,L"CreateID",susername); xstring supply = dw_list.GetItemString(row,L"TestPartyID"); dw_list.SetItemString(row+1,L"TestPartyID",supply); xstring date = dw_list.GetItemString(row,L"TestDate"); dw_list.SetItemString(row+1,L"TestDate",date); return 1; } else if(comdid==L"xmDeleteRow") { dw_list.DeleteRow(0); return 1; else */ if (comdid == L"action:bill.xmSave") { OnSave(); } else if (comdid == L"action:bill.new" || comdid == L"xmAdd") { xaserverarg arg; arg.AddArg(L"HWND", xstring((__int64)GetHWND())); if (s.find(L"NR¡") >= 0) { OpenWindow(L"dev:xpage[TestExpenseBase.vx]", arg); } else { OpenWindow(L"dev:xpage[TestExpenseBase2.vx]", arg); } } else if (comdid == L"action:bill.delete" || comdid == L"xmDelete") { xstring TestExpensID1 = dw_list.GetGuid(dw_list.GetRow()); int MB_OKCANCEL = 1; int IDOK = 1; int ret = MessageBox(GetHWND(), L"xn‹¤R –dN§TÁmK‹Õ9?", L"cÐy:", MB_OKCANCEL); if (ret == IDOK) { ViewObject::RetrieveData(L"/sale/data/expense3/delete/TestExpens", L"EntityID", TestExpensID1); OnRetrieve(DatePicker); } } //} else if (comdid == L"action:bill.open" || comdid == L"xmEdit") { xaserverarg arg; xstring TestExpensID = dw_list.GetGuid(dw_list.GetRow()); arg.AddArg(L"EntityID", TestExpensID); arg.AddArg(L"HWND", xstring((__int64)GetHWND())); if (s.find(L"NR¡") >= 0) { OpenWindow(L"dev:xpage[TestExpenseBase.vx]", arg); } else { arg.AddArg(L"EntityID", TestExpensID); arg.AddArg(L"HWND", xstring((__int64)GetHWND())); OpenWindow(L"dev:xpage[TestExpenseBase2.vx]", arg); } } else if (comdid == L"action:bill.refresh" || comdid == L"xmRefresh") { OnRetrieve(DatePicker); } else if (comdid == L"action:bill.xmSaveAs" || comdid == L"xmSaveAs") { if (userno == L"00601" || userno == L"00701" || userno == L"00603" || userno == L"admin" || userno == L"00609" || userno == L"00610") { dw_list.SaveAs(L""); return 1; } } else if (comdid == L"action:bill.xmAnalysis" || comdid == L"xmAnalysis") { if (userno == L"00601" || userno == L"00701" || userno == L"admin") { hCursor = xutil::SetCursorWait(); xstring str = dw_list.DataAnalysis(L""); xaserverarg arg1; arg1.AddArg(L"html", str); OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg1); xutil::RestoreCursor(hCursor); return 1; } } else if (comdid == L"action:bill.Remarks") { OnSourceRemark(); } else if (comdid == L"action:bill.Copy") { TestExpensID = dw_list.GetGuid(dw_list.GetRow()); xaserverarg argc; argc.AddArg(L"HWND", xstring((__int64)GetHWND())); argc.AddArg(L"TestExpensID", TestExpensID); OpenWindow(L"dev:xpage[TestExpenseBase.vx]", argc); return 1; } else if (comdid == L"action:bill.check.ask") { if (positionname.find(L"ßSU") < 0) { xstring Merchandiser = dw_list.GetItemString(dw_list.GetRow(), L"Merchandiser"); if (Merchandiser == L"") { alert("ßSUTXN:zzÿ"); return 0; } xstring BuyerUserid = dw_list.GetItemString(dw_list.GetRow(), L"BuyerUserid"); if (BuyerUserid == L"") { alert(L"‘Ǎ-TXN:zzÿ"); return 0; } xstring EntityID = dw_list.GetItemString(dw_list.GetRow(), L"TestExpensID"); xml x = ViewObject::RetrieveData(L"/sale/data/Expense3/GetGoodsNo", L"EntityID", EntityID); KXMLDOMNodeList items = x.selectNodes(L"data/Item"); KXMLDOMNode t = items.item(0); if (t.selectSingleNode(L"count")) { xstring Count = t.selectSingleNode(L"count").text(); if (Count.toInt() > 0) { alert(L"QlSøW‹S÷ST+\Q™[WkÍÿ eàlÕcÐN¤!"); return 0; } } xstring ID = dw_list.GetItemString(dw_list.GetRow(), L"TestExpensID"); xml x1 = ViewObject::RetrieveData(L"/sale/data/TDocument3/attachment/GetDocCountEx_s", L"entityid", ID); KXMLDOMNodeList items1 = x1.selectNodes(L"data/Item"); KXMLDOMNode t1 = items1.item(0); if (t1.selectSingleNode(L"count")) { xstring Count1 = t1.selectSingleNode(L"count").text(); if (Count1.toInt() <= 0) { alert(L"g*N O VþrGÿ eàlÕ[¡by!"); return 0; } } } ProcessFlowAction(L"action:bill.check.ask", 1); PostMessage(GetFrameWindow().GetHWND(), 0x401, (LPARAM)L"xmRefresh", 0); return 1; } else if (comdid.find(L"action:", 0) >= 0) { if (dw_list.GetRow() < 1) return 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; } int OnSourceRemark() { xml x = ViewObject::RetrieveData(L"/sale/data/TradeFinance3/GetSetUpRemarks", L"Type", L"N§TÁmK‹Õ9u({¡t"); KXMLDOMNodeList items = x.selectNodes(L"data/Item"); KXMLDOMNode t = items.item(0); xstring Content = L""; if (t.selectSingleNode(L"Content")) { Content = t.selectSingleNode(L"Content").text(); } xaserverarg arg1; //arg1.AddArg(L"value",L"ÿh7TÁ9‘ј\NŽ200QCÿ \r\n NR¡Sэw-‘Ǎ-XkQ™-‘Ǎ-~ĕÇ-‘Ǎ-~ÏtÇ-NR¡TXÇ-NR¡N;{¡Ç-b„_`;\r\n\nÿh7TÁ9‘јY'NŽ{INŽ200QCÿ \r\n NR¡Sэw-‘Ǎ-XkQ™-‘Ǎ-~ĕÇ-‘Ǎ-~ÏtÇ-NR¡TXÇ-NR¡N;{¡Ç-_`;Ç \r\n\n"R¡b¥•—lB:9u(e/NؗW(9u([¡byÇNKTÿ eéNŽmAz S†SòN-[¡byÇeö•ô,9u(N [Wb¥•"); arg1.AddArg(L"value", Content); OpenWindow(L"dev:xpage[memo.edit.new.vx]", arg1); return 1; } //‰æSџ hy»_TtranN‹Nöÿ Çgåb~gÐN*SÂep_—R0[ù^”v„R int OnBaseItemChanged(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"") { KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); } return 1; } //T}NäYtN‹Nö int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnDoubleClicked(TEvent* evt, LPARAM p) { HCURSOR hCursor = xutil::SetCursorWait(); OnCmdDispatch(L"xmEdit"); xutil::RestoreCursor(hCursor); 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"TestExpensID")); return 1; } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent(L"WM_XCOMMAND", (FEvent)&TestExpenseWin::OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS", (FEvent)&TestExpenseWin::OnSetFocus); AttachEvent(L"dw_list", L"DWV_ITEMCHANGED", (FEvent)&TestExpenseWin::OnBaseItemChanged); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&TestExpenseWin::OnDoubleClicked);//ˆLSÌQû AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&TestExpenseWin::OnRowChanged); AttachEvent(L"cbx_state", L"CBN_SELCHANGE", (FEvent)&TestExpenseWin::OnDatePicker); return 1; } int OnDatePicker(TEvent* evt, LPARAM lParam) { int h = xcombobox::GetCurSel(evt->command.hCtrl); if (h > -1) { xstring txt = (string)xcombobox::GetLBText(evt->command.hCtrl, h); if (txt == L"˜„‘Meåg") { DatePicker = L"ETD"; OnRetrieve(DatePicker); } else if (txt == L"_UQeeåg") { DatePicker = L"CreateDate"; OnRetrieve(DatePicker); } } return 1; } xstring GetQueryArg() { dw_arg.AcceptText(); xml x ; dw_arg.DwUpdateAllTo(x); return x.xml(); } int OnRetrieve(xstring DatePicker) { xml x ; xaserverarg arg; arg.AddArg(L"QueryTxt", xcontrol(GetControl(L"search")).GetText()); arg.AddArg(L"QueryArg", GetQueryArg()); arg.AddArg(L"DatePicker", DatePicker); //arg.AddArg(L"Status",L"1"); trace(L"==QueryTxt==L" + xcontrol(GetControl(L"search")).GetText() + L"===QueryArg===L" + GetQueryArg()); if (getUrl(L"/sale/data/Expense3/view/Test", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); } return 1; } int onload() { dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Expense3/test/list"); //dw_list.SetItemString(1,L"SaveType",L"SŸNö"); 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); OnAttachEvent(); return 1; } int onloaded() { //SetAgent(); SetAgent(L"list", dw_list.GetItemString(1, L"TestExpensID")); OnRetrieve(DatePicker); return 1; } };