From f7c01240b27f0ad97feb9115b238d7a44b4b56b2 Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期三, 17 七月 2024 17:06:12 +0800 Subject: [PATCH] update --- jrj/project/business/SystemSettings/SysUser.cpp | 647 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 326 insertions(+), 321 deletions(-) diff --git a/jrj/project/business/SystemSettings/SysUser.cpp b/jrj/project/business/SystemSettings/SysUser.cpp index 51322ba..13952ec 100644 --- a/jrj/project/business/SystemSettings/SysUser.cpp +++ b/jrj/project/business/SystemSettings/SysUser.cpp @@ -1,330 +1,335 @@ -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]" -use "dev:code[pa.tpp]" -use "list.vl" +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <wobject/xdouble.hpp> +#include <xcontrol/xlayersheet.hpp> -unit vbusiness.xpage -[ - SysUser is extend list; - about SysUser - [ - - method: - [ - treeview__ tv_usergroup; - xdwgrid__ dw_user; - xnode__ m_agentNode; - string strJobID; - int SetAgent() - { - string xfNodeAgentArea = "agentarea"; - xnode__ anode = new xnode__; - anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); - var xframeElement = GetElement(); - var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); - if(agent) - { - string s = agent.xml; - SetAgentNodeContent (anode,s); - } - return 1; - } - - //焦点激活处理函数 - int OnSetFocus(ref TEvent evt,int param) - { - SetAgent(); - //重置工具条 - return 1; - } - - int SetEntityData(param p) - { - xml__ x=new xml__; - x.setNativePointer(x.CreateInstance()); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - string str = this.m_QueryTxt; - //trace(ele.xml); - //alert(str); - arg.AddArg("guid",str); - //trace(strJobID); - if (xaserver__::ExecXQuery("","[list.SysUser.xq]",arg.GetString(),x) == 1) - { - dw_user.AcceptText(); - dw_user.Retrieve(x); - dw_user.Redraw(); - } - return 1; - } - - int OnTreeSelChanged(ref TNotifyEvent evt,int p) - { - ref NMTREEVIEW nmtv = evt.pnmh; - int hItem = nmtv.itemNew.hItem; - - int wid = tv_usergroup.GetId(); - int hitem=treeview__::GetSelectedItem(wid); - int rootItem = treeview__::GetRootItem(wid); - //if (hItem <=0 || hItem == rootItem) - // return 0; - msxml::IXMLDOMElement ele = treeview__::GetItemData(wid,hitem); - //trace("ok"); - if (ele) - { - xml__ x=new xml__; - x.setNativePointer(x.CreateInstance()); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - strJobID = ele.selectSingleNode("@JobID").text; - //trace(ele.xml); - //alert(strJobID); - arg.AddArg("guid",strJobID); - //trace(strJobID); - if (xaserver__::ExecXQuery("","[list.SysUser.xq]",arg.GetString(),x) == 1) - { - dw_user.AcceptText(); - dw_user.Retrieve(x); - dw_user.Redraw(); - } - } - - return 1; - } +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" - int xmImport() +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) { - - int wid = tv_usergroup.GetId(); - int hitem=treeview__::GetSelectedItem(wid); - if (!hitem) - { - alert("请选择职位!"); - return 0; - } - OpenWindow("dev:xpage[UserImport.vx]",this); - //openUrl("系统用户.vface/xpage/SysUser/UserImport", this); - return 1; + xstring s = agent.xml(); + m_agentNode = SetAgentNode(anode, s); } - int OnSave() - { - xml__ x=new xml__; - x.setNativePointer(x.CreateInstance()); - dw_user.DwUpdateAllToEx(x.GetXmlDoc()); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("content",x.GetXml()); - arg.AddArg("dbmap","SysUser.dbmap"); - if(getUrl("/sale/data/SysUser/SysUser",arg.GetString(),x)!=1) - { - //trace("error:"+x.GetXml()); - alert("保存失败"); - } - else{ - if(x.GetXmlDoc().selectSingleNode("erroe")) - { - alert("保存出错2! "); - return 0; - } - //trace(x.GetXml()); - dw_user.ResetUpdateStatus(); - win__::MessageBox(GetHWND(),"保存成功!","提示",0); - } - -/* arg.AddArg("xdata",x.GetXml()); - //arg.AddArg("jobguid",strJobID); - //trace(x.GetXml()); - //trace(strJobID); - //if (getUrl("/sale/data/SysUser/SysUser",arg.GetString(),x) != 1) - //trace(xaserver__::ExecXAction(GetServerUrl(),"[SysUser.xa]",arg.GetString(),x)); - if (xaserver__::ExecXAction(GetServerUrl(),"[SysUser.xa]",arg.GetString(),x)!=1) - { - //trace("error:"+x.GetXml()); - alert("保存失败"); - } - else{ - if(x.GetXmlDoc().selectSingleNode("ERROR")) - { - alert("保存出错2! "); - return 0; - } - win__::MessageBox(GetHWND(),"保存成功!","提示",0); - }*/ - return 1; - } - int OnAddRow() - { - int wid = tv_usergroup.GetId(); - int hitem=treeview__::GetSelectedItem(wid); - if(hitem==0) - { - alert("请先选择职位类型!"); - } - else - { - int row = dw_user.InsertRow(0); - dw_user.SetItemString(row,"Status","Y"); - } - return 1; - } - - int OnInsertRow() - { - int wid = tv_usergroup.GetId(); - int hitem=treeview__::GetSelectedItem(wid); - if(hitem==0) - { - alert("请先选择职位类型!"); - } - else - { - int crow=dw_user.GetRow(); - int row=dw_user.InsertRow(crow); - dw_user.SetItemString(row,"Status","Y"); - } - return 1; - } + } + return 1; + } - int OnDeleteRow() - { - int row=dw_user.GetRow(); - dw_user.DeleteRow(row); - return 1; - } - - int OnJobType() - { - openUrl("组织架构.vface/worknode/Hr/HrJob"); - return 1; - } - - int OnClicked(ref TNotifyEvent evt,int p) - { - ref DWNMHDR hdr = evt.pnmh; - int row = hdr.row; - int col=hdr.col ; - string colname=dw_user.GetColumnName(col); - msxml::IXMLDOMElement xrow = dw_user.GetRowElement(row); - string BindComputer=xrow.selectSingleNode("BindComputer").text; - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - if(BindComputer != "" ) - { - arg.AddArg("BindComputer",BindComputer); - } - - string comdid; - if(colname=="BindComputer") - { - openUrl("系统用户.vface/xpage/SysUser/BindComputer/dialog", arg); - comdid = arg.GetArgString("comdid"); - if(comdid=="ok") - { - string strxml = arg.GetArgString("xml"); - dw_user.SetItemDisplayString(row,colname,strxml); - dw_user.SetItemString(row,colname,strxml); - dw_user.Redraw(); - } - } - return 1; - } - - int OnResetPass() - { - xaserverarg__ arg = new xaserverarg__; - int pt = arg.CreateInstance(); - arg.setNativePointer(pt); - - int row = dw_user.GetRow(); - if(row < 1) return 1; - arg.AddArg("user", dw_user.GetItemString(row,"EmployeeNo")); - - OpenWindow("dev:xpage[ResetUserPassDlg.vx]",pt); - return 1; - } - - int Onlog() - { - openUrl("/sale/view/SysUser/xpage/SysUser/SysLoginRecord"); - return 1; - } - //命令发布函数 - int OnCmdDispatch(string comdid) - { - if (comdid =="Save") OnSave(); - else if (comdid =="AddRow") OnAddRow(); - else if (comdid =="InsertRow") OnInsertRow(); - else if (comdid =="DeleteRow") OnDeleteRow(); - else if (comdid =="JobType") OnJobType(); - else if (comdid=="xmImport") xmImport(); - else if (comdid == "xmLog") Onlog(); - else if(comdid=="_cb_grid_search") return GridSearchEx(); - else if(comdid=="xmResetPass") return OnResetPass(); - else if(comdid=="xmResetPassEx") OpenWindow("dev:xpage[SysForcePassward.vx]"); - return 0; - } - - - //命令处理事件 - int OnXCommand(ref TXCommandEvent evt,int param) - { - return OnCmdDispatch(evt.pStrID); - } + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + SetAgent(); + //重置工具条 + return 1; + } - int OnAttachEvent() - { - //绑定工具条点击事件 - AttachEvent("WM_XCOMMAND",OnXCommand); - //获取焦点事件,用于重置工具条 - AttachEvent("WM_SETFOCUS",OnSetFocus); - //获得树的选择事件 - AttachEvent("tv_usergroup", "TVN_SELCHANGED",OnTreeSelChanged); - //AttachEvent("dw_user","DWV_ITEMBEINGEDIT",OnClicked); - AttachEvent("dw_user","DWV_DOUBLECLICKED",OnClicked); - } - - int OnInitial() - { - SetAgent(); + int SetEntityData(param p) + { + xml x; - OnAttachEvent(); - return 1; - } - - int onload() + 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) { - m_agentNode = new xnode__; - - tv_usergroup = new treeview__; - tv_usergroup.setNativePointer(this.GetControl("tv_usergroup")); - dw_user = new xdwgrid__; - dw_user.setNativePointer(this.GetControl("dw_user")); - dw_user.SetDataObject(GetServerUrl(),"dev:sheet[SysUser.tpl/UserList]"); - dw_user.SetReadOnly(true); - dw_user.SetSelectionMode(1); - - OnInitial(); - int wid = tv_usergroup.GetId(); - int root = treeview__::GetRootItem(wid); - treeview__::ExpandItem(wid,root); - - xml__ x=new xml__; - x.setNativePointer(xml__::CreateInstance()); - x.LoadXml("<Config/>"); - this.m_configDoc = x.GetXmlDoc(); - rowSearch("系统用户.vface/template/SysUser/list"); - GridSearchEx(); - - return 1; + dw_user.AcceptText(); + dw_user.Retrieve(x); + dw_user.Redraw(); } - ] - - ] -] \ No newline at end of file + } + + 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 -- Gitblit v1.9.3