xj qian
2024-07-11 ed84dae6164bdddda634aa7cf2e04b16e8838717
update items
已添加4个文件
已修改5个文件
1140 ■■■■■ 文件已修改
jrj/ext-jrj/ext-jrj.vcxproj 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj.filters 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/File/trade.document3.cpp 504 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/File/trade.help3.cpp 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/File/trade.helpEx.cpp 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/ProductSample/SampleBarcodePrint.cpp 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Supplier/Inspection.Supplie.cpp 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/total3/ViewTotalArgWin.cpp 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/total3/ViewTotalWin.cpp 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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" />
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>
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;
        }
    };
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;
        }
    };
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;
        }
    };
jrj/project/business/ProductSample/SampleBarcodePrint.cpp
Binary files differ
jrj/project/business/Supplier/Inspection.Supplie.cpp
Binary files differ
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;
        }
    };
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;