Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有动态列的Birt报告_Java_Birt - Fatal编程技术网

Java 具有动态列的Birt报告

Java 具有动态列的Birt报告,java,birt,Java,Birt,我想从xml数据源创建一个具有动态列数的Birt表报告。我该怎么做呢 在搜索时,我读到可以使用脚本数据源来完成,但我找不到如何将脚本数据源与xml数据源一起使用的示例或文档 我还尝试了交叉表,它似乎只在存在某种表单聚合的情况下才起作用(它不适用于字符串) 下面是一个示例xml: <table> <row> <name></name> <question_1>answer<question

我想从xml数据源创建一个具有动态列数的Birt表报告。我该怎么做呢

在搜索时,我读到可以使用脚本数据源来完成,但我找不到如何将脚本数据源与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>

您可以执行以下操作:

  • 将列表添加到报告中
  • 在列表标题中添加一个由1列和一些行组成的网格
  • 在此网格的每一行中添加该行的标题
  • 在此网格中,将宽度设置为文本的大小
  • 在“详细信息列表”中,添加另一个包含1列和所需行数的网格
  • 在第二个网格中,将所需的数据集拖动到每个单元格中
  • 将第二个网格的“常规”>“显示”属性设置为“内联”(而不是“块”)
  • 在第二个网格中,将宽度设置为文本的大小

正如您在问题中提到的,我认为最简单的方法是交叉表。事实上,datacube可以使用数字度量值,但我们可以通过创建一个虚拟度量值,并在底层datacube中使用字段“answer”作为表达式来解决这个问题。将度量值的类型设置为“String”,将聚合函数设置为“FIRST”,然后交叉表应在单元格中显示每个问题的答案

列计数和内容定义在哪里?@Simulant我添加了示例xml从xml数据源创建数据集并创建数据立方体。您可以将数据立方体链接到交叉选项卡中。按照创建交叉选项卡。唯一的区别是它有jdbc数据源。所有其他步骤都是相同的。
name | question_1 | question_2