#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 "HrPosition.hpp"
|
|
using xml = KXMLDOMDocument;
|
class __declspec(dllexport) HrPositionAdd : public xframe
|
{
|
public:
|
|
HrPosition* lw_obj;
|
xdwgrid dw_list;
|
xtreeview tv_1;
|
xstring m_type;
|
|
xnode m_agentNode; //Agent Condition
|
xstring m_agentCond; //Agent Node
|
public:
|
HrPositionAdd(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
|
public:
|
static HrPositionAdd* CreateInstance(void* implPtr, void* hWnd)
|
{
|
HrPositionAdd* pWin = new HrPositionAdd(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 query = L"[MSSqlHrJob.xq]";
|
xml x;
|
|
xaserverarg arg;
|
|
arg.AddArg(L"type", m_type);
|
//if (xaserver::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1
|
if (xurl::post(L"OrganizationStruct/list.Job", arg.GetString(), x) != 1)
|
{
|
trace(x.text());
|
return -1;
|
}
|
else
|
{
|
dw_list.Retrieve(x);
|
dw_list.Redraw();
|
dw_list.SetReadOnly(true);
|
}
|
return 1;
|
}
|
|
int OnTreeSelChanged(TEvent* evt, int p)
|
{
|
NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
|
|
HTREEITEM hItem = nmtv.itemNew.hItem;
|
|
//int wid = tv_1.GetId();
|
hItem = tv_1.GetSelectedItem();
|
HTREEITEM rootItem = tv_1.GetRootItem();
|
if (!hItem || hItem == rootItem)
|
{
|
m_type = L"all";
|
}
|
else
|
{
|
KXMLDOMElement ele = tv_1.GetItemData(hItem);
|
m_type = ele.selectSingleNode(L"@name").text();
|
}
|
OnRetrieve();
|
return 1;
|
}
|
|
int OnCreateTree()
|
{
|
//int wid = tv_1.GetId();
|
xml x;
|
|
x.loadXML(L"<Type name='all'/>");
|
KXMLDOMElement ele = x.selectSingleNode(L"Type");
|
HTREEITEM hItem = tv_1.InsertChildItemEx(0, L"¹¤ÖÖÀàÐÍ", ele, 15, 4);
|
|
if (xurl::post(L"/sale/data/OrganizationStruct/type.Job", L"", x) != 1)
|
{
|
trace(x.xml());
|
return -1;
|
}
|
//trace(x.GetXml());
|
auto list = x.selectNodes(L"//Type");
|
int i = 0, s = list.length();
|
KXMLDOMElement e;
|
xstring sname;
|
if (s > 0)
|
{
|
for (i = 0; i < s; i++)
|
{
|
e = list.item(i);
|
sname = e.selectSingleNode(L"@name").text();
|
HTREEITEM curItem = tv_1.InsertChildItemEx( hItem, sname, e, 15, 4);
|
}
|
}
|
return 1;
|
}
|
|
int OnOK()
|
{
|
if (GetWinParam())
|
{
|
lw_obj = (HrPosition*)GetWinParam();
|
}
|
else
|
return 0;
|
|
int row = dw_list.GetNextSelectRow(1);
|
if (row < 1)
|
{
|
alert(L"ÇëÑ¡Ôñ¹¤ÖÖ!");
|
return 1;
|
}
|
//treeview tv_org = new treeview;
|
//tv_org.setNativePointer(lw_obj->tv_org);
|
HTREEITEM hitem = tv_1.GetSelectedItem();
|
KXMLDOMElement ele = tv_1.GetItemData( hitem);
|
xstring sOrgID = ele.selectSingleNode(L"@guid").text();
|
xstring sOrgName = ele.selectSingleNode(L"OrgName").text();
|
while (row > 0)
|
{
|
KXMLDOMElement e = dw_list.GetRowElement(row);
|
xstring sJobID = e.selectSingleNode(L"@guid").text() + (xstring)L"";
|
xstring sJobName = e.selectSingleNode(L"JobName").text() + (xstring)L"";
|
|
int nRow = lw_obj->dw_list.InsertRow(0);
|
lw_obj->dw_list.SetItemString(nRow, L"JobID", sJobID);
|
lw_obj->dw_list.SetItemDisplayString(nRow, L"JobID", sJobName);
|
lw_obj->dw_list.SetItemString(nRow, L"Status", L"Y");
|
lw_obj->dw_list.SetItemDisplayString(nRow, L"Status", L"ÓÐЧ");
|
lw_obj->dw_list.SetItemString(nRow, L"OrgID", sOrgID);
|
lw_obj->dw_list.SetItemDisplayString(nRow, L"OrgID", sOrgName);
|
lw_obj->dw_list.SetItemString(nRow, L"PositionName", sOrgName + sJobName);
|
row = dw_list.GetNextSelectRow(row + 1);
|
}
|
CloseWindow();
|
return 1;
|
}
|
|
//ÃüÁî·¢²¼º¯Êý
|
int OnCmdDispatch(xstring comdid)
|
{
|
if (comdid == L"xmOk")
|
OnOK();
|
else if (comdid == L"xmCancel")
|
CloseWindow();
|
return 0;
|
}
|
|
//ÃüÁî´¦Àíʼþ
|
int OnXCommand(TEvent* evt, LPARAM param)
|
{
|
return OnCmdDispatch(evt->xcommand.pStrID);
|
}
|
|
int OnAttachEvent()
|
{
|
//°ó¶¨¹¤¾ßÌõµã»÷ʼþ
|
AttachEvent(L"WM_XCOMMAND", (FEvent)&HrPositionAdd::OnXCommand);
|
//»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ
|
AttachEvent(L"WM_SETFOCUS", (FEvent)&HrPositionAdd::OnSetFocus);
|
//»ñµÃÊ÷µÄÑ¡Ôñʼþ
|
AttachEvent(L"tv_1", L"TVN_SELCHANGED", (FEvent)&HrPositionAdd::OnTreeSelChanged);
|
return 1;
|
}
|
|
int OnInitial()
|
{
|
//SetAgent();
|
OnAttachEvent();
|
return 1;
|
}
|
|
int onload()
|
{
|
SetArg();
|
m_type = L"all";
|
tv_1 = GetControl(L"tv_1");
|
dw_list = new xdwgrid;
|
dw_list.setNativePointer(GetControl(L"dw_list"));
|
dw_list.openUrl(L"×éÖ¯¼Ü¹¹.vface/template/HrJob/list");
|
dw_list.SetSelectionMode(3); //3
|
dw_list.SetReadOnly(true);
|
|
OnInitial();
|
OnCreateTree();
|
//int wid = tv_1.GetId();
|
HTREEITEM hItem = tv_1.GetRootItem();
|
tv_1.ExpandItem( hItem);
|
OnRetrieve();
|
|
return 1;
|
}
|
};
|