#include <wobject/xstring.hpp> 
 | 
#include <xcontrol/xtreeview.hpp> 
 | 
#include <xcontrol/xdwgrid.hpp> 
 | 
  
 | 
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" 
 | 
#include "viewobject/view.base.hpp" 
 | 
  
 | 
class __declspec(dllexport) SO3list : public listwin 
 | 
{ 
 | 
public: 
 | 
    string m_sType; //Ê÷Ñ¡ÖеÄÀàÐÍ 
 | 
    string m_sTypeTxt; //Ê÷Ñ¡ÖеÄÊý¾Ý 
 | 
    string urlTree; 
 | 
    string myDataUrl; 
 | 
    string rows; 
 | 
    xcombobox ddlb_1; 
 | 
    xcombobox cbx_datashow; 
 | 
  
 | 
    int changeddlb; 
 | 
  
 | 
    xtreeview tv_folder; 
 | 
    xdwgrid dw_goods; 
 | 
    xdwgrid dw_source; 
 | 
public: 
 | 
    SO3list(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {} 
 | 
public: 
 | 
    static SO3list* CreateInstance(void* implPtr, void* hWnd) 
 | 
    { 
 | 
         
 | 
        SO3list* pWin = new SO3list(implPtr, (HWND)hWnd); 
 | 
        return pWin; 
 | 
    } 
 | 
  
 | 
    //process tree 
 | 
    //²éÕÒµ±Ç°Ê÷ÏîµÄ¶¥¼¶Ä¿Â¼ 
 | 
    HTREEITEM LookupTopFolder(HTREEITEM hItem) 
 | 
    { 
 | 
        HTREEITEM hRoot = tv_folder.GetRootItem(); 
 | 
        while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); 
 | 
        return hItem; 
 | 
    } 
 | 
  
 | 
    int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image) 
 | 
    { 
 | 
        KXMLDOMNodeList nlist = ele.selectNodes(L"item"); 
 | 
        int len = nlist.length(); 
 | 
        if (len > 0) tv_folder.SetItemChild(hItem, 1); 
 | 
        for (int i = 0; i < len; i++) 
 | 
        { 
 | 
            KXMLDOMElement e = nlist.item(i); 
 | 
            string name = e.getAttribute(L"name"); 
 | 
            HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image); 
 | 
            ExpandCatChildFolder(h, e, 35); 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int ExpandFolderItem(HTREEITEM hItem, string no) 
 | 
    { 
 | 
        KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),urlTree, L"no", no, L"rows", rows); 
 | 
        if (!x) return 0; 
 | 
        KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); 
 | 
        int len = nlist.length(); 
 | 
        for (int i = 0; i < len; i++) 
 | 
        { 
 | 
            KXMLDOMElement e = nlist.item(i); 
 | 
            string name = e.getAttribute(L"name"); 
 | 
            HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35); 
 | 
            ExpandCatChildFolder(h, e, 35); 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    //Ê÷Õ¹¿ª 
 | 
    int OnTreeExpanding(TEvent* evt, LPARAM p) 
 | 
    { 
 | 
        NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; 
 | 
        HTREEITEM hItem = nmtv.itemNew.hItem; 
 | 
        HTREEITEM hTopItem = LookupTopFolder(hItem); 
 | 
        string name = tv_folder.GetItemLabel(hTopItem); 
 | 
        HTREEITEM child = tv_folder.GetChildItem(hItem); 
 | 
  
 | 
        KXMLDOMElement e = tv_folder.GetItemData(hItem); 
 | 
        if (!child)ExpandFolderItem(hItem, e.getAttribute(L"no")); 
 | 
  
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    //Õ¹¿ª×ÓÎļþ 
 | 
    int  ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement) 
 | 
    { 
 | 
        KXMLDOMNodeList nlist = pElement.selectNodes(L"Item"); 
 | 
        int len = nlist.length(); 
 | 
        for (int i = 0; i < len; i++) 
 | 
        { 
 | 
            KXMLDOMElement e = nlist.item(i); 
 | 
            string name = e.getAttribute(L"name"); 
 | 
            xstring sImage = e.getAttribute(L"image"); 
 | 
            xstring child = e.getAttribute(L"child"); 
 | 
            int image = 15; 
 | 
            if (sImage) image = sImage.toInt(); 
 | 
            HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image); 
 | 
            if (child != L"no") tv_folder.SetItemChild(h, 1); 
 | 
            //ExpandChildFolder(h, e); 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    //³õʼ»¯Îļþ¼Ð 
 | 
    int  InitialFolder() 
 | 
    { 
 | 
        KXMLDOMElement xframeElement = GetElement(); 
 | 
        KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); 
 | 
        if (e) 
 | 
            ExpandChildFolder(0, e); 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int OnTreeSelChanged(TEvent* evt, LPARAM p) 
 | 
    { 
 | 
        if (changeddlb) return 1; 
 | 
        return OnPreRetrieve(); 
 | 
    } 
 | 
  
 | 
    int ViewUpdate(LPARAM pr, xstring updateItem, xaserverarg  arg) 
 | 
    { 
 | 
        if (updateItem == L"del") 
 | 
        { 
 | 
            int DelRow = dw_list.GetRow(); 
 | 
            dw_list.DeleteRow(DelRow); 
 | 
            return 1; 
 | 
        } 
 | 
        else if (updateItem == L"setstate") 
 | 
        { 
 | 
            int row = dw_list.GetRow(); 
 | 
            if (row < 1) return 1; 
 | 
            KXMLDOMElement ele = dw_list.GetRowElement(row); 
 | 
            xstring id = GetEntityIDName(1); 
 | 
            xstring entity = ele.selectSingleNode(id).text(); 
 | 
            //trace(entity); 
 | 
            SetAgent(L"list", entity); 
 | 
            if (arg.GetArgString(L"state") != L"") 
 | 
                //this.dw_list.SetItemString(row, "ApprovalStatus", arg.GetArgString(L"state")); 
 | 
                dw_list.SetItemString(row, L"ApplyStatus", arg.GetArgString(L"state")); 
 | 
            if (arg.GetArgString(L"billstatus") != L"") 
 | 
            { 
 | 
                xstring billstatus = arg.GetArgString(L"billstatus"); 
 | 
                xstring statusName = GetBillStatusName(billstatus); 
 | 
                dw_list.SetItemString(row, L"ApprovalStatus", billstatus); 
 | 
                dw_list.SetItemDisplayString(row, L"ApprovalStatus", statusName); 
 | 
            } 
 | 
  
 | 
            dw_list.Redraw(); 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    bool IsEmptyQueryStr(string queryStr) 
 | 
    { 
 | 
        if (queryStr == L"") return true; 
 | 
        if (queryStr == L"<items join='and'/>") return true; 
 | 
        if (queryStr == L"<items join=\"and\"/>") return true; 
 | 
        //trace(queryStr); 
 | 
        return false; 
 | 
    } 
 | 
  
 | 
    //¼ìË÷ 
 | 
    int OnPreRetrieve() 
 | 
    { 
 | 
        HTREEITEM hItem = tv_folder.GetSelectedItem(); 
 | 
        if (!hItem) return 1; 
 | 
  
 | 
        HCURSOR hCursor = xutil::SetCursorWait(); 
 | 
        KXMLDOMElement e1 = tv_folder.GetItemData(hItem); 
 | 
        string no = e1.getAttribute(L"no"); 
 | 
        KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),myDataUrl, L"no", no, L"QueryTxt", m_QueryTxt, L"rows", rows); 
 | 
        if (x) 
 | 
        { 
 | 
            dw_list.Retrieve(x); 
 | 
            dw_list.Redraw(); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            dw_list.Reset(); 
 | 
            dw_list.Redraw(); 
 | 
            dw_goods.Reset(); 
 | 
            dw_goods.Redraw(); 
 | 
        } 
 | 
        dw_list.SetReadOnly(true); 
 | 
        xutil::RestoreCursor(hCursor); 
 | 
        return 1; 
 | 
        /* 
 | 
        xaserverarg arg = new xaserverarg; 
 | 
        arg.setNativePointer(arg.CreateInstance()); 
 | 
        arg.AddArg(L"pageindex", m_pageIndex.toString(),""); //µÚ¼¸Ò³ 
 | 
        arg.AddArg(L"pagenumber", m_pageNumber.toString(),""); //ÿҳÊýÁ¿ 
 | 
        arg.AddArg(L"QueryTxt", m_QueryTxt,""); //²éѯÌõ¼þ 
 | 
        arg.AddArg(L"sType",m_sType,""); 
 | 
        arg.AddArg(L"sTypeTxt",m_sTypeTxt,""); 
 | 
        xml x =  ViewObject::MakeXml(); 
 | 
  
 | 
        KXMLDOMElement   n = m_configDoc.selectSingleNode(L"//list/dwview[@type='dwgrid'][1]"); 
 | 
        if(n) 
 | 
        { 
 | 
            KXMLDOMElement e = n; 
 | 
            if(e.selectSingleNode(L"@dataUrl")) 
 | 
            { 
 | 
                string dataUrl = e.selectSingleNode(L"@dataUrl").text; 
 | 
                if(dataUrl.left(1)!="/") dataUrl = GetEntityName(1)+"/"+dataUrl; 
 | 
                getUrl(dataUrl, arg.GetString(), x); 
 | 
                KXMLDOMElement ele=x.GetXmlDoc().documentElement; 
 | 
                if(dw_pages.ptr_native_) 
 | 
                { 
 | 
                    if(ele.selectSingleNode(L"@TotalPage")) 
 | 
                    { 
 | 
                        string s=ele.selectSingleNode(L"@TotalPage").text; //×ÜÊýÁ¿ 
 | 
                        dw_pages.SetMaxPage(s.toInt()); 
 | 
                    } 
 | 
                } 
 | 
                dw_list.Retrieve(x); 
 | 
                dw_list.Redraw(); 
 | 
                dw_list.SetReadOnly(true); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                SetEntityData(arg); 
 | 
            } 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            SetEntityData(arg); 
 | 
        } 
 | 
        */ 
 | 
    } 
 | 
  
 | 
    //ÀúÊ·Êý¾Ý 
 | 
    int Onhistroydata() 
 | 
    { 
 | 
        int row = dw_list.GetNextSelectRow(1); 
 | 
        if (row > 0) 
 | 
        { 
 | 
            KXMLDOMElement e = dw_list.GetRowElement(row); 
 | 
            xaserverarg& arg = * new xaserverarg; 
 | 
            string sCustomerID = e.selectSingleNode(L"CustomerID").text(); 
 | 
            arg.AddArg(L"CustomerID", sCustomerID, L""); 
 | 
            string sCustomerName = e.selectSingleNode(L"CustomerName").text(); 
 | 
            arg.AddArg(L"CustomerName", sCustomerName, L""); 
 | 
            arg.AddArg(L"EntityName", GetEntityName(1), L""); 
 | 
            arg.AddArg(L"EntityID", GetEntityID(1), L""); 
 | 
            openUrl(L"/sale/view/SO/xpage/histroydata", &arg); 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    //xcomboboxÏÂÀ 
 | 
    int OnSelectDdlb(TEvent* evt, LPARAM p) 
 | 
    { 
 | 
        changeddlb = 1; 
 | 
        HWND wid = ddlb_1.GetHWND(); 
 | 
        int CB_GETCURSEL = 0x0147; 
 | 
        int nIndex =SendMessage(wid, CB_GETCURSEL, 0, 0); 
 | 
        KXMLDOMElement e = ddlb_1.GetElement(); 
 | 
        KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]"); 
 | 
        string no = e2.selectSingleNode(L"@element").text(); 
 | 
  
 | 
        HTREEITEM hItem = tv_folder.GetRootItem(); 
 | 
        while (tv_folder.GetChildItem(hItem)) 
 | 
            tv_folder.DeleteItem(tv_folder.GetChildItem(hItem)); 
 | 
        ExpandFolderItem(hItem, no); 
 | 
  
 | 
        changeddlb = 0; 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
  
 | 
    int OnSelectDataShowDdlb(TEvent* evt, LPARAM p) 
 | 
    { 
 | 
        HWND wid = cbx_datashow.GetHWND(); 
 | 
        int CB_GETCURSEL = 0x0147; 
 | 
        int nIndex = SendMessage(wid, CB_GETCURSEL, 0, 0); 
 | 
        KXMLDOMElement e = cbx_datashow.GetElement(); 
 | 
        KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]"); 
 | 
        rows = e2.selectSingleNode(L"@rows").text(); 
 | 
        OnPreRetrieve(); 
 | 
  
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int PreOnCmdDispatch(xstring comdid) 
 | 
    { 
 | 
        if (comdid == L"action:bill.new") 
 | 
        { 
 | 
            xstring s = publiccode::GetUser().id; 
 | 
            xstring no = publiccode::GetUser().no; 
 | 
            if (no != L"00303" && no != L"admin") 
 | 
            { 
 | 
                KXMLDOMDocument supplier_x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SupplierV3/entity/FindBySaleType", L"id", s); 
 | 
                if (supplier_x) 
 | 
                { 
 | 
                    if ((xstring)supplier_x.text() != L"ÒµÎñÔ±") 
 | 
                    { 
 | 
                        alert(L"µ±Ç°½ÇÉ«²»ÊÇÒµÎñÔ±²»ÄÜÐÂÔöµ¥×Ó£¬ÇëÖØÐÂÑ¡Ôñ½ÇÉ«"); 
 | 
                        return 0; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        if (comdid == L"action:bill.annex") 
 | 
        { 
 | 
            xstring deptname = publiccode::GetUser().deptname; 
 | 
            if (deptname == L"²É¹º²¿") 
 | 
            { 
 | 
                return 1; 
 | 
            } 
 | 
  
 | 
            int row = dw_list.GetRow(); 
 | 
            if (row < 1) return 1; 
 | 
            xstring guid = dw_list.GetItemString(row, L"SOID"); 
 | 
            xaserverarg& arg = * new xaserverarg(); 
 | 
  
 | 
            if (guid.length() <= 0)return 1; 
 | 
             
 | 
            arg.AddArg(L"entityid", guid); 
 | 
            arg.AddArg(L"Type", L"Y"); 
 | 
            OpenWindow(L"dev:xpage[maint.Document.SO3.v3.vx]", arg); 
 | 
  
 | 
            return 0; 
 | 
        } 
 | 
        if (comdid == L"action:bill.histroydata") return Onhistroydata(); 
 | 
        else if (comdid == L"action:bill.refresh") 
 | 
        { 
 | 
            changeddlb = 1; 
 | 
            HTREEITEM RItem = tv_folder.GetRootItem(); 
 | 
            while (tv_folder.GetChildItem(RItem)) 
 | 
                tv_folder.DeleteItem(tv_folder.GetChildItem(RItem)); 
 | 
            ExpandFolderItem(RItem, L"Category:Customer"); 
 | 
            tv_folder.ExpandItem(RItem); 
 | 
            tv_folder.ItemFocus(RItem); 
 | 
            changeddlb = 0; 
 | 
            return OnPreRetrieve(); 
 | 
        } 
 | 
        if (comdid == L"action:bill.saveas") 
 | 
        { 
 | 
            dw_list.SaveAs(L""); 
 | 
            return 1; 
 | 
        } 
 | 
        if (comdid == L"action:bill.SourceRemark") return OnSourceRemark(); 
 | 
  
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int OnSourceRemark() 
 | 
    { 
 | 
        xstring name = L"ÍâÏúºÏͬ"; 
 | 
        KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/TradeFinance3/GetSetUpRemarks", L"Type", name); 
 | 
        KXMLDOMNodeList items = x.selectNodes(L"data/Item"); 
 | 
        KXMLDOMNode t = items.item(0); 
 | 
        xstring Content = L""; 
 | 
        if (t.selectSingleNode(L"Content")) 
 | 
        { 
 | 
            Content = t.selectSingleNode(L"Content").text(); 
 | 
        } 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"value", Content); 
 | 
        OpenWindow(L"dev:xpage[memo.edit.new.vx]", arg); 
 | 
  
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int OnRowChanged(TEvent* evt, LPARAM p) 
 | 
    { 
 | 
        DWNMHDR&  hdr = *(DWNMHDR*)evt->notify.pnmh; 
 | 
        int row = hdr.row; 
 | 
  
 | 
  
 | 
        if (row < 1) return 1; 
 | 
  
 | 
        //fixed one event only one process 
 | 
        listwin::OnRowChanged(evt, p); 
 | 
  
 | 
        HCURSOR     hCursor = xutil::SetCursorWait(); 
 | 
  
 | 
        xstring SONo = dw_list.GetItemString(row, L"SONo"); 
 | 
        KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/maint/item", L"id", SONo); 
 | 
        if (x) 
 | 
            dw_goods.Retrieve(x); 
 | 
        else 
 | 
            dw_goods.Reset(); 
 | 
        dw_goods.Redraw(); 
 | 
        dw_goods.SetReadOnly(true); 
 | 
  
 | 
        x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/maint/itemwithsource", L"id", SONo); 
 | 
        if (x) 
 | 
            dw_source.Retrieve(x); 
 | 
        else 
 | 
            dw_source.Reset(); 
 | 
        dw_source.Redraw(); 
 | 
        dw_source.SetReadOnly(true); 
 | 
  
 | 
        xutil::RestoreCursor(hCursor); 
 | 
  
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
  
 | 
    int AttachListon() 
 | 
    { 
 | 
        AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&SO3list::OnTreeSelChanged); //Ê÷Ñ¡Ôñ 
 | 
        AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&SO3list::OnRowChanged);//°ó¶¨Ðиü¸Ä´¥·¢Ê¼þOnRowChanged 
 | 
        //AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&listwin::OnDoubleClicked); 
 | 
        AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&SO3list::OnSelectDdlb);//°ó¶¨ÏÂÀ¿ò¸ü¸Ä´¥·¢Ê¼þOnSelectDdlb 
 | 
        AttachEvent(L"cbx_datashow", L"CBN_SELCHANGE", (FEvent)&SO3list::OnSelectDataShowDdlb);//°ó¶¨Ñ¡ÔñÊý¾ÝÏÔʾÏÂÀÁбíʼþOnSelectDataShowDdlb 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int onload() 
 | 
    { 
 | 
        changeddlb = 0; 
 | 
        listwin::onload(); 
 | 
        ddlb_1 = GetControl(L"cbx_1"); 
 | 
        cbx_datashow = GetControl(L"cbx_datashow"); 
 | 
        dw_goods = GetControl(L"dw_goods"); 
 | 
        dw_goods.openUrl(GetServerUrl(),L"/sale/view/SaleOrder/template/item"); 
 | 
        dw_source = GetControl(L"dw_source"); 
 | 
        dw_source.openUrl(GetServerUrl(), L"/sale/view/SaleOrder/template/sourceitem"); 
 | 
  
 | 
        dw_goods.SetColumnState(L"ItemID", false); 
 | 
        dw_goods.SetColumnState(L"LineType", false); 
 | 
        dw_goods.SetColumnState(L"Brand", false); 
 | 
        dw_goods.SetColumnState(L"Assortment", false); 
 | 
        dw_goods.SetColumnState(L"ClassifyID", false); 
 | 
        dw_goods.SetColumnState(L"UnitFreight", false); 
 | 
        //dw_goods.SetColumnState(L"CName",false);//Òþ²ØÁÐ 
 | 
  
 | 
        dw_goods.SetColumnState(L"Brand", false); 
 | 
        dw_goods.SetColumnState(L"SKUNo", false); 
 | 
        dw_goods.SetColumnState(L"SOLineNo", false); 
 | 
        dw_goods.SetColumnState(L"CustomerPONo", false); 
 | 
        dw_goods.SetColumnState(L"ScheduleShipDate", false); 
 | 
  
 | 
        dw_goods.SetColumnState(L"PackTechNote", false); 
 | 
        dw_goods.SetColumnState(L"EnquiryPriceListID", false); 
 | 
        dw_goods.SetColumnState(L"Submitter", false); 
 | 
        dw_goods.SetColumnState(L"POSupplierID", false); 
 | 
        dw_goods.SetColumnState(L"QuoteLineID", false); 
 | 
  
 | 
        dw_list.SetColumnState(L"CreatorID", false); 
 | 
        dw_list.SetColumnState(L"SOID", false); 
 | 
  
 | 
  
 | 
        xstring groupname = publiccode::GetUser().groupname; 
 | 
        if (groupname == L"²É¹ºÐ¡×é") 
 | 
        { 
 | 
            dw_list.SetColumnState(L"USDAmount", false); 
 | 
            dw_list.SetColumnState(L"RMBAmount", false); 
 | 
  
 | 
            dw_goods.SetColumnState(L"UnitPrice", false); 
 | 
            dw_goods.SetColumnState(L"Amount", false); 
 | 
            dw_goods.SetColumnState(L"UnitCommPrice", false); 
 | 
            dw_goods.SetColumnState(L"CommissionRate", false); 
 | 
  
 | 
            dw_source.SetColumnState(L"UnitPrice", false); 
 | 
            dw_source.SetColumnState(L"Amount", false); 
 | 
            dw_source.SetColumnState(L"FOBAmount", false); 
 | 
            dw_source.SetColumnState(L"BuyUnitPrice", false); 
 | 
            dw_source.SetColumnState(L"BuyAmount", false); 
 | 
            dw_source.SetColumnState(L"CostRate", false); 
 | 
        } 
 | 
  
 | 
        rows = L"500"; 
 | 
        myDataUrl = L"/sale/data/SaleOrder/folder/list"; 
 | 
        urlTree = L"/sale/data/SaleOrder/folder"; 
 | 
        tv_folder = GetControl(L"tv_folder"); 
 | 
        tv_folder.SetLineAtRoot(true); 
 | 
        InitialFolder(); 
 | 
  
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int onloaded() 
 | 
    { 
 | 
        listwin::onloaded(); 
 | 
  
 | 
        //attach my control event 
 | 
        AttachListon(); 
 | 
  
 | 
        dw_list.SetColumnState(L"SOID", false); 
 | 
  
 | 
        HTREEITEM hItem = tv_folder.GetRootItem(); 
 | 
        ExpandFolderItem(hItem, L"Category:Customer"); 
 | 
        tv_folder.ExpandItem(hItem); 
 | 
        //tv_folder.ItemFocus(tv_folder.GetChildItem(hItem)); 
 | 
        tv_folder.ItemFocus(hItem); 
 | 
  
 | 
  
 | 
        return -1; 
 | 
    } 
 | 
  
 | 
    int ProcessUsedArg(xaserverarg arg) 
 | 
    { 
 | 
        HTREEITEM hItem = tv_folder.GetCaretItem(); 
 | 
        if (hItem ) return 1; 
 | 
        KXMLDOMElement e =  tv_folder.GetItemData(hItem); 
 | 
        xstring  no = e.getAttribute(L"no"); 
 | 
        if (no.find(L"Customer:") >= 0) 
 | 
        { 
 | 
            arg.AddArg(L"CustomerID", e.getAttribute(L"id")); 
 | 
            xstring name = e.getAttribute(L"name"); 
 | 
            if (name.find(L"(") >= 0) name = name.left(name.find(L"(")); 
 | 
            arg.AddArg(L"CustomerName", name); 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
}; 
 |