C++ 来自MFC的Call access 2007报告
谁能解释一下如何从MFC应用程序调用访问报告(2007)? 我有一个带有按钮的表单,单击它时应该会显示报告 我试过这个 它像闪屏一样显示报告,然后消失C++ 来自MFC的Call access 2007报告,c++,ms-access,mfc,report,C++,Ms Access,Mfc,Report,谁能解释一下如何从MFC应用程序调用访问报告(2007)? 我有一个带有按钮的表单,单击它时应该会显示报告 我试过这个 它像闪屏一样显示报告,然后消失 有什么建议吗?我帮助维护使用Access 2003/2007进行报告的MFC应用程序。这是一个我们正在尝试改变的系统——访问不是很灵活,我们在MFC中“托管”访问有点随意 我不是托管体系结构设计的第一方,也不是以某种方式实现的原因,但这里简要介绍了我们在应用程序中访问时遇到的两个困难: 只有完全访问安装才能注册Access.Application
有什么建议吗?我帮助维护使用Access 2003/2007进行报告的MFC应用程序。这是一个我们正在尝试改变的系统——访问不是很灵活,我们在MFC中“托管”访问有点随意 我不是托管体系结构设计的第一方,也不是以某种方式实现的原因,但这里简要介绍了我们在应用程序中访问时遇到的两个困难: 只有完全访问安装才能注册
Access.Application
OLE自动化接口。如果您可以保证您的用户将完全安装Access,那么这将不适用于您(CLSIDFromProgID
后跟CoCreateInstance
将为您提供一个自动化界面),但是,如果您必须为Access运行时获取一个Access.Application
对象,那么还需要做一些额外的工作。您需要启动msaccess.exe
和。有一个示例显示了两种连接方式,尽管是在VBA中
Access不是为嵌入另一个应用程序而设计的。对于访问报告,没有等效项。您可以在CodeProject示例中看到这一点—它将报告呈现到中间.html
文件,然后使用嵌入式web浏览器控件显示报告
我们的应用程序在这里做了错误的事情(TM),并摆弄了Access应用程序的窗口样式、父级和位置,使其看起来像是在我们的应用程序中有一个报告,但这只是一个视觉上的花招。然而,在这种情况下,它给我们留下了一些不受欢迎的行为
msaccess.exe
因为用户关闭了一个报告而关闭时,我们的应用程序以z顺序结束在窗口底部(由于我们为访问窗口设置了父窗口的方式)- 是一个轻量级但功能强大的报告库。它使用.NET,但您可以使用代理应用程序托管控件。从上面可以看出,在不同进程中设置父/子窗口是有效的。如果您可以将应用程序升级到C++/CLI,那么使用它就更容易了
- 也是免费的,但它不像报表查看器那样轻量级
AutoExec
将启动,呈现报告并关闭访问(这里有一个技术示例)。一旦创建了输出文件,就可以将其嵌入到应用程序中。有几点建议:
.html
和web浏览器示例.snp
(快照)文件,然后将其显示在应用程序中(可嵌入-程序ID为snpvw.Snapshot Viewer Control.1
)我帮助维护使用Access 2003/2007进行报告的MFC应用程序。这是一个我们正在尝试改变的系统——访问不是很灵活,我们在MFC中“托管”访问有点随意 我不是托管体系结构设计的第一方,也不是以某种方式实现的原因,但这里简要介绍了我们在应用程序中访问时遇到的两个困难: 只有完全访问安装才能注册
Access.Application
OLE自动化接口。如果您可以保证您的用户将完全安装Access,那么这将不适用于您(CLSIDFromProgID
后跟CoCreateInstance
将为您提供一个自动化界面),但是,如果您必须为Access运行时获取一个Access.Application
对象,那么还需要做一些额外的工作。您需要启动msaccess.exe
和。有一个示例显示了两种连接方式,尽管是在VBA中
Access不是为嵌入另一个应用程序而设计的。对于访问报告,没有等效项。您可以在CodeProject示例中看到这一点—它将报告呈现到中间.html
文件,然后使用嵌入式web浏览器控件显示报告
我们的应用程序在这里做了错误的事情(TM),并摆弄了Access应用程序的窗口样式、父级和位置,使其看起来像是在我们的应用程序中有一个报告,但这只是一个视觉上的花招。然而,在这种情况下,它给我们留下了一些不受欢迎的行为
msaccess.exe
因为用户关闭了一个报告而关闭时,我们的应用程序以z顺序结束在窗口底部(由于我们为访问窗口设置了父窗口的方式)- 是一个轻量级但功能强大的报告库。它使用.NET,但您可以使用代理应用程序托管控件