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/UserImport.cpp | 634 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 320 insertions(+), 314 deletions(-) diff --git a/jrj/project/business/SystemSettings/UserImport.cpp b/jrj/project/business/SystemSettings/UserImport.cpp index 801196b..0ef3160 100644 --- a/jrj/project/business/SystemSettings/UserImport.cpp +++ b/jrj/project/business/SystemSettings/UserImport.cpp @@ -1,329 +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[SysUser.vx]" -use "frame.vl" -use "file.vl" -unit vbusiness.xpage -[ - UserImport is extend frame; - about UserImport - [ - field: - [ - SysUser lw_obj; - xdwgrid__ dw_list; - treeview__ tv_org; - xnode__ m_agentNode; //Agent Condition - string m_agentCond; //Agent Node - string m_sTxt; - string is_orgid; - ] - - method: - [ - int SetAgent() +#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" +//use "dev:code[SysUser.vx]" + +using xml = KXMLDOMDocument; +class __declspec(dllexport) UserImport : public xframe +{ +public: + + + SysUser lw_obj; + xdwgrid dw_list; + xtreeview tv_org; + xnode m_agentNode; //Agent Condition + xstring m_agentCond; //Agent Node + xstring m_sTxt; + xstring is_orgid; +public: + UserImport(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} +public: + static UserImport* CreateInstance(void* implPtr, void* hWnd) + { + UserImport* pWin = new UserImport(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) { - string xfNodeAgentArea = "agentarea"; - xnode__ anode = new xnode__; - anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); - var xframeElement = GetElement(); - var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); - if(agent) + xstring s = agent.xml(); + m_agentNode = SetAgentNode(anode, s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + SetAgent(); + //重置工具条 + return 1; + } + + int OnRetrieve(xstring ls_orgid) + { + + xml x; + + xaserverarg arg; + + arg.AddArg(L"OrgID", ls_orgid); + //trace(ls_orgid); + //if (xaserver::ExecXQuery(GetServerUrl(),L"[MSSqlHrEmployee.xq]",arg.GetString(),x) == 1) + if (xurl::get(L"SysUser.config/UserSelect.xq", arg.GetString(), x) == 1) + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + //trace(x.xml()); + return 1; + } + + int OnOK() + { + if (GetWinParam()) + { + lw_obj = new SysUser; + lw_obj.setNativePointer(GetParam()); + lw_obj = GetParam(); + } + else + return 0; + + int row = dw_list.GetNextSelectRow(1); + //trace(row); + if (row < 1) + { + alert(L"请选择人员!"); + return 1; + } + + xstring sPositionID, sPositionName; + xstring sOrgID, sOrgName; + xstring sJobID, sJobName; + int wid = lw_obj.tv_usergroup.GetId(); + int hitem = tv_org.GetSelectedItem(wid); + KXMLDOMElement ele = tv_org.GetItemData(wid, hitem); + + + while (row > 0) + { + //trace(row); + KXMLDOMElement e = dw_list.GetRowElement(row); + trace(e.xml()); + xstring sEmployeeNo = e.selectSingleNode(L"EmployeeNo").text() + L""; + xstring sOldEmpNo = e.selectSingleNode(L"OldEmpNo").text() + L""; + xstring sPersonID = e.selectSingleNode(L"PersonID").text() + L""; + xstring sPersonName = e.selectSingleNode(L"Name").text() + L""; + xstring sPassWord = xutil::MD5(sOldEmpNo); + + /* + xml xx; + x + xaserverarg arg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg(L"userno",sOldEmpNo); + arg.AddArg(L"password",sPassWord); + if(xurl::get(L"/sale/data/SysUser/GetOldPassWord",arg.GetString(),xx)==1) + { + if(xx.xml()!=L"") { - string s = agent.xml; - SetAgentNodeContent (anode,s); + KXMLDOMElement ex = xx.documentElement(); + sPassWord = L""+ex.text(); } - return 1; - } + }*/ - //焦点激活处理函数 - int OnSetFocus(ref TEvent evt,int param) + int nRow = lw_obj.dw_user.InsertRow(0); + lw_obj.dw_user.SetItemString(nRow, L"EmployeeNo", sEmployeeNo); + lw_obj.dw_user.SetItemString(nRow, L"UserName", sOldEmpNo); + lw_obj.dw_user.SetItemString(nRow, L"PassWord", sPassWord); + lw_obj.dw_user.SetItemString(nRow, L"PersonID", sPersonID); + lw_obj.dw_user.SetItemDisplayString(nRow, L"PersonID", sPersonName); + lw_obj.dw_user.SetItemString(nRow, L"Status", L"Y"); + lw_obj.dw_user.SetItemDisplayString(nRow, L"Status", L"有效"); + lw_obj.dw_user.SetItemString(nRow, L"OldEmpNo", sOldEmpNo); + /* + lw_obj.dw_user.SetItemString(nRow,L"PositionID",sPositionID); + lw_obj.dw_user.SetItemDisplayString(nRow,L"PositionID",sPositionName); + lw_obj.dw_user.SetItemString(nRow,L"OrgID",sOrgID); + lw_obj.dw_user.SetItemDisplayString(nRow,L"OrgID",sOrgName); + lw_obj.dw_user.SetItemString(nRow,L"JobID",sJobID); + lw_obj.dw_user.SetItemDisplayString(nRow,L"JobID",sJobName); + + lw_obj.dw_user.SetItemString(nRow,L"Status",L"Y"); + lw_obj.dw_user.SetItemDisplayString(nRow,L"Status",L"有效"); + xstring sdate = TApp::GetCurDate()+L""; + lw_obj.dw_user.SetItemString(nRow,L"StartDate",sdate+L""); + lw_obj.dw_user.SetItemString(nRow,L"EndDate",L"2050-12-31");*/ + + row = dw_list.GetNextSelectRow(row + 1); + //trace(row); + } + CloseWindow(); + return 1; + } + int OnSubTree(xstring id, HTREEITEM parentitem) + { + int wid = tv_org.GetId(); + if (tv_org.GetChildItem(wid, parentitem) > 0) return 1; + xml x; + + xaserverarg arg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg(L"sguid", id); + if (xurl::post(L"/sale/data/OrganizationStruct/tree.child.OrgChart", arg.GetString(), x) != 1) + { + trace(x.xml()); + return -1; + } + //trace(x.xml()); + var list = x.selectNodes(L"//item"); + int i = 0, s = list.length; + KXMLDOMElement xitem; + xstring sName; + xstring sguid; + xstring stype; + if (s > 0) + { + for (i = 0; i < s; i++) { - SetAgent(); - //重置工具条 - return 1; - } - - int OnRetrieve(string ls_orgid) - { - - xml__ x=new xml__; - x.setNativePointer(x.CreateInstance()); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("OrgID",ls_orgid); - //trace(ls_orgid); - //if (xaserver__::ExecXQuery(GetServerUrl(),"[MSSqlHrEmployee.xq]",arg.GetString(),x) == 1) - if (url::get("SysUser.config/UserSelect.xq",arg.GetString(),x) == 1) + xitem = list.item(i); + sName = xitem.selectSingleNode(L"name").text(); + sguid = xitem.selectSingleNode(L"id").text(); + stype = xitem.selectSingleNode(L"typ").text(); + //int curItem = tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4); + int curItem = 0; + if (stype == L"Org") { - dw_list.Retrieve(x); - dw_list.Redraw(); - } - //trace(x.GetXml()); - return 1; - } - - int OnOK() - { - if (GetParam()) - { - lw_obj = new SysUser; - lw_obj.setNativePointer(GetParam()); - lw_obj = GetParam(); + curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 15, 4); + tv_org.SetItemChild1(wid, curItem, 1); } else - return 0; + { + curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 21, 21); + } + //OnSubTree(sguid,curItem); + } + } + return 1; + } - int row = dw_list.GetNextSelectRow(1); - trace(row); - if (row<1) - { - alert("请选择人员!"); - return 1; - } - - string sPositionID,sPositionName; - string sOrgID,sOrgName; - string sJobID,sJobName; - int wid = lw_obj.tv_usergroup.GetId(); - int hitem=treeview__::GetSelectedItem(wid); - msxml::IXMLDOMElement ele = treeview__::GetItemData(wid,hitem); + int OnCreateTree(xstring id, int parentitem) + { + //while (tv_1.GetRootItem()>0) + // tv_1.DeleteItem(tv_1.GetRootItem()); + int wid = tv_org.GetId(); + xml x; - - while (row>0) - { - trace(row); - msxml::IXMLDOMElement e = dw_list.GetRowElement(row); - trace(e.xml); - string sEmployeeNo = e.selectSingleNode("EmployeeNo").text+""; - string sOldEmpNo = e.selectSingleNode("OldEmpNo").text+""; - string sPersonID = e.selectSingleNode("PersonID").text+""; - string sPersonName = e.selectSingleNode("Name").text+""; - string sPassWord = xutil__::MD5(sOldEmpNo); - - /* - xml__ xx = new xml__; - xx.setNativePointer(xml__ ::CreateInstance()); - xaserverarg__ arg=new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("userno",sOldEmpNo); - arg.AddArg("password",sPassWord); - if(url::get("/sale/data/SysUser/GetOldPassWord",arg.GetString(),xx)==1) - { - if(xx.GetXml()!="") - { - msxml::IXMLDOMElement ex = xx.GetXmlDoc().documentElement; - sPassWord = ""+ex.text; - } - }*/ + x.loadXML(L"<item><id>" + id + L"</id><no/><name>凤凰集团</name><typ>Org</typ></item>"); + //KXMLDOMDocument root = x; + //KXMLDOMElement RDoc = x.documentElement(); + //KXMLDOMElement ele = RDoc.SelectSingleNode(L"//Org"); + KXMLDOMElement ele = x.selectSingleNode(L"//item"); + int hItem = tv_org.InsertChildItemEx(wid, 0, L"凤凰集团", ele, 15, 4); + tv_org.SetItemChild1(wid, hItem, 1); + return 1; - int nRow = lw_obj.dw_user.InsertRow(0); - lw_obj.dw_user.SetItemString(nRow,"EmployeeNo",sEmployeeNo); - lw_obj.dw_user.SetItemString(nRow,"UserName",sOldEmpNo); - lw_obj.dw_user.SetItemString(nRow,"PassWord",sPassWord); - lw_obj.dw_user.SetItemString(nRow,"PersonID",sPersonID); - lw_obj.dw_user.SetItemDisplayString(nRow,"PersonID",sPersonName); - lw_obj.dw_user.SetItemString(nRow,"Status","Y"); - lw_obj.dw_user.SetItemDisplayString(nRow,"Status","有效"); - lw_obj.dw_user.SetItemString(nRow,"OldEmpNo",sOldEmpNo); - /* - lw_obj.dw_user.SetItemString(nRow,"PositionID",sPositionID); - lw_obj.dw_user.SetItemDisplayString(nRow,"PositionID",sPositionName); - lw_obj.dw_user.SetItemString(nRow,"OrgID",sOrgID); - lw_obj.dw_user.SetItemDisplayString(nRow,"OrgID",sOrgName); - lw_obj.dw_user.SetItemString(nRow,"JobID",sJobID); - lw_obj.dw_user.SetItemDisplayString(nRow,"JobID",sJobName); - - lw_obj.dw_user.SetItemString(nRow,"Status","Y"); - lw_obj.dw_user.SetItemDisplayString(nRow,"Status","有效"); - string sdate = TApp::GetCurDate()+""; - lw_obj.dw_user.SetItemString(nRow,"StartDate",sdate+""); - lw_obj.dw_user.SetItemString(nRow,"EndDate","2050-12-31");*/ - - row = dw_list.GetNextSelectRow(row + 1); - trace(row); - } - CloseWindow(); - return 1; - } - int OnSubTree(string id,int parentitem) + /*xaserverarg arg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg(L"sguid",id); + if(xurl::post(L"/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) + { + trace(x.xml()); + return -1; + } + //trace(x.xml()); + var list=x.selectNodes(L"//item"); + int i=0,s=list.length; + KXMLDOMElement xitem; + xstring sName; + xstring sguid; + if (s >0) + { + for (i=0;i<s;i++) { - int wid = tv_org.GetId(); - if (treeview__::GetChildItem(wid,parentitem) >0) return 1; - xml__ x = new xml__; - x.setNativePointer(xml__ ::CreateInstance()); - xaserverarg__ arg=new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("sguid",id); - if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) - { - trace(x.GetXml()); - return -1; - } - //trace(x.GetXml()); - var list=x.GetXmlDoc().selectNodes("//item"); - int i=0,s=list.length; - msxml::IXMLDOMElement xitem; - string sName; - string sguid; - string stype; - if (s >0) - { - for (i=0;i<s;i++) - { - xitem= list.item(i); - sName = xitem.SelectSingleNode("name").text; - sguid = xitem.SelectSingleNode("id").text; - stype = xitem.SelectSingleNode("typ").text; - //int curItem = tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4); - int curItem=0; - if (stype =="Org") - { - curItem=tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4); - tv_org.SetItemChild1(wid,curItem,1); - } - else - { - curItem=tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,21,21); - } - //OnSubTree(sguid,curItem); - } - } - return 1; + xitem= list.item(i); + sName = xitem.SelectSingleNode(L"@name").text(); + sguid = xitem.SelectSingleNode(L"@id").text(); + int curItem = tv_org.InsertChildItemEx(wid,hItem,sName,xitem,15,4); + tv_org.SetItemChild1(wid,curItem,1); + //OnSubTree(sguid,curItem); } - - int OnCreateTree(string id,int parentitem) - { - //while (tv_1.GetRootItem()>0) - // tv_1.DeleteItem(tv_1.GetRootItem()); - int wid = tv_org.GetId(); - xml__ x = new xml__; - x.setNativePointer(xml__ ::CreateInstance()); - x.LoadXml("<item><id>"+id+"</id><no/><name>凤凰集团</name><typ>Org</typ></item>"); - //msxml::IXMLDOMDocument root = x.GetXmlDoc(); - //msxml::IXMLDOMElement RDoc = x.GetXmlDoc().documentElement; - //msxml::IXMLDOMElement ele = RDoc.SelectSingleNode("//Org"); - msxml::IXMLDOMElement ele = x.GetXmlDoc().SelectSingleNode("//item"); - int hItem = treeview__::InsertChildItemEx(wid,0,"凤凰集团",ele,15,4); - treeview__::SetItemChild1(wid,hItem,1); - return 1; - - /*xaserverarg__ arg=new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("sguid",id); - if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) - { - trace(x.GetXml()); - return -1; - } - //trace(x.GetXml()); - var list=x.GetXmlDoc().selectNodes("//item"); - int i=0,s=list.length; - msxml::IXMLDOMElement xitem; - string sName; - string sguid; - if (s >0) - { - for (i=0;i<s;i++) - { - xitem= list.item(i); - sName = xitem.SelectSingleNode("@name").text; - sguid = xitem.SelectSingleNode("@id").text; - int curItem = tv_org.InsertChildItemEx(wid,hItem,sName,xitem,15,4); - tv_org.SetItemChild1(wid,curItem,1); - //OnSubTree(sguid,curItem); - } - } - return 1;*/ - } - - int OnTreeExpanding(ref TNotifyEvent evt,int p) - { - ref NMTREEVIEW nmtv = evt.pnmh; - int sitem = nmtv.itemNew.hItem; - - int hCursor = xutil__::SetCursorWait(); - //string id = treeview__::GetItemData(tv_org.GetId(), sitem); - msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_org.GetId(),sitem); - string id = ele.SelectSingleNode("id").text; - OnSubTree(id, sitem); - xutil__::RestoreCursor(hCursor); - return 1; - } - - int OnTreeSelChanged(ref TXCommandEvent evt,int p) - { - int wid = tv_org.GetId(); - int hitem=treeview__::GetSelectedItem(wid); - msxml::IXMLDOMElement ele = treeview__::GetItemData(wid,hitem); - if (ele) - { - string ls_orgid = ele.SelectSingleNode("id").text; - is_orgid = ls_orgid; - OnRetrieve(ls_orgid); - } - return 1; - } - //命令发布函数 - int OnCmdDispatch(string comdid) - { - if (comdid=="cb_import") - OnOK(); - else if (comdid=="cb_close") - CloseWindow(); - 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("tv_org", "TVN_ITEMEXPANDING",OnTreeExpanding); - } - - int OnInitial() - { - SetAgent(); - OnAttachEvent(); - return 1; - } - - int onload() - { - tv_org = new treeview__ ; - tv_org.setNativePointer(this.GetControl("tv_org")); - dw_list = new xdwgrid__; - dw_list.setNativePointer(this.GetControl("dw_list")); - dw_list.openUrl("系统用户.vface/template/SysUser/EmpSelect"); - dw_list.SetSelectionMode(3); //3 - dw_list.SetReadOnly(true); + } + return 1;*/ + } - OnInitial(); - OnCreateTree("00000000-0000-0000-0000-000000000000", 0); - int wid = tv_org.GetId(); - int root = treeview__::GetRootItem(wid); - treeview__::ExpandItem(wid,root); - OnRetrieve("00000000-0000-0000-0000-000000000000"); - return 1; - } - ] + int OnTreeExpanding(TEvent* evt, LPARAM p) + { - ] -] \ No newline at end of file + NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; + HTREEITEM sitem = nmtv.itemNew.hItem; + + HCURSOR hCursor = xutil::SetCursorWait(); + //xstring id = tv_org.GetItemData(tv_org.GetId(), sitem); + KXMLDOMElement ele = tv_org.GetItemData(tv_org.GetId(), sitem); + xstring id = ele.selectSingleNode(L"id").text(); + OnSubTree(id, sitem); + xutil::RestoreCursor(hCursor); + return 1; + } + + int OnTreeSelChanged(TEvent* evt, LPARAM p) + { + //int wid = tv_org.GetId(); + int hitem = tv_org.GetSelectedItem(); + KXMLDOMElement ele = tv_org.GetItemData(hitem); + if (ele) + { + xstring ls_orgid = ele.selectSingleNode(L"id").text(); + is_orgid = ls_orgid; + OnRetrieve(ls_orgid); + } + return 1; + } + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + if (comdid == L"cb_import") + OnOK(); + else if (comdid == L"cb_close") + CloseWindow(); + return 0; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&UserImport::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&UserImport::OnSetFocus); + //获得树的选择事件 + AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&UserImport::OnTreeSelChanged); + AttachEvent(L"tv_org", L"TVN_ITEMEXPANDING", (FEvent)&UserImport::OnTreeExpanding); + return 1; + } + + int OnInitial() + { + SetAgent(); + OnAttachEvent(); + return 1; + } + + int onload() + { + tv_org = new treeview; + tv_org.setNativePointer(GetControl(L"tv_org")); + dw_list = new xdwgrid; + dw_list.setNativePointer(GetControl(L"dw_list")); + dw_list.openUrl(L"系统用户.vface/template/SysUser/EmpSelect"); + dw_list.SetSelectionMode(3); //3 + dw_list.SetReadOnly(true); + + OnInitial(); + OnCreateTree(L"00000000-0000-0000-0000-000000000000", 0); + //int wid = tv_org.GetId(); + int root = tv_org.GetRootItem(); + tv_org.ExpandItem(root); + OnRetrieve(L"00000000-0000-0000-0000-000000000000"); + return 1; + } +}; \ No newline at end of file -- Gitblit v1.9.3