þÿ#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) TestExpenseBase : public xframe { public: xdwtable dw_base; xnode m_agentNode; //Agent Condition bool updated; HWND hObject = 0; xstring ApproveStatus = L"e°^ú"; xstring positionname; public: TestExpenseBase(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static TestExpenseBase* CreateInstance(void* implPtr, void* hWnd) { TestExpenseBase* pWin = new TestExpenseBase(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { return 1; 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; } xstring GetEntityName(LPARAM pr) { return L"TestExpense"; } xstring GetEntityID(LPARAM pr) { return dw_base.GetGuid(1); } //q&p¹oÀm;YtQýep int OnSetFocus(TEvent* evt, LPARAM param) { //‘Ín]åQwga SetAgent(); return 1; } int OnSave() { xstring TestExpenseNo = dw_base.GetItemString(1, L"TestExpenseNo"); xml x1 ; if (TestExpenseNo == L"") { x1 = ViewObject::RetrieveData(L"/sale/data/expense3/TestExpenseNo"); TestExpenseNo = x1.text(); dw_base.SetItemString(1, L"TestExpenseNo", TestExpenseNo); } //return 1; xml x ; xaserverarg arg; dw_base.AcceptText(); dw_base.DwUpdateAllTo(x); xstring error = L""; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/expense3/update/Test", arg.GetString(), x) != 1) { error = x.text(); //alert(error); } else { xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { dw_base.ResetUpdateStatus(); alert(L"OÝ[XbRŸ!"); SendMessage(hObject, 0x401, (LPARAM)L"xmRefresh", 0); //CloseWindow(); } else { alert(L"OÝ[XY1%!"); } //alert(str); } return 1; } //T}NäSÑ^Qýep int OnCmdDispatch(xstring comdid) { xstring s = publiccode::GetUser().deptname; ApproveStatus = dw_base.GetItemString(1, L"ApplyStatus"); //alert(ApproveStatus); if (ApproveStatus == L"" || ApproveStatus == L"e°^ú" || ApproveStatus == L"Oîe9" || s == L""R¡è" || s == L"~Ït[¤" || ApproveStatus == L"]òbyQÆ" || ApproveStatus == L"‘Ǎ-_…by" || ApproveStatus == L"ßSU_…by") { if (comdid == L"xmSave") { /*if(dw_base.GetItemString(1,L"TInvoiceNo") == L"") { alert(L"‹÷XkQ™YÐS÷ÿ"); return 0; }*/ OnSave(); return 1; } if (s.find(L"NR¡") < 0) { if (comdid == L"xmImportProduct") { //xaserverarg arg=new xaserverarg; xaserverarg arg; OpenWindow(L"dev:xpage[TestExpense.GDNInvoiceno.vx]", arg); xstring str = arg.GetArgString(L"items"); OnAddTest(str); return 1; } } } if (comdid == L"xmCheck") { if (positionname.find(L"ßSU") < 0) { xstring CustomerID = dw_base.GetItemString(1, L"CustomerID"); if (CustomerID == L"") { alert(L"[¢b7N:zzÿ"); return 0; } xstring GoodsNo = dw_base.GetItemString(1, L"GoodsNo"); if (GoodsNo == L"") { alert(L"QlSøW‹S÷N:zzÿ"); return 0; } xstring CName = dw_base.GetItemString(1, L"CName"); if (CName == L"") { alert(L"N§TÁT yðN:zzÿ"); return 0; } xstring CustomerItemNo = dw_base.GetItemString(1, L"CustomerItemNo"); if (CustomerItemNo == L"") { alert(L"[¢b7W‹S÷N:zzÿ"); return 0; } xstring TestContent = dw_base.GetItemString(1, L"TestContent"); if (TestContent == L"") { alert(L"mK‹ÕQ…[¹N:zzÿ"); return 0; } xstring BuyerUserid = dw_base.GetItemString(1, L"BuyerUserid"); if (BuyerUserid == L"") { alert(L"‘Ǎ-TXN:zzÿ"); return 0; } xstring POPaymentMethod = dw_base.GetItemString(1, L"POPaymentMethod"); if (POPaymentMethod == L"") { alert(L"]åS‚e/NØN:zzÿ"); return 0; } xstring SOPaymentMethod = dw_base.GetItemString(1, L"SOPaymentMethod"); if (SOPaymentMethod == L"") { alert(L"[¢b7e/NØN:zzÿ"); return 0; } xstring EntityID = dw_base.GetGuid(1); 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_base.GetGuid(1); 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); CloseWindow(); return 1; } if (comdid == L"xmClose") { if (updated) SendMessage(hObject, 0x401, (LPARAM)L"xmRefresh", 0); CloseWindow(); return 1; } return 0; } int OnAddTest(xstring str) { if (str != L"") { xml x ; x.loadXML(str); KXMLDOMNodeList items = x.selectNodes(L"data/Item"); int lens = items.length(); int k = 0; KXMLDOMElement e = items.item(k); if (e.selectSingleNode(L"InvoiceNo")) dw_base.SetItemString(1, L"TInvoiceNo", e.selectSingleNode(L"InvoiceNo").text()); if (e.selectSingleNode(L"goodsno")) dw_base.SetItemString(1, L"GoodsNo", e.selectSingleNode(L"goodsno").text()); if (e.selectSingleNode(L"CName")) dw_base.SetItemString(1, L"CName", e.selectSingleNode(L"CName").text()); if (e.selectSingleNode(L"CustomerItemNO")) dw_base.SetItemString(1, L"CustomerItemNo", e.selectSingleNode(L"CustomerItemNO").text()); if (e.selectSingleNode(L"Dept")) dw_base.SetItemString(1, L"OrgName", e.selectSingleNode(L"Dept").text()); if (e.selectSingleNode(L"POCreatorID")) dw_base.SetItemString(1, L"BuyerUserid", e.selectSingleNode(L"POCreatorID").text()); if (e.selectSingleNode(L"POCreatorIDEx")) dw_base.SetItemDisplayString(1, L"BuyerUserid", e.selectSingleNode(L"POCreatorIDEx").text()); //if(e.selectSingleNode(L"SalespersonID")) dw_base.SetItemString(1,L"SalesPersonID",e.selectSingleNode(L"SalespersonID").text()); //if(e.selectSingleNode(L"SalespersonIDEx")) dw_base.SetItemDisplayString(1,L"SalesPersonID",e.selectSingleNode(L"SalespersonIDEx").text()); if (e.selectSingleNode(L"CreatorID")) dw_base.SetItemString(1, L"Merchandiser", e.selectSingleNode(L"CreatorID").text()); if (e.selectSingleNode(L"CreatorIDEx")) dw_base.SetItemDisplayString(1, L"Merchandiser", e.selectSingleNode(L"CreatorIDEx").text()); if (e.selectSingleNode(L"CustomerID")) dw_base.SetItemString(1, L"CustomerID", e.selectSingleNode(L"CustomerID").text()); if (e.selectSingleNode(L"CustomerIDEx")) dw_base.SetItemDisplayString(1, L"CustomerID", e.selectSingleNode(L"CustomerIDEx").text()); } return 1; } //T}NäYtN‹Nö int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnItemChanged(TEvent* evt, LPARAM p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring value = hdr.data; xstring dwname = L"dw_base"; if (value != L"") { KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']"); ViewObject::TransData(nlist, dw_base, hdr.row, colname, value); } return 1; } int OnItemClick(TEvent* evt, LPARAM p) { DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh; xstring colname1 = hdr1.colname; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xaserverarg arg; if (value == L"–DNö") { if (dw_base.GetGuid(1) == L"") { alert(L"‹÷QHOÝ[Xÿ W(mûR –DNöÿ"); return 0; } arg.AddArg(L"entityid", dw_base.GetGuid(1)); OpenWindow(L"dev:xpage[maint.Document.Test.v3.vx]", arg); } return 1; } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent(L"WM_XCOMMAND", (FEvent)&TestExpenseBase::OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS", (FEvent)&TestExpenseBase::OnSetFocus); AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&TestExpenseBase::OnItemChanged); AttachEvent(L"dw_base", L"DWV_CLICKED", (FEvent)&TestExpenseBase::OnItemClick); return 1; } int OnRetrieveCopy(xstring TestExpensIDCopy) { xml x = ViewObject::RetrieveData(L"/sale/data/Expense3/GetTestExpenseByIDCopy", L"TestExpensIDCopy", TestExpensIDCopy); KXMLDOMNodeList items = x.selectNodes(L"data/Item"); trace(x.xml()); KXMLDOMNode t = items.item(0); if (t.selectSingleNode(L"CustomerID"))dw_base.SetItemString(1, L"CustomerID", t.selectSingleNode(L"CustomerID").text()); if (t.selectSingleNode(L"CustomerName"))dw_base.SetItemDisplayString(1, L"CustomerID", t.selectSingleNode(L"CustomerName").text()); if (t.selectSingleNode(L"SalesPersonID"))dw_base.SetItemString(1, L"SalesPersonID", t.selectSingleNode(L"SalesPersonID").text()); if (t.selectSingleNode(L"SalesPersonName"))dw_base.SetItemDisplayString(1, L"SalesPersonID", t.selectSingleNode(L"SalesPersonName").text()); if (t.selectSingleNode(L"BuyerUserid"))dw_base.SetItemString(1, L"BuyerUserid", t.selectSingleNode(L"BuyerUserid").text()); if (t.selectSingleNode(L"BuyerUserName"))dw_base.SetItemDisplayString(1, L"BuyerUserid", t.selectSingleNode(L"BuyerUserName").text()); if (t.selectSingleNode(L"CustomerID"))dw_base.SetItemString(1, L"CustomerID", t.selectSingleNode(L"CustomerID").text()); if (t.selectSingleNode(L"CustomerName"))dw_base.SetItemDisplayString(1, L"CustomerID", t.selectSingleNode(L"CustomerName").text()); if (t.selectSingleNode(L"Merchandiser"))dw_base.SetItemString(1, L"Merchandiser", t.selectSingleNode(L"Merchandiser").text()); if (t.selectSingleNode(L"MerchandiserName"))dw_base.SetItemDisplayString(1, L"Merchandiser", t.selectSingleNode(L"MerchandiserName").text()); if (t.selectSingleNode(L"GoodsNo"))dw_base.SetItemString(1, L"GoodsNo", t.selectSingleNode(L"GoodsNo").text()); if (t.selectSingleNode(L"CName"))dw_base.SetItemString(1, L"CName", t.selectSingleNode(L"CName").text()); if (t.selectSingleNode(L"CustomerItemNo"))dw_base.SetItemString(1, L"CustomerItemNo", t.selectSingleNode(L"CustomerItemNo").text()); if (t.selectSingleNode(L"TestContent"))dw_base.SetItemString(1, L"TestContent", t.selectSingleNode(L"TestContent").text()); if (t.selectSingleNode(L"OrgName"))dw_base.SetItemString(1, L"OrgName", t.selectSingleNode(L"OrgName").text()); return 1; } int OnRetrieve(xstring TestExpensID) { xml x ; xaserverarg arg; arg.AddArg(L"TestExpensID", TestExpensID); if (getUrl(L"/sale/data/Expense3/GetTestExpenseByID", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_base.Retrieve(x); dw_base.Redraw(); } return 1; } int onload() { SetArg(); dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/Expense3/test/Base"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); dw_base.SetVScrollState(false); xstring TestExpensID = L""; xstring TestExpensIDCopy = L""; hObject = 0; if (GetWinParam()) { xaserverarg arg=GetArg(); TestExpensID = arg.GetArgString(L"EntityID"); hObject = (HWND)arg.GetParam(L"HWND"); TestExpensIDCopy = arg.GetArgString(L"TestExpensID"); /*if(GetParam()) { xaserverarg arg = GetParam(); TestExpensID = arg.GetArgString(L"EntityID"); }*/ } if (TestExpensIDCopy != L"") { OnRetrieveCopy(TestExpensIDCopy); } if (TestExpensID != L"") { OnRetrieve(TestExpensID); } else { xstring suserid = publiccode::GetUser().id; xstring susername = publiccode::GetUser().name; dw_base.SetItemString(1, L"CreateID", suserid); dw_base.SetItemDisplayString(1, L"CreateID", susername); dw_base.SetItemString(1, L"SalesPersonID", suserid); dw_base.SetItemDisplayString(1, L"SalesPersonID", susername); xstring sdate = publiccode::GetCurrentDate(); dw_base.SetItemString(1, L"CreateDate", sdate); dw_base.SetItemString(1, L"ApproveStatus", L"e°^ú"); dw_base.SetItemString(1, L"OrgName", publiccode::GetUser().deptname); } OnAttachEvent(); updated = false; positionname = publiccode::GetUser().positionname; //alert(positionname); /*if (positionname.find(L"NR¡") >= 0) { dw_base.SetItemString(1, L"Position", L"NR¡"); }*/ if (positionname.find(L"‘Ǎ-") >= 0) { dw_base.SetItemString(1, L"Position", L"‘Ǎ-"); } return 1; } int onloaded() { //SetAgent(); return 1; } };