#include #include #include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include "SysUser.hpp" 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) { 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(); HTREEITEM hitem = tv_org.GetSelectedItem(); KXMLDOMElement ele = tv_org.GetItemData(hitem); while (row > 0) { //trace(row); KXMLDOMElement e = dw_list.GetRowElement(row); trace(e.xml()); xstring sEmployeeNo = e.selectSingleNode(L"EmployeeNo").text() + (xstring)L""; xstring sOldEmpNo = e.selectSingleNode(L"OldEmpNo").text() + (xstring)L""; xstring sPersonID = e.selectSingleNode(L"PersonID").text() + (xstring)L""; xstring sPersonName = e.selectSingleNode(L"Name").text() + (xstring)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"") { KXMLDOMElement ex = xx.documentElement(); sPassWord = L""+ex.text(); } }*/ 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( 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++) { 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") { 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; } int OnCreateTree(xstring id, HTREEITEM parentitem) { //while (tv_1.GetRootItem()>0) // tv_1.DeleteItem(tv_1.GetRootItem()); //int wid = tv_org.GetId(); xml x; x.loadXML(L"" + id + L"·ï»Ë¼¯ÍÅOrg"); //KXMLDOMDocument root = x; //KXMLDOMElement RDoc = x.documentElement(); //KXMLDOMElement ele = RDoc.SelectSingleNode(L"//Org"); KXMLDOMElement ele = x.selectSingleNode(L"//item"); HTREEITEM hItem = tv_org.InsertChildItem( 0, L"·ï»Ë¼¯ÍÅ", ele, 15, 4); tv_org.SetItemChild1(hItem, 1); return 1; /*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;inotify.pnmh; HTREEITEM sitem = nmtv.itemNew.hItem; HCURSOR hCursor = xutil::SetCursorWait(); //xstring id = tv_org.GetItemData(tv_org.GetId(), sitem); KXMLDOMElement ele = tv_org.GetItemData(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(); HTREEITEM 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 = 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(); HTREEITEM root = tv_org.GetRootItem(); tv_org.ExpandItem(root); OnRetrieve(L"00000000-0000-0000-0000-000000000000"); return 1; } };