【问题标题】:BIRT Report Generation - How do I keep all row data?BIRT 报告生成 - 如何保留所有行数据?
【发布时间】:2015-11-10 20:16:01
【问题描述】:

我的问题与我运行 BIRT 报告时生成的输出有关。

通常,BIRT 报告不会显示写入报告的每一行数据的重复部分。例如,如果我正在生成一个包含多行(行)数据的报告,并且数据是按“组 ID”组织的。每个特定组 ID 的数据将按每个组 ID 缩进和组织显示。组 ID 将显示在输出的第一行中,但对于后续数据行(对于相同的组 ID),组 ID 将不会显示。换句话说,不需要在报告中一遍又一遍地显示相同的组 ID。这种方法有助于减少混乱并使报告更易于阅读。

我有一个客户希望以这种方式生成报告。规范是显示每一行报告数据,就好像它直接来自 SQL 查询一样。

有没有办法让 BIRT 报告在报告生成期间显示所有数据?我翻遍了,仍然没有任何想法。

谢谢!

【问题讨论】:

    标签: java spring birt


    【解决方案1】:

    您的假设“通常,...”是错误的。相反,通常 BIRT确实输出每一行报告数据,就好像它直接来自 SQL 查询一样。

    如果您创建一个组并且不想重复相同的值,则必须将这些列移动到组标题(如果您愿意,可以使用“drop cell:detail” )。

    但是,对于,还有一个称为“抑制重复”的属性。也许这是在您的模板或样式表中设置的,或者您不小心检查了它?

    确保未选中此项!

    【讨论】:

    • 感谢您的信息。我想了解如何使用 BIRT 的此功能,但即使在尝试重新组织我的数据列之后,我仍然感到困惑。我想你是在告诉我在我的 DataCube 中重新组织我的列数据......对吗?我现在组织它的方式是,每一列都在它之前的列下缩进显示,并且所有内容都在同一个组中。我尝试为每一列创建一个新组,这基本上给了我相同的结果。请详细说明,以便我理解这个概念。
    • 抱歉,我不使用数据立方体,因此无法为您提供帮助。您应该在问题中提到您正在使用数据立方体。我假设您使用的是表格项。
    • 您的建议最终迫使我尝试不同的方法来解决这个问题。我没有使用 DataCube 和 CrossTab 来显示查询结果,而是插入并构建了一个表。该表为我提供了客户所需的功能。我花了一些时间来学习,但我相信我现在可以正确输出我的数据了。谢谢!
    【解决方案2】:

    在您的 SQL 中使用 ROW_NUMBER() 创建一个唯一值,现在每一行都会有所不同并会显示出来。在报告中包含该字段,但不要显示(隐藏)。

    这应该会给你想要的结果。

    【讨论】:

    • 感谢您的回复。我完全按照你的建议做了,而且效果很好。我现在在报告中显示了每一行。但是,小计没有像我希望的那样工作。报告中的每一行都进行了小计。我无法正确得出我正在寻找的正确小计。我仍在努力提供正确的小计。谢谢!
    • 仍在寻找解决方案...当我将唯一行号(并随后将其隐藏)添加到报告中时,我确实看到报告中的每一行输出。这部分很好,但是,小计不正确。要使用 BIRT 小计(和总计功能),我需要将汇总的数据项定义为数据立方体中的汇总字段(度量)。当我以这种方式构建报表时(使用 Row_Number() 功能),我得到报表中每一行数据的小计(而不是我请求计算小计的分组)。感谢您的任何建议。
    • Row_Number() 函数对于强制每行输出是唯一的(并被显示)很有用。但是,以这种方式显示数据后,小计功能根本不起作用。感谢您的帮助!
    • 您是否使用调色板中的新聚合工具来获取小计?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多