From 4988c8950db8640eaeb2498b51aca2dfed2c685b Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期一, 15 七月 2024 12:10:15 +0800 Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj --- jrj/project/business/Company/HrOrgChart.cpp | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/jrj/project/business/Company/HrOrgChart.cpp b/jrj/project/business/Company/HrOrgChart.cpp new file mode 100644 index 0000000..0522905 --- /dev/null +++ b/jrj/project/business/Company/HrOrgChart.cpp @@ -0,0 +1,142 @@ +use "win.vl" +use "treeview.vm" +use "dev:vm[xdwgrid.vm]" +use "dev:vm[xdwtable.vm]" +use "pref.vl" +use "dev:vm[xml.vm]" +use "dev:vm[xaserverarg.vm]" +use "dev:vm[xaserver.vm]" +use "dev:vm[xutil.vm]" + +unit vbusiness.xpage +[ + HrOrgChart is extend win__; + about HrOrgChart + [ + control: + + method: + [ + treeview__ tv_org; + xdwtable__ dw_parent; + int m_bCanDestroy; + + xnode__ m_agentNode; //Agent Condition + string m_agentCond; //Agent Node + + int OnTreeSelChanged(ref TNotifyEvent evt, int p) + { + ref NMTREEVIEW nmtv = evt.pnmh; + int hitem = nmtv.itemNew.hItem; + if (hitem == 0) + hitem = treeview__::GetRootItem(tv_org.GetId()); + string label = treeview__::GetItemLabel(tv_org.GetId(), hitem); + string pUnit; + pUnit = treeview__::GetItemLabel(tv_org.GetId(), hitem) + "\\"; + int pitem = treeview__::GetParentItem(tv_org.GetId(), hitem); + while (pitem > 0) + { + pUnit = treeview__::GetItemLabel(tv_org.GetId(), pitem) + "\\" + pUnit; + pitem = treeview__::GetParentItem(tv_org.GetId(), pitem); + } + msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_org.GetId(), hitem); + string guid = ele.SelectSingleNode("@guid").text; + + //CloseWindow(); + return 1; + } + + int OnActive(ref TEvent evt, int p) + { + /*int WA_INACTIVE = 0; + int WA_ACTIVE = 1; + int WA_CLICKACTIVE = 2; + int lw = evt.wParam & 0xffff; + if( lw ==WA_INACTIVE && m_bCanDestroy==1 ) + { + win__::CloseWindow(); + return 1; + } + if(lw !=WA_INACTIVE)m_bCanDestroy = 1; + return 1;*/ + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt, int p) + { + return 1; + } + + int OnOK(string comdid) + { + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg = win__::GetParam(); + arg.AddArg("comdid", comdid); + int hitem = treeview__::GetSelectedItem(tv_org.GetId()); + if (hitem > 0) + { + msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_org.GetId(), hitem); + string guid = ele.SelectSingleNode("@guid").text; + string label = ele.selectSingleNode("OrgName").text; + arg.AddArg("OrgName", label); + arg.AddArg("OrgId", guid); + win__::CloseWindow(); + } + else + win__::MessageBox(GetHWND(), "请选择组织!", "提示", 0); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + int hCursor = xutil__::SetCursorWait(); + if (comdid == "xmOk") + OnOK(comdid); + else if (comdid == "xmCancel") + CloseWindow(); + xutil__::RestoreCursor(hCursor); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt, int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND", OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS", OnSetFocus); + AttachEvent("tv_org", "TVN_SELCHANGED", OnTreeSelChanged); + //AttachEvent("WM_ACTIVATE",OnActive); + } + + int OnInitial() + { + OnAttachEvent(); + + return 1; + } + + int onload() + { + m_bCanDestroy = 1; + tv_org = new treeview__; + tv_org.setNativePointer(this.GetControl("tv_org")); + OnInitial(); + + int root = treeview__::GetRootItem(tv_org.GetId()); + treeview__::ExpandItemEx(tv_org.GetId(), root); + + + return 1; + } + ] + + ] +] \ No newline at end of file -- Gitblit v1.9.3