#include <wobject/xstring.hpp>
|
#include <xcontrol/xtreeview.hpp>
|
#include <xcontrol/xdwgrid.hpp>
|
#include <xcontrol/xcell.hpp>
|
|
|
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
|
#include "viewobject/view.base.hpp"
|
|
using xml = KXMLDOMDocument;
|
class __declspec(dllexport) ViewManpowerFileList : public xframe
|
{
|
public:
|
xdwgrid dw_list;//hxsoft.com -> Developer -> wface -> vcontrol
|
int hSignWin;
|
xdwtable dw_arg;
|
xnode m_agentNode; //Agent Condition
|
|
xstring urlTree;
|
xtreeview tv_folder;
|
public:
|
ViewManpowerFileList(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
|
public:
|
static ViewManpowerFileList* CreateInstance(void* implPtr, void* hWnd)
|
{
|
ViewManpowerFileList* pWin = new ViewManpowerFileList(implPtr, (HWND)hWnd);
|
return pWin;
|
}
|
//Õ¹¿ª×ÓÎļþ
|
int ExpandChildFolder(HTREEITEM hItem,KXMLDOMElement pElement)
|
{
|
KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
|
int len = nlist.length();
|
for (int i = 0; i < len; i++)
|
{
|
KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
|
xstring name = e.getAttribute(L"name");
|
xstring sImage = e.getAttribute(L"image");
|
xstring child = e.getAttribute(L"child");
|
int image = 15;
|
if (sImage) image = sImage.toInt();
|
HTREEITEM h = tv_folder.InsertChildItem( hItem, name, (LPARAM)&e, image);
|
if (child != L"no") tv_folder.SetItemChild(h, 1);
|
ExpandChildFolder(h, e);
|
}
|
return 1;
|
}
|
int InitialFolder()
|
{
|
KXMLDOMElement xframeElement = GetElement();
|
KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
|
if (e)
|
ExpandChildFolder(0, e);
|
return 1;
|
}
|
|
int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
|
{
|
KXMLDOMNodeList nlist = ele.selectNodes(L"item");
|
int len = nlist.length();
|
if (len > 0) tv_folder.SetItemChild(hItem, 1);
|
for (int i = 0; i < len; i++)
|
{
|
KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
|
xstring name = e.getAttribute(L"name");
|
HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image);
|
ExpandCatChildFolder(h, e, 35);
|
}
|
return 1;
|
}
|
int ExpandFolderItem(HTREEITEM hItem)
|
{
|
xml x = ViewObject::RetrieveData(urlTree);
|
if (!x) return 0;
|
KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
|
int len = nlist.length();
|
for (int i = 0; i < len; i++)
|
{
|
KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
|
xstring name = e.getAttribute(L"name");
|
HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35);
|
ExpandCatChildFolder(h, e, 35);
|
}
|
return 1;
|
}
|
|
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 p)
|
{
|
//ÖØÖù¤¾ßÌõ
|
SetAgent();
|
return 1;
|
}
|
|
int OnOpenAddWindow()
|
{
|
OpenWindow(L"dev:xpage[ManpowerFileWindow.vx]");
|
return 1;
|
}
|
|
int OnOpenUpdateWindow()
|
{
|
int row = dw_list.GetRow();
|
if (row < 1)
|
return 1;
|
KXMLDOMElement ele = dw_list.GetRowElement(row);
|
xstring mfid = ele.selectSingleNode(L"mfid").text();//»ñÈ¡½ÚµãµÄÖµ
|
OpenWindow(L"dev:xpage[ManpowerFileWindow.vx]",mfid);
|
return 1;
|
}
|
|
int OnExchangeFileWindow()
|
{
|
xwin xw = OpenWindow(L"dev:xpage[BlankExcelTemplate.vx]", 0);
|
hSignWin = xw.GetHWND();
|
return 1;
|
}
|
|
int OnDelete()
|
{
|
int MB_OKCANCEL = 1;
|
int IDOK = 1;
|
int ret = MessageBoxW(GetHWND(), L"È·ÈÏɾ³ý?", L"Ìáʾ", MB_OKCANCEL);
|
if (ret == IDOK)
|
{
|
int row = dw_list.GetRow();
|
if (row < 1)
|
return 1;
|
KXMLDOMElement ele = dw_list.GetRowElement(row);
|
xstring mfid = ele.selectSingleNode(L"mfid").text();//²é¿´
|
xml x = new xml;
|
|
xaserverarg arg;//·ÅÖòÎÊý
|
|
arg.AddArg(L"mfid", mfid);
|
if (getUrl(L"/sale/data/ManpowerFile/delete", arg.GetString(), x) != 1)
|
{
|
xstring error = x.text();
|
alert(L"err:" + error);
|
return 1;
|
}
|
alert(x.text());
|
OnRefresh();
|
}
|
return 1;
|
}
|
|
int OnRefresh() {
|
OnRetrieve();
|
return 1;
|
}
|
|
//·ÖÎö
|
int OnAnalysis()
|
{
|
HCURSOR hCursor = xutil::SetCursorWait();
|
xstring str = dw_list.DataAnalysis(L"");
|
xaserverarg arg;
|
|
arg.AddArg(L"html", str);
|
int obj = cast(dw_list as int);
|
arg.AddArg(L"obj", obj.toString());
|
OpenWindow(L"dev:xpage[data.vanalysis.vx]", cast(arg as int));
|
xutil::RestoreCursor(hCursor);
|
return 1;
|
}
|
|
xstring GetQueryArg()
|
{
|
dw_arg.AcceptText();
|
xml x = new xml;
|
|
dw_arg.DwUpdateAllTo(x);
|
|
return x.xml();
|
}
|
|
int OnRetrieveEx1()
|
{
|
HTREEITEM hItem = tv_folder.GetSelectedItem();
|
if (hItem <= 0) return 1;
|
|
HCURSOR hCursor = xutil::SetCursorWait();
|
KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
|
xstring no = e1.getAttribute(L"no");
|
|
xml x = new xml;
|
|
xaserverarg arg;
|
|
//arg.AddArg(L"QueryTxt",GetControl(L"sle_search").GetText());
|
arg.AddArg(L"QueryArg", GetQueryArg());
|
arg.AddArg(L"MStatus", no);
|
|
arg.AddArg(L"QueryName", GetControl(L"QueryName").GetText());
|
//trace(arg.GetString());
|
if (getUrl(L"/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)
|
{
|
trace(x.text());
|
return -1;
|
}
|
else
|
{
|
|
dw_list.Retrieve(x);
|
dw_list.Redraw();
|
dw_list.SetReadOnly(true);
|
dw_list.SetSelectionMode(1);
|
}
|
return 1;
|
}
|
|
//ÃüÁî·¢²¼º¯Êý
|
int OnCmdDispatch(xstring comdid)
|
{
|
if (comdid == L"xmAddHumanDocument")
|
return OnOpenAddWindow();
|
else if (comdid == L"xmUpdateHumanDocument")
|
return OnOpenUpdateWindow();
|
else if (comdid == L"xmRefresh" || comdid == L"xmSearch")
|
return OnRetrieveEx1();
|
else if (comdid == L"xmExchangeFile")
|
return OnExchangeFileWindow();
|
else if (comdid == L"xmDelete")
|
return OnDelete();
|
else if (comdid == L"xmAnalysis")
|
return OnAnalysis();
|
return 0;
|
}
|
|
//ÃüÁî´¦Àíʼþ
|
int OnXCommand(TEvent* evt, LPARAM p)
|
{
|
return OnCmdDispatch(evt->xcommand.pStrID);
|
}
|
|
int OnDoubleClicked(TEvent* evt, LPARAM p)
|
{
|
return OnCmdDispatch(L"xmUpdateHumanDocument");
|
}
|
|
|
int OnTreeSelChanged(TEvent* evt, LPARAM p)
|
{
|
return OnRetrieveEx1();
|
}
|
|
int OnAttachEvent()
|
{
|
//°ó¶¨¹¤¾ßÌõµã»÷ʼþ
|
AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewManpowerFileList::OnXCommand);
|
//»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ
|
AttachEvent(L"WM_SETFOCUS", (FEvent)&ViewManpowerFileList::OnSetFocus);
|
AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&ViewManpowerFileList::OnDoubleClicked);//ÐÐË«»÷
|
AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ViewManpowerFileList::OnTreeSelChanged); //Ê÷Ñ¡Ôñ
|
}
|
|
//Êý¾Ý´«Ê亯Êý
|
int OnRetrieve()
|
{
|
//int hCursor = xutil::SetCursorWait();//Êó±êλÖÃ
|
xml x = new xml;
|
|
xaserverarg arg;//·ÅÖòÎÊý
|
|
//arg.AddArg(L"QueryTxt",GetControl(L"sle_search").GetText());//Ìí¼ÓËùÐèÒª´«µ½ºǫ́µÄ²ÎÊý
|
arg.AddArg(L"QueryArg", GetQueryArg());
|
arg.AddArg(L"MStatus", L"");
|
arg.AddArg(L"QueryName", GetControl(L"QueryName").GetText());
|
//trace(L"²é¿´arg=L"+arg.GetString());//ÔËÐнçÃæ´òÓ¡
|
if (getUrl(L"/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)///sale/data/ManpowerFile/doclistºǫ́½Ó¿Ú
|
{
|
trace(x.text());
|
return -1;
|
}
|
else
|
{
|
dw_list.Retrieve(x);
|
dw_list.Redraw();
|
}
|
return 1;
|
}
|
|
int onload()
|
{
|
//¡¾1¡¿¿ØÖÆÒ³ÃæÖÐname=L"dw_list"µÄÄÚÈÝ
|
dw_list = GetControl(L"dw_list");
|
//¡¾2¡¿¼ÓÔØsale¸ùĿ¼ÏÂviewϵÄManpowerFile.vfaceÎļþÖеÄtemplate/list url ǰ¶ËÒ³Ãæ
|
dw_list.openUrl(L"/sale/view/ManpowerFile/template/list");
|
//¡¾3¡¿°ó¶¨Ê¼þ
|
OnAttachEvent();
|
//¡¾4¡¿¼ÓÔØºǫ́Êý¾Ý
|
|
//¡¾6¡¿ÉèΪֻ¶Á
|
dw_list.SetReadOnly(true);
|
|
dw_arg = GetControl(L"dw_arg");
|
dw_arg.openUrl(L"/sale/view/ManpowerFile/template/QueryArg");
|
dw_arg.SetColHeaderHeight(0);
|
dw_arg.SetRowSelectorWidth(0);
|
dw_arg.SetHScrollState(false);
|
dw_arg.SetVScrollState(false);
|
dw_arg.SetItemString(1, L"DateType", L"²»É趨");
|
|
OnRetrieve();
|
urlTree = L"/sale/data/ManpowerFile/folder";
|
tv_folder = GetControl(L"tv_folder");
|
tv_folder.SetLineAtRoot(true);
|
InitialFolder();
|
|
return 1;
|
}
|
|
int onloaded()
|
{
|
SetAgent();
|
HTREEITEM hItem = tv_folder.GetRootItem();
|
ExpandFolderItem(hItem);
|
tv_folder.ExpandItem(hItem);
|
tv_folder.ItemFocus(hItem);
|
return 1;
|
}
|
};
|