2

希望有人能告诉我这个 BIRT 报告有什么问题。我正在尝试使用嵌套的脚本数据集,其中外部数据集通过报告变量将数据传递给内部数据集。

我发现这份报告并没有像我想象的那样行事。似乎报告变量正在输出每行的最后一个值。对于以下报告,我看到的输出如下:

key0
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

key1
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

....

key9
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

而我希望看到这个:

key0
  value[0][0]
  value[0][1]
  value[0][2]
  value[0][3]
  value[0][4]

key1
  value[1][0]
  value[1][1]
  value[1][2]
  value[1][3]
  value[1][4]

....

key9
  value[9][0]
  value[9][1]
  value[9][2]
  value[9][3]
  value[9][4]

我的(完全独立的)示例报告在这里:单击以查看 pastebin 中的报告 xml

关键思想是在外部数据集的fetch中,我设置了报告变量:

vars["values"] = value;

内部数据集的fetch将抓取它:

values = vars["values"].iterator();

内部数据集的fetch将从报告变量中获取数据:

row["value"] = values.next();
4

1 回答 1

3

您应该能够使用 dataSet 参数来执行此操作。在您的示例中,您将在外部数据集的数据集编辑器中设置输出参数。您将此参数的值设置为您传递给其他数据集的值。

在内部数据集中,您将创建一个输入参数来获取值。在您的布局中,您需要刷新外部列表上的绑定,以便输出参数是一个绑定。然后,您将转到内部列表的绑定选项卡,并选择将外部列表的输出参数绑定传递给您的输入参数。

希望这可以帮助。

于 2013-03-05T20:07:28.590 回答