原厂商链接:http://www.datadynamics.com/
软件级别: ☆☆☆☆☆
ActiveReports 融合了Micorsoft Visual Basic的功能和灵活性,以及高级ActiveX Designer Component 技术,为Visual Basic开发员提供终端报表设计器。
ActiveReports 完全集成了Visual Basic编码环境,从外观和感觉上都像是VB。不存在模糊的脚本或工作,提供了完全开放的框架结构。您可以在报表中使用VB代码,ActiveX和OLE Objects,因此您可以无限制的处理最复杂的报表。
ActiveReports 包括了一个Report Wizard,帮助你一步步创建简单报表,而不需要编写任何代码。向导作为一个添加模块集成在Visual Basic环境中。
ActiveReports 基于Active Designer 设计说明,允许控件集成到宿主设计环境中,并允许其充分利用环境服务。
设计器是一个非常灵活的ActiveX控件和对象宿主。您可以在您的报表中插入任一控件或OLE对象,如图表和文档。OLE对象可以绑定到数据库中BLOB字段。
我们就以生成控件的方法利用Data Dynamics ActiveReports。
首先建立一个单文档单视图应用程序,然后添加一个ActiveX控件中的类,选择注册表中后选中ActiveReports Viewer2<1.0>,添加后出现一个CARViewer类(用IARViewer接口),再添加一个ActiveX控件中的类,选择文件中后选中Common Files\Data Dynamics\ActiveReports Pro\arpro2.dll,添加后出现一个CActiveReport类(用IActiveReport接口)。
添加完毕后,这两个类还不能直接使用,因为程序添加时自动指定CLSID是错误的,CActiveReport类修改为如下:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x9EB8768B, 0xCDFA, 0x44DF, { 0x8F, 0x3E, 0x85, 0x7A, 0x84, 0x05, 0xE1, 0xDB } };
return clsid;
}
CARViewer类修改为如下:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x8569D715, 0xFF88, 0x44BA, { 0x8D, 0x1D, 0xAD, 0x3E, 0x59, 0x54, 0x3D, 0xDE } };
return clsid;
}
此时类已经可以使用了,在视图类中添加两个类的对象,
CARViewer arReportViewer;
CActiveReport arReport;
视图类中添加WM_CREATE,在函数OnCreate中添加如下代码:
arReportViewer.Create("tEST",WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,1);
arReport.Create("",WS_POPUP ,CRect(0,0,0,0),this,2);
arReport.put_documentName("test");
arReportViewer.put_RulerVisible(TRUE);
arReportViewer.put_ToolbarVisible(TRUE);
arReportViewer.put_TOCEnabled(false);
COleVariant varRpx("Report.rpx");
arReport.LoadLayout(varRpx);
arReportViewer.put_ReportSource(arReport.GetReport());
arReportViewer.Refresh();
视图类中添加WM_SIZE,在函数OnSize中添加如下代码:
arReportViewer.SetWindowPos (NULL, -1, -1, cx, cy,
SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
然后运行程序,你就可以看到运行结果了.