From 4533ade545448ab0d13135ab950c1531e0a01a1c Mon Sep 17 00:00:00 2001 From: qianxj2004 <qianxj15@sina.com> Date: 星期一, 14 七月 2025 13:48:58 +0800 Subject: [PATCH] update --- jrj/project/tradedocument/TDocumentWin.cpp | 1012 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 506 insertions(+), 506 deletions(-) diff --git a/jrj/project/tradedocument/TDocumentWin.cpp b/jrj/project/tradedocument/TDocumentWin.cpp index 351322e..afe2874 100644 --- a/jrj/project/tradedocument/TDocumentWin.cpp +++ b/jrj/project/tradedocument/TDocumentWin.cpp @@ -1,507 +1,507 @@ -#include <wobject/xstring.hpp> -#include <xcontrol/xtreeview.hpp> -#include <xcontrol/xdwgrid.hpp> -#include <xcontrol/xlayersheet.hpp> -#include <xcontrol/xcell.hpp> -#include <xcontrol/xlistview.hpp> - -#include "vbusiness/vframe/maint.vframe.vbusiness.hpp" -#include "viewobject/view.base.hpp" - -using xml = KXMLDOMDocument; -class __declspec(dllexport) TDocumentWin : public xframe -{ -public: - TDocumentWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} -public: - static TDocumentWin* CreateInstance(void* implPtr, void* hWnd) - { - return new TDocumentWin(implPtr, (HWND)hWnd); - } - -public: - //xdwgrid dw_list; - xtreeview tv_folder; - xlistview lv_view; - xnode m_agentNode; //Agent Condition - int columnCount; - - 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 OnListViewDoubleClicked(TEvent* evt,LPARAM param) - { - //重置工具条 - //SetAgent(); - return OnDocumentOpen(); - } - - int OnDocumentOpen() - { - int LVNI_ALL = 0x0000; - int LVNI_FOCUSED = 0x0001; - int LVNI_SELECTED = 0x0002; - int LVNI_CUT = 0x0004; - int LVNI_DROPHILITED = 0x0008; - - int nItem = lv_view.GetNextItem(-1, LVNI_FOCUSED); - if (nItem < 0) return 1; - - int LVIF_PARAM = 0x0004; - - lvitem lvItem; - lvItem.iItem = nItem; - lvItem.iSubItem = 0; - lvItem.mask = LVIF_PARAM; - - lv_view.GetItem( lvItem); - KXMLDOMElement ele =lvItem.lParam; - - xstring src = ele.getAttribute(L"url"); - xstring file = L""; - if (src.find(L"/file/") > 0) file = src.mid(src.find(L"/file/") + 6, 9999); - if (file.find(L"/file/") >= 0) file = file.mid(file.find(L"/file/") + 6, 9999); - if (file.find(L"file/") >= 0) file = file.mid(file.find(L"file/") + 5, 9999); - if (file == L"") return 1; - //alert(file); - xstring name = ele.getAttribute(L"caption"); - /* - const xstring d = m_Html.GetData(p.object); - if(d == L"") return -1; - xstring file = d.mid(0, d.find(L"|##@@|",0)); - xstring name = d.mid(d.find(L"|##@@|",0)+6, d.length()); - */ - - xaserver::CreateDirectory(L"C:/Temp"); - xstring str = file.left(2); - xstring ext = L""; - if (name.find(L".") >= 0) ext = name.mid(name.find(L"."), name.length()); - xstring sfile = file;// file.left(file.length() - 4); - //trace(L"--"+ext +L" " + L"/business/attachment/"+str+L"/"+ file); - //int openRet = xaserver::DownLoadFile(GetServerUrl(),L"/business/attachment/"+str+L"/"+ file,name,L"C:/Temp/"+name); - int openRet = xaserver::DownLoadFile(GetServerUrl(), L"/business/attachment/" + str + L"/" + file + L".jpg", L"", L"C:/Temp/" + sfile + ext); - - //alert(L"/business/attachment/"+str+L"/"+ file+L".jpg"); - if (openRet < 0) - { - alert(L"文件打开失败1!"); - return -1; - } - //openRet =ShellExecute(0,L"open",L"C:/Temp/"+name,L"",L"",5); - openRet =ShellExecuteW(0, L"open", L"C:/Temp/" + sfile + ext, L"", L"", 5); - if (openRet < 32) - { - alert(L"文件打开失败2!"); - return -1; - } - - return -1; - } - - int OnAddAttachment() - { - xstring sguid = publiccode::GetGuid(); - xstring sname = sguid; - xstring str = sname.mid(0, 2); - str = str.toUpper(); - xstring suri = L"attachment" + str; - xstring ret = xaserver::UploadFile(suri, sname + L".jpg", GetHWND(), L"", false); - if (ret == L"-1") - { - alert(L"上传的文件没选择!"); - return 0; - } - else - { - while (ret.find(L"\\", 0) >= 0) - ret = ret.mid(ret.find(L"\\", 0) + 1, 9999); - - HTREEITEM h = tv_folder.GetSelectedItem(); - KXMLDOMElement ele = tv_folder.GetItemData(h); - xstring myurl = ele.getAttribute(L"url"); - //alert(myurl); - - xml x ; - xaserverarg args; - args.AddArg(L"myurl", myurl); - args.AddArg(L"name", ret); - args.AddArg(L"filepath", sname); - args.AddArg(L"fileext", L""); - args.AddArg(L"filesource", ret); - - xml x1 = ViewObject::RetrieveData(L"/sale/data/TDocument3/attachment/GetFileFormat", L"Name", ret); - KXMLDOMNodeList items = x1.selectNodes(L"data/Item"); - KXMLDOMNode t = items.item(0); - xstring FileFormat = L""; - if (t.selectSingleNode(L"FileFormat"))FileFormat = t.selectSingleNode(L"FileFormat").text(); - if (FileFormat != L"pdf" && FileFormat != L"PDF" && FileFormat != L"mp4" && FileFormat != L"avi" && FileFormat != L"wmv" && FileFormat != L"mpg" - && FileFormat != L"mpeg" && FileFormat != L"mov" && FileFormat != L"rm" && FileFormat != L"ram" && FileFormat != L"swf" && FileFormat != L"flv") - { - alert(L"文件格式错误,请上传PDF文档或者视频!"); - return 0; - } - - if (xurl::get(L"/sale/data/TDocument3/attachment/add", args.GetString(), x) != 1) - { - alert(L"保存出错了!"); - return 0; - } - else - { - alert(x.text()); - //OnRetrieve(); - } - } - return 0; - } - - int OnDeleteFile() - { - int LVNI_ALL = 0x0000; - int LVNI_FOCUSED = 0x0001; - int LVNI_SELECTED = 0x0002; - int LVNI_CUT = 0x0004; - int LVNI_DROPHILITED = 0x0008; - - int nItem = lv_view.GetNextItem( -1, LVNI_FOCUSED); - if (nItem < 0) return 1; - - int LVIF_PARAM = 0x0004; - - lvitem lvItem; - lvItem.iItem = nItem; - lvItem.iSubItem = 0; - lvItem.mask = LVIF_PARAM; - - lv_view.GetItem( lvItem); - KXMLDOMElement ele =lvItem.lParam; - - xstring src = ele.getAttribute(L"url"); - xstring file = L""; - if (src.find(L"/file/") > 0) file = src.mid(src.find(L"/file/") + 6, 9999); - if (file.find(L"/file/") >= 0) file = file.mid(file.find(L"/file/") + 6, 9999); - if (file.find(L"file/") >= 0) file = file.mid(file.find(L"file/") + 5, 9999); - if (file == L"") return 1; - - xstring name = ele.getAttribute(L"caption"); - if (MessageBox(GetHWND(), L"确定要删除文件" + name + L"?", L"提示", 1) == 2) - return 0; - - xaserverarg arg; - arg.AddArg(L"filepath", file); - xml x; - if (xurl::get(L"/sale/data/TDocument3/file/delete", arg.GetString(), x) != 1) - { - alert(L"删除出错了!"); - return 1; - } - else - { - //alert(x.text); - lv_view.DeleteItem(nItem); - } - - return 1; - } - - //命令发布函数 - int OnCmdDispatch(xstring comdid) - { - xstring userno = publiccode::GetUser().no; - HTREEITEM h = tv_folder.GetSelectedItem(); - KXMLDOMElement ele = tv_folder.GetItemData(h); - xstring caption = ele.getAttribute(L"caption"); - - - if (comdid == L"xmUpload") - { - - if (caption == L"办公室") - { - - if (userno == L"00805" || userno == L"00804") - { - OnAddAttachment(); - } - } - - if (caption == L"人事部") - { - - if (userno == L"00804") - { - OnAddAttachment(); - } - } - /* if(caption =="业务部优秀案例" || caption =="采购部优秀案例" ) - {*/ - - if (userno == L"admin" || userno == L"00301" || userno == L"00601" || userno == L"00614" || userno == L"00701" || userno == L"00102" || userno == L"00201" || userno == L"00804") - { - OnAddAttachment(); - } - //} - return 1; - } - if (comdid == L"xmOpen") - { - return OnDocumentOpen(); - } - if (comdid == L"xmDelete") - { - if (caption == L"办公室") - { - - if (userno == L"00805" || userno == L"00804") - { - OnDeleteFile(); - } - } - if (caption == L"人事部") - { - - if (userno == L"00804") - { - OnDeleteFile(); - } - } - if (userno == L"admin" || userno == L"00301" || userno == L"00601" || userno == L"00614" || userno == L"00701" || userno == L"00102" || userno == L"00201" || userno == L"00804") - { - OnDeleteFile(); - } - - return 1; - } - if (comdid == L"xmSearch") - { - OnRetrieve(); - return 1; - } - - return 0; - } - - int OnRetrieve() - { - xstring urlEx = L""; - xcontrol xc = GetControl(L"frame:sle_search"); - xstring Search = xc.GetText(); - HTREEITEM h = tv_folder.GetSelectedItem(); - KXMLDOMElement ele = tv_folder.GetItemData(h); - urlEx = ele.getAttribute(L"url"); - - trace(Search + L"******" + urlEx); - if (urlEx == L"") - { - alert(L"选择文件目录!"); - return 1; - } - else - { - xaserverarg arg ; - arg.AddArg(L"url", urlEx); - arg.AddArg(L"Search", Search); - OpenWindow(L"dev:xpage[trade.helpEx.vx]", arg); - return 1; - } - - return 1; - } - - //命令处理事件 - int OnXCommand(TEvent* evt, LPARAM param) - { - return OnCmdDispatch(evt->xcommand.pStrID); - } - - int OnAttachEvent() - { - //绑定工具条点击事件 - AttachEvent(L"WM_XCOMMAND", (FEvent)&TDocumentWin::OnXCommand); - //获取焦点事件,用于重置工具条 - AttachEvent(L"WM_SETFOCUS", (FEvent) & TDocumentWin::OnSetFocus); - - return 1; - } - - int createSubTree(HTREEITEM h, KXMLDOMElement ele) - { - KXMLDOMNodeList nlist = ele.selectNodes(L"folder"); - int i; - int s = nlist.length(); - if (s > 0) - { - for (i = 0; i < s; i++) - { - KXMLDOMElement e = nlist.item(i); - xstring name = e.getAttribute(L"caption"); - HTREEITEM hw = tv_folder.InsertChildItem(h, name, e, 15); - createSubTree(hw, e); - } - } - return 1; - } - - int OnCreateTree() - { - xml x; - if (xurl::get(L"/sale/data/TDocument3/folder/root", L"", x) != 1) - { - return -1; - } - else - { - KXMLDOMNodeList nlist = x.selectNodes(L"folders/folder"); - int len = nlist.length(); - - if (len > 0) - { - int i; - for (i = 0; i < len; i++) - { - KXMLDOMElement e = nlist.item(i); - xstring name = e.getAttribute(L"caption"); - HTREEITEM h =tv_folder.InsertChildItem( 0, name, e, 17); - createSubTree(h, e); - if (len == 1) tv_folder.ExpandItem(h); - } - tv_folder.ExpandItem(0); - } - } - return 1; - } - - //树选择 - int OnTreeSelChanged(TEvent* evt, int p) - { - xstring name; - lv_view.DeleteItemAll(); - - HTREEITEM h = tv_folder.GetSelectedItem(); - KXMLDOMElement ele = tv_folder.GetItemData(h); - KXMLDOMNodeList nlist = ele.selectNodes(L"folder"); - - int i; - int s = nlist.length(); - if (s > 0) - { - for (i = 0; i < s; i++) - { - KXMLDOMElement e = nlist.item(i); - name = e.getAttribute(L"caption"); - lv_view.InsertItemEx(0, name, 0, e); - } - } - - xstring src = ele.getAttribute(L"url"); - trace(L"\r\n" + src); - xml x = ViewObject::RetrieveData(L"/sale/data/TDocument3/folder/list", L"src", src); - if (x) - { - //alert(x.GetXml()); - nlist = x.documentElement().selectNodes(L"*"); - s = nlist.length(); - if (s > 0) - { - for (i = 0; i < s; i++) - { - KXMLDOMElement e = nlist.item(i); - name = e.getAttribute(L"caption"); - int nItem = lv_view.InsertItemEx( 0, name, 23, e); - - lv_view.SetItemText( nItem, 1, e.getAttribute(L"Creator")); - lv_view.SetItemText( nItem, 2, e.getAttribute(L"CreateDate")); - } - } - } - lv_view.Redraw(); - - return 1; - } - - int SetListViewHeaderColumn(xstring Url) - { - const int LVCFMT_LEFT = 0; - for (int i = 0; i < 3; i++) lv_view.DeleteColumn( 1); - //if(Url==L"") - //{ - lv_view.InsertColumn(0, L"创建日期", LVCFMT_LEFT, 80, 0); - lv_view.InsertColumn(0, L"创建人员", LVCFMT_LEFT, 80, 0); - lv_view.InsertColumn(0, L"名称", 0, 180, 0); - columnCount = 3; - //} - return 1; - } - - /* - int OnRetrieve() - { - xml x = new xml; - x.setNativePointer(xml::CreateInstance()); - xaserverarg arg = new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg(L"xxx",L"xxx"); - if (getUrl(L"",arg.GetString(),x)!=1) - { - trace(x.text); - return -1; - }else - { - //dw_list.Retrieve(x); - //dw_list.Redraw(); - } - return 1; - } - */ - - int onload() - { - tv_folder = GetControl(L"tv_folder"); - lv_view = GetControl(L"lv_view"); - - columnCount = 0; - SetListViewHeaderColumn(L""); - - AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&TDocumentWin::OnTreeSelChanged); - AttachEvent(L"lv_view", L"NM_DBLCLK", (FEvent)&TDocumentWin::OnListViewDoubleClicked); - - OnCreateTree(); - OnAttachEvent(); - - tv_folder.ExpandItem(tv_folder.GetRootItem()); - return 1; - } - - int onloaded() - { - SetAgent(); - - return 1; - } +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xlayersheet.hpp> +#include <xcontrol/xcell.hpp> +#include <xcontrol/xlistview.hpp> + +#include "vbusiness/vframe/maint.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; +class __declspec(dllexport) TDocumentWin : public xframe +{ +public: + TDocumentWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} +public: + static TDocumentWin* CreateInstance(void* implPtr, void* hWnd) + { + return new TDocumentWin(implPtr, (HWND)hWnd); + } + +public: + //xdwgrid dw_list; + xtreeview tv_folder; + xlistview lv_view; + xnode m_agentNode; //Agent Condition + int columnCount; + + 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 OnListViewDoubleClicked(TEvent* evt,LPARAM param) + { + //重置工具条 + //SetAgent(); + return OnDocumentOpen(); + } + + int OnDocumentOpen() + { + int LVNI_ALL = 0x0000; + int LVNI_FOCUSED = 0x0001; + int LVNI_SELECTED = 0x0002; + int LVNI_CUT = 0x0004; + int LVNI_DROPHILITED = 0x0008; + + int nItem = lv_view.GetNextItem(-1, LVNI_FOCUSED); + if (nItem < 0) return 1; + + int LVIF_PARAM = 0x0004; + + lvitem lvItem; + lvItem.iItem = nItem; + lvItem.iSubItem = 0; + lvItem.mask = LVIF_PARAM; + + lv_view.GetItem( lvItem); + KXMLDOMElement ele =lvItem.lParam; + + xstring src = ele.getAttribute(L"url"); + xstring file = L""; + if (src.find(L"/file/") > 0) file = src.mid(src.find(L"/file/") + 6, 9999); + if (file.find(L"/file/") >= 0) file = file.mid(file.find(L"/file/") + 6, 9999); + if (file.find(L"file/") >= 0) file = file.mid(file.find(L"file/") + 5, 9999); + if (file == L"") return 1; + //alert(file); + xstring name = ele.getAttribute(L"caption"); + /* + const xstring d = m_Html.GetData(p.object); + if(d == L"") return -1; + xstring file = d.mid(0, d.find(L"|##@@|",0)); + xstring name = d.mid(d.find(L"|##@@|",0)+6, d.length()); + */ + + xaserver::CreateDirectory(L"C:/Temp"); + xstring str = file.left(2); + xstring ext = L""; + if (name.find(L".") >= 0) ext = name.mid(name.find(L"."), name.length()); + xstring sfile = file;// file.left(file.length() - 4); + //trace(L"--"+ext +L" " + L"/business/attachment/"+str+L"/"+ file); + //int openRet = xaserver::DownLoadFile(GetServerUrl(),L"/business/attachment/"+str+L"/"+ file,name,L"C:/Temp/"+name); + int openRet = xaserver::DownLoadFile(GetServerUrl(), L"/business/attachment/" + str + L"/" + file + L".jpg", L"", L"C:/Temp/" + sfile + ext); + + //alert(L"/business/attachment/"+str+L"/"+ file+L".jpg"); + if (openRet < 0) + { + alert(L"文件打开失败1!"); + return -1; + } + //openRet =ShellExecute(0,L"open",L"C:/Temp/"+name,L"",L"",5); + openRet =ShellExecuteW(0, L"open", L"C:/Temp/" + sfile + ext, L"", L"", 5); + if (openRet < 32) + { + alert(L"文件打开失败2!"); + return -1; + } + + return -1; + } + + int OnAddAttachment() + { + xstring sguid = publiccode::GetGuid(); + xstring sname = sguid; + xstring str = sname.mid(0, 2); + str = str.toUpper(); + xstring suri = L"attachment" + str; + xstring ret = xaserver::UploadFile(suri, sname + L".jpg", GetHWND(), L"", false); + if (ret == L"-1") + { + alert(L"上传的文件没选择!"); + return 0; + } + else + { + while (ret.find(L"\\", 0) >= 0) + ret = ret.mid(ret.find(L"\\", 0) + 1, 9999); + + HTREEITEM h = tv_folder.GetSelectedItem(); + KXMLDOMElement ele = tv_folder.GetItemData(h); + xstring myurl = ele.getAttribute(L"url"); + //alert(myurl); + + xml x ; + xaserverarg args; + args.AddArg(L"myurl", myurl); + args.AddArg(L"name", ret); + args.AddArg(L"filepath", sname); + args.AddArg(L"fileext", L""); + args.AddArg(L"filesource", ret); + + xml x1 = ViewObject::RetrieveData(L"/sale/data/TDocument3/attachment/GetFileFormat", L"Name", ret); + KXMLDOMNodeList items = x1.selectNodes(L"data/Item"); + KXMLDOMNode t = items.item(0); + xstring FileFormat = L""; + if (t.selectSingleNode(L"FileFormat"))FileFormat = t.selectSingleNode(L"FileFormat").text(); + if (FileFormat != L"pdf" && FileFormat != L"PDF" && FileFormat != L"mp4" && FileFormat != L"avi" && FileFormat != L"wmv" && FileFormat != L"mpg" + && FileFormat != L"mpeg" && FileFormat != L"mov" && FileFormat != L"rm" && FileFormat != L"ram" && FileFormat != L"swf" && FileFormat != L"flv") + { + alert(L"文件格式错误,请上传PDF文档或者视频!"); + return 0; + } + + if (xurl::get(L"/sale/data/TDocument3/attachment/add", args.GetString(), x) != 1) + { + alert(L"保存出错了!"); + return 0; + } + else + { + alert(x.text()); + //OnRetrieve(); + } + } + return 0; + } + + int OnDeleteFile() + { + int LVNI_ALL = 0x0000; + int LVNI_FOCUSED = 0x0001; + int LVNI_SELECTED = 0x0002; + int LVNI_CUT = 0x0004; + int LVNI_DROPHILITED = 0x0008; + + int nItem = lv_view.GetNextItem( -1, LVNI_FOCUSED); + if (nItem < 0) return 1; + + int LVIF_PARAM = 0x0004; + + lvitem lvItem; + lvItem.iItem = nItem; + lvItem.iSubItem = 0; + lvItem.mask = LVIF_PARAM; + + lv_view.GetItem( lvItem); + KXMLDOMElement ele =lvItem.lParam; + + xstring src = ele.getAttribute(L"url"); + xstring file = L""; + if (src.find(L"/file/") > 0) file = src.mid(src.find(L"/file/") + 6, 9999); + if (file.find(L"/file/") >= 0) file = file.mid(file.find(L"/file/") + 6, 9999); + if (file.find(L"file/") >= 0) file = file.mid(file.find(L"file/") + 5, 9999); + if (file == L"") return 1; + + xstring name = ele.getAttribute(L"caption"); + if (MessageBox(GetHWND(), L"确定要删除文件" + name + L"?", L"提示", 1) == 2) + return 0; + + xaserverarg arg; + arg.AddArg(L"filepath", file); + xml x; + if (xurl::get(L"/sale/data/TDocument3/file/delete", arg.GetString(), x) != 1) + { + alert(L"删除出错了!"); + return 1; + } + else + { + //alert(x.text); + lv_view.DeleteItem(nItem); + } + + return 1; + } + + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + xstring userno = publiccode::GetUser().no; + HTREEITEM h = tv_folder.GetSelectedItem(); + KXMLDOMElement ele = tv_folder.GetItemData(h); + xstring caption = ele.getAttribute(L"caption"); + + + if (comdid == L"xmUpload") + { + + if (caption == L"办公室") + { + + if (userno == L"00805" || userno == L"00804") + { + OnAddAttachment(); + } + } + + if (caption == L"人事部") + { + + if (userno == L"00804") + { + OnAddAttachment(); + } + } + /* if(caption =="业务部优秀案例" || caption =="采购部优秀案例" ) + {*/ + + if (userno == L"admin" || userno == L"00301" || userno == L"00601" || userno == L"00614" || userno == L"00701" || /*userno == L"00102" || userno == L"00201" ||*/ userno == L"00804") + { + OnAddAttachment(); + } + //} + return 1; + } + if (comdid == L"xmOpen") + { + return OnDocumentOpen(); + } + if (comdid == L"xmDelete") + { + if (caption == L"办公室") + { + + if (userno == L"00805" || userno == L"00804") + { + OnDeleteFile(); + } + } + if (caption == L"人事部") + { + + if (userno == L"00804") + { + OnDeleteFile(); + } + } + if (userno == L"admin" || userno == L"00301" || userno == L"00601" || userno == L"00614" || userno == L"00701" || userno == L"00102" || userno == L"00201" || userno == L"00804") + { + OnDeleteFile(); + } + + return 1; + } + if (comdid == L"xmSearch") + { + OnRetrieve(); + return 1; + } + + return 0; + } + + int OnRetrieve() + { + xstring urlEx = L""; + xcontrol xc = GetControl(L"frame:sle_search"); + xstring Search = xc.GetText(); + HTREEITEM h = tv_folder.GetSelectedItem(); + KXMLDOMElement ele = tv_folder.GetItemData(h); + urlEx = ele.getAttribute(L"url"); + + trace(Search + L"******" + urlEx); + if (urlEx == L"") + { + alert(L"选择文件目录!"); + return 1; + } + else + { + xaserverarg arg ; + arg.AddArg(L"url", urlEx); + arg.AddArg(L"Search", Search); + OpenWindow(L"dev:xpage[trade.helpEx.vx]", arg); + return 1; + } + + return 1; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&TDocumentWin::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent) & TDocumentWin::OnSetFocus); + + return 1; + } + + int createSubTree(HTREEITEM h, KXMLDOMElement ele) + { + KXMLDOMNodeList nlist = ele.selectNodes(L"folder"); + int i; + int s = nlist.length(); + if (s > 0) + { + for (i = 0; i < s; i++) + { + KXMLDOMElement e = nlist.item(i); + xstring name = e.getAttribute(L"caption"); + HTREEITEM hw = tv_folder.InsertChildItem(h, name, e, 15); + createSubTree(hw, e); + } + } + return 1; + } + + int OnCreateTree() + { + xml x; + if (xurl::get(L"/sale/data/TDocument3/folder/root", L"", x) != 1) + { + return -1; + } + else + { + KXMLDOMNodeList nlist = x.selectNodes(L"folders/folder"); + int len = nlist.length(); + + if (len > 0) + { + int i; + for (i = 0; i < len; i++) + { + KXMLDOMElement e = nlist.item(i); + xstring name = e.getAttribute(L"caption"); + HTREEITEM h =tv_folder.InsertChildItem( 0, name, e, 17); + createSubTree(h, e); + if (len == 1) tv_folder.ExpandItem(h); + } + tv_folder.ExpandItem(0); + } + } + return 1; + } + + //树选择 + int OnTreeSelChanged(TEvent* evt, int p) + { + xstring name; + lv_view.DeleteItemAll(); + + HTREEITEM h = tv_folder.GetSelectedItem(); + KXMLDOMElement ele = tv_folder.GetItemData(h); + KXMLDOMNodeList nlist = ele.selectNodes(L"folder"); + + int i; + int s = nlist.length(); + if (s > 0) + { + for (i = 0; i < s; i++) + { + KXMLDOMElement e = nlist.item(i); + name = e.getAttribute(L"caption"); + lv_view.InsertItemEx(0, name, 0, e); + } + } + + xstring src = ele.getAttribute(L"url"); + trace(L"\r\n" + src); + xml x = ViewObject::RetrieveData(L"/sale/data/TDocument3/folder/list", L"src", src); + if (x) + { + //alert(x.GetXml()); + nlist = x.documentElement().selectNodes(L"*"); + s = nlist.length(); + if (s > 0) + { + for (i = 0; i < s; i++) + { + KXMLDOMElement e = nlist.item(i); + name = e.getAttribute(L"caption"); + int nItem = lv_view.InsertItemEx( 0, name, 23, e); + + lv_view.SetItemText( nItem, 1, e.getAttribute(L"Creator")); + lv_view.SetItemText( nItem, 2, e.getAttribute(L"CreateDate")); + } + } + } + lv_view.Redraw(); + + return 1; + } + + int SetListViewHeaderColumn(xstring Url) + { + const int LVCFMT_LEFT = 0; + for (int i = 0; i < 3; i++) lv_view.DeleteColumn( 1); + //if(Url==L"") + //{ + lv_view.InsertColumn(0, L"创建日期", LVCFMT_LEFT, 80, 0); + lv_view.InsertColumn(0, L"创建人员", LVCFMT_LEFT, 80, 0); + lv_view.InsertColumn(0, L"名称", 0, 180, 0); + columnCount = 3; + //} + return 1; + } + + /* + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg(L"xxx",L"xxx"); + if (getUrl(L"",arg.GetString(),x)!=1) + { + trace(x.text); + return -1; + }else + { + //dw_list.Retrieve(x); + //dw_list.Redraw(); + } + return 1; + } + */ + + int onload() + { + tv_folder = GetControl(L"tv_folder"); + lv_view = GetControl(L"lv_view"); + + columnCount = 0; + SetListViewHeaderColumn(L""); + + AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&TDocumentWin::OnTreeSelChanged); + AttachEvent(L"lv_view", L"NM_DBLCLK", (FEvent)&TDocumentWin::OnListViewDoubleClicked); + + OnCreateTree(); + OnAttachEvent(); + + tv_folder.ExpandItem(tv_folder.GetRootItem()); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } }; \ No newline at end of file -- Gitblit v1.9.3