From 87ad0617f1fb1cdefe1e08da3b7fda9335de7730 Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期三, 17 七月 2024 18:15:19 +0800 Subject: [PATCH] update --- jrj/project/business/SystemSettings/SysUser.hpp | 337 ++++++++++++++++++++++++++++++++++++++++++++++++ jrj/project/business/SystemSettings/AddUser.cpp | 15 - jrj/ext-jrj/ext-jrj.vcxproj | 1 jrj/project/business/SystemSettings/AddUserGroup.cpp | 3 jrj/project/business/SystemSettings/UserImport.cpp | 5 5 files changed, 347 insertions(+), 14 deletions(-) diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj index 8541279..cadca4a 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj +++ b/jrj/ext-jrj/ext-jrj.vcxproj @@ -160,6 +160,7 @@ </PostBuildEvent> </ItemDefinitionGroup> <ItemGroup> + <ClInclude Include="..\project\business\SystemSettings\SysUser.hpp" /> <ClInclude Include="..\project\viewobject\custom.view.hpp" /> <ClInclude Include="..\project\viewobject\customer.view.hpp" /> <ClInclude Include="..\project\viewobject\enquiry.view.hpp" /> diff --git a/jrj/project/business/SystemSettings/AddUser.cpp b/jrj/project/business/SystemSettings/AddUser.cpp index e92636d..2e215c3 100644 --- a/jrj/project/business/SystemSettings/AddUser.cpp +++ b/jrj/project/business/SystemSettings/AddUser.cpp @@ -1,8 +1,3 @@ -use "win.vl" -use "treeview.vm" -use "dev:vm[xdwgrid.vm]" -use "dev:vm[xdwtable.vm]" -use "pref.vl" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> @@ -11,7 +6,8 @@ #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" -//use "dev:xpage[SysUser.vx]" + +#include "SysUser.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) AddUser : public xwin @@ -51,8 +47,7 @@ int AppendItem(xml x, KXMLDOMElement r, xstring item) { var e = x.createElement(item); //xcontrol xc = GetControl(item); - control xc = new control; - xc.setNativePointer(GetControl(item)); + xcontrol xc = GetControl(item); e.text() = xc.GetText(); r.appendChild(e); return 1; @@ -60,14 +55,14 @@ int OnSave() { - control xc = new control; + xcontrol xc = GetControl(L"UserName"); /*xc=GetControl(L"EmployeeNo"); if (xc.GetText()==L"") { alert(L"用户代码不能为空!"); return 0; }*/ - xc = GetControl(L"UserName"); + if (xc.GetText() == L"") { alert(L"用户名称不能为空!"); diff --git a/jrj/project/business/SystemSettings/AddUserGroup.cpp b/jrj/project/business/SystemSettings/AddUserGroup.cpp index ab4a3d2..6b8c2cf 100644 --- a/jrj/project/business/SystemSettings/AddUserGroup.cpp +++ b/jrj/project/business/SystemSettings/AddUserGroup.cpp @@ -86,8 +86,7 @@ arg.AddArg(L"content", x.xml()); if (xaserver::ExecXAction(GetServerUrl(), L"[update.Usergroup.xa]", arg.GetString()) == 1) { - control xc = new control; - xc.setNativePointer(GetControl(L"JobName")); + xcontrol xc = GetControl(L"JobName"); //p.tv.Redraw(); if (p.note == L"修改") { diff --git a/jrj/project/business/SystemSettings/SysUser.hpp b/jrj/project/business/SystemSettings/SysUser.hpp new file mode 100644 index 0000000..0fcf083 --- /dev/null +++ b/jrj/project/business/SystemSettings/SysUser.hpp @@ -0,0 +1,337 @@ +#pragma once + +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <wobject/xdouble.hpp> +#include <xcontrol/xlayersheet.hpp> + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; +class __declspec(dllexport) SysUser : public xwin +{ +public: + xtreeview tv_usergroup; + xdwgrid dw_user; + xnode m_agentNode; + xstring strJobID; +public: + SysUser(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {} +public: + static SysUser* CreateInstance(void* implPtr, void* hWnd) + { + SysUser* pWin = new SysUser(implPtr, (HWND)hWnd); + return pWin; + } + int SetAgent() + { + xstring xfNodeAgentArea = L"agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if (m_agentNode) + { + SetAgentNode(anode, m_agentNode); + } + else + { + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); + if (agent) + { + xstring s = agent.xml(); + m_agentNode = SetAgentNode(anode, s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + SetAgent(); + //重置工具条 + return 1; + } + + int SetEntityData(param p) + { + xml x; + + xaserverarg arg; + + xstring str = m_QueryTxt; + //trace(ele.xml); + //alert(str); + arg.AddArg(L"guid", str); + //trace(strJobID); + if (xaserver::ExecXQuery(L"", L"[list.SysUser.xq]", arg.GetString(), x) == 1) + { + dw_user.AcceptText(); + dw_user.Retrieve(x); + dw_user.Redraw(); + } + return 1; + } + + int OnTreeSelChanged(TEvent* evt, LPARAM p) + { + NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; + + HTREEITEM hItem = nmtv.itemNew.hItem; + + //int wid = tv_usergroup.GetId(); + HTREEITEM hitem = tv_usergroup.GetSelectedItem(); + HTREEITEM rootItem = tv_usergroup.GetRootItem(); + //if (hItem <=0 || hItem == rootItem) + // return 0; + KXMLDOMElement ele = tv_usergroup.GetItemData(hitem); + //trace(L"ok"); + if (ele) + { + xml x; + + xaserverarg arg; + + strJobID = ele.selectSingleNode(L"@JobID").text(); + //trace(ele.xml); + //alert(strJobID); + arg.AddArg(L"guid", strJobID); + //trace(strJobID); + if (xaserver::ExecXQuery(L"", L"[list.SysUser.xq]", arg.GetString(), x) == 1) + { + dw_user.AcceptText(); + dw_user.Retrieve(x); + dw_user.Redraw(); + } + } + + return 1; + } + + int xmImport() + { + + //int wid = tv_usergroup.GetId(); + HTREEITEM hitem = tv_usergroup.GetSelectedItem(); + if (!hitem) + { + alert(L"请选择职位!"); + return 0; + } + OpenWindow(L"dev:xpage[UserImport.vx]"); + //openUrl(L"系统用户.vface/xpage/SysUser/UserImport", this); + return 1; + } + int OnSave() + { + xml x; + + dw_user.DwUpdateAllToEx(x); + xaserverarg arg; + + arg.AddArg(L"content", x.xml()); + arg.AddArg(L"dbmap", L"SysUser.dbmap"); + if (getUrl(L"/sale/data/SysUser/SysUser", arg.GetString(), x) != 1) + { + //trace(L"error:"+x.xml()); + alert(L"保存失败"); + } + else { + if (x.selectSingleNode(L"erroe")) + { + alert(L"保存出错2! "); + return 0; + } + //trace(x.xml()); + dw_user.ResetUpdateStatus(); + MessageBox(GetHWND(), L"保存成功!", L"提示", 0); + } + + /* arg.AddArg(L"xdata",x.xml()); + //arg.AddArg(L"jobguid",strJobID); + //trace(x.xml()); + //trace(strJobID); + //if (getUrl(L"/sale/data/SysUser/SysUser",arg.GetString(),x) != 1) + //trace(xaserver::ExecXAction(GetServerUrl(),L"[SysUser.xa]",arg.GetString(),x)); + if (xaserver::ExecXAction(GetServerUrl(),L"[SysUser.xa]",arg.GetString(),x)!=1) + { + //trace(L"error:"+x.xml()); + alert(L"保存失败"); + } + else{ + if(x.selectSingleNode(L"ERROR")) + { + alert(L"保存出错2! "); + return 0; + } + MessageBox(GetHWND(),L"保存成功!",L"提示",0); + }*/ + return 1; + } + int OnAddRow() + { + //int wid = tv_usergroup.GetId(); + HTREEITEM hitem = tv_usergroup.GetSelectedItem(); + if (hitem == 0) + { + alert(L"请先选择职位类型!"); + } + else + { + int row = dw_user.InsertRow(0); + dw_user.SetItemString(row, L"Status", L"Y"); + } + return 1; + } + + int OnInsertRow() + { + //int wid = tv_usergroup.GetId(); + HTREEITEM hitem = tv_usergroup.GetSelectedItem(); + if (hitem == 0) + { + alert(L"请先选择职位类型!"); + } + else + { + int crow = dw_user.GetRow(); + int row = dw_user.InsertRow(crow); + dw_user.SetItemString(row, L"Status", L"Y"); + } + return 1; + } + + int OnDeleteRow() + { + int row = dw_user.GetRow(); + dw_user.DeleteRow(row); + return 1; + } + + int OnJobType() + { + openUrl(L"组织架构.vface/worknode/Hr/HrJob"); + return 1; + } + + int OnClicked(TEvent* evt, LPARAM p) + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + int row = hdr.row; + int col = hdr.col; + xstring colname = dw_user.GetColumnName(col); + KXMLDOMElement xrow = dw_user.GetRowElement(row); + xstring BindComputer = xrow.selectSingleNode(L"BindComputer").text(); + xaserverarg arg; + + if (BindComputer != L"") + { + arg.AddArg(L"BindComputer", BindComputer); + } + + xstring comdid; + if (colname == L"BindComputer") + { + openUrl(L"系统用户.vface/xpage/SysUser/BindComputer/dialog", arg); + comdid = arg.GetArgString(L"comdid"); + if (comdid == L"ok") + { + xstring strxml = arg.GetArgString(L"xml"); + dw_user.SetItemDisplayString(row, colname, strxml); + dw_user.SetItemString(row, colname, strxml); + dw_user.Redraw(); + } + } + return 1; + } + + int OnResetPass() + { + xaserverarg arg; + + + int row = dw_user.GetRow(); + if (row < 1) return 1; + arg.AddArg(L"user", dw_user.GetItemString(row, L"EmployeeNo")); + + OpenWindow(L"dev:xpage[ResetUserPassDlg.vx]", arg); + return 1; + } + + int Onlog() + { + openUrl(L"/sale/view/SysUser/xpage/SysUser/SysLoginRecord"); + return 1; + } + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + if (comdid == L"Save") OnSave(); + else if (comdid == L"AddRow") OnAddRow(); + else if (comdid == L"InsertRow") OnInsertRow(); + else if (comdid == L"DeleteRow") OnDeleteRow(); + else if (comdid == L"JobType") OnJobType(); + else if (comdid == L"xmImport") xmImport(); + else if (comdid == L"xmLog") Onlog(); + else if (comdid == L"_cb_grid_search") return GridSearchEx(); + else if (comdid == L"xmResetPass") return OnResetPass(); + else if (comdid == L"xmResetPassEx") OpenWindow(L"dev:xpage[SysForcePassward.vx]"); + return 0; + } + + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&SysUser::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&SysUser::OnSetFocus); + //获得树的选择事件 + AttachEvent(L"tv_usergroup", L"TVN_SELCHANGED", (FEvent)&SysUser::OnTreeSelChanged); + //AttachEvent(L"dw_user",L"DWV_ITEMBEINGEDIT",OnClicked); + AttachEvent(L"dw_user", L"DWV_DOUBLECLICKED", (FEvent)&SysUser::OnClicked); + return 1; + } + + int OnInitial() + { + SetAgent(); + + OnAttachEvent(); + return 1; + } + + int onload() + { + m_agentNode = new xnode; + + tv_usergroup = new treeview; + tv_usergroup.setNativePointer(GetControl(L"tv_usergroup")); + dw_user = new xdwgrid; + dw_user.setNativePointer(GetControl(L"dw_user")); + dw_user.SetDataObject(GetServerUrl(), L"dev:sheet[SysUser.tpl/UserList]"); + dw_user.SetReadOnly(true); + dw_user.SetSelectionMode(1); + + OnInitial(); + //int wid = tv_usergroup.GetId(); + HTREEITEM root = tv_usergroup.GetRootItem(); + tv_usergroup.ExpandItem( root); + + xml x; + + x.loadXML(L"<Config/>"); + m_configDoc = x; + rowSearch(L"系统用户.vface/template/SysUser/list"); + GridSearchEx(); + + return 1; + } +}; \ No newline at end of file diff --git a/jrj/project/business/SystemSettings/UserImport.cpp b/jrj/project/business/SystemSettings/UserImport.cpp index 0ef3160..809ca0f 100644 --- a/jrj/project/business/SystemSettings/UserImport.cpp +++ b/jrj/project/business/SystemSettings/UserImport.cpp @@ -6,7 +6,8 @@ #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" -//use "dev:code[SysUser.vx]" + +#include "SysUser.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) UserImport : public xframe @@ -327,7 +328,7 @@ OnInitial(); OnCreateTree(L"00000000-0000-0000-0000-000000000000", 0); //int wid = tv_org.GetId(); - int root = tv_org.GetRootItem(); + HTREEITEM root = tv_org.GetRootItem(); tv_org.ExpandItem(root); OnRetrieve(L"00000000-0000-0000-0000-000000000000"); return 1; -- Gitblit v1.9.3