加入分组表

时间:2012-11-07 16:31:29

标签: birt

我有两个不同的脚本数据集,我从中提取数据并聚合(在同一个键上)。我想要做的是显示来自两个来源的聚合数据的一行。数据来自脚本数据源(POJO)。

下面给出了一个简化示例,其中订单包含许多组件,每个组件以不同的报价为不同的客户。然后,当每个订单以不同的价格填入不同的批次(或填充)时。我希望能够使用订购和填充总数以及加权平均报价和填充价格生成每个订单的摘要。

订单组件表

Order ID, Customer Num, Qty, Quoted Px 
Ord01,Cust01,3,100
Ord01,Cust02,3,102 
Ord02,Cust01,5,200 
Ord02,Cust03,5,204

然后是Order Fullfillment表

OrderID,FillId,Qty,CostPx 
Ord01,F01,4,100 
Ord01,F02,2,106 
Ord02,F03,2,200
Ord02,F04,8,210'

我想展示这样的东西:

Order ID, Order Qty, Fill Qty, Avg Order Px, Avg Fill Px
Ord01, 6, 6, 101, 102
Ord02, 10, 10, 202, 208

我尝试过使用子报告,这似乎能够让我得到结果,但格式很糟糕。子表标题重复,所以每个订单都有自己的标题。

2 个答案:

答案 0 :(得分:0)

您可能希望在两个脚本数据集之间创建一个BIRT连接数据集,基于"订单ID"列,然后在报表中使用此联接数据集。它应该满足你的需求。

答案 1 :(得分:0)

我或多或少地按照以下guide解决了我的问题。

所以我创建了一个链接到我的第一个数据源的List。然后我在订单ID上添加了一个组,以便每个订单有一个列表行。在组头中我添加了一个2x1网格,我将Order Components的表放在网格的一侧,并将一个Fills表放到另一侧。我不得不为这两个添加过滤器,以便它们只包含正确OrderId的数据。然后我按OrderId对表进行分组,添加了我的聚合字段。

剩下的就是设定可见性。所以我将表格细节的可见性设置为false。为了只显示一次表头(而不是每个订单一次),我向List添加了一个Running Count聚合,并在此聚合大于1时将visibiity设置为不可见。

最后实际上很容易但是花了我很多时间才弄清楚如何去做。