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