Eclipse plugin 如何总结和重用复杂的数据集

Eclipse plugin 如何总结和重用复杂的数据集,eclipse-plugin,birt,Eclipse Plugin,Birt,如何跨多个表重用单个复杂数据集 数据集有许多计算列,需要详细报告和汇总报告。下面是一个非常简化的示例数据集: is_food sale_association food_type total_sold total_associations percent_total 1 Before Movie Popcorn 50 3 x BirtMath.safeDivide(...) 0 Befor

如何跨多个表重用单个复杂数据集

数据集有许多计算列,需要详细报告和汇总报告。下面是一个非常简化的示例数据集:

is_food  sale_association  food_type  total_sold  total_associations  percent_total
1        Before Movie      Popcorn    50          3                   x BirtMath.safeDivide(...)
0        Before Movie      Soda       10          2                   x BirtMath.safeDivide(...)
1        During Movie      Jujubee    10          1                   x BirtMath.safeDivide(...)
0        After Movie       Soda       15          2                   x BirtMath.safeDivide(...)
根据这一数据集,我想在汇总非食品时创建所有食品类型的详细摘要(使用“is_食品”列),所有食品类型的另一个摘要,销售协会汇总的非食品食品的另一个详细摘要,等等

该报告还将包含一些需要计算的百分比(在最复杂的表中为6个)(一些跨行,另一些跨给定组中的所有行),所有这些百分比的分母值都可以为零,因此需要使用safeDivide进行防范(这是源SQL查询中的一个PITA,而源SQL查询本身正在进行聚合——当分子和分母都是和时,检查是否被零除会导致毛茸茸的查询)

显然,我可以通过适当地关注()SQL查询来做到这一点,但如果我已经为最详细的表创建了monster查询,那么创建12或15个非常相似的查询似乎是浪费时间和精力

看起来不简单的是如何在表中执行汇总。我通过隐藏稍后汇总的行(例如示例中的“is_food==0”)成功地将一些内容组合在一起然后创建显示在页脚行中的自定义数据绑定。这不仅让人感觉像是一种黑客行为,还干扰了自然排序行的能力。再次回到示例,如果我按销售总额排序,并用is_food==0汇总行,自然排序应该是爆米花、非食品、枣


BIRT维基中没有这方面的内容,“BIRT:A Field Guide,3rd E.”也没有真正深入探讨这一主题。

这似乎是一个相当开放的问题(尽管我同意重复使用单个数据集比使用多个查询以稍微不同的方式检索同一数据更有意义).一些一般性建议:

  • 使用所需数据的最详细版本作为每个BIRT报告项(通常为BIRT表)的通用数据集

  • 如果需要仅汇总级别报告,请在所需级别向BIRT表中添加组,根据需要向组页眉/页脚中添加数据项,并从BIRT表中删除详细级别行

  • 如果在某些情况下需要详细程度报告(例如,对于食品项目而非非食品项目),请如上所述向BIRT表中添加组,并将详细程度行的可见性(在属性编辑器-属性-可见性中)设置为选中隐藏元素,然后指定适当的表达式以抑制非必需行(本例中为非食品项目)


聚合(即摘要表达式)可以通过选择整个表、选择属性编辑器中的绑定选项卡并单击添加聚合…按钮添加到表中。

这似乎是一个相当开放的问题(尽管我同意重复使用单个数据集比使用多个查询以稍微不同的方式检索相同的数据更有意义)。以下是一些一般性建议:

  • 使用所需数据的最详细版本作为每个BIRT报告项(通常为BIRT表)的通用数据集

  • 如果需要仅汇总级别报告,请在所需级别向BIRT表中添加组,根据需要向组页眉/页脚中添加数据项,并从BIRT表中删除详细级别行

  • 如果在某些情况下需要详细程度报告(例如,对于食品项目而非非食品项目),请如上所述向BIRT表中添加组,并将详细程度行的可见性(在属性编辑器-属性-可见性中)设置为选中隐藏元素,然后指定适当的表达式以抑制非必需行(本例中为非食品项目)

通过选择整个表,选择属性编辑器中的“绑定”选项卡并单击
添加聚合…
按钮,可以将聚合(即摘要表达式)添加到表中