LiFan
2025-04-24 9b3b2eb20b09e13da837a28f16e552ba70a090c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#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 listwin
{
 
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) :listwin(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 (listwin::dw_pages && e.selectSingleNode(L"@TotalPage"))
            {
                xstring s = e.selectSingleNode(L"@TotalPage").text(); //×ÜÊýÁ¿                
                listwin::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", listwin::m_QueryTxt); //ÿҳÊýÁ¿                    
        return SetEntityData(arg);
    }
    int OnTreeSelChanged(TEvent* evt, LPARAM p)
    {
        NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
        HTREEITEM hItem = nmtv.itemNew.hItem;
        listwin::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(LPARAM 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()
    {
        SetAgent();
        listwin::m_QueryTxt = L"";
        m_pageIndex = 1;
        m_pageNumber = 30;
        sType = L"0";
        listwin::onload();
 
        OnAttachEvent();
 
 
 
        tv_1 = GetControl(L"tv_1");
 
        HTREEITEM root = tv_1.GetRootItem();
        tv_1.ExpandItem(root);
        dw_list.SetColumnState(L"ForwarderID", false);
 
        OnRetrieve();
        return 1;
    }
};