| | |
| | | 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; |
| | | ] |
| | | #include <wobject/xstring.hpp> |
| | | #include <xcontrol/xtreeview.hpp> |
| | | #include <xcontrol/xdwgrid.hpp> |
| | | #include <wobject/xdouble.hpp> |
| | | #include <xcontrol/xlayersheet.hpp> |
| | | |
| | | method: |
| | | [ |
| | | #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() |
| | | { |
| | | string xfNodeAgentArea = "agentarea"; |
| | | xnode__ anode = new xnode__; |
| | | anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); |
| | | var xframeElement = GetElement(); |
| | | var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); |
| | | 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 s = agent.xml; |
| | | SetAgentNodeContent (anode,s); |
| | | xstring s = agent.xml(); |
| | | m_agentNode = SetAgentNode(anode, s); |
| | | } |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | //焦点激活处理函数 |
| | | int OnSetFocus(ref TEvent evt,int param) |
| | | int OnSetFocus(TEvent* evt, LPARAM param) |
| | | { |
| | | SetAgent(); |
| | | //重置工具条 |
| | | return 1; |
| | | } |
| | | |
| | | int OnRetrieve(string ls_orgid) |
| | | int OnRetrieve(xstring ls_orgid) |
| | | { |
| | | |
| | | xml__ x=new xml__; |
| | | x.setNativePointer(x.CreateInstance()); |
| | | xaserverarg__ arg = new xaserverarg__; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | arg.AddArg("OrgID",ls_orgid); |
| | | xml x; |
| | | |
| | | xaserverarg arg; |
| | | |
| | | arg.AddArg(L"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) |
| | | //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.GetXml()); |
| | | //trace(x.xml()); |
| | | return 1; |
| | | } |
| | | |
| | | int OnOK() |
| | | { |
| | | if (GetParam()) |
| | | if (GetWinParam()) |
| | | { |
| | | lw_obj = new SysUser; |
| | | lw_obj.setNativePointer(GetParam()); |
| | |
| | | return 0; |
| | | |
| | | int row = dw_list.GetNextSelectRow(1); |
| | | trace(row); |
| | | //trace(row); |
| | | if (row<1) |
| | | { |
| | | alert("请选择人员!"); |
| | | alert(L"请选择人员!"); |
| | | return 1; |
| | | } |
| | | |
| | | string sPositionID,sPositionName; |
| | | string sOrgID,sOrgName; |
| | | string sJobID,sJobName; |
| | | xstring sPositionID, sPositionName; |
| | | xstring sOrgID, sOrgName; |
| | | xstring sJobID, sJobName; |
| | | int wid = lw_obj.tv_usergroup.GetId(); |
| | | int hitem=treeview__::GetSelectedItem(wid); |
| | | msxml::IXMLDOMElement ele = treeview__::GetItemData(wid,hitem); |
| | | int hitem = tv_org.GetSelectedItem(wid); |
| | | KXMLDOMElement ele = tv_org.GetItemData(wid, hitem); |
| | | |
| | | |
| | | 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); |
| | | //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 = new xml__; |
| | | xx.setNativePointer(xml__ ::CreateInstance()); |
| | | xaserverarg__ arg=new xaserverarg__; |
| | | xml xx; |
| | | x |
| | | xaserverarg arg; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | arg.AddArg("userno",sOldEmpNo); |
| | | arg.AddArg("password",sPassWord); |
| | | if(url::get("/sale/data/SysUser/GetOldPassWord",arg.GetString(),xx)==1) |
| | | arg.AddArg(L"userno",sOldEmpNo); |
| | | arg.AddArg(L"password",sPassWord); |
| | | if(xurl::get(L"/sale/data/SysUser/GetOldPassWord",arg.GetString(),xx)==1) |
| | | { |
| | | if(xx.GetXml()!="") |
| | | if(xx.xml()!=L"") |
| | | { |
| | | msxml::IXMLDOMElement ex = xx.GetXmlDoc().documentElement; |
| | | sPassWord = ""+ex.text; |
| | | KXMLDOMElement ex = xx.documentElement(); |
| | | sPassWord = L""+ex.text(); |
| | | } |
| | | }*/ |
| | | |
| | | 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, 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,"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,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,"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");*/ |
| | | 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); |
| | | //trace(row); |
| | | } |
| | | CloseWindow(); |
| | | return 1; |
| | | } |
| | | int OnSubTree(string id,int parentitem) |
| | | int OnSubTree(xstring id, HTREEITEM parentitem) |
| | | { |
| | | 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__; |
| | | if (tv_org.GetChildItem(wid, parentitem) > 0) return 1; |
| | | xml x; |
| | | |
| | | xaserverarg arg; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | arg.AddArg("sguid",id); |
| | | if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) |
| | | arg.AddArg(L"sguid", id); |
| | | if (xurl::post(L"/sale/data/OrganizationStruct/tree.child.OrgChart", arg.GetString(), x) != 1) |
| | | { |
| | | trace(x.GetXml()); |
| | | trace(x.xml()); |
| | | return -1; |
| | | } |
| | | //trace(x.GetXml()); |
| | | var list=x.GetXmlDoc().selectNodes("//item"); |
| | | //trace(x.xml()); |
| | | var list = x.selectNodes(L"//item"); |
| | | int i=0,s=list.length; |
| | | msxml::IXMLDOMElement xitem; |
| | | string sName; |
| | | string sguid; |
| | | string stype; |
| | | KXMLDOMElement xitem; |
| | | xstring sName; |
| | | xstring sguid; |
| | | xstring 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; |
| | | 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 =="Org") |
| | | if (stype == L"Org") |
| | | { |
| | | curItem=tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4); |
| | | tv_org.SetItemChild1(wid,curItem,1); |
| | |
| | | return 1; |
| | | } |
| | | |
| | | int OnCreateTree(string id,int parentitem) |
| | | int OnCreateTree(xstring 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); |
| | | xml x; |
| | | |
| | | 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; |
| | | |
| | | /*xaserverarg__ arg=new xaserverarg__; |
| | | /*xaserverarg arg; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | arg.AddArg("sguid",id); |
| | | if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) |
| | | arg.AddArg(L"sguid",id); |
| | | if(xurl::post(L"/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) |
| | | { |
| | | trace(x.GetXml()); |
| | | trace(x.xml()); |
| | | return -1; |
| | | } |
| | | //trace(x.GetXml()); |
| | | var list=x.GetXmlDoc().selectNodes("//item"); |
| | | //trace(x.xml()); |
| | | var list=x.selectNodes(L"//item"); |
| | | int i=0,s=list.length; |
| | | msxml::IXMLDOMElement xitem; |
| | | string sName; |
| | | string sguid; |
| | | KXMLDOMElement xitem; |
| | | xstring sName; |
| | | xstring sguid; |
| | | if (s >0) |
| | | { |
| | | for (i=0;i<s;i++) |
| | | { |
| | | xitem= list.item(i); |
| | | sName = xitem.SelectSingleNode("@name").text; |
| | | sguid = xitem.SelectSingleNode("@id").text; |
| | | 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); |
| | |
| | | return 1;*/ |
| | | } |
| | | |
| | | int OnTreeExpanding(ref TNotifyEvent evt,int p) |
| | | int OnTreeExpanding(TEvent* evt, LPARAM 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; |
| | | 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); |
| | | xutil::RestoreCursor(hCursor); |
| | | return 1; |
| | | } |
| | | |
| | | int OnTreeSelChanged(ref TXCommandEvent evt,int p) |
| | | int OnTreeSelChanged(TEvent* evt, LPARAM p) |
| | | { |
| | | int wid = tv_org.GetId(); |
| | | int hitem=treeview__::GetSelectedItem(wid); |
| | | msxml::IXMLDOMElement ele = treeview__::GetItemData(wid,hitem); |
| | | //int wid = tv_org.GetId(); |
| | | int hitem = tv_org.GetSelectedItem(); |
| | | KXMLDOMElement ele = tv_org.GetItemData(hitem); |
| | | if (ele) |
| | | { |
| | | string ls_orgid = ele.SelectSingleNode("id").text; |
| | | xstring ls_orgid = ele.selectSingleNode(L"id").text(); |
| | | is_orgid = ls_orgid; |
| | | OnRetrieve(ls_orgid); |
| | | } |
| | | return 1; |
| | | } |
| | | //命令发布函数 |
| | | int OnCmdDispatch(string comdid) |
| | | int OnCmdDispatch(xstring comdid) |
| | | { |
| | | if (comdid=="cb_import") |
| | | if (comdid == L"cb_import") |
| | | OnOK(); |
| | | else if (comdid=="cb_close") |
| | | else if (comdid == L"cb_close") |
| | | CloseWindow(); |
| | | return 0; |
| | | } |
| | | |
| | | //命令处理事件 |
| | | int OnXCommand(ref TXCommandEvent evt,int p) |
| | | int OnXCommand(TEvent* evt, LPARAM param) |
| | | { |
| | | return OnCmdDispatch(evt.pStrID); |
| | | return OnCmdDispatch(evt->xcommand.pStrID); |
| | | } |
| | | |
| | | int OnAttachEvent() |
| | | { |
| | | //绑定工具条点击事件 |
| | | AttachEvent("WM_XCOMMAND",OnXCommand); |
| | | AttachEvent(L"WM_XCOMMAND", (FEvent)&UserImport::OnXCommand); |
| | | //获取焦点事件,用于重置工具条 |
| | | AttachEvent("WM_SETFOCUS",OnSetFocus); |
| | | AttachEvent(L"WM_SETFOCUS", (FEvent)&UserImport::OnSetFocus); |
| | | //获得树的选择事件 |
| | | AttachEvent("tv_org", "TVN_SELCHANGED",OnTreeSelChanged); |
| | | AttachEvent("tv_org", "TVN_ITEMEXPANDING",OnTreeExpanding); |
| | | AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&UserImport::OnTreeSelChanged); |
| | | AttachEvent(L"tv_org", L"TVN_ITEMEXPANDING", (FEvent)&UserImport::OnTreeExpanding); |
| | | return 1; |
| | | } |
| | | |
| | | int OnInitial() |
| | |
| | | |
| | | 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"); |
| | | 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("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"); |
| | | 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; |
| | | } |
| | | ] |
| | | |
| | | ] |
| | | ] |
| | | }; |