带有动态列的 Birt Report
Birt Report with Dynamic Column
我想用来自 xml 数据源的动态列数创建一个 Birt table 报告。我该怎么做?
在搜索时我读到可以使用脚本数据源来完成,但我找不到关于如何将脚本数据源与 xml 数据源一起使用的示例或文档。
我也尝试过交叉表,它似乎只有在存在某种形式聚合时才有效(它不适用于字符串)。
这是一个示例 xml:
<table>
<row>
<name></name>
<question_1>answer<question_1>
<question_2>answer<question_2>
</row>
<!-- or it can be like this. I can control how the xml is generated-->
<row>
<name></name>
<question>answer<question>
<question>answer<question>
</row>
</table>
不同 xml 的问题数量不同,但一个 xml 中的行相同。我希望数据以这样的表格形式出现
name | question_1 | question_2
您可以执行以下操作:
- 将列表添加到您的报告
- 在列表中 Header 添加 1 列和一些行的网格
- 在此网格的每一行中添加行的标题
- 在此网格中,将宽度设置为文本的大小
- 在列表详细信息中添加另一个 1 列和所需行数的网格
- 在第二个网格中,将您想要的数据集拖到每个单元格中
- 将第二个网格的常规 > 显示 属性 设置为内联(而不是块)
- 在第二个网格中,将宽度设置为文本的大小
正如您在问题中提到的,我认为最简单的方法是交叉表。事实上,数据立方体使用数字度量,但我们可以通过创建一个虚拟度量来解决它,其中字段 "answer" 作为基础数据立方体中的表达式。将度量类型设置为 "String" 并将聚合函数设置为 "FIRST" ,然后交叉表应在单元格
中显示每个问题的答案
我想用来自 xml 数据源的动态列数创建一个 Birt table 报告。我该怎么做?
在搜索时我读到可以使用脚本数据源来完成,但我找不到关于如何将脚本数据源与 xml 数据源一起使用的示例或文档。
我也尝试过交叉表,它似乎只有在存在某种形式聚合时才有效(它不适用于字符串)。
这是一个示例 xml:
<table>
<row>
<name></name>
<question_1>answer<question_1>
<question_2>answer<question_2>
</row>
<!-- or it can be like this. I can control how the xml is generated-->
<row>
<name></name>
<question>answer<question>
<question>answer<question>
</row>
</table>
不同 xml 的问题数量不同,但一个 xml 中的行相同。我希望数据以这样的表格形式出现
name | question_1 | question_2
您可以执行以下操作:
- 将列表添加到您的报告
- 在列表中 Header 添加 1 列和一些行的网格
- 在此网格的每一行中添加行的标题
- 在此网格中,将宽度设置为文本的大小
- 在列表详细信息中添加另一个 1 列和所需行数的网格
- 在第二个网格中,将您想要的数据集拖到每个单元格中
- 将第二个网格的常规 > 显示 属性 设置为内联(而不是块)
- 在第二个网格中,将宽度设置为文本的大小
正如您在问题中提到的,我认为最简单的方法是交叉表。事实上,数据立方体使用数字度量,但我们可以通过创建一个虚拟度量来解决它,其中字段 "answer" 作为基础数据立方体中的表达式。将度量类型设置为 "String" 并将聚合函数设置为 "FIRST" ,然后交叉表应在单元格
中显示每个问题的答案