#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"
|
|
#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() + 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"")
|
{
|
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"<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");
|
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;i<s;i++)
|
{
|
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);
|
}
|
}
|
return 1;*/
|
}
|
|
int OnTreeExpanding(TEvent* evt, LPARAM p)
|
{
|
|
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(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;
|
}
|
};
|