#include #include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "adt/xarray.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) CartermList : public listwin { public: //xdwgrid dw_list; //xdwpages dw_pages; //xstring m_QueryTxt; //KXMLDOMDocument m_configDoc; //static int dw_hWnd; public: CartermList(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {} public: static CartermList* CreateInstance(void* implPtr, void* hWnd) { CartermList* pWin = new CartermList(implPtr, (HWND)hWnd); return pWin; } xstring GetGuid() { return publiccode::GetGuid(); } int OnAddrow() { dw_list.InsertRow(0); int rows = dw_list.GetRowCount(); dw_list.SetRow(rows); dw_list.SetItemString(rows, L"PartyID", GetGuid()); dw_list.SetItemString(rows, L"ContactID", GetGuid()); dw_list.SetItemString(rows, L"PAStatus", L"1"); dw_list.SetItemString(rows, L"PStatus", L"1"); dw_list.SetItemString(rows, L"PCStatus", L"1"); dw_list.SetItemString(rows, L"Type", L"7"); return 1; } int OnInsertRow() { int row = dw_list.GetRow(); if (row<1 || row>dw_list.GetRowCount()) return 0; dw_list.InsertRow(row); dw_list.SetItemString(row, L"PartyID", GetGuid()); dw_list.SetItemString(row, L"ContactID", GetGuid()); dw_list.SetItemString(row, L"PAStatus", L"1"); dw_list.SetItemString(row, L"PStatus", L"1"); dw_list.SetItemString(row, L"PCStatus", L"1"); dw_list.SetItemString(row, L"Type", L"7"); return 1; } int ViewUpdate(LPARAM pr, xstring updateItem, xaserverarg arg) { if (updateItem == L"del") { int DelRow = dw_list.GetRow(); dw_list.DeleteRow(DelRow); } return 1; } int OnDeleteRow() { int rows = dw_list.GetRowCount(); int row2 = dw_list.GetPrevSelectRow(rows); while (row2 > 0) { dw_list.DeleteRow(row2); row2 = dw_list.GetPrevSelectRow(row2 - 1); } dw_list.SelectRow(0, false); return 1; } int OnSave() { /*xstring no = dw_list.GetItemString(1,L"CarTermNo"); if(no==L""){ alert(L"ÇëÊäÈë³µ¶Ó±àÂ룡"); return -1; } xstring SName = dw_list.GetItemString(1,L"Name"); if(SName==L""){ alert(L"ÇëÊäÈë³µ¶ÓÃû³Æ£¡"); return -1; } xstring ContacterName = dw_list.GetItemString(1,L"ContacterName"); if(ContacterName==L""){ alert(L"ÇëÊäÈëÁªÏµÈËÃû³Æ£¡"); return -1; } */ xml x; dw_list.AcceptText(); dw_list.DwUpdateAllToEx(x); trace(x.xml()); xaserverarg arg; arg.AddArg(L"content", x.xml()); arg.AddArg(L"dbmap", L"CarTerm.dbmap"); if (xurl::get(L"/sale/data/CarTerm/entity/carterm/save", arg.GetString(), x) != 1) { trace(L"error:" + (xstring)x.xml()); alert(L"±£´æÊ§°Ü!"); return 0; } else { trace(x.xml()); if (x.selectSingleNode(L"error")) { alert(L"±£´æ³ö´í2!"); return 0; } alert(L"±£´æ³É¹¦£¡"); dw_list.ResetUpdateStatus(); } dw_list.Redraw(); return 0; } int OnCmdDispatch(xstring comdid) { if (comdid.find(L"action:bill.row.add", 0) >= 0) { OnAddrow(); } else if (comdid.find(L"bill.row.insert", 0) >= 0) { OnInsertRow(); } else if (comdid.find(L"bill.row.delete", 0) >= 0) { OnDeleteRow(); } else if (comdid.find(L"bill.save", 0) >= 0) { //trace(1); OnSave(); } return 0; } int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { AttachEvent(L"WM_XCOMMAND", (FEvent)&CartermList::OnXCommand); return 1; } int onload() { SetAgent(); OnAttachEvent(); listwin::onload(); dw_list.SetReadOnly(false); return -1; } };