From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/project/business/HR/AdministrativeDepartment.cpp | 305 ++++++++++++++++++++++++++------------------------
1 files changed, 159 insertions(+), 146 deletions(-)
diff --git a/jrj/project/business/HR/AdministrativeDepartment.cpp b/jrj/project/business/HR/AdministrativeDepartment.cpp
index 0d6b5d7..aee1a23 100644
--- a/jrj/project/business/HR/AdministrativeDepartment.cpp
+++ b/jrj/project/business/HR/AdministrativeDepartment.cpp
@@ -1,102 +1,115 @@
-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
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xcell.hpp>
+
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+ class __declspec(dllexport) ViewAdministrativeDepartmentList : public listwin
{
+ public:
xdwgrid dw_list;
xtreeview tv_folder;//hxsoft.com -> Developer -> wface -> vcontrol
- string rows;
- string urlTree;
- string myDataUrl;
+ xstring rows;
+ xstring urlTree;
+ xstring myDataUrl;
int changeddlb;
xnode m_agentNode; //Agent Condition
-
+ public:
+ ViewAdministrativeDepartmentList(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
+ public:
+ static ViewAdministrativeDepartmentList* CreateInstance(void* implPtr, void* hWnd)
+ {
+ ViewAdministrativeDepartmentList* pWin = new ViewAdministrativeDepartmentList(implPtr, (HWND)hWnd);
+ return pWin;
+ }
int SetAgent()
{
- string xfNodeAgentArea = "agentarea";
+ xstring xfNodeAgentArea = L"agentarea";
xnode anode = GetAgentNode(xfNodeAgentArea);
if (m_agentNode)
{
- SetAgentNodeContent(anode, m_agentNode);
+ SetAgentNode(anode, m_agentNode);
}
else
{
- msxml::IXMLDOMElement xframeElement = GetElement();
- msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
if (agent)
{
- string s = agent.xml;
- m_agentNode = SetAgentNodeContent(anode, s);
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode, s);
}
}
return 1;
}
//展开放进树里面
- int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image)
+ int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
{
/*在具体应用时可以用DOMDocument的Load方法来装载XML文档
用IXMLDOMNode 的selectNodes(查询的结果有多个,得到存放搜索结果的链表)
或selectSingleNode(查询的结果有一个,在有多个的情况下返回找到的第一个节点)方法进行查询,
用createNode和appendChild方法来创建节点和追加节点,
用IXMLDOMElement的setAttribute和getAttribute方法来设置和获得节点的属性。*/
- msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item");
- int len = nlist.length;
+ KXMLDOMNodeList nlist = ele.selectNodes(L"item");
+ int len = nlist.length();
if (len > 0)
tv_folder.SetItemChild(hItem, 1);
for (int i = 0; i < len; i++)
{
- 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属性中
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"name");
+ HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);//trust(e as int)将e放入树结构里面的data属性中
ExpandCatChildFolder(h, e, 35);
}
return 1;
}
//展开文件夹明细
- int ExpandFolderItem(int hItem, string parentid)
+ int ExpandFolderItem(HTREEITEM hItem, xstring parentid)
{
- xml x = ViewObject::RetrieveData(urlTree, "status", "有效", "parentid", parentid);//获取后台数据
+ xml x = ViewObject::RetrieveData(urlTree, L"status", L"有效", L"parentid", parentid);//获取后台数据
if (!x) {
return 0;
}
- msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("data/Item");
- int len = nlist.length;
+ KXMLDOMNodeList nlist = x.selectNodes(L"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);
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.selectSingleNode(L"name").text();
+ HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
ExpandCatChildFolder(h, e, 35);
}
return 1;
}
//查找当前树项的顶级目录
- int LookupTopFolder(int hItem)
+ HTREEITEM LookupTopFolder(HTREEITEM hItem)
{
- int hRoot = tv_folder.GetRootItem();
+ HTREEITEM hRoot = tv_folder.GetRootItem();
while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
return hItem;
}
//树展开
- int OnTreeExpanding(ref TNotifyEvent evt, int p)
+ int OnTreeExpanding(TEvent* 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);
+ NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+ HTREEITEM hItem = nmtv.itemNew.hItem;
+ HTREEITEM hTopItem = LookupTopFolder(hItem);
+ xstring name = tv_folder.GetItemLabel(hTopItem);
+ HTREEITEM child = tv_folder.GetChildItem(hItem);
- msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem);
- string parentid = "";
- if (name != "部门结构")
- parentid = e.selectSingleNode("adid").text;
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring parentid = L"";
+ if (name != L"部门结构")
+ parentid = e.selectSingleNode(L"adid").text();
trace(parentid);
if (!child) {
ExpandFolderItem(hItem, parentid);
@@ -107,26 +120,26 @@
//查询节点的列表数据
int OnPreRetrieve()
{
- int hItem = tv_folder.GetSelectedItem();
- if (hItem <= 0) return 1;
+ HTREEITEM hItem = tv_folder.GetSelectedItem();
+ if (!hItem ) return 1;
//int hCursor = xutil::SetCursorWait();
- msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
- string name = e.getAttribute("name");
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring name = e.getAttribute(L"name");
xml x = 0;
- string parentid = "";
- if (name != "部门结构")
- parentid = e.selectSingleNode("adid").text;
+ xstring parentid = L"";
+ if (name != L"部门结构")
+ parentid = e.selectSingleNode(L"adid").text();
trace(parentid);
- x = ViewObject::RetrieveData(myDataUrl, "parentid", parentid);
+ x = ViewObject::RetrieveData(myDataUrl, L"parentid", parentid);
if (x)
{
- //trace(x.GetXml());
+ //trace(x.xml());
dw_list.Retrieve(x);
dw_list.Redraw();
}
else {
- dw_list.ResetEx();
+ dw_list.Reset();
dw_list.Redraw();
}
dw_list.SetReadOnly(true);
@@ -134,20 +147,20 @@
return 1;
}
- int OnTreeSelChanged(ref TNotifyEvent evt, int p)
+ int OnTreeSelChanged(TEvent* evt, int p)
{
if (changeddlb)
return 1;
- int hItem = tv_folder.GetSelectedItem();
- if (hItem <= 0)
+ HTREEITEM hItem = tv_folder.GetSelectedItem();
+ if (!hItem)
return 1;
- int child = tv_folder.GetChildItem(hItem);
+ HTREEITEM 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;
+ HCURSOR hCursor = xutil::SetCursorWait();
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ if (!e.getAttribute(L"name")) {
+ xstring adid = e.selectSingleNode(L"adid").text();
+ xstring parentid = adid;
ExpandFolderItem(hItem, parentid);
}
}
@@ -155,7 +168,7 @@
}
//焦点激活处理函数
- int OnSetFocus(ref TEvent evt, int param)
+ int OnSetFocus(TEvent* evt, LPARAM p)
{
//重置工具条
SetAgent();
@@ -164,18 +177,18 @@
int OnAdd()
{
- int hItem = tv_folder.GetSelectedItem();
- if (hItem <= 0)
+ HTREEITEM hItem = tv_folder.GetSelectedItem();
+ if (!hItem )
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));
+ HCURSOR hCursor = xutil::SetCursorWait();
+ KXMLDOMElement e = tv_folder.GetItemData(hItem);
+ xstring parentid = L"";//父级id
+ if (!e.getAttribute(L"name"))
+ parentid = e.selectSingleNode(L"adid").text();
+ xaserverarg arg;
+
+ arg.AddArg(L"parentid", parentid);
+ OpenWindow(L"dev:xpage[AdministrativeDepartmentFolder.vx]",arg);
return 1;
}
@@ -187,32 +200,32 @@
if(hItem <=0)
return 1;
int hCursor = xutil::SetCursorWait();
- msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
+ KXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
- if(e.getAttribute("name"))
+ if(e.getAttribute(L"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");
+ xstring parentid = L"", adid = L"";
+ /*KXMLDOMElement ele = dw_list.GetRowElement(row);
+ adid = ele.selectSingleNode(L"adid").text();*/
+ adid = dw_list.GetItemString(row, L"adid");
+ parentid = dw_list.GetItemString(row, L"parentid");
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- /*string parentid = "", adid = "";//父级id
+ xaserverarg arg;
+
+ /*xstring parentid = L"", adid = L"";//父级id
- if(!e.getAttribute("name")){
+ if(!e.getAttribute(L"name")){
- parentid = e.selectSingleNode("adid").text;
- adid = e.selectSingleNode("adid").text;
+ parentid = e.selectSingleNode(L"adid").text();
+ adid = e.selectSingleNode(L"adid").text();
}*/
- arg.AddArg("parentid", parentid);
- arg.AddArg("adid", adid);
- OpenWindow("dev:xpage[AdministrativeDepartmentFolder.vx]", cast(arg as int));
+ arg.AddArg(L"parentid", parentid);
+ arg.AddArg(L"adid", adid);
+ OpenWindow(L"dev:xpage[AdministrativeDepartmentFolder.vx]",arg);
return 1;
}
@@ -222,32 +235,32 @@
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;*/
+ KXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+ xstring name = e.getAttribute(L"name");
+ xstring adid = L"";
+ if(name != L"部门结构")
+ adid = e.selectSingleNode(L"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");
+ xstring adid = L"";
+ /*KXMLDOMElement ele = dw_list.GetRowElement(row);
+ adid = ele.selectSingleNode(L"adid").text();*/
+ adid = dw_list.GetItemString(row, L"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)
+ xml x ;
+
+ xaserverarg arg;
+
+ arg.AddArg(L"adid", adid);
+ if (getUrl(L"/sale/data/AdministrativeDepartment/ad_delete", arg.GetString(), x) != 1)
{
- string error = x.GetXmlDoc().text;
- alert("err:" + error);
+ xstring error = x.text();
+ alert(L"err:" + error);
return 1;
}
- alert(x.GetXmlDoc().text);
+ alert(x.text());
dw_list.DeleteRow(row);
return 1;
}
@@ -259,52 +272,53 @@
}
//命令发布函数
- int OnCmdDispatch(string comdid)
+ int OnCmdDispatch(xstring comdid)
{
- if (comdid == "xmUpdate")
+ if (comdid == L"xmUpdate")
return OnUpdate();
- else if (comdid == "xmAdd")
+ else if (comdid == L"xmAdd")
return OnAdd();
- else if (comdid == "xmDelete")
+ else if (comdid == L"xmDelete")
return OnDelete();
- else if (comdid == "xmRefresh")
+ else if (comdid == L"xmRefresh")
return OnRefresh();
return 0;
}
//命令处理事件
- int OnXCommand(ref TXCommandEvent evt, int param)
+ int OnXCommand(TEvent* evt, LPARAM p)
{
- return OnCmdDispatch(evt.pStrID);
+ return OnCmdDispatch(evt->xcommand.pStrID);
}
int OnAttachEvent()
{
- AttachEvent("tv_folder", "TVN_SELCHANGED", OnTreeSelChanged); //树选择
- AttachEvent("tv_folder", "TVN_ITEMEXPANDING", OnTreeExpanding); //树展开
+ AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ViewAdministrativeDepartmentList::OnTreeSelChanged); //树选择
+ AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&ViewAdministrativeDepartmentList::OnTreeExpanding); //树展开
- //AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChanged);
- //AttachEvent("cbx_1","CBN_SELCHANGE",OnSelectDdlb);
- //AttachEvent("cbx_datashow","CBN_SELCHANGE",OnSelectDataShowDdlb);
+ //AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED",OnRowChanged);
+ //AttachEvent(L"cbx_1",L"CBN_SELCHANGE",OnSelectDdlb);
+ //AttachEvent(L"cbx_datashow",L"CBN_SELCHANGE",OnSelectDataShowDdlb);
//绑定工具条点击事件
- AttachEvent("WM_XCOMMAND", OnXCommand);
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewAdministrativeDepartmentList::OnXCommand);
//获取焦点事件,用于重置工具条
- AttachEvent("WM_SETFOCUS", OnSetFocus);
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&ViewAdministrativeDepartmentList::OnSetFocus);
+ return 1;
}
/*
//加载主体数据
int OnRetrieve()
{
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- //arg.AddArg("xxx","xxx");
+ xml x ;
+
+ xaserverarg arg;
+
+ //arg.AddArg(L"xxx",L"xxx");
if (getUrl(myDataUrl,arg.GetString(),x)!=1)
{
- trace(x.GetXmlDoc().text);
+ trace(x.text());
return -1;
}else
{
@@ -316,20 +330,20 @@
*/
//展开子文件
- int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
+ int ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement)
{
- msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
- int len = nlist.length;
+ KXMLDOMNodeList nlist = pElement.selectNodes(L"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");
+ KXMLDOMElement e = nlist.item(i);
+ xstring name = e.getAttribute(L"name");
+ xstring sImage = e.getAttribute(L"image");
+ xstring child = e.getAttribute(L"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")
+ HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
+ if (child != L"no")
tv_folder.SetItemChild(h, 1);
ExpandChildFolder(h, e);
}
@@ -339,8 +353,8 @@
//初始化文件夹
int InitialFolder()
{
- msxml::IXMLDOMElement xframeElement = GetElement();
- msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial");
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
if (e)
ExpandChildFolder(0, e);
return 1;
@@ -348,14 +362,14 @@
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);
+ dw_list = GetControl(L"dw_list");
+ dw_list.openUrl(L"/sale/view/AdministrativeDepartment/template/adlist");
+ dw_list.SetColumnState(L"adid", false);
+ dw_list.SetColumnState(L"parentid", false);
- myDataUrl = "/sale/data/AdministrativeDepartment/ad_list";
- urlTree = "/sale/data/AdministrativeDepartment/ad_sidelist";
- tv_folder = GetControl("tv_folder");
+ myDataUrl = L"/sale/data/AdministrativeDepartment/ad_list";
+ urlTree = L"/sale/data/AdministrativeDepartment/ad_sidelist";
+ tv_folder = GetControl(L"tv_folder");
tv_folder.SetLineAtRoot(true);
InitialFolder();
OnAttachEvent();
@@ -369,5 +383,4 @@
return 1;
}
- };
-]
\ No newline at end of file
+ };
\ No newline at end of file
--
Gitblit v1.9.3