2015-03-16 2 views
2

Я хочу создать отчет таблицы Birt с динамическим числом столбцов из источника данных 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> 

количество вопросов отличается для различных XML, но они одинаковы для строк в пределах одного XML. Я хочу, чтобы данные отображаются в табличной форме, как этот

name | question_1 | question_2 
+0

где указано количество столбцов и содержимое? – Simulant

+0

@Simulant Я добавил образец xml – dynamo

+0

Создайте набор данных из источника данных xml и создайте куб данных. Вы можете связать куб данных с кросс-вкладкой. Следуйте [этому учебнику] (https://birttutorial.blogspot.com/2017/05/birt-cross-tab-for-dynamic-columned.html), чтобы создать кросс-вкладку. Единственное отличие заключается в том, что он имеет источник данных jdbc. Все остальные шаги одинаковы. –

ответ

1

Как упоминалось его в этом вопросе, я думаю, самый простой способ сделать это перекрестный. Действительно, datacubes работают с числовыми измерениями, но мы можем обходным путем, создав фиктивную меру с полем «ответ» как выражение в базовом datacube. Установите тип меры как «String», а агрегатная функция - «FIRST», тогда кросс-таблица должна отображать ответ каждого вопроса в ячейках

0

Вы можете сделать следующее:

  • Добавить список в отчет
  • В списке заголовка добавить сетку 1 столбца и некоторые строки
  • в каждой строке этой сетки добавить заголовок строки
  • в этой сетке, установите ширину до размера текста
  • I n Подробности списка добавьте еще одну сетку из 1 столбца и столько строк, сколько вам нужно
  • В этой второй сетке перетащите набор данных, которые вы хотите в каждую ячейку
  • Установите этот второй раздел «Общие»> «Показать свойство» в строку (вместо этого блока)
  • во второй сетке, установите ширину до размера текста
Смежные вопросы