From 9c4c84581e5c632a86ef823ffdef9587fd557180 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期四, 27 六月 2024 18:12:39 +0800
Subject: [PATCH] update filter
---
jrj/project/business/HR/ManpowerFileWindow.cpp | 178 ++++++++
jrj/project/business/HR/AdministrativeDepartmentFolder.cpp | 194 +++++++++
jrj/project/business/HR/BlankExcelTemplate.cpp | 131 ++++++
jrj/project/business/HR/AdministrativeDepartment.cpp | 373 +++++++++++++++++
jrj/project/business/HR/GraduationSchool.cpp | 4
jrj/ext-jrj/ext-jrj.vcxproj | 16
jrj/project/business/HR/ManpowerFile.cpp | 332 +++++++++++++++
jrj/ext-jrj/ext-jrj.vcxproj.filters | 14
8 files changed, 1,238 insertions(+), 4 deletions(-)
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index 72140ea..82b24eb 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/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>
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters
index 5538e29..2024dc4 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj.filters
+++ b/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>
diff --git a/jrj/project/business/HR/AdministrativeDepartment.cpp b/jrj/project/business/HR/AdministrativeDepartment.cpp
new file mode 100644
index 0000000..0d6b5d7
--- /dev/null
+++ b/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;
+ }
+ };
+]
\ No newline at end of file
diff --git a/jrj/project/business/HR/AdministrativeDepartmentFolder.cpp b/jrj/project/business/HR/AdministrativeDepartmentFolder.cpp
new file mode 100644
index 0000000..62c350d
--- /dev/null
+++ b/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;
+ }
+ };
+]
\ No newline at end of file
diff --git a/jrj/project/business/HR/BlankExcelTemplate.cpp b/jrj/project/business/HR/BlankExcelTemplate.cpp
new file mode 100644
index 0000000..98bc2b1
--- /dev/null
+++ b/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;
+ }
+ };
+]
\ No newline at end of file
diff --git a/jrj/project/business/HR/GraduationSchool.cpp b/jrj/project/business/HR/GraduationSchool.cpp
index 373df3d..50f9f7a 100644
--- a/jrj/project/business/HR/GraduationSchool.cpp
+++ b/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();
diff --git a/jrj/project/business/HR/ManpowerFile.cpp b/jrj/project/business/HR/ManpowerFile.cpp
new file mode 100644
index 0000000..f29ef85
--- /dev/null
+++ b/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;
+ }
+ };
+]
\ No newline at end of file
diff --git a/jrj/project/business/HR/ManpowerFileWindow.cpp b/jrj/project/business/HR/ManpowerFileWindow.cpp
new file mode 100644
index 0000000..2075a76
--- /dev/null
+++ b/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;
+ }
+ };
+]
\ No newline at end of file
--
Gitblit v1.9.3