| | |
| | | #include "viewobject/view.base.hpp" |
| | | |
| | | using xml = KXMLDOMDocument; |
| | | class ViewManpowerFileList : public xframe |
| | | class __declspec(dllexport) ViewManpowerFileList : public xframe |
| | | { |
| | | public: |
| | | xdwgrid dw_list;//hxsoft.com -> Developer -> wface -> vcontrol |
| | | int hSignWin; |
| | | HWND hSignWin; |
| | | xdwtable dw_arg; |
| | | xnode m_agentNode; //Agent Condition |
| | | |
| | | string urlTree; |
| | | xstring urlTree; |
| | | xtreeview tv_folder; |
| | | //展开子文件 |
| | | int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement) |
| | | public: |
| | | ViewManpowerFileList(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} |
| | | public: |
| | | static ViewManpowerFileList* CreateInstance(void* implPtr, void* hWnd) |
| | | { |
| | | msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item"); |
| | | int len = nlist.length; |
| | | 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++) |
| | | { |
| | | msxml::IXMLDOMElement e = nlist.item(i); |
| | | string name = e.getAttribute("name"); |
| | | string sImage = e.getAttribute("image"); |
| | | string child = e.getAttribute("child"); |
| | | KXMLDOMElement e = 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(); |
| | | int h = tv_folder.InsertChildItem(tv_folder.GetId(), hItem, name, trust(e as int), image); |
| | | if (child != "no") tv_folder.SetItemChild(h, 1); |
| | | HTREEITEM h = tv_folder.InsertChildItem( hItem, name, e, image); |
| | | if (child != L"no") tv_folder.SetItemChild(h, 1); |
| | | ExpandChildFolder(h, e); |
| | | } |
| | | return 1; |
| | | } |
| | | int InitialFolder() |
| | | { |
| | | msxml::IXMLDOMElement xframeElement = GetElement(); |
| | | msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial"); |
| | | KXMLDOMElement xframeElement = GetElement(); |
| | | KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); |
| | | if (e) |
| | | ExpandChildFolder(0, e); |
| | | return 1; |
| | | } |
| | | |
| | | int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image) |
| | | int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image) |
| | | { |
| | | msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item"); |
| | | int len = nlist.length; |
| | | 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++) |
| | | { |
| | | msxml::IXMLDOMElement e = nlist.item(i); |
| | | string name = e.getAttribute("name"); |
| | | int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image); |
| | | KXMLDOMElement e = nlist.item(i); |
| | | xstring name = e.getAttribute(L"name"); |
| | | HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image); |
| | | ExpandCatChildFolder(h, e, 35); |
| | | } |
| | | return 1; |
| | | } |
| | | int ExpandFolderItem(int hItem) |
| | | int ExpandFolderItem(HTREEITEM hItem) |
| | | { |
| | | xml x = ViewObject::RetrieveData(urlTree); |
| | | if (!x) return 0; |
| | | msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item"); |
| | | int len = nlist.length; |
| | | KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); |
| | | int len = nlist.length(); |
| | | for (int i = 0; i < len; i++) |
| | | { |
| | | msxml::IXMLDOMElement e = nlist.item(i); |
| | | string name = e.getAttribute("name"); |
| | | int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35); |
| | | KXMLDOMElement e = nlist.item(i); |
| | | xstring name = e.getAttribute(L"name"); |
| | | HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35); |
| | | ExpandCatChildFolder(h, e, 35); |
| | | } |
| | | return 1; |
| | |
| | | |
| | | int SetAgent() |
| | | { |
| | | string xfNodeAgentArea = "agentarea"; |
| | | xstring xfNodeAgentArea = L"agentarea"; |
| | | xnode anode = GetAgentNode(xfNodeAgentArea); |
| | | if (m_agentNode) |
| | | { |
| | | SetAgentNodeContent(anode, m_agentNode); |
| | | SetAgentNode(anode, m_agentNode); |
| | | } |
| | | else |
| | | { |
| | | msxml::IXMLDOMElement xframeElement = GetElement(); |
| | | msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); |
| | | KXMLDOMElement xframeElement = GetElement(); |
| | | KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); |
| | | if (agent) |
| | | { |
| | | string s = agent.xml; |
| | | m_agentNode = 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 p) |
| | | { |
| | | //重置工具条 |
| | | SetAgent(); |
| | |
| | | |
| | | int OnOpenAddWindow() |
| | | { |
| | | OpenWindow("dev:xpage[ManpowerFileWindow.vx]"); |
| | | OpenWindow(L"dev:xpage[ManpowerFileWindow.vx]"); |
| | | return 1; |
| | | } |
| | | |
| | |
| | | int row = dw_list.GetRow(); |
| | | if (row < 1) |
| | | return 1; |
| | | msxml::IXMLDOMElement ele = dw_list.GetRowElement(row); |
| | | string mfid = ele.selectSingleNode("mfid").text;//获取节点的值 |
| | | OpenWindow("dev:xpage[ManpowerFileWindow.vx]", cast(mfid as int)); |
| | | KXMLDOMElement ele = dw_list.GetRowElement(row); |
| | | xstring mfid = ele.selectSingleNode(L"mfid").text();//获取节点的值 |
| | | xaserverarg arg; |
| | | //arg.AddArg(L"mfid", mfid); |
| | | OpenWindow(L"dev:xpage[ManpowerFileWindow.vx]",mfid); |
| | | return 1; |
| | | } |
| | | |
| | | int OnExchangeFileWindow() |
| | | { |
| | | xwin xw = OpenWindow("dev:xpage[BlankExcelTemplate.vx]", 0); |
| | | hSignWin = xw.GetHWND(); |
| | | xwin* xw = OpenWindow(L"dev:xpage[BlankExcelTemplate.vx]", 0); |
| | | hSignWin = xw->GetHWND(); |
| | | return 1; |
| | | } |
| | | |
| | |
| | | { |
| | | int MB_OKCANCEL = 1; |
| | | int IDOK = 1; |
| | | int ret = win32::MessageBox(GetHWND(), "确认删除?", "提示", MB_OKCANCEL); |
| | | int ret = MessageBoxW(GetHWND(), L"确认删除?", L"提示", MB_OKCANCEL); |
| | | if (ret == IDOK) |
| | | { |
| | | int row = dw_list.GetRow(); |
| | | if (row < 1) |
| | | return 1; |
| | | msxml::IXMLDOMElement ele = dw_list.GetRowElement(row); |
| | | string mfid = ele.selectSingleNode("mfid").text;//查看 |
| | | xml x = new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | xaserverarg arg = new xaserverarg;//放置参数 |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | arg.AddArg("mfid", mfid); |
| | | if (getUrl("/sale/data/ManpowerFile/delete", arg.GetString(), x) != 1) |
| | | KXMLDOMElement ele = dw_list.GetRowElement(row); |
| | | xstring mfid = ele.selectSingleNode(L"mfid").text();//查看 |
| | | xml x ; |
| | | |
| | | xaserverarg arg;//放置参数 |
| | | |
| | | arg.AddArg(L"mfid", mfid); |
| | | if (getUrl(L"/sale/data/ManpowerFile/delete", arg.GetString(), x) != 1) |
| | | { |
| | | string error = x.GetXmlDoc().text; |
| | | alert("err:" + error); |
| | | xstring error = x.text(); |
| | | alert(L"err:" + error); |
| | | return 1; |
| | | } |
| | | alert(x.GetXmlDoc().text); |
| | | alert(x.text()); |
| | | OnRefresh(); |
| | | } |
| | | return 1; |
| | |
| | | //分析 |
| | | int OnAnalysis() |
| | | { |
| | | int hCursor = xutil::SetCursorWait(); |
| | | string str = dw_list.DataAnalysis(""); |
| | | xaserverarg arg = new xaserverarg; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | arg.AddArg("html", str); |
| | | int obj = cast(dw_list as int); |
| | | arg.AddArg("obj", obj.toString()); |
| | | OpenWindow("dev:xpage[data.vanalysis.vx]", cast(arg as int)); |
| | | HCURSOR hCursor = xutil::SetCursorWait(); |
| | | xstring str = dw_list.DataAnalysis(L""); |
| | | xaserverarg arg; |
| | | |
| | | arg.AddArg(L"html", str); |
| | | arg.SetParam(L"obj", (LPARAM)&dw_list); |
| | | OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg); |
| | | xutil::RestoreCursor(hCursor); |
| | | return 1; |
| | | } |
| | | |
| | | string GetQueryArg() |
| | | xstring GetQueryArg() |
| | | { |
| | | dw_arg.AcceptText(); |
| | | xml x = new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | dw_arg.DwUpdateAllTo(x.GetXmlDoc()); |
| | | xml x ; |
| | | |
| | | dw_arg.DwUpdateAllTo(x); |
| | | |
| | | return x.GetXml(); |
| | | return x.xml(); |
| | | } |
| | | |
| | | int OnRetrieveEx1() |
| | | { |
| | | int hItem = tv_folder.GetSelectedItem(); |
| | | if (hItem <= 0) return 1; |
| | | HTREEITEM hItem = tv_folder.GetSelectedItem(); |
| | | if (!hItem) return 1; |
| | | |
| | | int hCursor = xutil::SetCursorWait(); |
| | | msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); |
| | | string no = e1.getAttribute("no"); |
| | | HCURSOR hCursor = xutil::SetCursorWait(); |
| | | KXMLDOMElement e1 = tv_folder.GetItemData(hItem); |
| | | xstring no = e1.getAttribute(L"no"); |
| | | |
| | | xml x = new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | xaserverarg arg = new xaserverarg; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | //arg.AddArg("QueryTxt",GetControl("sle_search").GetText()); |
| | | arg.AddArg("QueryArg", GetQueryArg()); |
| | | arg.AddArg("MStatus", no); |
| | | xml x ; |
| | | |
| | | xaserverarg arg; |
| | | |
| | | //arg.AddArg(L"QueryTxt",GetControl(L"sle_search").GetText()); |
| | | arg.AddArg(L"QueryArg", GetQueryArg()); |
| | | arg.AddArg(L"MStatus", no); |
| | | |
| | | arg.AddArg("QueryName", GetControl("QueryName").GetText()); |
| | | arg.AddArg(L"QueryName", xcontrol(GetControl(L"QueryName")).GetText()); |
| | | //trace(arg.GetString()); |
| | | if (getUrl("/sale/data/ManpowerFile/list", arg.GetString(), x) != 1) |
| | | if (getUrl(L"/sale/data/ManpowerFile/list", arg.GetString(), x) != 1) |
| | | { |
| | | trace(x.GetXmlDoc().text); |
| | | trace(x.text()); |
| | | return -1; |
| | | } |
| | | else |
| | |
| | | } |
| | | |
| | | //命令发布函数 |
| | | int OnCmdDispatch(string comdid) |
| | | int OnCmdDispatch(xstring comdid) |
| | | { |
| | | if (comdid == "xmAddHumanDocument") |
| | | if (comdid == L"xmAddHumanDocument") |
| | | return OnOpenAddWindow(); |
| | | else if (comdid == "xmUpdateHumanDocument") |
| | | else if (comdid == L"xmUpdateHumanDocument") |
| | | return OnOpenUpdateWindow(); |
| | | else if (comdid == "xmRefresh" || comdid == "xmSearch") |
| | | else if (comdid == L"xmRefresh" || comdid == L"xmSearch") |
| | | return OnRetrieveEx1(); |
| | | else if (comdid == "xmExchangeFile") |
| | | else if (comdid == L"xmExchangeFile") |
| | | return OnExchangeFileWindow(); |
| | | else if (comdid == "xmDelete") |
| | | else if (comdid == L"xmDelete") |
| | | return OnDelete(); |
| | | else if (comdid == "xmAnalysis") |
| | | else if (comdid == L"xmAnalysis") |
| | | return OnAnalysis(); |
| | | return 0; |
| | | } |
| | | |
| | | //命令处理事件 |
| | | int OnXCommand(ref TXCommandEvent evt, int param) |
| | | int OnXCommand(TEvent* evt, LPARAM p) |
| | | { |
| | | return OnCmdDispatch(evt.pStrID); |
| | | return OnCmdDispatch(evt->xcommand.pStrID); |
| | | } |
| | | |
| | | int OnDoubleClicked(ref TNotifyEvent evt, int p) |
| | | int OnDoubleClicked(TEvent* evt, LPARAM p) |
| | | { |
| | | return OnCmdDispatch("xmUpdateHumanDocument"); |
| | | return OnCmdDispatch(L"xmUpdateHumanDocument"); |
| | | } |
| | | |
| | | |
| | | int OnTreeSelChanged(ref TNotifyEvent evt, int p) |
| | | int OnTreeSelChanged(TEvent* evt, LPARAM p) |
| | | { |
| | | return OnRetrieveEx1(); |
| | | } |
| | |
| | | int OnAttachEvent() |
| | | { |
| | | //绑定工具条点击事件 |
| | | AttachEvent("WM_XCOMMAND", OnXCommand); |
| | | AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewManpowerFileList::OnXCommand); |
| | | //获取焦点事件,用于重置工具条 |
| | | AttachEvent("WM_SETFOCUS", OnSetFocus); |
| | | AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDoubleClicked);//行双击 |
| | | AttachEvent("tv_folder", "TVN_SELCHANGED", OnTreeSelChanged); //树选择 |
| | | 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); //树选择 |
| | | return 1; |
| | | } |
| | | |
| | | //数据传输函数 |
| | | int OnRetrieve() |
| | | { |
| | | //int hCursor = xutil::SetCursorWait();//鼠标位置 |
| | | xml x = new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | xaserverarg arg = new xaserverarg;//放置参数 |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | //arg.AddArg("QueryTxt",GetControl("sle_search").GetText());//添加所需要传到后台的参数 |
| | | arg.AddArg("QueryArg", GetQueryArg()); |
| | | arg.AddArg("MStatus", ""); |
| | | arg.AddArg("QueryName", GetControl("QueryName").GetText()); |
| | | //trace("查看arg="+arg.GetString());//运行界面打印 |
| | | if (getUrl("/sale/data/ManpowerFile/list", arg.GetString(), x) != 1)///sale/data/ManpowerFile/doclist后台接口 |
| | | xml x ; |
| | | |
| | | 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", xcontrol(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.GetXmlDoc().text); |
| | | trace(x.text()); |
| | | return -1; |
| | | } |
| | | else |
| | |
| | | |
| | | int onload() |
| | | { |
| | | //【1】控制页面中name="dw_list"的内容 |
| | | dw_list = GetControl("dw_list"); |
| | | //【1】控制页面中name=L"dw_list"的内容 |
| | | dw_list = GetControl(L"dw_list"); |
| | | //【2】加载sale根目录下view下的ManpowerFile.vface文件中的template/list url 前端页面 |
| | | dw_list.openUrl("/sale/view/ManpowerFile/template/list"); |
| | | dw_list.openUrl(L"/sale/view/ManpowerFile/template/list"); |
| | | //【3】绑定事件 |
| | | OnAttachEvent(); |
| | | //【4】加载后台数据 |
| | |
| | | //【6】设为只读 |
| | | dw_list.SetReadOnly(true); |
| | | |
| | | dw_arg = GetControl("dw_arg"); |
| | | dw_arg.openUrl("/sale/view/ManpowerFile/template/QueryArg"); |
| | | 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, "DateType", "不设定"); |
| | | dw_arg.SetItemString(1, L"DateType", L"不设定"); |
| | | |
| | | OnRetrieve(); |
| | | urlTree = "/sale/data/ManpowerFile/folder"; |
| | | tv_folder = GetControl("tv_folder"); |
| | | urlTree = L"/sale/data/ManpowerFile/folder"; |
| | | tv_folder = GetControl(L"tv_folder"); |
| | | tv_folder.SetLineAtRoot(true); |
| | | InitialFolder(); |
| | | |
| | |
| | | int onloaded() |
| | | { |
| | | SetAgent(); |
| | | int hItem = tv_folder.GetRootItem(); |
| | | HTREEITEM hItem = tv_folder.GetRootItem(); |
| | | ExpandFolderItem(hItem); |
| | | tv_folder.ExpandItem(hItem); |
| | | tv_folder.ItemFocus(hItem); |
| | | return 1; |
| | | } |
| | | }; |
| | | ] |
| | | }; |