xj qian
2024-07-16 f22bb7edb66856f3d1b6e44d6f6b170848a48dd7
updte
已修改15个文件
已重命名3个文件
860 ■■■■ 文件已修改
jrj/ext-jrj/ext-jrj.vcxproj 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj.filters 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/CompanyList.cpp 366 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/CompanyMaint.cpp 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HRPerson.cpp 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrEmployee.hpp 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrEmployeeAdd.cpp 265 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrEmployeex.hpp 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrJob.cpp 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrOrg.cpp 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrOrgMaint.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrOrgType.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrPersonAdd.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrPersonMaint.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrPersonSel.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrPosition.hpp 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Company/HrPositionAdd.cpp 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/wobject/xwin.hpp 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj
@@ -291,52 +291,52 @@
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\CompanyMaint.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrEmployee.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    <ClCompile Include="..\project\business\Company\HrEmployee.hpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrEmployeeAdd.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrEmployeex.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    <ClCompile Include="..\project\business\Company\HrEmployeex.hpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrJob.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrOrg.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrOrgChart.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrOrgMaint.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrOrgType.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HRPerson.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPersonAdd.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPersonMaint.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPersonSel.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPosition.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    <ClCompile Include="..\project\business\Company\HrPosition.hpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPositionAdd.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HR_Address.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Customer3.list.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
jrj/ext-jrj/ext-jrj.vcxproj.filters
@@ -863,13 +863,13 @@
    <ClCompile Include="..\project\business\Company\HR_Address.cpp">
      <Filter>project\business\Company</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrEmployee.cpp">
    <ClCompile Include="..\project\business\Company\HrEmployee.hpp">
      <Filter>project\business\Company</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrEmployeeAdd.cpp">
      <Filter>project\business\Company</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrEmployeex.cpp">
    <ClCompile Include="..\project\business\Company\HrEmployeex.hpp">
      <Filter>project\business\Company</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrJob.cpp">
@@ -899,7 +899,7 @@
    <ClCompile Include="..\project\business\Company\HrPersonSel.cpp">
      <Filter>project\business\Company</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPosition.cpp">
    <ClCompile Include="..\project\business\Company\HrPosition.hpp">
      <Filter>project\business\Company</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\Company\HrPositionAdd.cpp">
jrj/project/business/Company/CompanyList.cpp
@@ -7,211 +7,211 @@
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
        using xml = KXMLDOMDocument;
        class __declspec(dllexport) CompanyList : public xwin
using xml = KXMLDOMDocument;
class __declspec(dllexport) CompanyList : public xwin
{
public:
    xdwgrid    dw_list;
    xstring    m_agentCond;    //Agent Node
    xnode    m_agentNode;
public:
    CompanyList(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
public:
    static CompanyList* CreateInstance(void* implPtr, void* hWnd)
    {
        CompanyList* pWin = new CompanyList(implPtr, (HWND)hWnd);
        return pWin;
    }
    int SetAgent()
    {
        xstring xfNodeAgentArea = L"agentarea";
        xnode anode = GetAgentNode(xfNodeAgentArea);
        if (m_agentNode)
        {
        public:
            xdwgrid    dw_list;
            xstring    m_agentCond;    //Agent Node
            xnode    m_agentNode;
        public:
            CompanyList(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
        public:
            static CompanyList* CreateInstance(void* implPtr, void* hWnd)
            SetAgentNode(anode, m_agentNode);
        }
        else
        {
            KXMLDOMElement xframeElement = GetElement();
            KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
            if (agent)
            {
                CompanyList* pWin = new CompanyList(implPtr, (HWND)hWnd);
                return pWin;
                xstring s = agent.xml();
                m_agentNode = SetAgentNode(anode, s);
            }
            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;
            }
        }
        return 1;
    }
    //焦点激活处理函数
    int OnSetFocus(TEvent* evt, LPARAM param)
    {
        //重置工具条
        SetAgent();
        return 1;
    }
            int  OnRetrieve()
    int  OnRetrieve()
    {
        xml x;
        xaserverarg arg;
        //arg.AddArg(L"sType",c_type);
        if (xurl::get(L"OrganizationStruct/list.CompanyInfo", arg.GetString(), x) != 1)
        {
            trace(x.text());
            return -1;
        }
        else
        {
            //trace(x.GetXml());
            dw_list.Retrieve(x);
            dw_list.Redraw();
        }
        dw_list.SetReadOnly(true);
        return 1;
    }
    //xgridex双击
    int OnDoubleClicked(TEvent* evt, LPARAM p)
    {
        DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
        int row = hdr.row;
        if (row < 1 || row > dw_list.GetRowCount())
            return 1;
        KXMLDOMElement e = dw_list.GetRowElement(row);
        xstring sguid = e.selectSingleNode(L"@guid").text();
        xaserverarg& arg = *new xaserverarg;
        arg.AddArg(L"operate", L"modify");
        arg.AddArg(L"guid", sguid);
        //trace(sguid);
        //trace(row.toString());
        //win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
        openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
        return 1;
    }
    //命令发布函数
    int OnCmdDispatch(xstring comdid)
    {
        xaserverarg& arg = *new xaserverarg;
        KXMLDOMElement e;
        xstring sguid;
        xstring sName;
        if (comdid == L"AddRow")
        {
            arg.AddArg(L"operate", L"new0");
            arg.AddArg(L"guid", L"");
            //win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
            openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
        }
        else if (comdid == L"ModifyRow")
        {
            int row = dw_list.GetNextSelectRow(1);
            if (row < 1)
            {
                xml x;
                xaserverarg arg;
                //arg.AddArg(L"sType",c_type);
                if (xurl::get(L"OrganizationStruct/list.CompanyInfo", arg.GetString(), x) != 1)
                row = dw_list.GetRow();
                if (row < 1)
                {
                    trace(x.text());
                    MessageBox(GetHWND(), L"请选中要修改的公司行!", L"提示", 0);
                    return -1;
                }
                else
            }
            e = dw_list.GetRowElement(row);
            sguid = e.selectSingleNode(L"@guid").text();
            arg.AddArg(L"operate", L"modify");
            arg.AddArg(L"guid", sguid);
            //win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
            openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
        }
        else if (comdid == L"DeleteRow")
        {
            int row = dw_list.GetNextSelectRow(1);
            if (row < 1)
            {
                row = dw_list.GetRow();
                if (row < 1)
                {
                    //trace(x.GetXml());
                    dw_list.Retrieve(x);
                    dw_list.Redraw();
                    MessageBox(GetHWND(), L"请选中要删除的公司行!", L"提示", 0);
                    return -1;
                }
                dw_list.SetReadOnly(true);
                return 1;
            }
            e = dw_list.GetRowElement(row);
            //xgridex双击
            int OnDoubleClicked(TEvent* evt, LPARAM p)
            sguid = e.selectSingleNode(L"@guid").text();
            sName = e.selectSingleNode(L"Name").text();
            sName += L"";
            int  MB_YESNO = 0x00000004;
            int  IDYES = 6;
            if (MessageBox(GetHWND(), L"确认要删除公司 " + sName + L" çš„信息吗?", L"提示", MB_YESNO) != IDYES) return 1;
            arg.AddArg(L"guid", sguid);
            trace(sguid);
            xml x1;
            if (xurl::post(L"OrganizationStruct/delete.CompanyInfo", arg.GetString(), x1) != 1)
            {
                DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
                int row = hdr.row;
                if (row < 1 || row > dw_list.GetRowCount())
                    return 1;
                KXMLDOMElement e = dw_list.GetRowElement(row);
                xstring sguid = e.selectSingleNode(L"@guid").text();
                xaserverarg& arg = *new xaserverarg;
                arg.AddArg(L"operate", L"modify");
                arg.AddArg(L"guid", sguid);
                //trace(sguid);
                //trace(row.toString());
                //win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
                openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
                return 1;
                xstring error = x1.text();
                trace(error);
            }
            //命令发布函数
            int OnCmdDispatch(xstring comdid)
            else
            {
                xaserverarg& arg = *new xaserverarg;
                KXMLDOMElement e;
                xstring sguid;
                xstring sName;
                if (comdid == L"AddRow")
                {
                    arg.AddArg(L"operate", L"new0");
                    arg.AddArg(L"guid", L"");
                    //win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
                    openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
                }
                else if (comdid == L"ModifyRow")
                {
                    int row = dw_list.GetNextSelectRow(1);
                    if (row < 1)
                    {
                        row = dw_list.GetRow();
                        if (row < 1)
                        {
                            MessageBox(GetHWND(), L"请选中要修改的公司行!", L"提示", 0);
                            return -1;
                        }
                    }
                    e = dw_list.GetRowElement(row);
                    sguid = e.selectSingleNode(L"@guid").text();
                    arg.AddArg(L"operate", L"modify");
                    arg.AddArg(L"guid", sguid);
                    //win::OpenWindow(L"dev:xpage[CompanyMaint.vx]",arg);
                    openUrl(L"组织架构.vface/xpage/CompanyInfo/maint", &arg);
                }
                else if (comdid == L"DeleteRow")
                {
                    int row = dw_list.GetNextSelectRow(1);
                    if (row < 1)
                    {
                        row = dw_list.GetRow();
                        if (row < 1)
                        {
                            MessageBox(GetHWND(), L"请选中要删除的公司行!", L"提示", 0);
                            return -1;
                        }
                    }
                    e = dw_list.GetRowElement(row);
                    sguid = e.selectSingleNode(L"@guid").text();
                    sName = e.selectSingleNode(L"Name").text();
                    sName += L"";
                    int  MB_YESNO = 0x00000004;
                    int  IDYES = 6;
                    if (MessageBox(GetHWND(), L"确认要删除公司 " + sName + L" çš„信息吗?", L"提示", MB_YESNO) != IDYES) return 1;
                    arg.AddArg(L"guid", sguid);
                    trace(sguid);
                    xml x1;
                    if (xurl::post(L"OrganizationStruct/delete.CompanyInfo", arg.GetString(), x1) != 1)
                    {
                        xstring error = x1.text();
                        trace(error);
                    }
                    else
                    {
                        MessageBox(GetHWND(), L"删除成功!", L"提示", 0);
                        dw_list.DeleteRow(row);
                    }
                }
                else if (comdid == L"Refresh")
                {
                    OnRetrieve();
                }
                return 0;
                MessageBox(GetHWND(), L"删除成功!", L"提示", 0);
                dw_list.DeleteRow(row);
            }
            //命令处理事件
            int OnXCommand(TEvent* evt, LPARAM param)
            {
                return OnCmdDispatch(evt->xcommand.pStrID);
            }
        }
        else if (comdid == L"Refresh")
        {
            OnRetrieve();
        }
        return 0;
    }
            int OnAttachEvent()
            {
                //绑定工具条点击事件
                AttachEvent(L"WM_XCOMMAND", (FEvent)&CompanyList::OnXCommand);
                //获取焦点事件,用于重置工具条
                AttachEvent(L"WM_SETFOCUS", (FEvent)&CompanyList::OnSetFocus);
                //双击
                AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&CompanyList::OnDoubleClicked);
                return 1;
            }
    //命令处理事件
    int OnXCommand(TEvent* evt, LPARAM param)
    {
        return OnCmdDispatch(evt->xcommand.pStrID);
    }
            int OnInitial()
            {
                SetAgent();
                OnAttachEvent();
    int OnAttachEvent()
    {
        //绑定工具条点击事件
        AttachEvent(L"WM_XCOMMAND", (FEvent)&CompanyList::OnXCommand);
        //获取焦点事件,用于重置工具条
        AttachEvent(L"WM_SETFOCUS", (FEvent)&CompanyList::OnSetFocus);
        //双击
        AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&CompanyList::OnDoubleClicked);
        return 1;
    }
                return 1;
            }
    int OnInitial()
    {
        SetAgent();
        OnAttachEvent();
            int onload()
            {
                dw_list = new xdwgrid;
                dw_list.setNativePointer(GetControl(L"dw_list"));
        return 1;
    }
                //xaserverarg args;
                //args.setNativePointer(args.CreateInstance());
                //args.AddArg(L"type",L"CompanyList");
                //dw_list.SetDataObject(GetServerUrl(),pref::getPref(L"HumanResource/GetHrObject",args.GetString()));
                dw_list.openUrl(L"组织架构.vface/template/company/list");
                dw_list.SetSelectionMode(1);
                dw_list.SetReadOnly(true);
    int onload()
    {
        dw_list = new xdwgrid;
        dw_list.setNativePointer(GetControl(L"dw_list"));
                OnInitial();
                OnRetrieve();
        //xaserverarg args;
        //args.setNativePointer(args.CreateInstance());
        //args.AddArg(L"type",L"CompanyList");
        //dw_list.SetDataObject(GetServerUrl(),pref::getPref(L"HumanResource/GetHrObject",args.GetString()));
        dw_list.openUrl(L"组织架构.vface/template/company/list");
        dw_list.SetSelectionMode(1);
        dw_list.SetReadOnly(true);
                return 1;
            }
        OnInitial();
        OnRetrieve();
        return 1;
    }
};
jrj/project/business/Company/CompanyMaint.cpp
@@ -3,6 +3,7 @@
#include <xcontrol/xdwgrid.hpp>
#include <wobject/xdouble.hpp>
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xdwpages.hpp>
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
@@ -11,7 +12,7 @@
class __declspec(dllexport) CompanyMaint : public xframe
{
public:
    pagecontrol m_layer;
    xlayersheet m_layer;
    xdwtable    dw_detail;
    xdwtable    dw_bank;
    xstring        m_operate;
@@ -150,11 +151,11 @@
        xstring val, val2;
        xml x;
        var xdoc = x;
        auto xdoc = x;
        dw_detail.DwUpdateAllTo(xdoc);
        //val = xdoc.xml ;
        dw_bank.DwUpdateAllTo(xdoc);
        val = xdoc.xml;
        val = xdoc.xml();
        trace(val);
        xaserverarg args;
        args.setNativePointer(args.CreateInstance());
@@ -182,9 +183,8 @@
        xutil::RestoreCursor(hIcon);
        dw_detail.ResetUpdateStatus();
        dw_bank.ResetUpdateStatus();
        var xdoc2 = x;
        dw_detail.DwUpdateAllTo(xdoc2);
        val = xdoc.xml;
        dw_detail.DwUpdateAllTo(x);
        val = x.xml();
        trace(val);
        return 1;
    }
@@ -358,16 +358,13 @@
    int onload()
    {
        m_layer = new pagecontrol;
        m_layer.setNativePointer(GetControl(L"cTab"));
        m_layer = GetControl(L"cTab");
        dw_detail = new xdwtable;
        dw_detail.setNativePointer(GetControl(L"dw_detail"));
        dw_detail = GetControl(L"dw_detail");
        dw_detail.openUrl(L"组织架构.vface/template/company/detail");
        dw_detail.SetColHeaderHeight(0);
        dw_detail.SetRowSelectorWidth(0);
        dw_bank = new xdwtable;
        dw_bank.setNativePointer(GetControl(L"dw_bank"));
        dw_bank = GetControl(L"dw_bank");
        dw_bank.openUrl(L"组织架构.vface/template/company/bank");
        OnInitial();
@@ -375,8 +372,7 @@
            OnRetrieve();
        }
        else {
            xdwtable dw = new xdwtable;
            dw.setNativePointer(dw_detail.FindDwTable(L"CompanyInfo", 0));
            xdwtable dw = dw_detail.FindDwTable(L"CompanyInfo", 0);
            dw.SetItemString(1, L"Status", L"1");
            dw.SetItemString(1, L"InternalFlag", L"Y");
            dw.SetItemString(1, L"Type", L"0");
@@ -387,14 +383,14 @@
            dw.SetItemDisplayString(1,L"CreatorID",susername);
            dw.SetItemString(1,L"CreateDate",sdate);*/
            dw.setNativePointer(dw_detail.FindDwTable(L"address", 0));
            dw = dw_detail.FindDwTable(L"address", 0);
            dw.SetItemString(1, L"IdentifyAddressFlag", L"Y");
            dw.SetItemString(1, L"Status", L"1");
            dw.setNativePointer(dw_detail.FindDwTable(L"Regist", 0));
            dw = dw_detail.FindDwTable(L"Regist", 0);
            dw.SetItemString(1, L"IdentifyAddressFlag", L"N");
            dw.SetItemString(1, L"Status", L"1");
            dw.setNativePointer(dw_bank.FindDwTable(L"item", 0));
            dw = dw_bank.FindDwTable(L"item", 0);
            if (dw) {
                //KXMLDOMElement ele = dw.GetElement();
                //trace(ele.xml);
jrj/project/business/Company/HRPerson.cpp
@@ -126,8 +126,7 @@
    int OnSearch()
    {
        control xc = new control;
        xc.setNativePointer(GetControl(L"QueryTxt"));
        xcontrol xc = GetControl(L"QueryTxt");
        m_sTxt = xc.GetText();
        OnRetrieve();
        return 1;
jrj/project/business/Company/HrEmployee.hpp
ÎļþÃû´Ó jrj/project/business/Company/HrEmployee.cpp ÐÞ¸Ä
@@ -1,3 +1,5 @@
#pragma once
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
@@ -100,7 +102,7 @@
                        dw_emp.ResetUpdateStatus();
                        alert(L"保存成功");
                    }
                    trace(x.GetXml());
                    trace(x.xml());
                    xutil::RestoreCursor(hIcon);
                    return 1;
                }
@@ -120,8 +122,8 @@
                        return -1;
                    }
                    //trace(x.GetXml());
                    var list = x.selectNodes(L"//item");
                    int i = 0, s = list.length;
                    auto list = x.selectNodes(L"//item");
                    int i = 0, s = list.length();
                    KXMLDOMElement xitem;
                    xstring sName;
                    xstring sguid;
@@ -244,7 +246,7 @@
                        }
                    }
                    OpenWindow(L"dev:xpage[HrEmployeeAdd.vx]", this);
                    OpenWindow(L"dev:xpage[HrEmployeeAdd.vx]", (LPARAM)this);
                    //openUrl(L"组织架构.vface/xpage/Hr/HrEmployeeAdd", this);
                    return 1;
                }
@@ -379,8 +381,7 @@
                int onload()
                {
                    tv_org = new treeview;
                    tv_org.setNativePointer(GetControl(L"tv_org"));
                    tv_org = GetControl(L"tv_org");
                    dw_emp = new xdwgrid;
                    dw_emp.setNativePointer(GetControl(L"dw_emp"));
                    dw_emp.openUrl(L"组织架构.vface/template/HrEmployee/list");
jrj/project/business/Company/HrEmployeeAdd.cpp
@@ -6,17 +6,18 @@
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
#include "hremployee.hpp"
using xml = KXMLDOMDocument;
class __declspec(dllexport) HrEmployeeAdd : public xframe
{
public:
                HrEmployee lw_obj;
                xdwgrid    dw_list;
    HrEmployee* lw_obj;
    xdwgrid    dw_list;
                xnode    m_agentNode;    //Agent Condition
                xstring    m_agentCond;    //Agent Node
                xstring    m_sTxt;
    xnode    m_agentNode;    //Agent Condition
    xstring    m_agentCond;    //Agent Node
    xstring    m_sTxt;
public:
    HrEmployeeAdd(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
public:
@@ -46,151 +47,143 @@
        return 1;
    }
                //焦点激活处理函数
                int OnSetFocus(TEvent* evt, LPARAM param)
                {
                    SetAgent();
                    //重置工具条
                    return 1;
                }
    //焦点激活处理函数
    int OnSetFocus(TEvent* evt, LPARAM param)
    {
        SetAgent();
        //重置工具条
        return 1;
    }
                int  OnRetrieve()
                {
                    control xc = new control;
                    xc.setNativePointer(GetControl(L"QueryTxt"));
                    m_sTxt = xc.GetText() + L"";
                    xml x ;
                    xaserverarg arg;
                    arg.AddArg(L"sTxt", m_sTxt);
                    if (xurl::post(L"OrganizationStruct/select.Employee", arg.GetString(), x) != 1)
                    {
                        trace(x.text());
                        return -1;
                    }
                    else
                    {
                        dw_list.Retrieve(x);
                        dw_list.Redraw();
                        dw_list.SetReadOnly(true);
                    }
                    return 1;
                }
    int  OnRetrieve()
    {
        xcontrol xc = GetControl(L"QueryTxt");
        m_sTxt = xc.GetText() + L"";
        xml x;
                int OnOK()
                {
                    if (GetParam())
                    {
                        lw_obj = new HrEmployee;
                        lw_obj.setNativePointer(GetParam());
                        lw_obj = GetParam();
                    }
                    else
                        return 0;
        xaserverarg arg;
                    int row = dw_list.GetNextSelectRow(1);
                    if (row < 1)
                    {
                        alert(L"请选择人员!");
                        return 1;
                    }
        arg.AddArg(L"sTxt", m_sTxt);
        if (xurl::post(L"OrganizationStruct/select.Employee", arg.GetString(), x) != 1)
        {
            trace(x.text());
            return -1;
        }
        else
        {
            dw_list.Retrieve(x);
            dw_list.Redraw();
            dw_list.SetReadOnly(true);
        }
        return 1;
    }
                    xstring sPositionID, sPositionName;
                    xstring sOrgID, sOrgName;
                    xstring sJobID, sJobName;
                    int wid = lw_obj.tv_org.GetId();
                    int hitem = treeview::GetSelectedItem(wid);
                    KXMLDOMElement ele = treeview::GetItemData(wid, hitem);
                    if (ele)
                    {
                        sPositionID = ele.selectSingleNode(L"id").text();
                        sPositionName = ele.selectSingleNode(L"name").text();
                        sOrgID = ele.selectSingleNode(L"OrgID").text();
                        sOrgName = ele.selectSingleNode(L"OrgName").text();
                        sJobID = ele.selectSingleNode(L"JobID").text();
                        sJobName = ele.selectSingleNode(L"JobName").text();
                    }
    int OnOK()
    {
        if (GetWinParam())
        {
            lw_obj = (HrEmployee*)GetWinParam();
        }
        else
            return 0;
                    while (row > 0)
                    {
                        KXMLDOMElement e = dw_list.GetRowElement(row);
                        xstring sEmployeeNo = e.selectSingleNode(L"EmployeeNo").text + L"";
                        xstring sPersonID = e.selectSingleNode(L"PersonID").text + L"";
                        xstring sPersonName = e.selectSingleNode(L"Name").text + L"";
        int row = dw_list.GetNextSelectRow(1);
        if (row < 1)
        {
            alert(L"请选择人员!");
            return 1;
        }
                        int nRow = lw_obj.dw_emp.InsertRow(0);
                        lw_obj.dw_emp.SetItemString(nRow, L"EmployeeNo", sEmployeeNo);
                        lw_obj.dw_emp.SetItemString(nRow, L"PersonID", sPersonID);
                        lw_obj.dw_emp.SetItemDisplayString(nRow, L"PersonID", sPersonName);
        xstring sPositionID, sPositionName;
        xstring sOrgID, sOrgName;
        xstring sJobID, sJobName;
        KXMLDOMElement ele = lw_obj->tv_org.GetItemData(lw_obj->tv_org.GetSelectedItem());
        if (ele)
        {
            sPositionID = ele.selectSingleNode(L"id").text();
            sPositionName = ele.selectSingleNode(L"name").text();
            sOrgID = ele.selectSingleNode(L"OrgID").text();
            sOrgName = ele.selectSingleNode(L"OrgName").text();
            sJobID = ele.selectSingleNode(L"JobID").text();
            sJobName = ele.selectSingleNode(L"JobName").text();
        }
                        lw_obj.dw_emp.SetItemString(nRow, L"PositionID", sPositionID);
                        lw_obj.dw_emp.SetItemDisplayString(nRow, L"PositionID", sPositionName);
                        lw_obj.dw_emp.SetItemString(nRow, L"OrgID", sOrgID);
                        lw_obj.dw_emp.SetItemDisplayString(nRow, L"OrgID", sOrgName);
                        lw_obj.dw_emp.SetItemString(nRow, L"JobID", sJobID);
                        lw_obj.dw_emp.SetItemDisplayString(nRow, L"JobID", sJobName);
        while (row > 0)
        {
            KXMLDOMElement e = dw_list.GetRowElement(row);
            xstring sEmployeeNo = e.selectSingleNode(L"EmployeeNo").text();
            xstring sPersonID = e.selectSingleNode(L"PersonID").text();
            xstring sPersonName = e.selectSingleNode(L"Name").text();
                        lw_obj.dw_emp.SetItemString(nRow, L"Status", L"Y");
                        lw_obj.dw_emp.SetItemDisplayString(nRow, L"Status", L"有效");
                        xstring sdate = publiccode::GetCurDate() + L"";
                        lw_obj.dw_emp.SetItemString(nRow, L"StartDate", sdate + L"");
                        lw_obj.dw_emp.SetItemString(nRow, L"EndDate", L"2050-12-31");
            int nRow = lw_obj->dw_emp.InsertRow(0);
            lw_obj->dw_emp.SetItemString(nRow, L"EmployeeNo", sEmployeeNo);
            lw_obj->dw_emp.SetItemString(nRow, L"PersonID", sPersonID);
            lw_obj->dw_emp.SetItemDisplayString(nRow, L"PersonID", sPersonName);
                        row = dw_list.GetNextSelectRow(row + 1);
                    }
                    CloseWindow();
                    return 1;
                }
            lw_obj->dw_emp.SetItemString(nRow, L"PositionID", sPositionID);
            lw_obj->dw_emp.SetItemDisplayString(nRow, L"PositionID", sPositionName);
            lw_obj->dw_emp.SetItemString(nRow, L"OrgID", sOrgID);
            lw_obj->dw_emp.SetItemDisplayString(nRow, L"OrgID", sOrgName);
            lw_obj->dw_emp.SetItemString(nRow, L"JobID", sJobID);
            lw_obj->dw_emp.SetItemDisplayString(nRow, L"JobID", sJobName);
                //命令发布函数
                int OnCmdDispatch(xstring comdid)
                {
                    if (comdid == L"xmOk")
                        OnOK();
                    else if (comdid == L"query")
                        OnRetrieve();
                    else if (comdid == L"xmCancel")
                        CloseWindow();
                    return 0;
                }
            lw_obj->dw_emp.SetItemString(nRow, L"Status", L"Y");
            lw_obj->dw_emp.SetItemDisplayString(nRow, L"Status", L"有效");
            xstring sdate = publiccode::GetCurrentDate();
            lw_obj->dw_emp.SetItemString(nRow, L"StartDate", sdate);
            lw_obj->dw_emp.SetItemString(nRow, L"EndDate", L"2050-12-31");
                //命令处理事件
                int OnXCommand(TEvent* evt, LPARAM param)
                {
                    return OnCmdDispatch(evt->xcommand.pStrID);
                }
            row = dw_list.GetNextSelectRow(row + 1);
        }
        CloseWindow();
        return 1;
    }
                int OnAttachEvent()
                {
                    //绑定工具条点击事件
                    AttachEvent(L"WM_XCOMMAND", (FEvent)&HrEmployeeAdd::OnXCommand);
                    //获取焦点事件,用于重置工具条
                    AttachEvent(L"WM_SETFOCUS", (FEvent)&HrEmployeeAdd::OnSetFocus);
                    return 1;
                }
    //命令发布函数
    int OnCmdDispatch(xstring comdid)
    {
        if (comdid == L"xmOk")
            OnOK();
        else if (comdid == L"query")
            OnRetrieve();
        else if (comdid == L"xmCancel")
            CloseWindow();
        return 0;
    }
                int OnInitial()
                {
                    SetAgent();
                    OnAttachEvent();
                    return 1;
                }
    //命令处理事件
    int OnXCommand(TEvent* evt, LPARAM param)
    {
        return OnCmdDispatch(evt->xcommand.pStrID);
    }
                int onload()
                {
                    dw_list = new xdwgrid;
                    dw_list.setNativePointer(GetControl(L"dw_list"));
                    dw_list.openUrl(L"组织架构.vface/template/HrEmployee/PersonSel");
                    dw_list.SetSelectionMode(3); //3
                    dw_list.SetReadOnly(true);
    int OnAttachEvent()
    {
        //绑定工具条点击事件
        AttachEvent(L"WM_XCOMMAND", (FEvent)&HrEmployeeAdd::OnXCommand);
        //获取焦点事件,用于重置工具条
        AttachEvent(L"WM_SETFOCUS", (FEvent)&HrEmployeeAdd::OnSetFocus);
        return 1;
    }
                    OnInitial();
                    OnRetrieve();
    int OnInitial()
    {
        SetAgent();
        OnAttachEvent();
        return 1;
    }
                    return 1;
                }
            ]
    int onload()
    {
        dw_list = new xdwgrid;
        dw_list.setNativePointer(GetControl(L"dw_list"));
        dw_list.openUrl(L"组织架构.vface/template/HrEmployee/PersonSel");
        dw_list.SetSelectionMode(3); //3
        dw_list.SetReadOnly(true);
        ]
]
        OnInitial();
        OnRetrieve();
        return 1;
    }
};
jrj/project/business/Company/HrEmployeex.hpp
ÎļþÃû´Ó jrj/project/business/Company/HrEmployeex.cpp ÐÞ¸Ä
@@ -1,3 +1,5 @@
#pragma once
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
@@ -61,21 +63,14 @@
                    xstring val;
                    xml x;
                    var xdoc = x;
                    dw_1.AcceptText();
                    dw_1.DwUpdateAllTo(xdoc);
                    val = xdoc.xml;
                    //trace(val);
                    //return 1;
                    dw_1.DwUpdateAllTo(x);
                    xaserverarg args;
                    
                    args.AddArg(L"content", val);
                    xml x1;
                    if (xurl::post(L"OrganizationStruct/update.Employee", args.GetString(), x1) != 1)
                    args.AddArg(L"content", x.xml());
                    if (xurl::post(L"OrganizationStruct/update.Employee", args.GetString(), x) != 1)
                    {
                        xstring error = x1.text();
                        xstring error = x.text();
                        trace(error);
                    }
                    else
@@ -234,7 +229,7 @@
                int OnImportData()
                {
                    openUrl(L"组织架构.vface/xpage/Hr/HrPersonSel", this);
                    openUrl(L"组织架构.vface/xpage/Hr/HrPersonSel", (LPARAM)this);
                    return 1;
                }
                //命令发布函数
@@ -278,8 +273,7 @@
                int onload()
                {
                    tv_org = new treeview;
                    tv_org.setNativePointer(GetControl(L"tv_org"));
                    tv_org = GetControl(L"tv_org");
                    dw_1 = new xdwtable;
                    dw_1.setNativePointer(GetControl(L"dw_1"));
                    dw_1.openUrl(L"组织架构.vface/template/HrEmployee/detail");
jrj/project/business/Company/HrJob.cpp
@@ -114,8 +114,8 @@
                        return -1;
                    }
                    //trace(x.GetXml());
                    var list = x.selectNodes(L"//Type");
                    int i = 0, s = list.length;
                    auto list = x.selectNodes(L"//Type");
                    int i = 0, s = list.length();
                    KXMLDOMElement e;
                    xstring sname;
                    if (s > 0)
@@ -269,8 +269,7 @@
                int onload()
                {
                    m_type = L"all";
                    tv_1 = new treeview;
                    tv_1.setNativePointer(GetControl(L"tv_1"));
                    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");
jrj/project/business/Company/HrOrg.cpp
@@ -96,8 +96,8 @@
            return -1;
        }
        //trace(x.GetXml());
        var list = x.selectNodes(L"//Org");
        int i = 0, s = list.length;
        auto list = x.selectNodes(L"//Org");
        int i = 0, s = list.length();
        KXMLDOMElement xitem;
        xstring sname;
        xstring sguid;
@@ -389,8 +389,7 @@
        xnode anode = new xnode;
        anode.setNativePointer(GetAgentNode(xfNodeAgentArea));
        SetAgentNode(anode, str);
        tv_org = new treeview;
        tv_org.setNativePointer(GetControl(L"tv_org"));
        tv_org = GetControl(L"tv_org");
        AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&HrOrg::OnTreeSelecded);
        HTREEITEM root = tv_org.GetRootItem();
        if (root > 0)
@@ -458,8 +457,7 @@
    int onload()
    {
        tv_org = new treeview;
        tv_org.setNativePointer(GetControl(L"tv_org"));
        tv_org = GetControl(L"tv_org");
        dw_list = new xdwgrid;
        dw_list.setNativePointer(GetControl(L"dw_list"));
        dw_list.openUrl(L"组织架构.vface/template/HrOrg/list");
jrj/project/business/Company/HrOrgMaint.cpp
@@ -88,9 +88,9 @@
        xstring val;
        xml x;
        var xdoc = x;
        auto xdoc = x;
        dw_detail.DwUpdateAllTo(xdoc);
        val = xdoc.xml;
        val = xdoc.xml();
        //trace(val);
        //return 1;
        xaserverarg args;
jrj/project/business/Company/HrOrgType.cpp
@@ -59,11 +59,11 @@
        xml x;
        var xdoc = x;
        auto xdoc = x;
        dw_list.AcceptText();
        dw_list.DwUpdateAllTo(xdoc);//dw_list.DwUpdateAllTo(xdoc); //dw_list.DwUpdateTo(xdoc);
        xstring val = xdoc.xml;
        xstring val = xdoc.xml();
        xaserverarg args;
        args.setNativePointer(args.CreateInstance());
        args.AddArg(L"content", val);
jrj/project/business/Company/HrPersonAdd.cpp
@@ -6,12 +6,13 @@
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
//#include "HrEmployee.cpp"
using xml = KXMLDOMDocument;
class __declspec(dllexport) HrPersonAdd : public xframe
{
public:
    HrEmployee lw_obj;
    //HrEmployee* lw_obj;
    xdwgrid    dw_list;
    xnode    m_agentNode;    //Agent Condition
@@ -56,8 +57,7 @@
    int  OnRetrieve()
    {
        control xc = new control;
        xc.setNativePointer(GetControl(L"QueryTxt"));
        xcontrol xc = GetControl(L"QueryTxt");
        m_sTxt = xc.GetText() + L"";
        xml x;
jrj/project/business/Company/HrPersonMaint.cpp
@@ -62,10 +62,10 @@
        xstring val;
        xml x;
        var xdoc = x;
        auto xdoc = x;
        dw_1.AcceptText();
        dw_1.DwUpdateAllTo(xdoc);
        val = xdoc.xml;
        val = xdoc.xml();
        //trace(val);
        xaserverarg args;
        args.setNativePointer(args.CreateInstance());
jrj/project/business/Company/HrPersonSel.cpp
@@ -6,12 +6,13 @@
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
#include "HrEmployeex.hpp"
using xml = KXMLDOMDocument;
class __declspec(dllexport) HrPersonSel : public xframe
{
public:
    HrEmployeex lw_obj;
    HrEmployeex* lw_obj;
    xdwgrid    dw_list;
    xnode    m_agentNode;    //Agent Condition
@@ -56,8 +57,7 @@
                int  OnRetrieve()
                {
                    control xc = new control;
                    xc.setNativePointer(GetControl(L"QueryTxt"));
                    xcontrol xc = GetControl(L"QueryTxt");
                    m_sTxt = xc.GetText() + L"";
                    xstring query = L"[MSSqlHrJob.xq]";
                    xml x;
jrj/project/business/Company/HrPosition.hpp
ÎļþÃû´Ó jrj/project/business/Company/HrPosition.cpp ÐÞ¸Ä
@@ -1,3 +1,5 @@
#pragma once
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
@@ -131,7 +133,7 @@
                        return 0;
                    }
                    //openUrl(L"组织架构.vface/xpage/Hr/HrPositionAdd", this);
                    OpenWindow(L"dev:xpage[HrPositionAdd.vx]", this);
                    OpenWindow(L"dev:xpage[HrPositionAdd.vx]", (LPARAM)this);
                    return 1;
                }
@@ -165,7 +167,7 @@
                            trace(x.xml());
                            return 0;
                        }
                        var doc = x;
                        auto doc = x;
                        xstring cnt = doc.text();
                        int ll_cnt = cnt.toInt();
                        if (ll_cnt == 0)    //判断HrEmploee里面是否存在该岗位
@@ -256,8 +258,7 @@
                int onload()
                {
                    tv_org = new treeview;
                    tv_org.setNativePointer(GetControl(L"tv_org"));
                    tv_org = GetControl(L"tv_org");
                    dw_list = new xdwgrid;
                    dw_list.setNativePointer(GetControl(L"dw_list"));
                    dw_list.openUrl(L"组织架构.vface/template/HrPosition/list");
jrj/project/business/Company/HrPositionAdd.cpp
@@ -6,13 +6,14 @@
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
#include "HrPosition.hpp"
using xml = KXMLDOMDocument;
class __declspec(dllexport) HrPositionAdd : public xframe
{
public:
    HrPosition lw_obj;
    HrPosition* lw_obj;
    xdwgrid    dw_list;
    xtreeview        tv_1;
    xstring     m_type;
@@ -116,8 +117,8 @@
                        return -1;
                    }
                    //trace(x.GetXml());
                    var list = x.selectNodes(L"//Type");
                    int i = 0, s = list.length;
                    auto list = x.selectNodes(L"//Type");
                    int i = 0, s = list.length();
                    KXMLDOMElement e;
                    xstring sname;
                    if (s > 0)
@@ -136,9 +137,7 @@
                {
                    if (GetWinParam())
                    {
                        lw_obj = new HrPosition;
                        lw_obj.setNativePointer(GetParam());
                        lw_obj = GetParam();
                        lw_obj = (HrPosition*)GetWinParam();
                    }
                    else
                        return 0;
@@ -150,8 +149,8 @@
                        return 1;
                    }
                    //treeview    tv_org   =  new treeview;
                    //tv_org.setNativePointer(lw_obj.tv_org);
                    HTREEITEM wid = lw_obj.tv_org.GetId();
                    //tv_org.setNativePointer(lw_obj->tv_org);
                    HTREEITEM wid = lw_obj->tv_org.GetId();
                    HTREEITEM hitem = tv_1.GetSelectedItem();
                    KXMLDOMElement ele = tv_1.GetItemData( hitem);
                    xstring sOrgID = ele.selectSingleNode(L"@guid").text();
@@ -162,14 +161,14 @@
                        xstring sJobID = e.selectSingleNode(L"@guid").text() + (xstring)L"";
                        xstring sJobName = e.selectSingleNode(L"JobName").text() + (xstring)L"";
                        int nRow = lw_obj.dw_list.InsertRow(0);
                        lw_obj.dw_list.SetItemString(nRow, L"JobID", sJobID);
                        lw_obj.dw_list.SetItemDisplayString(nRow, L"JobID", sJobName);
                        lw_obj.dw_list.SetItemString(nRow, L"Status", L"Y");
                        lw_obj.dw_list.SetItemDisplayString(nRow, L"Status", L"有效");
                        lw_obj.dw_list.SetItemString(nRow, L"OrgID", sOrgID);
                        lw_obj.dw_list.SetItemDisplayString(nRow, L"OrgID", sOrgName);
                        lw_obj.dw_list.SetItemString(nRow, L"PositionName", sOrgName + sJobName);
                        int nRow = lw_obj->dw_list.InsertRow(0);
                        lw_obj->dw_list.SetItemString(nRow, L"JobID", sJobID);
                        lw_obj->dw_list.SetItemDisplayString(nRow, L"JobID", sJobName);
                        lw_obj->dw_list.SetItemString(nRow, L"Status", L"Y");
                        lw_obj->dw_list.SetItemDisplayString(nRow, L"Status", L"有效");
                        lw_obj->dw_list.SetItemString(nRow, L"OrgID", sOrgID);
                        lw_obj->dw_list.SetItemDisplayString(nRow, L"OrgID", sOrgName);
                        lw_obj->dw_list.SetItemString(nRow, L"PositionName", sOrgName + sJobName);
                        row = dw_list.GetNextSelectRow(row + 1);
                    }
                    CloseWindow();
@@ -214,8 +213,7 @@
                {
                    SetArg();
                    m_type = L"all";
                    tv_1 = new treeview;
                    tv_1.setNativePointer(GetControl(L"tv_1"));
                    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");
jrj/xframe/wobject/xwin.hpp
@@ -185,6 +185,41 @@
        return -1;
    }
    int openUrl(xstring aurl, LPARAM para)
    {
        KXMLDOMDocument x;
        xurl::get(GetServerUrl(), aurl, L"", x);
        KXMLDOMNode n = x.selectSingleNode(L"//resource/@src");
        if (n)
        {
            string xq = n.text();
            OpenWindow(xq, (LPARAM)para);
            return 1;
        }
        else
        {
            n = x.selectSingleNode(L"//resource[@vface!='' and @view!='']");
            if (n)
            {
                xstring vface = n.selectSingleNode(L"@vface").text();
                xstring view = n.selectSingleNode(L"@view").text();
                xstring config = n.selectSingleNode(L"@config").text();
                if (vface == L"." || vface == L"")
                {
                    string v = n.selectSingleNode(L"@url").text();
                    xstring burl = xstring(aurl).mid(0, xstring(aurl).find(v, 0));
                    return openUrl(burl + view, para);
                }
                else
                    return openUrl(vface + L"/" + view, para);
            }
        }
        return -1;
    }
    int CloseWindow()
    {
        return getKWin()->CloseWindow();