xj qian
2024-07-16 7a91c3a1ed37b0332d4ff0ebeae60bd6da3665c0
jrj/project/business/BasicCode/ForwarderList.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
#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) ForwarderList : public xwin
{
public:
   //xdwpages dw_pages;
   xstring m_QueryTxt;
   KXMLDOMDocument m_configDoc;
   xtreeview      tv_1;
   xstring      sType;
   static int dw_hWnd;
   int m_pageIndex;
   int m_pageNumber;
   xdwgrid   dw_list;
public:
   ForwarderList(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
public:
   static ForwarderList* CreateInstance(void* implPtr, void* hWnd)
   {
      ForwarderList* pWin = new ForwarderList(implPtr, (HWND)hWnd);
      return pWin;
   }
   int SetEntityData(xaserverarg arg)
   {
      arg.AddArg(L"sType", sType);
      xml x;
      getUrl(L"/sale/data/LogisticsCode/entity/list", arg.GetString(), x);
      KXMLDOMElement e = x.documentElement();
      if (e)
      {
         if (list::dw_pages.nativept && e.selectSingleNode(L"@TotalPage"))
         {
            xstring s = e.selectSingleNode(L"@TotalPage").text(); //总数量
            list::dw_pages.SetMaxPage(s.toInt());
         }
      }
      dw_list.Retrieve(x);
      dw_list.Redraw();
      dw_list.SetReadOnly(true);
      return 1;
   }
   int OnRetrieve()
   {
      xaserverarg arg;
      arg.AddArg(L"pageindex", xstring(m_pageIndex)); //第几页
      arg.AddArg(L"pagenumber", xstring(m_pageNumber)); //每页数量
      //trace(list::m_QueryTxt);
      arg.AddArg(L"QueryTxt", list::m_QueryTxt); //每页数量
      return SetEntityData(arg);
   }
   int OnTreeSelChanged(TEvent* evt, LPARAM p)
   {
      NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
      HTREEITEM hItem = nmtv.itemNew.hItem;
      list::m_QueryTxt = L"";
      HTREEITEM hitem = tv_1.GetSelectedItem();
      //c_type=dw_type.GetItemLabel(hitem);
      //如果是跟节点
      HTREEITEM roothitem = tv_1.GetRootItem();
      KXMLDOMElement e = tv_1.GetItemData(hitem);
      xstring value = e.selectSingleNode(L"@data").text();
      sType = value + L"";
      OnRetrieve();
      return 1;
   }
   int OnChangePages(TEvent* evt, LPARAM p)
   {
      PAGENMHDR& h = *(PAGENMHDR*)evt->notify.pnmh;
      int c = h.cur;
      HCURSOR hCursor = xutil::SetCursorWait();
      m_pageIndex = c;
      OnRetrieve();
      xutil::RestoreCursor(hCursor);
      return 1;
   }
   int ViewUpdate(param pr, xstring updateItem, xaserverarg   arg)
   {
      if (updateItem == L"del")
      {
         int DelRow = dw_list.GetRow();
         dw_list.DeleteRow(DelRow);
      }
      return 1;
   }
   int OnAttachEvent()
   {
      //获得树的选择事件
      AttachEvent(L"tv_1", L"TVN_SELCHANGED", (FEvent)&ForwarderList::OnTreeSelChanged);
      return 1;
   }
   int onload()
   {
      list::m_QueryTxt = L"";
      m_pageIndex = 1;
      m_pageNumber = 30;
      sType = L"0";
      list::onload();
      OnAttachEvent();
      tv_1 = new treeview;
      tv_1.setNativePointer(GetControl(L"tv_1"));
      HTREEITEM root = tv_1.GetRootItem();
      tv_1.ExpandItem(root);
      dw_list.SetColumnStaus(L"ForwarderID", false);
      return 1;
   }
};