C++ cli C/CLI中的活动报告

C++ cli C/CLI中的活动报告,c++-cli,activereports,C++ Cli,Activereports,我们可以在C++/CLI中使用Active Reports 7.0吗?我刚刚开始使用活动报告。我试着用C#编写一份报告,没有任何问题。我尝试在C++/CLI中执行相同的操作,但无法使用“活动报告”工具箱。同时,在运行应用程序时,也会出现许可错误 生成基于代码的设计器无法使用C++/CLI。你也不能用C++写报告中的“脚本”。但是,您可以将报告设计为替代,然后不应该通过类(例如)实例化和调用C++中的任何问题。如下所示: GrapeCity::ActiveReports::SectionRepor

我们可以在C++/CLI中使用Active Reports 7.0吗?我刚刚开始使用活动报告。我试着用C#编写一份报告,没有任何问题。我尝试在C++/CLI中执行相同的操作,但无法使用“活动报告”工具箱。同时,在运行应用程序时,也会出现许可错误

生成基于代码的设计器无法使用C++/CLI。你也不能用C++写报告中的“脚本”。但是,您可以将报告设计为替代,然后不应该通过类(例如)实例化和调用C++中的任何问题。如下所示:

GrapeCity::ActiveReports::SectionReport ^sectionReport = gcnew GrapeCity::ActiveReports::SectionReport();
System::Xml::XmlTextReader ^xtr = new System::Xml::XmlTextReader("..\\..\\rptScript.rpx");
sectionReport->LoadLayout(xtr);
xtr->Close();
viewer1->LoadDocument(sectionReport);
...

记住ActuviPrices用户几乎完全是C++的.V.NET用户,所以你不会发现任何C++代码示例,但是将代码从C语言翻译成C++或CLI应该很微不足道。p> 该示例基于SectionReport,但PageReport完全基于xml,因此它也应该很容易工作

因此,要澄清,如果你想要一个C++的解决方案,你需要做以下的事情:

GrapeCity::ActiveReports::SectionReport ^sectionReport = gcnew GrapeCity::ActiveReports::SectionReport();
System::Xml::XmlTextReader ^xtr = new System::Xml::XmlTextReader("..\\..\\rptScript.rpx");
sectionReport->LoadLayout(xtr);
xtr->Close();
viewer1->LoadDocument(sectionReport);
...
使用安装ActiveReports时安装在“开始”菜单中的“独立”设计器应用程序,将报告创建为基于XML的报告(*.rpx文件)。由于您可以将报表保存为独立的.rpx文件,因此不需要使用任何C#/VB.NET DLL。如上面的代码示例所示,您可以直接从C++中的文件加载.rpx文件(例如)。p>
尽管此技术不需要任何C#或VB.NET DLL/EXE,但如果在独立的.rpx报告文件中使用脚本功能,脚本必须是C#或VB脚本。但是,您不必自己编译,ActiveReports会在内部处理脚本。

如果您遇到许可错误,询问ComponentOne可能比在internet上询问一些随机的人更好。@nvoigt是的,我已经询问过他们,他们尚未回复。同时,首先,是否可以使用C++/CLI创建活动报告?因为,我已经看到活动的报表特定工具栏项在C++/CLI中变灰,而在C#中它们是存在的。非常感谢。我要试一试。你好,查兰希望这对@Charan有帮助。如果是,请将此答案标记为已接受答案()。你好,斯科特。我计划直接在c++/cli中工作,而不使用任何c#dll(即使对于活动报表也是如此)。由于c++/cli是一个托管环境,我假设我也可以在c++/cli中创建AR。你能澄清我的疑问吗?1) 是否可以在C++/CLI中创建AR而不依赖C#中的任何内容?2) 如果在c++/CLI中使用之前,我必须在c#dll中创建这些报告,那么我不能直接在c++/CLI中调用代码生成的报告吗?或者,按照您的建议,只能在c++/CLI中调用在c#中创建的基于xml的报告吗?很抱歉用这些疑问来烦你。谢谢。@Charan我在上面添加了一个澄清来回答您的问题。简短的回答是“是的,您可以创建报告,而无需编译C#DLL。”非常好!成功了。但是,如果我想在我的C++/CLI数据和活动报表之间进行交互,我不能直接使用它。我说得对吗?我的意思是,如果报告中有一个文本框,我想与我的C++/CLI应用程序中的包数据关联,那么我不能将文本框与C++数据链接起来。