#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) HrJob : public xframe 
 | 
{ 
 | 
public: 
 | 
    xtreeview        tv_1; 
 | 
    xdwgrid    dw_list; 
 | 
    xstring     m_type; 
 | 
  
 | 
    xnode    m_agentNode;    //Agent Condition 
 | 
    xstring    m_agentCond;    //Agent Node 
 | 
public: 
 | 
    HrJob(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} 
 | 
public: 
 | 
    static HrJob* CreateInstance(void* implPtr, void* hWnd) 
 | 
    { 
 | 
        HrJob* pWin = new HrJob(implPtr, (HWND)hWnd); 
 | 
        return pWin; 
 | 
    } 
 | 
    int SetAgent() 
 | 
    { 
 | 
        xstring xfNodeAgentArea = L"agentarea"; 
 | 
        xnode anode = GetAgentNode(xfNodeAgentArea); 
 | 
        if (m_agentNode) 
 | 
        { 
 | 
            SetAgentNode(anode, m_agentNode); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            KXMLDOMElement xframeElement = GetElement(); 
 | 
            KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); 
 | 
            if (agent) 
 | 
            { 
 | 
                xstring s = agent.xml(); 
 | 
                m_agentNode = SetAgentNode(anode, s); 
 | 
            } 
 | 
        } 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
                //½¹µã¼¤»î´¦Àíº¯Êý 
 | 
                int OnSetFocus(TEvent* evt, LPARAM param) 
 | 
                { 
 | 
                    SetAgent(); 
 | 
  
 | 
                    //ÖØÖù¤¾ßÌõ 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int  OnRetrieve() 
 | 
                { 
 | 
                    xstring query = L"[MSSqlHrJob.xq]"; 
 | 
                    xml x; 
 | 
                    xaserverarg arg; 
 | 
                    arg.AddArg(L"type", m_type); 
 | 
                    //if (xaserver::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1) 
 | 
                    if (xurl::post(L"OrganizationStruct/list.Job", arg.GetString(), x) != 1) 
 | 
                    { 
 | 
                        trace(x.text()); 
 | 
                        return -1; 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        dw_list.openUrl(L"×éÖ¯¼Ü¹¹.vface/template/HrJob/list"); 
 | 
                        dw_list.Retrieve(x); 
 | 
                        dw_list.Redraw(); 
 | 
                    } 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnTreeSelChanged(TEvent* evt, int p) 
 | 
                { 
 | 
                    NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; 
 | 
                    //HTREEITEM hItem = nmtv.itemNew.hItem; 
 | 
  
 | 
                    //int wid = tv_1.GetId(); 
 | 
                    HTREEITEM hItem = tv_1.GetSelectedItem(); 
 | 
                    HTREEITEM rootItem = tv_1.GetRootItem(); 
 | 
                    if (!hItem || hItem == rootItem) 
 | 
                    { 
 | 
                        m_type = L"all"; 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        KXMLDOMElement ele = tv_1.GetItemData(hItem); 
 | 
                        m_type = ele.selectSingleNode(L"@name").text(); 
 | 
                    } 
 | 
                    OnRetrieve(); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnCreateTree() 
 | 
                { 
 | 
                    //int wid = tv_1.GetId(); 
 | 
                    xml x; 
 | 
                     
 | 
                    x.loadXML(L"<Type code='0.0' name='all' guid='' />"); 
 | 
                    KXMLDOMElement ele = x.selectSingleNode(L"Type"); 
 | 
                    HTREEITEM hItem = tv_1.InsertChildItemEx(0, L"¹¤ÖÖÀàÐÍ", ele, 15, 4); 
 | 
  
 | 
                    KXMLDOMElement e1 = tv_1.GetItemData(hItem); 
 | 
                    string str = e1.xml(); 
 | 
  
 | 
                    if (xurl::post(L"/sale/data/OrganizationStruct/type.Job", L"", x) != 1) 
 | 
                    { 
 | 
                        trace(x.xml()); 
 | 
                        return -1; 
 | 
                    } 
 | 
                    //trace(x.GetXml()); 
 | 
                    auto list = x.selectNodes(L"//Type"); 
 | 
                    int i = 0, s = list.length(); 
 | 
                    KXMLDOMElement e; 
 | 
                    xstring sname; 
 | 
                    if (s > 0) 
 | 
                    { 
 | 
                        for (i = 0; i < s; i++) 
 | 
                        { 
 | 
                            e = list.item(i); 
 | 
                            sname = e.selectSingleNode(L"@name").text(); 
 | 
                            HTREEITEM curItem = tv_1.InsertChildItemEx( hItem, sname, e, 15, 4); 
 | 
                        } 
 | 
                    } 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnSave() 
 | 
                { 
 | 
                    xml x; 
 | 
  
 | 
                    dw_list.AcceptText(); 
 | 
                    dw_list.DwUpdateAllToEx(x); 
 | 
  
 | 
                    xstring xdata = x.xml(); 
 | 
                    trace(x.xml()); 
 | 
                    //return 1; 
 | 
  
 | 
                    xaserverarg arg; 
 | 
  
 | 
                    arg.AddArg(L"xdata", xdata); 
 | 
  
 | 
                    xstring xAction = L"[MSSqlHrJobUpdate.xa]"; 
 | 
                    //if(xaserver::ExecXAction(GetServerUrl(),xAction,arg.GetString())!=1) 
 | 
                    if (xurl::post(L"OrganizationStruct/update.Job", arg.GetString(), x) != 1) 
 | 
                    { 
 | 
                        trace(x.documentElement().text()); 
 | 
                        alert(L"±£´æÊ§°Ü"); 
 | 
                    } 
 | 
                    else { 
 | 
                        alert(L"±£´æ³É¹¦"); 
 | 
                    } 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnAddRow() 
 | 
                { 
 | 
                    if (m_type == L"all") 
 | 
                    { 
 | 
                        alert(L"ÇëÏÈÑ¡Ôñ¹¤ÖÖÀàÐÍ£¡"); 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        int row = dw_list.InsertRow(0); 
 | 
                        trace(xstring(row)); 
 | 
                        dw_list.SetItemString(row, L"JobType", m_type); 
 | 
                        dw_list.SetItemString(row, L"Status", L"Y"); 
 | 
                    } 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnInsertRow() 
 | 
                { 
 | 
                    if (m_type == L"all") 
 | 
                    { 
 | 
                        alert(L"ÇëÏÈÑ¡Ôñ¹¤ÖÖÀàÐÍ£¡"); 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        int crow = dw_list.GetRow(); 
 | 
                        int row = dw_list.InsertRow(crow); 
 | 
                        dw_list.SetItemString(row, L"JobType", m_type); 
 | 
                        dw_list.SetItemString(row, L"Status", L"Y"); 
 | 
                    } 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnDeleteRow() 
 | 
                { 
 | 
                    int row = dw_list.GetRow(); 
 | 
                    KXMLDOMElement e = dw_list.GetRowElement(row); 
 | 
                    xstring sguid = e.selectSingleNode(L"@guid").text(); 
 | 
                    xstring sName = e.selectSingleNode(L"JobName").text(); 
 | 
  
 | 
                    xml x; 
 | 
  
 | 
                    xaserverarg arg; 
 | 
  
 | 
                    arg.AddArg(L"guid", sguid); 
 | 
                    if (xurl::post(L"OrganizationStruct/used.Job", arg.GetString(), x) != 1) 
 | 
                    { 
 | 
                        trace(x.text()); 
 | 
                        return -1; 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        KXMLDOMElement ele = x.documentElement(); 
 | 
                        xstring snums = ele.selectSingleNode(L"@num").text(); 
 | 
                        int num = snums.toInt(); 
 | 
                        if (num != 0) 
 | 
                        { 
 | 
                            MessageBox(GetHWND(), L"¹¤ÖÖ " + sName + L" ÒÑÆôÓ㬽ûֹɾ³ý£¡", L"Ìáʾ", 0); 
 | 
                            return -1; 
 | 
                        } 
 | 
                    } 
 | 
                    dw_list.DeleteRow(row); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnJobType() 
 | 
                { 
 | 
                    xaserverarg& arg = *new xaserverarg; 
 | 
  
 | 
                    arg.AddArg(L"id", L"¹¤ÖÖÀàÐÍ"); 
 | 
                    openUrl(L"¹«¹²ÉèÖÃ.vface/worknode/quickcode/config", &arg); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                //ÃüÁî·¢²¼º¯Êý 
 | 
                int OnCmdDispatch(xstring comdid) 
 | 
                { 
 | 
                    if (comdid == L"Save")  OnSave(); 
 | 
                    else if (comdid == L"AddRow") OnAddRow(); 
 | 
                    else if (comdid == L"InsertRow") OnInsertRow(); 
 | 
                    else if (comdid == L"DeleteRow") OnDeleteRow(); 
 | 
                    else if (comdid == L"JobType") OnJobType(); 
 | 
                    return 0; 
 | 
                } 
 | 
  
 | 
                //ÃüÁî´¦Àíʼþ 
 | 
                int OnXCommand(TEvent* evt, LPARAM param) 
 | 
                { 
 | 
                    return OnCmdDispatch(evt->xcommand.pStrID); 
 | 
                } 
 | 
  
 | 
                int OnAttachEvent() 
 | 
                { 
 | 
                    //°ó¶¨¹¤¾ßÌõµã»÷ʼþ 
 | 
                    AttachEvent(L"WM_XCOMMAND", (FEvent)&HrJob::OnXCommand); 
 | 
                    //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ 
 | 
                    AttachEvent(L"WM_SETFOCUS", (FEvent)&HrJob::OnSetFocus); 
 | 
                    //»ñµÃÊ÷µÄÑ¡Ôñʼþ 
 | 
                    AttachEvent(L"tv_1", L"TVN_SELCHANGED", (FEvent)&HrJob::OnTreeSelChanged); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int OnInitial() 
 | 
                { 
 | 
                    SetAgent(); 
 | 
                    OnAttachEvent(); 
 | 
                    return 1; 
 | 
                } 
 | 
  
 | 
                int onload() 
 | 
                { 
 | 
                    m_type = L"all"; 
 | 
                    tv_1 = GetControl(L"tv_1"); 
 | 
                    dw_list = new xdwgrid; 
 | 
                    dw_list.setNativePointer(GetControl(L"dw_list")); 
 | 
                    dw_list.openUrl(L"×éÖ¯¼Ü¹¹.vface/template/HrJob/list"); 
 | 
  
 | 
                    OnInitial(); 
 | 
                    OnCreateTree(); 
 | 
                    //int wid = tv_1.GetId(); 
 | 
                    HTREEITEM hItem = tv_1.GetRootItem(); 
 | 
                    tv_1.ExpandItem(hItem); 
 | 
                    OnRetrieve(); 
 | 
  
 | 
                    return 1; 
 | 
                } 
 | 
}; 
 |