2013-12-04 2 views
2

Я создаю отчет BIRT, и мне нужно разделить строку с разделителями-запятыми из набора данных на несколько столбцов в таблице.Разделить строку с разделителями-запятыми на таблицу в BIRT

Данные выглядит следующим образом:

256,1400.031, -70.014,1,4.544,0.36,10,31,30.89999962,0

256,1400, -69.984,2,4.574, 1.36,10,0,0,0

...

данные хранятся таким образом, в базе данных, и я не могу изменить это, но мне нужно, чтобы иметь возможность отобразить его в виде таблицы , Я новичок в BIRT, какие-то идеи?

ответ

4

Я думаю, что самый простой способ - создать вычисляемый столбец в наборе данных для каждого поля. Например, если объединенное поле из базы данных называется «mergedData» вы можете разделить его с такого рода выражения:

Первое поле (вычисляемый столбец) выражение:

var tempArray=row["mergedData"].split(","); 
tempArray[0]; 

Второе поле:

var tempArray=row["mergedData"].split(","); 
tempArray[1]; 

и т. Д.

+1

Я пытался что-то подобное, но сколько объекты в ограниченном списке является переменными. – Austin

+0

Но откуда мы знаем, что представляет каждый столбец, если список является переменным? Кроме того, существует ли максимальное количество столбцов или оно полностью общее? – Dominique

+0

Есть еще одно поле, которое сохраняет метки заголовков столбцов (также в списке с разделителями-запятыми), которые соответствуют данным. Но обе эти колонки могут иметь полностью переменную длину. – Austin

1

В зависимости от некоторых переменных, которые вы не упомянули.

Если набор данных является исходным (не обновляется много или когда-либо). Откройте набор данных с помощью Excel, переведя его из .csv в .xls и сохраните.

Используйте Excel в качестве источника данных. Предполагая, что вы используете BIRT 4.1 или новее, это должно работать нормально.

Я не думаю, что есть какой-либо SQL-код, который легко преобразует .csv

Смежные вопросы