vb6 ActiveReports1:如何构建具有3个带有不同数据源的子报表的报表

问题描述 投票:0回答:1

我有一个使用ActiveReports1的旧应用程序。我将变量传递给报表本身,然后对SQL进行三个查询调用,每个查询都转储到其自己的记录集中。每个查询都有一个特定的where子句,因为vb6没有linq,所以我会咬住子弹并调用sql 3次。 :(。无论如何,我有三个部分,电气,物理和密闭空间。如何在此报告中创建3个子报表?我附上了报告部分的示例。基本上,所有具有该ID的记录都在一个名为“ X”的列中具有字符串值,而Physical则是所有在该列中没有字符串值的记录。该列值的值。不是vb6程序员,所以任何方向都很好。通常,我会破坏列上的数据表,并且它将以这种方式进行分组。.NET中,但不确定从何处开始。

enter image description here

vb6 recordset activereports
1个回答
0
投票

关于每个子报表的不同数据源,您可以通过执行以下general步骤来处理任意数量的子报表:

  1. 在单独的文件中创建子报告(subreport1.rpx)
  2. 在父报表(srpt1)上创建SubReport对象
  3. 在上级报表的脚本中实例化报表和数据源
  4. 在脚本中,加载您的子rpx,提供连接字符串和SQL语句

这里是一个示例脚本:

Private rptSub As GrapeCity.ActiveReports.SectionReport
Private ds As New GrapeCity.ActiveReports.Data.SqlDBDataSource()

Sub GroupFooter1_Format
    rptSub = New GrapeCity.ActiveReports.SectionReport()
    rptSub.LoadLayout("MyCustomFolder\subreport1.rpx")
    ds.ConnectionString = "MyConnectionString"
    ds.SQL = "SELECT * FROM MyTable WHERE ImportantField = 'FilterValue'"
    rptSub.DataSource = ds
    me.srpt1.Report = rptSub
End Sub

这是一个工作示例(与上面的通用代码不完全相同),它与嵌入在WinForm应用程序中的ActiveReports版本一起使用。

Working Example

© www.soinside.com 2019 - 2024. All rights reserved.