þÿ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <wobject/xdouble.hpp> #include <xcontrol/xlayersheet.hpp> #include <xcontrol/xdatetimepick.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) SampleRequestFormList : public xframe { public: xdwgrid dw_list; xdatetimepick sdate; xdatetimepick edate; xnode m_agentNode; //Agent Condition public: SampleRequestFormList(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static SampleRequestFormList* CreateInstance(void* implPtr, void* hWnd) { SampleRequestFormList* pWin = new SampleRequestFormList(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"SampleRequest"; } xstring GetEntityID(LPARAM pr) { int row = dw_list.GetRow(); xstring id = dw_list.GetItemString(row, L"RequestID"); 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"RequestID"); 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"RequestID")); return 1; } //T}NäSÑ^Qýep int OnCmdDispatch(xstring comdid) { if (comdid == L"xmSearch") { OnRetrieve(); } else if (comdid == L"action:bill.new" || comdid == L"xmAdd") { xaserverarg arg; arg.AddArg(L"HWND", xstring((__int64)GetHWND())); arg.AddArg(L"ApproveStatus", L"e°^ú"); OpenWindow(L"dev:xpage[maint.samplesequest.vx]", arg); } else if (comdid == L"action:bill.open" || comdid == L"xmEdit") { if (dw_list.GetRow() < 1) return 0; xaserverarg arg; xstring RequestID = dw_list.GetGuid(dw_list.GetRow()); xstring ApproveStatus = dw_list.GetItemString(dw_list.GetRow(), L"ApproveStatus"); arg.AddArg(L"RequestID", RequestID); arg.AddArg(L"ApproveStatus", ApproveStatus); arg.AddArg(L"HWND", xstring((__int64)GetHWND())); OpenWindow(L"dev:xpage[maint.samplesequest.vx]",arg); } else if (comdid == L"action:bill.delete" || comdid == L"xmDelete") { if (dw_list.GetRow() < 1) return 0; xstring EntityID = dw_list.GetGuid(dw_list.GetRow()); int MB_OKCANCEL = 1; int IDOK = 1; int ret = MessageBox(GetHWND(), L"xn‹¤R –dh7TÁ—lBSU?", L"cÐy:", MB_OKCANCEL); if (ret == IDOK) { ViewObject::RetrieveData(L"/sale/data/expense3/delete/sampleRequest", L"EntityID", EntityID); OnRetrieve(); } } else if (comdid == L"action:bill.refresh" || comdid == L"xmRefresh") { OnRetrieve(); } else if (comdid == L"xmSaveAs") { xstring userno = publiccode::GetUser().no; if (userno == L"00601" || userno == L"00701" || userno == L"00603" || userno == L"admin") { dw_list.SaveAs(L""); } return 1; } else if (comdid == L"action:bill.Remarks") { OnSourceRemark(); } else if (comdid == L"action:bill.Document") { xaserverarg arg5; xstring guid = dw_list.GetGuid(dw_list.GetRow()); xstring ApproveStatus5 = dw_list.GetItemString(dw_list.GetRow(), L"ApproveStatus"); arg5.AddArg(L"entityid", guid); arg5.AddArg(L"ApproveStatus", ApproveStatus5); OpenWindow(L"dev:xpage[maint.Document.SampleRequestForm.vx]", arg5); return 1; } else if (comdid == L"action:bill.Supplieren") { xaserverarg arg2; arg2.AddArg(L"EntityID", L""); OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]", arg2); return 1; } else if (comdid == L"action:bill.check.ask") { xstring ID = dw_list.GetGuid(dw_list.GetRow()); xml x = ViewObject::RetrieveData(L"/sale/data/TDocument3/attachment/GetDocCountEx_s", L"entityid", ID); 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"g*N O VþrGÿ eàlÕ[¡by!"); return 0; } } xstring EntityIDEx = dw_list.GetGuid(dw_list.GetRow()); xml xx = ViewObject::RetrieveData(L"/sale/data/expense3/view/SampleRequestFormJudge", L"EntityID", EntityIDEx); xstring Results = xx.text(); if (Results != L"") { alert(Results); return 0; } ProcessFlowAction(L"action:bill.check.ask", 1); PostMessage(GetFrameWindow().GetHWND(), 0x401, (LPARAM)L"xmRefresh", 0); return 1; } else if (comdid == L"action:bill.check.askunagree") { ProcessFlowAction(L"action:bill.check.askunagree", 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") { //onDocument(); win32::PostMessage(GetFrameWindow().GetHWND(),0x401,L"xmRefresh",0); }*/ return ret1; } return 0; } int OnSourceRemark() { xml x = ViewObject::RetrieveData(L"/sale/data/TradeFinance3/GetSetUpRemarks", L"Type", L"h7TÁ—lBSU"); 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; } int OnDoubleClicked(TEvent* evt, LPARAM p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; int row = hdr.row; HCURSOR hCursor = xutil::SetCursorWait(); xaserverarg arg; xstring RequestID = dw_list.GetGuid(row); xstring ApproveStatus = dw_list.GetItemString(row, L"ApproveStatus"); arg.AddArg(L"RequestID", RequestID); arg.AddArg(L"ApproveStatus", ApproveStatus); OpenWindow(L"dev:xpage[maint.samplesequest.vx]",arg); xutil::RestoreCursor(hCursor); return 1; } //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)&SampleRequestFormList::OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS", (FEvent)&SampleRequestFormList::OnSetFocus); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&SampleRequestFormList::OnDoubleClicked); AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&SampleRequestFormList::OnRowChanged); return 1; } int OnRetrieve() { xml x ; xaserverarg arg; xstring sdatetxt = L""; xstring edatetxt = L""; if (sdate.IsChecked()) sdatetxt = sdate.GetText(); if (edate.IsChecked()) edatetxt = edate.GetText(); xcontrol query = GetControl(L"sl_search"); xstring keyword = query.GetText(); arg.AddArg(L"keyword", keyword); arg.AddArg(L"sdate", sdatetxt); arg.AddArg(L"edate", edatetxt); HCURSOR hCursor = xutil::SetCursorWait(); if (getUrl(L"/sale/data/expense3/view/sapleRequestList", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); dw_list.SetReadOnly(true); } xutil::RestoreCursor(hCursor); return 1; } int onload() { sdate = GetControl(L"sdate"); edate = GetControl(L"edate"); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/expense3/SampleRequest/list"); xstring currdate = publiccode::GetCurrentDate(); dw_list.SetColumnState(L"RequestID", false); int curryear = currdate.mid(0, 4).toInt(); sdate.SetDatetime(curryear - 1, 1, 1); OnAttachEvent(); OnRetrieve(); dw_list.SetReadOnly(true); return 1; } int onloaded() {/* if(dw_list.GetRowCount > 0) SetAgent(L"list",GetEntityID(1)); else */ SetAgent(L"list", dw_list.GetItemString(1, L"RequestID")); return 1; } };