From ed84dae6164bdddda634aa7cf2e04b16e8838717 Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期四, 11 七月 2024 18:53:05 +0800 Subject: [PATCH] update items --- jrj/project/business/File/trade.help3.cpp | 232 ++++++++++++ jrj/project/business/File/trade.helpEx.cpp | 245 ++++++++++++ jrj/project/total3/ViewTotalWin.cpp | 6 jrj/project/business/Supplier/Inspection.Supplie.cpp | 0 jrj/ext-jrj/ext-jrj.vcxproj | 7 jrj/project/business/File/trade.document3.cpp | 504 ++++++++++++++++++++++++++ jrj/project/total3/ViewTotalArgWin.cpp | 137 +++++++ jrj/ext-jrj/ext-jrj.vcxproj.filters | 9 jrj/project/business/ProductSample/SampleBarcodePrint.cpp | 0 9 files changed, 1,133 insertions(+), 7 deletions(-) diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj index 7a31365..05b668a 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj +++ b/jrj/ext-jrj/ext-jrj.vcxproj @@ -127,7 +127,7 @@ <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> <EnableUAC>false</EnableUAC> - <AdditionalDependencies>xarch.shape.lib;xarch.base.lib;xarch.util.lib;xarch.network.lib;xarch.xframe.lib;xarch.xcontrol.lib;xoffice.xcell.lib;xoffice.xgrid.lib;xoffice.xreport.lib;xoffice.frame.lib;shlwapi.lib;xoffice.xflow.lib;comsuppw.lib;tsclib.lib;%(AdditionalDependencies);$(CoreLibraryDependencies)</AdditionalDependencies> + <AdditionalDependencies>xarch.shape.lib;xarch.base.lib;xarch.util.lib;xarch.network.lib;xarch.xframe.lib;xarch.xcontrol.lib;xoffice.xcell.lib;xoffice.xgrid.lib;xoffice.xreport.lib;xoffice.frame.lib;shlwapi.lib;xoffice.xflow.lib;comsuppw.lib;%(AdditionalDependencies);$(CoreLibraryDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>D:\xclient64</AdditionalLibraryDirectories> </Link> <PostBuildEvent> @@ -520,7 +520,9 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> </ClCompile> - <ClCompile Include="..\project\business\ProductSample\OutstoreSample3Win.cpp" /> + <ClCompile Include="..\project\business\ProductSample\OutstoreSample3Win.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + </ClCompile> <ClCompile Include="..\project\business\ProductSample\SampleBarcodePrint.cpp" /> <ClCompile Include="..\project\business\Public\GroupManagerList.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> @@ -677,6 +679,7 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\start.vframe.vbusiness.cpp" /> + <ClCompile Include="..\project\total3\ViewTotalArgWin.cpp" /> <ClCompile Include="..\project\total3\ViewTotalWin.cpp" /> <ClCompile Include="..\project\tradedocument\DocFileSaveDlg.cpp" /> <ClCompile Include="..\project\tradedocument\DocSelectDlg.cpp" /> diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters index c78f55b..6fb50d3 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj.filters +++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters @@ -800,9 +800,6 @@ <ClCompile Include="..\project\business\Enquiry\ViewPictures.cpp"> <Filter>project\business\Enquiry</Filter> </ClCompile> - <ClCompile Include="..\project\business\QuoteFile.cpp"> - <Filter>婧愭枃浠�</Filter> - </ClCompile> <ClCompile Include="..\project\business\ProductSample\InstoreSample3Win.cpp"> <Filter>project\business\ProductSample</Filter> </ClCompile> @@ -815,5 +812,11 @@ <ClCompile Include="..\project\business\ProductSample\CheckOut.instore.Sample.cpp"> <Filter>project\business\ProductSample</Filter> </ClCompile> + <ClCompile Include="..\project\total3\ViewTotalArgWin.cpp"> + <Filter>vbusiness\total</Filter> + </ClCompile> + <ClCompile Include="..\project\business\QuoteFile.cpp"> + <Filter>project\business</Filter> + </ClCompile> </ItemGroup> </Project> \ No newline at end of file diff --git a/jrj/project/business/File/trade.document3.cpp b/jrj/project/business/File/trade.document3.cpp new file mode 100644 index 0000000..f23fbc3 --- /dev/null +++ b/jrj/project/business/File/trade.document3.cpp @@ -0,0 +1,504 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xlistview.hpp> + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; + class __declspec(dllexport) TDocumentWin : public xframe + { + public: + //xdwgrid dw_list; + xtreeview tv_folder; + xlistview lv_view; + xnode m_agentNode; //Agent Condition + int columnCount; + public: + TDocumentWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} + public: + static TDocumentWin* CreateInstance(void* implPtr, void* hWnd) + { + TDocumentWin* pWin = new TDocumentWin(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 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 = win32::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.setNativePointer(args.CreateInstance()); + 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.GetXmlDoc().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"采购部" || caption ==L"跟单部" || caption ==L"业务部" ||caption ==L"公司共享" ) + { + + if(userno ==L"admin" || userno ==L"00301" || userno ==L"00601" || userno ==L"00701" ) + { + OnAddAttachment(); + } + }*/ + /* if(caption ==L"业务部优秀案例" || caption ==L"采购部优秀案例" ) + {*/ + + if (userno == L"admin" || userno == L"00301" || userno == L"00601" || userno == L"00701" || userno == L"00102" || userno == L"00201") + { + OnAddAttachment(); + } + //} + return 1; + } + if (comdid == L"xmOpen") + { + return OnDocumentOpen(); + } + if (comdid == L"xmDelete") + { + /*if(caption ==L"采购部" || caption ==L"跟单部" || caption ==L"外销部" ||caption ==L"公司共享" ) + { + + if(userno ==L"admin" || userno ==L"00301" || userno ==L"00601" || userno ==L"00701" ) + { + OnDeleteFile(); + } + } + if(caption ==L"业务部优秀案例" || caption ==L"采购部优秀案例" ) + {*/ + + + if (userno == L"admin" || userno == L"00301" || userno == L"00601" || userno == L"00701" || userno == L"00102" || userno == L"00201") + { + 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 p) + { + 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, LPARAM p) + { + + lv_view.DeleteItemAll(); + + + HTREEITEM h = tv_folder.GetSelectedItem(); + KXMLDOMElement ele = tv_folder.GetItemData(h); + + + xstring name; + KXMLDOMElement e; + KXMLDOMNodeList nlist = ele.selectNodes(L"folder"); + + int i; + int s = nlist.length(); + if (s > 0) + { + for (i = 0; i < s; i++) + { + 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()); + ele = x.documentElement(); + nlist = ele.selectNodes(L"*"); + s = nlist.length(); + if (s > 0) + { + for (i = 0; i < s; i++) + { + e = nlist.item(i); + name = e.getAttribute(L"caption"); + //lv_view.InsertItemEx(lv_view.GetId(),0,name,14,cast(e as int)); + 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.GetXmlDoc().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; + } + }; diff --git a/jrj/project/business/File/trade.help3.cpp b/jrj/project/business/File/trade.help3.cpp new file mode 100644 index 0000000..3f7ca6e --- /dev/null +++ b/jrj/project/business/File/trade.help3.cpp @@ -0,0 +1,232 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xlistview.hpp> + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; + class __declspec(dllexport) HelpDocWin : public xframe + { + public: + //xdwgrid dw_list; + xlistview lv_view; + xnode m_agentNode; //Agent Condition + int columnCount; + public: + HelpDocWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} + public: + static HelpDocWin* CreateInstance(void* implPtr, void* hWnd) + { + HelpDocWin* pWin = new HelpDocWin(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 OnListViewDoubleClicked(TEvent* evt, LPARAM param) + { + //重置工具条 + //SetAgent(); + OnDocumentOpen(); + CloseWindow(); + return 1; + } + + 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 = win32::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 OnCmdDispatch(xstring comdid) + { + return 0; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM p) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&HelpDocWin::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&HelpDocWin::OnSetFocus); + 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.GetXmlDoc().text); + return -1; + }else + { + //dw_list.Retrieve(x); + //dw_list.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 Retrieve() + { + xstring src = L"object/knowledge"; + //xstring src=L"data/SettleExchange"; + xml x = ViewObject::RetrieveData(L"/sale/data/TDocument3/FolderListHelp"); + if (x) + { + //alert(x.GetXml()); + KXMLDOMElement ele = x.documentElement(); + KXMLDOMNodeList nlist = ele.selectNodes(L"*"); + int s = nlist.length(); + if (s > 0) + { + for (int i = 0; i < s; i++) + { + KXMLDOMElement e = nlist.item(i); + xstring name = e.getAttribute(L"caption"); + int nItem = lv_view.InsertItemEx(0, name, 14, e ); + + lv_view.SetItemText(nItem, 1, e.getAttribute(L"Creator")); + lv_view.SetItemText(nItem, 2, e.getAttribute(L"CreateDate")); + + } + } + } + return 1; + } + + int onload() + { + //dw_list = GetControl(L"xxx"); + //dw_list.openUrl(L"xxx"); + lv_view = GetControl(L"lv_view"); + + columnCount = 0; + SetListViewHeaderColumn(L""); + + AttachEvent(L"lv_view", L"NM_DBLCLK", (FEvent)&HelpDocWin::OnListViewDoubleClicked); + + Retrieve(); + + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; diff --git a/jrj/project/business/File/trade.helpEx.cpp b/jrj/project/business/File/trade.helpEx.cpp new file mode 100644 index 0000000..3ca48a5 --- /dev/null +++ b/jrj/project/business/File/trade.helpEx.cpp @@ -0,0 +1,245 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xlistview.hpp> + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; + class __declspec(dllexport) HelpDocExWin : public xframe + { + public: + //xdwgrid dw_list; + xlistview lv_view; + xnode m_agentNode; //Agent Condition + int columnCount; + + xstring urlEx; + xstring Search; + + public: + HelpDocExWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} + public: + static HelpDocExWin* CreateInstance(void* implPtr, void* hWnd) + { + HelpDocExWin* pWin = new HelpDocExWin(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 OnListViewDoubleClicked(TEvent* evt, LPARAM param) + { + //重置工具条 + //SetAgent(); + OnDocumentOpen(); + CloseWindow(); + return 1; + } + + 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 = win32::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 OnCmdDispatch(xstring comdid) + { + return 0; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM p) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&HelpDocExWin::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&HelpDocExWin::OnSetFocus); + 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.GetXmlDoc().text); + return -1; + }else + { + //dw_list.Retrieve(x); + //dw_list.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 Retrieve(xstring urlEx, xstring Search) + { + xstring src = L"object/knowledge"; + //xstring src=L"data/SettleExchange"; + xml x = ViewObject::RetrieveData(L"/sale/data/TDocument3/FolderListHelpEx", L"urlEx", urlEx, L"SearchEx", Search); + if (x) + { + //alert(x.GetXml()); + KXMLDOMElement ele = x.documentElement(); + KXMLDOMNodeList nlist = ele.selectNodes(L"*"); + int s = nlist.length(); + if (s > 0) + { + for (int i = 0; i < s; i++) + { + KXMLDOMElement e = nlist.item(i); + xstring name = e.getAttribute(L"caption"); + int nItem = lv_view.InsertItemEx( 0, name, 14, e); + + lv_view.SetItemText( nItem, 1, e.getAttribute(L"Creator")); + lv_view.SetItemText( nItem, 2, e.getAttribute(L"CreateDate")); + + } + } + } + return 1; + } + + int onload() + { + SetArg(); + //dw_list = GetControl(L"xxx"); + //dw_list.openUrl(L"xxx"); + lv_view = GetControl(L"lv_view"); + + columnCount = 0; + SetListViewHeaderColumn(L""); + + AttachEvent(L"lv_view", L"NM_DBLCLK", (FEvent)&HelpDocExWin::OnListViewDoubleClicked); + + + if (GetWinParam()) + { + xaserverarg arg = GetArg(); + + urlEx = arg.GetArgString(L"url"); + Search = arg.GetArgString(L"Search"); + Retrieve(urlEx, Search); + } + //Retrieve(urlEx,Search); + + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; \ No newline at end of file diff --git a/jrj/project/business/ProductSample/SampleBarcodePrint.cpp b/jrj/project/business/ProductSample/SampleBarcodePrint.cpp index c5fa8f3..b0f6e9b 100644 --- a/jrj/project/business/ProductSample/SampleBarcodePrint.cpp +++ b/jrj/project/business/ProductSample/SampleBarcodePrint.cpp Binary files differ diff --git a/jrj/project/business/Supplier/Inspection.Supplie.cpp b/jrj/project/business/Supplier/Inspection.Supplie.cpp index 10a131b..ea3431c 100644 --- a/jrj/project/business/Supplier/Inspection.Supplie.cpp +++ b/jrj/project/business/Supplier/Inspection.Supplie.cpp Binary files differ diff --git a/jrj/project/total3/ViewTotalArgWin.cpp b/jrj/project/total3/ViewTotalArgWin.cpp new file mode 100644 index 0000000..91be15a --- /dev/null +++ b/jrj/project/total3/ViewTotalArgWin.cpp @@ -0,0 +1,137 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> + +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" +#include "vbusiness/vframe/frame.vframe.vbusiness.hpp" + + +using xml = KXMLDOMDocument; + class __declspec(dllexport) ViewTotalArgWin : public xframe + { + public: + xdwtable dw_arg; + xaserverarg arg; + xnode m_agentNode; //Agent Condition + public: + ViewTotalArgWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} + public: + static ViewTotalArgWin* CreateInstance(void* implPtr, void* hWnd) + { + ViewTotalArgWin* pWin = new ViewTotalArgWin(implPtr, (HWND)hWnd); + return pWin; + } + /*int SetAgent() + { + string xfNodeAgentArea = L"agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + }*/ + + //焦点激活处理函数 + int OnSetFocus(TEvent * evt, int param) + { + //重置工具条 + //SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if (comdid == L"xmOk") + { + xml x; + + dw_arg.AcceptText(); + dw_arg.DwUpdateAllTo(x); + //trace(L"--------" + x.xml()); + arg.AddArg(L"arg", x.xml()); + arg.AddArg(L"action", L"ok"); + CloseWindow(); + + return 1; + } + else if (comdid == L"xmCancel") + { + arg.AddArg(L"action", L"cancel"); + CloseWindow(); + return 1; + } + return 0; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, int param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewTotalArgWin::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&ViewTotalArgWin::OnSetFocus); + return 1; + } + + int onload() + { + SetArg(); + dw_arg = GetControl(L"dw_arg"); + + if (GetWinParam()) + { + arg = GetArg(); + string dw = arg.GetArgString(L"argurl"); + dw_arg.openUrl(dw); + + dw_arg.SetColHeaderHeight(0); + dw_arg.SetRowSelectorWidth(0); + dw_arg.SetHScrollState(false); + dw_arg.SetVScrollState(false); + + string d = arg.GetArgString(L"arg"); + if (d != L"") + { + xml x ; + + x.loadXML(d); + dw_arg.Retrieve(x); + } + } + dw_arg.SetEditUpperMode(true); + dw_arg.SetItemString(1, L"QuoteSuccess/type", L"是"); + dw_arg.SetItemString(1, L"ApprovalStatusName", L"6"); + dw_arg.SetItemDisplayString(1, L"ApprovalStatusName", L"已审核"); + dw_arg.SetItemString(1, L"GDN.ETD/type", L"日期范围"); + dw_arg.SetItemString(1, L"QuoteSuccess/type", L"是"); + + OnAttachEvent(); + + return 1; + } + + int onloaded() + { + //SetAgent(); + + return 1; + } + }; \ No newline at end of file diff --git a/jrj/project/total3/ViewTotalWin.cpp b/jrj/project/total3/ViewTotalWin.cpp index e8e4699..a94ff6b 100644 --- a/jrj/project/total3/ViewTotalWin.cpp +++ b/jrj/project/total3/ViewTotalWin.cpp @@ -15,11 +15,13 @@ { public: ViewTotalWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {} +public: static ViewTotalWin* CreateInstance(void* implPtr, void* hWnd) { - return new ViewTotalWin(implPtr, (HWND)hWnd); + ViewTotalWin* pWin = new ViewTotalWin(implPtr, (HWND)hWnd); + return pWin; } - +public: xdwgrid dw_list; xoffice dw_office; xcell dw_cell; -- Gitblit v1.9.3