如果导入了2个子报表,则不显示详细信息部分

时间:2016-10-22 06:48:10

标签: .net crystal-reports

我使用Crystal Reports来显示报告数据:

  Dim data As clsData = clsData.Instance
    Dim ds As New DataSet
    Dim tblMyCompany As DataTable = data.GetDataTableFromQuery("select * from tblCompany where Id = (select CompId from tblCheckIn Where Id =" & CheckId & ")")
    tblMyCompany.TableName = "tblCompany"
    ds.Tables.Add(tblMyCompany)
    Dim tblCheckIn As DataTable = data.GetDataTableFromQuery("select * from tblCheckIn where id=" & CheckId)
    tblCheckIn.TableName = "tblCheckIn"
    ds.Tables.Add(tblCheckIn)

    Dim CheckInRoomQuery As DataTable = data.GetDataTableFromQuery("select * from CheckInRoomQuery where ChId=" & CheckId)
    CheckInRoomQuery.TableName = "CheckInRoomQuery"
    ds.Tables.Add(CheckInRoomQuery)
    Dim tblCheckInExtra As DataTable = data.GetDataTableFromQuery("select * from tblCheckInExtra where ChId=" & CheckId)
    tblCheckInExtra.TableName = "tblCheckInExtra"
    ds.Tables.Add(tblCheckInExtra)

    Dim ob As rptCheckOut = New rptCheckOut

    ob.SetDataSource(ds)

    ob.Subreports(0).SetDataSource(CheckInRoomQuery)
    'ob.Subreports(1).SetDataSource(tblCheckInExtra)
    CrystalReportViewer1.ReportSource = ob

如果我在详细信息部分中仅插入一个子报表但在我在详细信息部分插入第二个子报表时失败,则此代码很有效。当我在详细信息部分中插入2个子报告时(详细信息部分a,详细信息部分b),则两个部分都不显示数据。我确信我的查询包含数据。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

为什么在一个部分中需要两个子报告?

您可以通过两种方式解决问题:

  1. 将2个子报告合并为一个以显示数据。

  2. 为子报表使用2个GroupHeaders。根据表格中的单个条目对它们进行分组,以便它们不会重复。