单个VB6 ActiveReport中有多个“Page N of M”

时间:2013-02-12 08:01:09

标签: vb6 activereports

我有一个活动报告,可生成多个页面的报告。 我需要它根据字段“COID”多次显示M的页面N 详情部分。 对于Eg-如果有10页(COID 1001为2,COID 1002为1,COID 1003为7) 所以,我希望页面像“第1页2”,“第2页2”,“第1页1”,“第1页,共7页”,“第2页,共7页”......“第7页,共7页”

请帮忙。

2 个答案:

答案 0 :(得分:1)

我只在病房的AR版本3.00上工作过。在这些中,可以使用子报告非常快速和轻松地实现。

我对此进行了快速研究,并找到了早期版本supports sub reports

如何使用子报告执行此操作,请按照链接中的文章进行操作,并创建父级和子级/子级报告。对于父报告数据,您只需按COID运行SQL查询组,并将每个COID传递给子报告。我会设想一个几乎空白的父报告,其中详细信息部分中的详细信息部分插入子报告控件。将现有报告分配给子报告控件。

只要我们保持父和子报告的沟通简单,子报告就有自己的问题。并且还在父报表中仅创建一个子报表实例对象。使用相同的实例从父数据集中的每一行(即COID)传递参数。

答案 1 :(得分:0)

有两种方法可以做到这一点。运行单个报告并重置每个组的页码并多次运行报告并将页面合并为一个报告。

重置每个组的页码

请参阅ActiveReports for ActiveX / COM this topic中的documentation。它只是在文本框控件上设置正确的属性。

合并报告

在此方法中,您可以为每个COID组单独运行报告(例如,使用WHERE子句获取正确的数据)。这将在每个COID报告中以您希望的方式获取页码。然后,您可以将每个页面中的页面合并到一个报表中。如下所示:

For iRpt = 0 to myReports.Count - 1
    rpt = myReports[iRpt]
    For iPage = 0 to rpt.Pages.Count – 1
        mainReport.Pages.Insert(rpt.Pages(iPage))
    Next iPage
Next iRpt

查找有关Pages collection here

的更多信息