| #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" | 
| #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; | 
|     } | 
|   | 
| }; |