大家讨论一下大家是怎么使用 ActiveReport 的。我先说说我自己是怎么用的吧。我是通过 ActiveReport 设计器设置一个报表格式文件(*.rpx),这个报表格式文件里面已经有处理怎样控制显示数据的脚本,都是用 VBScript 的,代码并不是在 VB 里面实现的。
然后 VB 调用的时候,是通过传递一些对象变量给 ActiveReport,然后再打开。
VB 调用的部分代码如下: Set objVBF = New clsVBF '= 这个是类,里面是一些类似VB的常用函数
Set objAtvRpt = New atrActiveReport
objAtvRpt.LoadLayout strRptFileName
Set objVBF.ATRobjRst = objRst '= objRst 是一个 ADODB.Recordset 对象
objAtvRpt.Icon = ST_FrmMDIMainForm.Icon
objAtvRpt.AddNamedItem "vbo", objVBF '= 这里就是把对象传递给 ActiveReport 了
objAtvRpt.Run True
objAtvRpt.Show
objAtvRpt.ZOrder 0
报表格式文件(*.rpx)里面是通过对 VB 传递的 objVBF 对象里面的 ATRobjRst 记录集进行数据提取显示处理了。
报表的明细显示是在 Sub OnFetchData(eof) 过程里面控制的。不知大家是否也是这样做?或者有没有更加好的方法。大家一齐学习讨论下!
然后 VB 调用的时候,是通过传递一些对象变量给 ActiveReport,然后再打开。
VB 调用的部分代码如下: Set objVBF = New clsVBF '= 这个是类,里面是一些类似VB的常用函数
Set objAtvRpt = New atrActiveReport
objAtvRpt.LoadLayout strRptFileName
Set objVBF.ATRobjRst = objRst '= objRst 是一个 ADODB.Recordset 对象
objAtvRpt.Icon = ST_FrmMDIMainForm.Icon
objAtvRpt.AddNamedItem "vbo", objVBF '= 这里就是把对象传递给 ActiveReport 了
objAtvRpt.Run True
objAtvRpt.Show
objAtvRpt.ZOrder 0
报表格式文件(*.rpx)里面是通过对 VB 传递的 objVBF 对象里面的 ATRobjRst 记录集进行数据提取显示处理了。
报表的明细显示是在 Sub OnFetchData(eof) 过程里面控制的。不知大家是否也是这样做?或者有没有更加好的方法。大家一齐学习讨论下!
不過如果有額外的條件時,比如要輸入查詢條件等,就會用VB寫一個帶Form的DLL文件,然後ActiveReport的Script中調用