如何基于多个数据集创建 BIRT 报告

Posted

技术标签:

【中文标题】如何基于多个数据集创建 BIRT 报告【英文标题】:How to create BIRT report based on multiple data sets 【发布时间】:2010-09-04 16:12:47 【问题描述】:

我在创建 BIRT 报告方面需要帮助; 情况是我有多个查询,但报告所有列应按一列分组,例如(操作员)喜欢:

运算符 | Expr1 |经验2 | Expr3 | expr4 |

op1 | ## | ## | ## | ## |

op2 | ## | ## | ## | ## |

op3 | ## | ## | ## | ## |


我怎样才能做到这一点? 我正在尝试使运算符分离数据集并将其放在第一列中并在所有查询中添加一个参数,即(where (operator = ?)) 从当前行的运算符列中获取运算符..但我可以不要将每个数据集中的参数值附加到 Operator 数据集数据集。 这个策略对吗? 如果是的话..我该怎么做。 如果不是,正确的策略是什么? 万分感谢,

【问题讨论】:

【参考方案1】:

如果您的多个数据集来自同一个数据源,我建议合并查询。

如果多个数据集来自不同的数据源,您可以使用 BIRT 中的联合数据集功能将它们链接在一起。

将两个单独的数据集链接在一起:

    在 BIRT 报表设计器的 Data Explorer 窗格中右键单击 Data Sets,然后选择 New Joint Data Set。 在“新建联合数据集”对话框中,从左侧列表中选择要连接的数据集和字段(此处为操作员)。 从两个列表之间的选项中选择连接类型(内、左外、右外、全外)。 在右侧列表中选择要加入的数据集和字段(此处再次为操作员)。 在对话框底部的选项中为生成的新数据集指定一个有意义的名称。 点击完成。 从“编辑数据集”对话框编辑结果数据集以根据需要生成输出。

您只能从不超过两个现有数据集生成联合数据集。但是,联合数据集本身可以作为其他联合数据集的输入数据集包含在内 - 因此,如果您需要将三个数据集连接在一起,可以通过将其中两个连接到一个联合数据集来实现,然后基于第一个创建新的联合数据集联合数据集和第三个原始数据集。

无需对任何现有查询进行参数化即可加入数据集。仅当意图限制在该数据集中返回的运算符(例如,仅返回运算符 100-121)时,才应在查询中包含有关运算符的参数条件。

【讨论】:

如果你能回答我关于Birt的问题,请关注网址:***.com/questions/47808428/…【参考方案2】:

您当然可以根据需要在 BIRT 报告上创建任意数量的数据集。您可以从那里创建联合数据集,以创建统一的数据视图。您的数据集中是否有一个通用字段可以让您创建连接?

如果您无法创建联合数据集,我建议您设置脚本数据集。脚本集依赖 POJO 来聚合数据并应用必要的业务逻辑来生成所需的统一视图。从那里您将数据从 POJO 读取到报告中,一切就绪。

【讨论】:

Thx mystikspiral 我已经有很多数据集 Expr1 Expr2 Expr3 其中都有一个公共列是 Operator。我如何加入 10 个数据集,无论我发现每个联合数据集都加入了 2 个数据集。以及将所有数据集参数化为公共数据集列的值的想法如何? 提示...来自一张表的所有查询 您可以通过放置一个?在查询文本中,然后查看数据集编辑器的参数部分以将参数绑定到查询。 我不能在其他数据集中做到这一点,比如 where (OperatorName = ?) 我在查询中添加了 where (OperatorName = ?) 但是如何将此参数与 OperatorsName 数据集列值链接。我只能附加到报表参数??

以上是关于如何基于多个数据集创建 BIRT 报告的主要内容,如果未能解决你的问题,请参考以下文章

如何将 birt 数据集列拆分为多行

BIRT将两个数据集中的字段报告/组合到一个动态文本框中

BIRT 报表设计 - 设置辅助数据集的参数

动态配置和生成 BIRT 报告

在Birt报告中获取左边的重复行

如何在 BIRT 报告中多次运行一个表