xj qian
2024-07-08 8b9dbecc0e75ccf6fcaaf75cd7e4739346a0298e
report
已添加4个文件
已修改1个文件
814 ■■■■■ 文件已修改
jrj/ext-jrj/ext-jrj.vcxproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/analysis/DataVanalysisWin.cpp 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/total3/ViewTotalWin.cpp 523 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/kobject/koffice.hpp 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/xcontrol/xoffice.hpp 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj
@@ -185,6 +185,7 @@
    <ClInclude Include="..\xframe\kobject\khtml.hpp" />
    <ClInclude Include="..\xframe\kobject\klayersheet.hpp" />
    <ClInclude Include="..\xframe\kobject\knode.hpp" />
    <ClInclude Include="..\xframe\kobject\koffice.hpp" />
    <ClInclude Include="..\xframe\kobject\kpage.hpp" />
    <ClInclude Include="..\xframe\kobject\kreport.hpp" />
    <ClInclude Include="..\xframe\kobject\kshtml.hpp" />
@@ -235,6 +236,7 @@
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClInclude>
    <ClInclude Include="..\xframe\xcontrol\xlistview.hpp" />
    <ClInclude Include="..\xframe\xcontrol\xoffice.hpp" />
    <ClInclude Include="..\xframe\xcontrol\xreport.hpp" />
    <ClInclude Include="..\xframe\xcontrol\xshtml.hpp" />
    <ClInclude Include="..\xframe\xcontrol\xtreeview.hpp" />
@@ -242,6 +244,7 @@
    <ClInclude Include="pch.h" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="..\project\analysis\DataVanalysisWin.cpp" />
    <ClCompile Include="..\project\business\AP\APBank.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
@@ -535,6 +538,7 @@
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\start.vframe.vbusiness.cpp" />
    <ClCompile Include="..\project\total3\ViewTotalWin.cpp" />
    <ClCompile Include="..\project\viewobject\view.base.hpp" />
    <ClCompile Include="..\project\vindexform.cpp" />
    <ClCompile Include="..\project\vindexformex.cpp" />
jrj/project/analysis/DataVanalysisWin.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
#include <wobject/xwin.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xflowchart.hpp>
#include <xcontrol/ximageview.hpp>
#include <xcontrol/ximageview.hpp>
#include <xcontrol/xhtml.hpp>
#include <xcontrol/xexcel.hpp>
#include "vbusiness/util/publiccode.vutil.vbusiness.hpp "
using xml = KXMLDOMDocument;
class __declspec(dllexport) DataVanalysisWin : public xwin
{
public:
    DataVanalysisWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
    static DataVanalysisWin* CreateInstance(void* implPtr, void* hWnd)
    {
        return new DataVanalysisWin(implPtr, (HWND)hWnd);
    }
public:
    xhtml    ole_html;
    xdwgrid  dw_data;
    xnode    m_agentNode;    //Agent Condition
    xstring   htmlStr;
    xexcel   excel;
    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, int param)
    {
        //重置工具条
        SetAgent();
        return 1;
    }
    //命令发布函数
    int OnCmdDispatch(xstring comdid)
    {
        HCURSOR hCursor = xutil::SetCursorWait();
        if (comdid == L"xmConfig")
        {
            xstring str = dw_data.DataAnalysis(L"");
            if (str != L"")
            {
                ole_html.LoadHtml(str);
                htmlStr = str;
            }
            return 1;
        }
        else if (comdid == L"xmCopy")
        {
            ole_html.ExecWB(12, 0); //OLECMDID_COPY
            xutil::RestoreCursor(hCursor);
            return 1;
        }
        else if (comdid == L"xmSelectAll")
        {
            ole_html.ExecWB(17, 0); //OLECMDID_SELECTALL
            xutil::RestoreCursor(hCursor);
            return 1;
        }
        else if (comdid == L"xmToExecl")
        {
            if (!excel.GetNativePtr())
            {
                alert(L"不能连接Excel");
                return 1;
            }
            xaserver::CreateDirectory(L"C:\\Temp");
            xstring gid = publiccode::GetGuid();
            xutil::SaveToFile(L"C:\\Temp\\" + gid + L".html", htmlStr, L"", L"", L"");
            excel.OpenDocument(L"C:\\Temp\\" + gid + L".html");
            excel.put_Visible(true);
            return 1;
        }
        xutil::RestoreCursor(hCursor);
        return 0;
    }
    //命令处理事件
    int OnXCommand(TEvent* evt, int param)
    {
        return OnCmdDispatch(evt->xcommand.pStrID);
    }
    int OnAttachEvent()
    {
        //绑定工具条点击事件
        AttachEvent(L"WM_XCOMMAND", (FEvent)&DataVanalysisWin::OnXCommand);
        //获取焦点事件,用于重置工具条
        AttachEvent(L"WM_SETFOCUS", (FEvent)&DataVanalysisWin::OnSetFocus);
    }
    int onload()
    {
        htmlStr = L"";
        ole_html = GetControl(L"ole_html");
        if (!GetWinParam()) return 1;
        SetArg();
        xaserverarg arg = GetArg();
        xstring str = arg.GetArgString(L"html");
        if (str != L"")
        {
            htmlStr = str;
            ole_html.LoadHtml(str);
        }
        dw_data = *(xdwgrid*)arg.GetParam(L"obj");
        OnAttachEvent();
        return 1;
    }
    int onloaded()
    {
        SetAgent();
        return 1;
    }
};
jrj/project/total3/ViewTotalWin.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,523 @@
#include <wobject/xwin.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xoffice.hpp>
#include <xcontrol/xcell.hpp>
#include <xcontrol/xflowchart.hpp>
#include <xcontrol/ximageview.hpp>
using xml = KXMLDOMDocument;
class __declspec(dllexport) ViewTotalWin : public xwin
{
public:
    ViewTotalWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
    static ViewTotalWin* CreateInstance(void* implPtr, void* hWnd)
    {
        return new ViewTotalWin(implPtr, (HWND)hWnd);
    }
    xdwgrid    dw_list;
    xoffice     dw_office;
    xcell        dw_cell;
    xnode    m_agentNode;    //Agent Condition
    KXMLDOMElement rptEle;
    string m_category;
    string argStr;
    string searchStr;
    string fieldRoleStr;
    int      hWndImageView;
    int      hWndRetrieveTip;
    bool    dataretrieveing;
    int SetAgent()
    {
        string 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)
            {
                string s = agent.xml();
                m_agentNode = SetAgentNode(anode, s);
            }
        }
        return 1;
    }
    int OnSearch()
    {
        xaserverarg arg = new xaserverarg;
        arg.setNativePointer(arg.CreateInstance());
        arg.AddArg(L"text", searchStr);
        //trace(searchStr);
        OpenWindow(L"dev:xpage[search.dialog.vx]", cast(arg as int));
        string str = arg.GetArgString(L"text");
        if (str != searchStr)
        {
            searchStr = str;
            dw_list.Filter(L"*", searchStr);
            return 1;
        }
        return 1;
    }
    //焦点激活处理函数
    int OnSetFocus(ref TEvent evt, int param)
    {
        //重置工具条
        SetAgent();
        return 1;
    }
    //命令发布函数
    int OnCmdDispatch(string comdid)
    {
        string UserNo = publiccode::GetUser().no;
        int hCursor = 0;
        if (comdid == L"xmSearch") return OnSearch();
        //if(UserNo !=L"00603")
        //{
        if (comdid == L"xmAnalysis")
        {
            hCursor = xutil::SetCursorWait();
            string str = dw_list.DataAnalysis(L"");
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg(L"html", str);
            int obj = cast(dw_list as int);
            arg.AddArg(L"obj", obj.toString());
            OpenWindow(L"dev:xpage[data.vanalysis.vx]", cast(arg as int));
            xutil::RestoreCursor(hCursor);
            return 1;
        }
        if (comdid == L"xmSaveAs")
        {
            dw_list.SaveAs(L"");
            return 1;
        }
        if (comdid == L"xmRemarks")
        {
            string name = rptEle.getAttribute(L"name");
            xml x = ViewObject::RetrieveData(L"/sale/data/TradeFinance3/GetSetUpRemarks", L"Type", name);
            KXMLDOMNodeList items = x.GetXmlDoc().selectNodes(L"data/Item");
            KXMLDOMNode t = items.item(0);
            string Content = L"";
            if (t.selectSingleNode(L"Content"))
            {
                Content = t.selectSingleNode(L"Content").text;
            }
            xaserverarg arg1 = new xaserverarg;
            arg1.setNativePointer(arg1.CreateInstance());
            arg1.AddArg(L"value", Content);
            OpenWindow(L"dev:xpage[memo.edit.new.vx]", arg1.getNativePointer());
            return 1;
        }
        //}
        if (comdid == L"xmTrans1")
            return OnTransData();
        if (comdid == L"xmQuery")
        {
            if (rptEle)
            {
                string argUrl = rptEle.getAttribute(L"arg");
                if (argUrl != L"")
                {
                    xaserverarg ar = new xaserverarg;
                    ar.setNativePointer(ar.CreateInstance());
                    ar.AddArg(L"argurl", argUrl);
                    if (argStr != L"")
                        ar.AddArg(L"arg", argStr);
                    OpenWindow(L"dev:xpage[view.total.arg.vx]", cast(ar as int));
                    string arstr = ar.GetArgString(L"arg");
                    if (arstr != L"" && ar.GetArgString(L"action") == L"ok")
                    {
                        argStr = arstr;
                        hCursor = xutil::SetCursorWait();
                        //trace(rptEle.getAttribute(L"data"));
                        OnRetrieve(rptEle.getAttribute(L"data"), argStr);
                        xutil::RestoreCursor(hCursor);
                    }
                }
                else
                {
                    argStr = L"";
                    OnRetrieve(rptEle.getAttribute(L"data"), argStr);
                }
            }
            return 1;
        }
        if (comdid == L"xmLookImage")
        {
            int row = dw_list.GetRow();
            string skuid = dw_list.GetGuid(row);
            OnLookImage(skuid);
            return 1;
        }
        if (comdid == L"CalculationFormula")
        {
            OpenWindow(L"dev:xpage[CalculationFormula.vx]", 0);
            SetAgent();
            return 1;
        }
        return 0;
    }
    int OnLookImage(string skuid)
    {
        int hCursor = xutil::SetCursorWait();
        xaserverarg arg = ViewObject::MakeArg();
        arg.AddArg(L"guid", skuid);
        OpenWindow(L"dev:xpage[ViewPictures.vx]", arg.getNativePointer());
        xutil::RestoreCursor(hCursor);
        return 1;
    }
    int AdjustField(xdwgrid dw)
    {
        string str = fieldRoleStr;
        for (int i = 1; i < dw.GetColumnCount(); i++)
        {
            string colname = dw.GetColumnName(i);
            if (str.find(L"!" + colname + L",L") >= 0)
            {
                dw.SetColumnState(colname, false);
            }
        }
        return 1;
    }
    int SwitchReport(KXMLDOMElement e)
    {
        string dwname = e.getAttribute(L"template");
        string dataurl = e.getAttribute(L"data");
        string sheettype = e.getAttribute(L"reporttype");
        if (rptEle != e)
        {
            argStr = L"";
            rptEle = e;
        }
        if (sheettype == L"") sheettype = L"report";
        SwitchLayer(L"dw_" + sheettype, L"report");
        if (sheettype == L"report")dw_list.openUrl(dwname);
        if (hWndImageView) win32::DestroyWindow(hWndImageView);
        AdjustField(dw_list);
        SetAgent();
        return 1;
    }
    int OnCombboChanged(ref TCommandEvent evt, int lParam)
    {
        int h = xcombobox::GetCurSel(evt.hCtrl);
        if (h > -1)
        {
            int hCursor = xutil::SetCursorWait();
            KXMLDOMElement e = xcombobox::GetItemData(evt.hCtrl, h);
            SwitchReport(e);
            win32::PostMessage(GetHWND(), 0x401, L"xmQuery", 0);
            //OnCmdDispatch(L"xmQuery");
            xutil::RestoreCursor(hCursor);
        }
        return 1;
    }
    int OnTransData()
    {
        int ret = win32::MessageBox(GetHWND(), L"是否更新数据?\n更新过程预计需要四十分钟,如果中间弹出等待时间过长的提示,请点击中间重试按钮,或等待到一定时间再点击", L"提示", 0x4 /*yesno*/);
        if (ret != 6 /*IDYES */) return 1;
        xml x = new.xml();
        x.setNativePointer(xml::CreateInstance());
        int hCursor = xutil::SetCursorWait();
        if (url::get(L"/sale/data/Total3/total/transdata", L"", x) != 1)
        {
            xutil::RestoreCursor(hCursor);
            return 1;
        }
        else
        {
            xutil::RestoreCursor(hCursor);
            alert(L"数据传输完成!");
            return 1;
        }
        return 1;
    }
    //命令处理事件
    int OnXCommand(ref TXCommandEvent evt, int param)
    {
        return OnCmdDispatch(evt.pStrID);
    }
    int SendImageMessage(int row)
    {
        if (dw_list.GetItemString(row, L"GDNLineID") != L"")
            win32::SendMessage(hWndImageView, 0x401, L"xmRetrieve:GDNLineID:" + dw_list.GetItemString(row, L"GDNLineID"), 0);
        else if (dw_list.GetItemString(row, L"ItemID") != L"")
            win32::SendMessage(hWndImageView, 0x401, L"xmRetrieve:SKUID:" + dw_list.GetItemString(row, L"ItemID"), 0);
        else if (dw_list.GetItemString(row, L"SKUID") != L"")
            win32::SendMessage(hWndImageView, 0x401, L"xmRetrieve:SKUID:" + dw_list.GetItemString(row, L"SKUID"), 0);
        else if (dw_list.GetItemString(row, L"GoodsNo") != L"")
            win32::SendMessage(hWndImageView, 0x401, L"xmRetrieve:GoodsNo:" + dw_list.GetItemString(row, L"GoodsNo"), 0);
        return 1;
    }
    int OnDWClick(ref TNotifyEvent evt, int p)
    {
        ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
        string value = hdr.data;
        string colname = hdr.colname;
        int row = hdr.row;
        if (row < 1) return 1;
        if (rptEle)
        {
            string str = rptEle.getAttribute(L"forward");
            if (str == L"false") return 1;
        }
        /*
        string s = publiccode::GetUser().id;
        xml supplier_x = ViewObject::RetrieveData(L"/sale/data/SupplierV3/entity/FindBySaleType",L"id", s);
        if(supplier_x.GetXmlDoc().text == L"样品间" || supplier_x.GetXmlDoc().text == L"主管"){
            return 1;
        }
        xaserverarg arg;
        if(colname==L"SONo")
        {
            string SONo = dw_list.GetItemString(row,colname);
            arg=new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg(L"EntityNo",SONo);
            arg.AddArg(L"ReadOnly",L"true");
            OpenWindow(L"dev:xpage[base.maint.so.vx]",arg.getNativePointer());
        }
        if(colname==L"InvoiceNo")
        {
            string InvoiceNo= dw_list.GetItemString(row,colname);
            arg=new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg(L"EntityNo",InvoiceNo);
            arg.AddArg(L"ReadOnly",L"true");
            OpenWindow(L"dev:xpage[maint.GDN3.vx]",arg.getNativePointer());
        }
        if(colname==L"InvoiceNoEx")
        {
            string InvoiceNoEx= dw_list.GetItemString(row,colname);
            arg=new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg(L"EntityNo",InvoiceNoEx);
            arg.AddArg(L"invoiceno",InvoiceNoEx);
            arg.AddArg(L"ReadOnly",L"true");
            OpenWindow(L"dev:xpage[maint.vatnotify.vx]",arg.getNativePointer());
        }
        */
        if (hWndImageView != 0 && win32::IsWindow(hWndImageView))
        {
            SendImageMessage(row);
        }
        else if (colname == L"HasImage")
        {
            xwin pwin = OpenWindow(L"dev:xpage[testImage.vx]", 0);
            hWndImageView = pwin.GetHWND();
            SendImageMessage(row);
        }
        return 1;
    }
    int OnRowChanged(ref TNotifyEvent evt, int p)
    {
        ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
        int row = hdr.row;
        if (row < 1) return 1;
        if (hWndImageView != 0 && win32::IsWindow(hWndImageView))
        {
            SendImageMessage(row);
        }
        return 1;
    }
    int ShowRetrieveingTip()
    {
        dataretrieveing = true;
        xwin pwin = OpenWindow(L"dev:xpage[TestRetrieveing.vx]", 0);
        hWndRetrieveTip = pwin.GetHWND();
        return 1;
    }
    int CloseRetrieveTip()
    {
        dataretrieveing = false;
        win32::SendMessage(hWndRetrieveTip, 0x401, L"RetrieveFinished", 0);
        hWndRetrieveTip = 0;
        return 1;
    }
    int OnRetrieveFinished(ref TNotifyEvent evt, int p)
    {
        CloseRetrieveTip();
        //dataretrieveing = false;
        //alert(L"读取完成");
        return 1;
    }
    int OnAttachEvent()
    {
        //绑定工具条点击事件
        AttachEvent(L"WM_XCOMMAND", OnXCommand);
        //获取焦点事件,用于重置工具条
        AttachEvent(L"WM_SETFOCUS", OnSetFocus);
        AttachEvent(L"cb_report", L"CBN_SELCHANGE", OnCombboChanged);
        AttachEvent(L"dw_report", L"DWV_CLICKED", OnDWClick);
        AttachEvent(L"dw_report", L"DWV_ROWFOCUSCHANGED", OnRowChanged);//绑定行更改触发事件OnRowChanged
        AttachEvent(L"dw_report", (0x400 + 81).toString(), OnRetrieveFinished);
    }
    int  OnRetrieve(string dataurl, string argstr)
    {
        if (!rptEle) return 0;
        if (dataretrieveing) return -1;
        dw_list.Reset();
        xml x = new.xml();
        x.setNativePointer(xml::CreateInstance());
        xaserverarg arg = new xaserverarg;
        arg.setNativePointer(arg.CreateInstance());
        arg.AddArg(L"arg", argstr);
        trace(argstr);
        string sheettype = rptEle.getAttribute(L"reporttype");
        if (sheettype == L"") sheettype = L"report";
        //ShowRetrieveingTip();
        if (url::get(dataurl, arg.GetString(), x) != 1)
        {
            trace(L"错误信息=L" + x.GetXmlDoc().text);
            dw_list.Redraw();
            return -1;
        }
        else
        {
            if (sheettype == L"report")
            {
                //CloseRetrieveTip();
                dw_list.Retrieve(x);
                dw_list.Redraw();
                dw_list.SetReadOnly(true);
            }
            else if (sheettype == L"cell")
            {
            }
            else if (sheettype == L"office")
            {
                dw_office.LoadTemplate(x);
                for (int i = 0; i < dw_office.GetSheetCount(); i++)
                {
                    xcell sheet = dw_office.GetSheet(i);
                    sheet.SetReadOnly(true);
                }
            }
        }
        return 1;
    }
    xml getReportSet(string category)
    {
        xml x = new.xml();
        x.setNativePointer(xml::CreateInstance());
        xaserverarg arg = new xaserverarg;
        arg.setNativePointer(arg.CreateInstance());
        arg.AddArg(L"category", category);
        if (url::get(L"/sale/data/Total3/reportset", arg.GetString(), x) != 1)
        {
            return 0;
        }
        return x;
    }
    string GetReportFieldRole()
    {
        xml x = new.xml();
        x.setNativePointer(xml::CreateInstance());
        xaserverarg arg = new xaserverarg;
        arg.setNativePointer(arg.CreateInstance());
        if (url::get(L"/sale/data/Total3/report/field", arg.GetString(), x) != 1)
        {
            return "";
        }
        string str = x.GetXmlDoc().text;
        return str;
    }
    int onload()
    {
        dw_list = GetControl(L"dw_report");
        dw_office = GetControl(L"dw_office");
        dw_cell = GetControl(L"dw_cell");
        dw_list.openUrl(L"/sale/view/Total3/template/sodetail");
        fieldRoleStr = GetReportFieldRole();
        argStr = L"";
        rptEle = 0;
        xcombobox xc = GetControl(L"cb_report");
        m_category = L"total/trade";
        if (GetParam()) {
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(GetParam());
            m_category = arg.GetArgString(L"category");
        }
        xml x = getReportSet(m_category);
        if (x)
        {
            KXMLDOMNodeList nlist = x.GetXmlDoc().selectNodes(L"//reports/report");
            int len = nlist.length;
            for (int i = 0; i < len; i++)
            {
                KXMLDOMElement rpt = nlist.item(i);
                string name = rpt.getAttribute(L"name");
                xcombobox::AddItem(xc.GetId(), name, trust(rpt as int));
                if (i == 0) xc.SetText(name);
                if (i == 0) rptEle = rpt;
            }
        }
        searchStr = L"";
        hWndImageView = 0;
        hWndRetrieveTip = 0;
        dataretrieveing = false;
        OnAttachEvent();
        return 1;
    }
    int onloaded()
    {
        SetAgent();
        if (rptEle)
        {
            SwitchReport(rptEle);
            //OnCmdDispatch(L"xmQuery");
        }
        return 1;
    }
};
jrj/xframe/kobject/koffice.hpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
#pragma once
#include "kcontrol.hpp"
namespace Hxsoft {    namespace XFrame {    namespace XOffice {
    class IXOffice : public IXFControl
    {
    public:
        int LoadTemplate(LPTSTR pXml, int state);
        int LoadTemplate(KXMLDOMElement pElement, int state);
        int LoadTemplate(KXMLDOMDocument& x, int state);
    public:
        int Retrieve(KXMLDOMElement pElement);
        int Retrieve(KXMLDOMDocument& x);
        int Retrieve(LPTSTR bstr);
    public:
        int DwUpdate(KXMLDOMElement pElement);
        int DwUpdate(KXMLDOMDocument& x);
    public:
        xbObject* GetSheet(int nIndex);
        int GetSheetCount();
    public:
        int SelectSheet(int nIndex);
        int GetSelectedSheetIndex();
        int RemoveSheet(int nIndex);
    public:
        int GetData(KXMLDOMDocument px);
        int GetData(KXMLDOMDocument px, int nIndex);
    public:
        int SaveFileAs();
        int SaveFile();
        int SaveFile(wchar_t* fileName);
    public:
        int OpenFile(wchar_t* fileName);
        int OpenFile();
    };
}}}
jrj/xframe/xcontrol/xoffice.hpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
#pragma once
#include "wobject/xcontrol.hpp"
#include "kobject/koffice.hpp"
#include "wobject/xurl.hpp"
using koffice = Hxsoft::XFrame::XOffice::IXOffice;
class xoffice : public xcontrol
{
public:
    xoffice() :xcontrol(nullptr) {}
    xoffice(void* implptr) :xcontrol(implptr) {}
public:
    koffice* GetKOffice()
    {
        return (koffice*)this->GetNativePtr();
    }
public:
    int LoadTemplate(xstring pXml, int state)
    {
        return GetKOffice()->LoadTemplate((LPTSTR)pXml.c_str(), state);
    }
    int LoadTemplate(KXMLDOMElement pElement, int state)
    {
        return GetKOffice()->LoadTemplate(pElement, state);
    }
    int LoadTemplate(KXMLDOMDocument& x, int state)
    {
        return GetKOffice()->LoadTemplate(x, state);
    }
public:
    int Retrieve(KXMLDOMElement pElement)
    {
        return GetKOffice()->Retrieve(pElement);
    }
    int Retrieve(KXMLDOMDocument& x)
    {
        return GetKOffice()->Retrieve(x);
    }
    int Retrieve(LPTSTR bstr)
    {
        return GetKOffice()->Retrieve(bstr);
    }
public:
    int DwUpdate(KXMLDOMElement pElement)
    {
        return GetKOffice()->DwUpdate(pElement);
    }
    int DwUpdate(KXMLDOMDocument& x)
    {
        return GetKOffice()->DwUpdate(x);
    }
public:
    Hxsoft::XFrame::xbObject* GetSheet(int nIndex)
    {
        return GetKOffice()->GetSheet(nIndex);
    }
    int GetSheetCount()
    {
        return GetKOffice()->GetSheetCount();
    }
public:
    int SelectSheet(int nIndex)
    {
        return GetKOffice()->SelectSheet(nIndex);
    }
    int GetSelectedSheetIndex()
    {
        return GetKOffice()->GetSelectedSheetIndex();
    }
    int RemoveSheet(int nIndex)
    {
        return GetKOffice()->RemoveSheet(nIndex);
    }
public:
    int GetData(KXMLDOMDocument px)
    {
        return GetKOffice()->GetData(px);
    }
    int GetData(KXMLDOMDocument px, int nIndex)
    {
        return GetKOffice()->GetData(px, nIndex);
    }
public:
    int SaveFileAs()
    {
        return GetKOffice()->SaveFileAs();
    }
    int SaveFile()
    {
        return GetKOffice()->SaveFile();
    }
    int SaveFile(xstring fileName)
    {
        return GetKOffice()->SaveFile((LPTSTR)fileName.c_str());
    }
public:
    int OpenFile(xstring fileName)
    {
        return GetKOffice()->OpenFile((LPTSTR)fileName.c_str());
    }
    int OpenFile()
    {
        return GetKOffice()->OpenFile();
    }
};