xj qian
2024-07-16 7a91c3a1ed37b0332d4ff0ebeae60bd6da3665c0
jrj/project/business/BasicCode/CartermList.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,170 @@
#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) CartermList : public xwin
{
public:
   xdwgrid   dw_list;
   xdwpages dw_pages;
   xstring m_QueryTxt;
   KXMLDOMDocument m_configDoc;
   static int dw_hWnd;
public:
   CartermList(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
public:
   static CartermList* CreateInstance(void* implPtr, void* hWnd)
   {
      CartermList* pWin = new CartermList(implPtr, (HWND)hWnd);
      return pWin;
   }
   int alert(xstring str)
   {
      //win::MessageBox(GetHWND(),str,L"提示22:",0);
      TApp::alert(this, str);
      return 0;
   }
   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");
   }
   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");
   }
   int ViewUpdate(param 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);
   }
   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()
   {
      OnAttachEvent();
      list::onload();
      dw_list.SetReadOnly(false);
      return -1;
   }
};