xj qian
2024-06-27 9c4c84581e5c632a86ef823ffdef9587fd557180
update filter
已添加5个文件
已修改3个文件
1242 ■■■■■ 文件已修改
jrj/ext-jrj/ext-jrj.vcxproj 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj.filters 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/HR/AdministrativeDepartment.cpp 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/HR/AdministrativeDepartmentFolder.cpp 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/HR/BlankExcelTemplate.cpp 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/HR/GraduationSchool.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/HR/ManpowerFile.cpp 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/HR/ManpowerFileWindow.cpp 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj
@@ -248,8 +248,23 @@
    <ClCompile Include="..\project\business\GDN3.maint.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\AdministrativeDepartment.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\AdministrativeDepartmentFolder.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\BlankExcelTemplate.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\GraduationSchool.cpp" />
    <ClCompile Include="..\project\business\HR\GraduationSchoolWin.vx.cpp" />
    <ClCompile Include="..\project\business\HR\ManpowerFile.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\ManpowerFileWindow.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Product.list.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
@@ -299,7 +314,6 @@
    <ClCompile Include="..\xframe\src\nstring.cpp" />
    <ClCompile Include="..\xframe\src\xstring.cpp" />
    <ClCompile Include="dllmain.cpp" />
    <ClCompile Include="GraduationSchool.cpp" />
    <ClCompile Include="pch.cpp">
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
jrj/ext-jrj/ext-jrj.vcxproj.filters
@@ -371,7 +371,19 @@
    <ClCompile Include="..\project\business\HR\GraduationSchoolWin.vx.cpp">
      <Filter>project\business\HR</Filter>
    </ClCompile>
    <ClCompile Include="GraduationSchoolWin.vx.cpp">
    <ClCompile Include="..\project\business\HR\AdministrativeDepartment.cpp">
      <Filter>project\business\HR</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\AdministrativeDepartmentFolder.cpp">
      <Filter>project\business\HR</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\BlankExcelTemplate.cpp">
      <Filter>project\business\HR</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\ManpowerFile.cpp">
      <Filter>project\business\HR</Filter>
    </ClCompile>
    <ClCompile Include="..\project\business\HR\ManpowerFileWindow.cpp">
      <Filter>project\business\HR</Filter>
    </ClCompile>
  </ItemGroup>
jrj/project/business/HR/AdministrativeDepartment.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,373 @@
use "xcontrol.vframe.vbusiness.vd"//hxsoft.com -> Developer -> wlib -> vframe
use "xbase.vframe.vbusiness.vd"//hxsoft.com -> Developer -> wlib -> vframe
use "saleorder.view.vd"
unit trade
[
    class ViewAdministrativeDepartmentList : public listwin
    {
        xdwgrid        dw_list;
        xtreeview    tv_folder;//hxsoft.com -> Developer -> wface -> vcontrol
        string rows;
        string urlTree;
        string myDataUrl;
        int changeddlb;
        xnode    m_agentNode;    //Agent Condition
        int SetAgent()
        {
            string xfNodeAgentArea = "agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if (m_agentNode)
            {
                SetAgentNodeContent(anode, m_agentNode);
            }
            else
            {
                msxml::IXMLDOMElement xframeElement = GetElement();
                msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
                if (agent)
                {
                    string s = agent.xml;
                    m_agentNode = SetAgentNodeContent(anode, s);
                }
            }
            return 1;
        }
        //展开放进树里面
        int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image)
        {
            /*在具体应用时可以用DOMDocument的Load方法来装载XML文档
            ç”¨IXMLDOMNode çš„selectNodes(查询的结果有多个,得到存放搜索结果的链表)
            æˆ–selectSingleNode(查询的结果有一个,在有多个的情况下返回找到的第一个节点)方法进行查询,
            ç”¨createNode和appendChild方法来创建节点和追加节点,
            ç”¨IXMLDOMElement的setAttribute和getAttribute方法来设置和获得节点的属性。*/
            msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item");
            int len = nlist.length;
            if (len > 0)
                tv_folder.SetItemChild(hItem, 1);
            for (int i = 0; i < len; i++)
            {
                msxml::IXMLDOMElement e = nlist.item(i);
                string name = e.getAttribute("name");
                int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image);//trust(e as int)将e放入树结构里面的data属性中
                ExpandCatChildFolder(h, e, 35);
            }
            return 1;
        }
        //展开文件夹明细
        int ExpandFolderItem(int hItem, string parentid)
        {
            xml x = ViewObject::RetrieveData(urlTree, "status", "有效", "parentid", parentid);//获取后台数据
            if (!x) {
                return 0;
            }
            msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("data/Item");
            int len = nlist.length;
            for (int i = 0; i < len; i++)
            {
                msxml::IXMLDOMElement e = nlist.item(i);
                string name = e.selectSingleNode("name").text;
                int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35);
                ExpandCatChildFolder(h, e, 35);
            }
            return 1;
        }
        //查找当前树项的顶级目录
        int LookupTopFolder(int hItem)
        {
            int hRoot = tv_folder.GetRootItem();
            while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
            return hItem;
        }
        //树展开
        int OnTreeExpanding(ref TNotifyEvent evt, int p)
        {
            ref NMTREEVIEW nmtv = evt.pnmh;
            int hItem = nmtv.itemNew.hItem;
            int hTopItem = LookupTopFolder(hItem);
            string name = tv_folder.GetItemLabel(hTopItem);
            int child = tv_folder.GetChildItem(hItem);
            msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem);
            string parentid = "";
            if (name != "部门结构")
                parentid = e.selectSingleNode("adid").text;
            trace(parentid);
            if (!child) {
                ExpandFolderItem(hItem, parentid);
            }
            return 1;
        }
        //查询节点的列表数据
        int OnPreRetrieve()
        {
            int hItem = tv_folder.GetSelectedItem();
            if (hItem <= 0) return 1;
            //int     hCursor = xutil::SetCursorWait();
            msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
            string name = e.getAttribute("name");
            xml x = 0;
            string parentid = "";
            if (name != "部门结构")
                parentid = e.selectSingleNode("adid").text;
            trace(parentid);
            x = ViewObject::RetrieveData(myDataUrl, "parentid", parentid);
            if (x)
            {
                //trace(x.GetXml());
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            else {
                dw_list.ResetEx();
                dw_list.Redraw();
            }
            dw_list.SetReadOnly(true);
            //xutil::RestoreCursor(hCursor);
            return 1;
        }
        int OnTreeSelChanged(ref TNotifyEvent evt, int p)
        {
            if (changeddlb)
                return 1;
            int hItem = tv_folder.GetSelectedItem();
            if (hItem <= 0)
                return 1;
            int child = tv_folder.GetChildItem(hItem);
            if (!child) {
                int     hCursor = xutil::SetCursorWait();
                msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
                if (!e.getAttribute("name")) {
                    string adid = e.selectSingleNode("adid").text;
                    string parentid = adid;
                    ExpandFolderItem(hItem, parentid);
                }
            }
            return OnPreRetrieve();
        }
        //焦点激活处理函数
        int OnSetFocus(ref TEvent evt, int param)
        {
            //重置工具条
            SetAgent();
            return 1;
        }
        int OnAdd()
        {
            int hItem = tv_folder.GetSelectedItem();
            if (hItem <= 0)
                return 1;
            int hCursor = xutil::SetCursorWait();
            msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
            string parentid = "";//父级id
            if (!e.getAttribute("name"))
                parentid = e.selectSingleNode("adid").text;
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("parentid", parentid);
            OpenWindow("dev:xpage[AdministrativeDepartmentFolder.vx]", cast(arg as int));
            return 1;
        }
        int OnUpdate()
        {
            /*int hItem = tv_folder.GetSelectedItem();
            if(hItem <=0)
                return 1;
            int hCursor = xutil::SetCursorWait();
            msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
            if(e.getAttribute("name"))
                return 1;*/
            int row = dw_list.GetRow();
            if (row < 1)
                return 1;
            string parentid = "", adid = "";
            /*msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
            adid = ele.selectSingleNode("adid").text;*/
            adid = dw_list.GetItemString(row, "adid");
            parentid = dw_list.GetItemString(row, "parentid");
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            /*string parentid = "", adid = "";//父级id
            if(!e.getAttribute("name")){
                parentid = e.selectSingleNode("adid").text;
                adid = e.selectSingleNode("adid").text;
            }*/
            arg.AddArg("parentid", parentid);
            arg.AddArg("adid", adid);
            OpenWindow("dev:xpage[AdministrativeDepartmentFolder.vx]", cast(arg as int));
            return 1;
        }
        int OnDelete()
        {
            /*int hItem = tv_folder.GetSelectedItem();
            if(hItem <=0) return 1;
            int     hCursor = xutil::SetCursorWait();
            msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
            string name = e.getAttribute("name");
            string adid = "";
            if(name != "部门结构")
                adid = e.selectSingleNode("adid").text;*/
            int row = dw_list.GetRow();
            if (row < 1)
                return 1;
            string adid = "";
            /*msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
            adid = ele.selectSingleNode("adid").text;*/
            adid = dw_list.GetItemString(row, "adid");
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("adid", adid);
            if (getUrl("/sale/data/AdministrativeDepartment/ad_delete", arg.GetString(), x) != 1)
            {
                string error = x.GetXmlDoc().text;
                alert("err:" + error);
                return 1;
            }
            alert(x.GetXmlDoc().text);
            dw_list.DeleteRow(row);
            return 1;
        }
        int OnRefresh()
        {
            OnPreRetrieve();
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(string comdid)
        {
            if (comdid == "xmUpdate")
                return OnUpdate();
            else if (comdid == "xmAdd")
                return OnAdd();
            else if (comdid == "xmDelete")
                return OnDelete();
            else if (comdid == "xmRefresh")
                return OnRefresh();
            return 0;
        }
        //命令处理事件
        int OnXCommand(ref TXCommandEvent evt, int param)
        {
            return OnCmdDispatch(evt.pStrID);
        }
        int OnAttachEvent()
        {
            AttachEvent("tv_folder", "TVN_SELCHANGED", OnTreeSelChanged); //树选择
            AttachEvent("tv_folder", "TVN_ITEMEXPANDING", OnTreeExpanding); //树展开
            //AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChanged);
            //AttachEvent("cbx_1","CBN_SELCHANGE",OnSelectDdlb);
            //AttachEvent("cbx_datashow","CBN_SELCHANGE",OnSelectDataShowDdlb);
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND", OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS", OnSetFocus);
        }
        /*
        //加载主体数据
        int  OnRetrieve()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            //arg.AddArg("xxx","xxx");
            if (getUrl(myDataUrl,arg.GetString(),x)!=1)
            {
                trace(x.GetXmlDoc().text);
                return -1;
            }else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            return 1;
        }
        */
        //展开子文件
        int  ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
        {
            msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
            int len = nlist.length;
            for (int i = 0; i < len; i++)
            {
                msxml::IXMLDOMElement e = nlist.item(i);
                string name = e.getAttribute("name");
                string sImage = e.getAttribute("image");
                string child = e.getAttribute("child");
                int image = 18;
                if (sImage) image = sImage.toInt();
                int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image);
                if (child != "no")
                    tv_folder.SetItemChild(h, 1);
                ExpandChildFolder(h, e);
            }
            return 1;
        }
        //初始化文件夹
        int  InitialFolder()
        {
            msxml::IXMLDOMElement xframeElement = GetElement();
            msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial");
            if (e)
                ExpandChildFolder(0, e);
            return 1;
        }
        int onload()
        {
            dw_list = GetControl("dw_list");
            dw_list.openUrl("/sale/view/AdministrativeDepartment/template/adlist");
            dw_list.SetColumnState("adid", false);
            dw_list.SetColumnState("parentid", false);
            myDataUrl = "/sale/data/AdministrativeDepartment/ad_list";
            urlTree = "/sale/data/AdministrativeDepartment/ad_sidelist";
            tv_folder = GetControl("tv_folder");
            tv_folder.SetLineAtRoot(true);
            InitialFolder();
            OnAttachEvent();
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            return 1;
        }
    };
]
jrj/project/business/HR/AdministrativeDepartmentFolder.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,194 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
unit trade
[
    class AdministrativeDepartmentFolderView : public xframe
    {
        //xdwgrid    dw_list;
        xdwtable dw_base;//新增弹窗时使用
        string adid;
        string name;
        string parentid;
        string getsingle_url;
        xnode    m_agentNode;    //Agent Condition
        /*int SetAgent()
        {
            string xfNodeAgentArea  = "agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if(m_agentNode)
            {
                SetAgentNodeContent (anode,m_agentNode);
            }
            else
            {
                msxml::IXMLDOMElement xframeElement =  GetElement();
                msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
                if(agent)
                {
                    string s = agent.xml;
                    m_agentNode =  SetAgentNodeContent (anode,s);
                }
            }
            return 1;
        }*/
        //焦点激活处理函数
        int OnSetFocus(ref TEvent evt, int param)
        {
            //重置工具条
            //SetAgent();
            return 1;
        }
        int OnSave()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            dw_base.AcceptText();
            dw_base.DwUpdateAllTo(x.GetXmlDoc());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(xaserverarg::CreateInstance());
            arg.AddArg("content", x.GetXml());
            //trace(x.GetXml());
            if (getUrl("/sale/data/AdministrativeDepartment/ad_update", arg.GetString(), x) != 1)
            {
                string error = x.GetXmlDoc().text;
                alert("err:" + error);
                return 1;
            }
            //trace("返回信息"+x.GetXml());
            string str = x.GetXmlDoc().documentElement.getAttribute("text");
            if (str == "true")
            {
                dw_base.ResetUpdateStatus();
                CloseWindow();
                alert("保存成功!");
            }
            else
            {
                alert("保存失败!");
            }
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(string comdid)
        {
            if (comdid == "xmSave")
                return OnSave();
            else if (comdid == "xmClose")
                CloseWindow();
            return 0;
        }
        //命令处理事件
        int OnXCommand(ref TXCommandEvent evt, int param)
        {
            return OnCmdDispatch(evt.pStrID);
        }
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND", OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS", OnSetFocus);
        }
        int  OnParentRetrieve()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("adid", parentid);
            if (getUrl(getsingle_url, arg.GetString(), x) != 1)
            {
                trace(x.GetXmlDoc().text);
                return -1;
            }
            else
            {
                string parent_name = "";
                string parent_adid = "";
                string parent_level = "";
                msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("data/Item");
                int len = nlist.length;
                for (int i = 0; i < len; i++)
                {
                    msxml::IXMLDOMElement e = nlist.item(i);
                    parent_name = e.selectSingleNode("name").text;
                    parent_adid = e.getAttribute("guid");
                    parent_level = e.selectSingleNode("level").text;
                }
                xdwtable dw_obj = dw_base.FindDwTable("Item");
                dw_obj.SetItemString(1, "parent_name", parent_name);
                if (adid == "") {
                    dw_obj.SetItemString(1, "parentid", parent_adid);
                    dw_obj.SetItemString(1, "level", (parent_level.toInt() + 1).toString());
                }
                //dw_base.Retrieve(x);
                //dw_base.Redraw();
            }
            return 1;
        }
        int  OnRetrieve()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("adid", adid);
            if (getUrl(getsingle_url, arg.GetString(), x) != 1)
            {
                trace(x.GetXmlDoc().text);
                return -1;
            }
            else
            {
                dw_base.Retrieve(x);
                dw_base.Redraw();
            }
            return 1;
        }
        int onload()
        {
            dw_base = GetControl("dw_base");
            dw_base.openUrl("/sale/view/AdministrativeDepartment/template/adwin");
            getsingle_url = "/sale/data/AdministrativeDepartment/ad_getsingle";
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg = GetParam();
            adid = "";
            parentid = "";
            if (GetParam()) {
                parentid = arg.GetArgString("parentid");
                adid = arg.GetArgString("adid");
            }
            if (adid != "")
                OnRetrieve();
            if (parentid != "")
                OnParentRetrieve();
            OnAttachEvent();
            dw_base.SetColHeaderHeight(0);
            dw_base.SetRowSelectorWidth(0);
            dw_base.SetHScrollState(false);
            dw_base.SetVScrollState(false);
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            return 1;
        }
    };
]
jrj/project/business/HR/BlankExcelTemplate.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,131 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
unit trade
[
    class BlankExcelTemplateView : public xframe
    {
        xdwgrid    dw_list;
        //xdwtable dw_base;//新增弹窗时使用
        xnode    m_agentNode;    //Agent Condition
        int SetAgent()
        {
            string xfNodeAgentArea = "agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if (m_agentNode)
            {
                SetAgentNodeContent(anode, m_agentNode);
            }
            else
            {
                msxml::IXMLDOMElement xframeElement = GetElement();
                msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
                if (agent)
                {
                    string s = agent.xml;
                    m_agentNode = SetAgentNodeContent(anode, s);
                }
            }
            return 1;
        }
        //焦点激活处理函数
        int OnSetFocus(ref TEvent evt, int param)
        {
            //重置工具条
            SetAgent();
            return 1;
        }
        int OnSave()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            dw_list.AcceptText();
            dw_list.DwUpdateAllToEx(x.GetXmlDoc());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(xaserverarg::CreateInstance());
            arg.AddArg("content", x.GetXml().replace(" 00:00:00", "").replace("0000-00-00", ""));
            //trace(x.GetXml().replace(" 00:00:00", "").replace("0000-00-00", ""));//运行界面打印
            if (getUrl("/sale/data/ManpowerFile/multiUpdate", arg.GetString(), x) != 1) {
                string error = x.GetXmlDoc().text;
                alert("err:" + error);
                return 1;
            }
            string str = x.GetXmlDoc().documentElement.getAttribute("text");
            if (str == "true")
            {
                dw_list.ResetUpdateStatus();//更改更新状态,防止多保存
                alert("保存成功!");
            }
            else
            {
                alert("保存失败!");
            }
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(string comdid)
        {
            if (comdid == "xmSave")
                return OnSave();
            return 0;
        }
        //命令处理事件
        int OnXCommand(ref TXCommandEvent evt, int param)
        {
            return OnCmdDispatch(evt.pStrID);
        }
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND", OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS", OnSetFocus);
        }
        /*//加载数据
        int  OnRetrieve()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("xxx","xxx");
            if (getUrl("",arg.GetString(),x)!=1)
            {
                trace(x.GetXmlDoc().text);
                return -1;
            }else
            {
                //dw_list.Retrieve(x);
                //dw_list.Redraw();
            }
            return 1;
        }
        */
        int onload()
        {
            dw_list = GetControl("dw_list");
            dw_list.openUrl("/sale/view/ManpowerFile/template/list");
            OnAttachEvent();
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            return 1;
        }
    };
]
jrj/project/business/HR/GraduationSchool.cpp
@@ -133,8 +133,7 @@
            xml x ;
            
            xaserverarg arg;
            arg.setNativePointer(arg.CreateInstance());
            //arg.AddArg(L"xxx",L"xxx");
            if (getUrl(L"/sale/data/GraduationSchool/data/list", arg.GetString(), x) != 1)
            {
                trace(x.text());
@@ -151,6 +150,7 @@
        int onload()
        {
            dw_list = GetControl(L"dw_list");
            dw_list.openUrl(L"/sale/view/GraduationSchool/template/list");
            OnRetrieve();
jrj/project/business/HR/ManpowerFile.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,332 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
use "base.view.vd"
unit trade
[
    class ViewManpowerFileList : public xframe
    {
        xdwgrid    dw_list;//hxsoft.com -> Developer -> wface -> vcontrol
        int hSignWin;
        xdwtable dw_arg;
        xnode    m_agentNode;    //Agent Condition
        string urlTree;
        xtreeview tv_folder;
        //展开子文件
        int  ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
        {
            msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
            int len = nlist.length;
            for (int i = 0; i < len; i++)
            {
                msxml::IXMLDOMElement e = nlist.item(i);
                string name = e.getAttribute("name");
                string sImage = e.getAttribute("image");
                string child = e.getAttribute("child");
                int image = 15;
                if (sImage) image = sImage.toInt();
                int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image);
                if (child != "no") tv_folder.SetItemChild(h, 1);
                ExpandChildFolder(h, e);
            }
            return 1;
        }
        int  InitialFolder()
        {
            msxml::IXMLDOMElement xframeElement = GetElement();
            msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial");
            if (e)
                ExpandChildFolder(0, e);
            return 1;
        }
        int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image)
        {
            msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item");
            int len = nlist.length;
            if (len > 0) tv_folder.SetItemChild(hItem, 1);
            for (int i = 0; i < len; i++)
            {
                msxml::IXMLDOMElement e = nlist.item(i);
                string name = e.getAttribute("name");
                int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image);
                ExpandCatChildFolder(h, e, 35);
            }
            return 1;
        }
        int ExpandFolderItem(int hItem)
        {
            xml x = ViewObject::RetrieveData(urlTree);
            if (!x) return 0;
            msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item");
            int len = nlist.length;
            for (int i = 0; i < len; i++)
            {
                msxml::IXMLDOMElement e = nlist.item(i);
                string name = e.getAttribute("name");
                int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35);
                ExpandCatChildFolder(h, e, 35);
            }
            return 1;
        }
        int SetAgent()
        {
            string xfNodeAgentArea = "agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if (m_agentNode)
            {
                SetAgentNodeContent(anode, m_agentNode);
            }
            else
            {
                msxml::IXMLDOMElement xframeElement = GetElement();
                msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
                if (agent)
                {
                    string s = agent.xml;
                    m_agentNode = SetAgentNodeContent(anode, s);
                }
            }
            return 1;
        }
        //焦点激活处理函数
        int OnSetFocus(ref TEvent evt, int param)
        {
            //重置工具条
            SetAgent();
            return 1;
        }
        int OnOpenAddWindow()
        {
            OpenWindow("dev:xpage[ManpowerFileWindow.vx]");
            return 1;
        }
        int OnOpenUpdateWindow()
        {
            int row = dw_list.GetRow();
            if (row < 1)
                return 1;
            msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
            string mfid = ele.selectSingleNode("mfid").text;//获取节点的值
            OpenWindow("dev:xpage[ManpowerFileWindow.vx]", cast(mfid as int));
            return 1;
        }
        int OnExchangeFileWindow()
        {
            xwin xw = OpenWindow("dev:xpage[BlankExcelTemplate.vx]", 0);
            hSignWin = xw.GetHWND();
            return 1;
        }
        int OnDelete()
        {
            int MB_OKCANCEL = 1;
            int IDOK = 1;
            int ret = win32::MessageBox(GetHWND(), "确认删除?", "提示", MB_OKCANCEL);
            if (ret == IDOK)
            {
                int row = dw_list.GetRow();
                if (row < 1)
                    return 1;
                msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
                string mfid = ele.selectSingleNode("mfid").text;//查看
                xml x = new xml;
                x.setNativePointer(xml::CreateInstance());
                xaserverarg arg = new xaserverarg;//放置参数
                arg.setNativePointer(arg.CreateInstance());
                arg.AddArg("mfid", mfid);
                if (getUrl("/sale/data/ManpowerFile/delete", arg.GetString(), x) != 1)
                {
                    string error = x.GetXmlDoc().text;
                    alert("err:" + error);
                    return 1;
                }
                alert(x.GetXmlDoc().text);
                OnRefresh();
            }
            return 1;
        }
        int OnRefresh() {
            OnRetrieve();
            return 1;
        }
        //分析
        int OnAnalysis()
        {
            int hCursor = xutil::SetCursorWait();
            string str = dw_list.DataAnalysis("");
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("html", str);
            int obj = cast(dw_list as int);
            arg.AddArg("obj", obj.toString());
            OpenWindow("dev:xpage[data.vanalysis.vx]", cast(arg as int));
            xutil::RestoreCursor(hCursor);
            return 1;
        }
        string GetQueryArg()
        {
            dw_arg.AcceptText();
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            dw_arg.DwUpdateAllTo(x.GetXmlDoc());
            return x.GetXml();
        }
        int  OnRetrieveEx1()
        {
            int hItem = tv_folder.GetSelectedItem();
            if (hItem <= 0) return 1;
            int hCursor = xutil::SetCursorWait();
            msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
            string no = e1.getAttribute("no");
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            //arg.AddArg("QueryTxt",GetControl("sle_search").GetText());
            arg.AddArg("QueryArg", GetQueryArg());
            arg.AddArg("MStatus", no);
            arg.AddArg("QueryName", GetControl("QueryName").GetText());
            //trace(arg.GetString());
            if (getUrl("/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)
            {
                trace(x.GetXmlDoc().text);
                return -1;
            }
            else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
                dw_list.SetReadOnly(true);
                dw_list.SetSelectionMode(1);
            }
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(string comdid)
        {
            if (comdid == "xmAddHumanDocument")
                return OnOpenAddWindow();
            else if (comdid == "xmUpdateHumanDocument")
                return OnOpenUpdateWindow();
            else if (comdid == "xmRefresh" || comdid == "xmSearch")
                return OnRetrieveEx1();
            else if (comdid == "xmExchangeFile")
                return OnExchangeFileWindow();
            else if (comdid == "xmDelete")
                return OnDelete();
            else if (comdid == "xmAnalysis")
                return OnAnalysis();
            return 0;
        }
        //命令处理事件
        int OnXCommand(ref TXCommandEvent evt, int param)
        {
            return OnCmdDispatch(evt.pStrID);
        }
        int OnDoubleClicked(ref TNotifyEvent evt, int p)
        {
            return OnCmdDispatch("xmUpdateHumanDocument");
        }
        int OnTreeSelChanged(ref TNotifyEvent evt, int p)
        {
            return OnRetrieveEx1();
        }
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND", OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS", OnSetFocus);
            AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDoubleClicked);//行双击
            AttachEvent("tv_folder", "TVN_SELCHANGED", OnTreeSelChanged); //树选择
        }
        //数据传输函数
        int  OnRetrieve()
        {
            //int  hCursor = xutil::SetCursorWait();//鼠标位置
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;//放置参数
            arg.setNativePointer(arg.CreateInstance());
            //arg.AddArg("QueryTxt",GetControl("sle_search").GetText());//添加所需要传到后台的参数
            arg.AddArg("QueryArg", GetQueryArg());
            arg.AddArg("MStatus", "");
            arg.AddArg("QueryName", GetControl("QueryName").GetText());
            //trace("查看arg="+arg.GetString());//运行界面打印
            if (getUrl("/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)///sale/data/ManpowerFile/doclist后台接口
            {
                trace(x.GetXmlDoc().text);
                return -1;
            }
            else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            return 1;
        }
        int onload()
        {
            //【1】控制页面中name="dw_list"的内容
            dw_list = GetControl("dw_list");
            //【2】加载sale根目录下view下的ManpowerFile.vface文件中的template/list url å‰ç«¯é¡µé¢
            dw_list.openUrl("/sale/view/ManpowerFile/template/list");
            //【3】绑定事件
            OnAttachEvent();
            //【4】加载后台数据
            //【6】设为只读
            dw_list.SetReadOnly(true);
            dw_arg = GetControl("dw_arg");
            dw_arg.openUrl("/sale/view/ManpowerFile/template/QueryArg");
            dw_arg.SetColHeaderHeight(0);
            dw_arg.SetRowSelectorWidth(0);
            dw_arg.SetHScrollState(false);
            dw_arg.SetVScrollState(false);
            dw_arg.SetItemString(1, "DateType", "不设定");
            OnRetrieve();
            urlTree = "/sale/data/ManpowerFile/folder";
            tv_folder = GetControl("tv_folder");
            tv_folder.SetLineAtRoot(true);
            InitialFolder();
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            int hItem = tv_folder.GetRootItem();
            ExpandFolderItem(hItem);
            tv_folder.ExpandItem(hItem);
            tv_folder.ItemFocus(hItem);
            return 1;
        }
    };
]
jrj/project/business/HR/ManpowerFileWindow.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
use "vbind.vbind.wface.vd"
use "publiccode.vutil.vbusiness.vd"
use "multi.vbind.vbind.wface.vd"
unit trade
[
    class ViewManpowerFileWiondow : public xframe
    {
        //xdwgrid    dw_list;//新建列表时使用
        xdwtable dw_base;//新增弹窗时使用
        string mfid;
        xnode    m_agentNode;    //Agent Condition
        /*int SetAgent()
        {
            string xfNodeAgentArea  = "agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if(m_agentNode)
            {
                SetAgentNodeContent (anode,m_agentNode);
            }
            else
            {
                msxml::IXMLDOMElement xframeElement =  GetElement();
                msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
                if(agent)
                {
                    string s = agent.xml;
                    m_agentNode =  SetAgentNodeContent (anode,s);
                }
            }
            return 1;
        }*/
        //焦点激活处理函数
        int OnSetFocus(ref TEvent evt, int param)
        {
            //重置工具条
            SetAgent();
            return 1;
        }
        //保存数据
        int OnSave()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            dw_base.AcceptText();
            dw_base.DwUpdateAllTo(x.GetXmlDoc());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(xaserverarg::CreateInstance());
            arg.AddArg("content", x.GetXml());
            //trace(x.GetXml());
            if (url::get("/sale/data/ManpowerFile/update", arg.GetString(), x) != 1)
            {
                string error = x.GetXmlDoc().text;
                alert("err:" + error);
                return 1;
            }
            //trace("返回值="+x.GetXml());
            string str = x.GetXmlDoc().documentElement.getAttribute("text");
            if (str == "true")
            {
                dw_base.ResetUpdateStatus();
                CloseWindow();
                alert("保存成功!");
            }
            else
            {
                alert("保存失败!");
            }
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(string comdid)
        {
            if (comdid == "xmClose") {//关闭窗口
                CloseWindow();
                return 1;
            }
            else if (comdid == "xmSave") {//保存窗口
                return OnSave();
            }
            return 0;
        }
        //命令处理事件
        int OnXCommand(ref TXCommandEvent evt, int param)
        {
            return OnCmdDispatch(evt.pStrID);
        }
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND", OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS", OnSetFocus);
            AttachEvent("dw_base", "DWV_ITEMCHANGING", OnItemChanging);
        }
        int OnItemChanging(ref TNotifyEvent evt, int p)
        {
            ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
            string colname = hdr.colname;
            string value = hdr.data;
            int row = hdr.row;
            if (value == "") return 1;
            string cellType = dw_base.GetColumnProp(colname, "celltype");
            //alert(cellType);
            if (cellType == "xs:decimal" || cellType == "xs:integer")
            {
                if (value.isNumber() == false)
                {
                    alert(value + "不是数字!");
                    hdr.idFrom = -1;
                    return 1;
                }
            }
        }
        int  OnRetrieve()
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("mfid", mfid);
            if (getUrl("/sale/data/ManpowerFile/getsingle", arg.GetString(), x) != 1)
            {
                trace("错误信息=" + x.GetXmlDoc().text);
                return -1;
            }
            else
            {
                //trace("返回信息="+x.GetXml());
                dw_base.Retrieve(x);
                dw_base.Redraw();
            }
            return 1;
        }
        int onload()
        {
            dw_base = GetControl("dw_base");
            dw_base.openUrl("/sale/view/ManpowerFile/template/win");
            mfid = "";
            if (GetParam())
                mfid = GetParam();
            if (mfid != "")
            {
                OnRetrieve();
            }
            dw_base.SetColHeaderHeight(0);
            dw_base.SetRowSelectorWidth(0);
            dw_base.SetHScrollState(false);
            dw_base.SetVScrollState(false);
            OnAttachEvent();
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            return 1;
        }
    };
]