Создание отчета BIRT в свободной форме с использованием источника данных Scripted - PullRequest
0 голосов
/ 03 августа 2011

Я пытаюсь создать отчет BIRT в свободной форме. Отчет не состоит из строк, имеющих одинаковые имена столбцов в каждой строке.

Вместо этого это отчет в свободной форме, который будет иметь следующую форму.

"Name: {FirstName} {LastName}         Addess : {Address}
 Phone#  {Phone#}
....
....
"

Я использую источник данных со сценарием, который по существу возвращает карту, содержащую пары значений имени {FirstName, LastName, Address, Phone и другие поля} ..

Но я не уверен, как установить переменные и как я могу получить FirstName, LastName и т. Д. Должен ли я попытаться использовать динамический текст.

Я не знаю, как BIRT может обрабатывать данные, не связанные со строками.

Вот мой открытый скрипт набора данных.

open:

    util = new Packages.test.ReportsUtil();
    reportsVO = util.getReportVO("ABC");


in fetch:
    if(currentrow < totalrows) {
        dataSetRow["FirstName"] = reportsVO.getPropValue("identity.FirstName");
        dataSetRow["LastName"] = reportsVO.getPropValue("identity.LastName");    
        currentrow++;
    } else {
        return (false);
    }

Но я не уверен, как мне получить доступ к FirstName и LastName на главной странице макета.

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

Я сделал нечто подобное (BIRT 3.7), но я использовал row ["colName"] вместо dataSetRow ["colName"], и это, похоже, работает.У меня есть данные в списке, а затем каждый элемент списка является сеткой.Я установил привязку данных в списке к набору данных.Сетка может видеть значение в виде строки ["colName"].

0 голосов
/ 04 августа 2011

Цель источника данных в сценарии - дать вам возможность использовать логику, присущую вашей модели данных, и извлечь выгоду из любых бизнес-правил, которые манипулируют этими данными.В конце концов, он все еще хочет, чтобы данные были сформированы в довольно традиционный набор на основе строк.

Вы упомянули динамический текст, и я думаю, что это было бы отличным использованием для обработчиков событий на основе Java.Вы можете использовать логику в объекте Java, который вы привязали к источнику данных в сценарии, чтобы вместо этого связать событие с жизненным циклом отчета и таким образом получить ваши нереляционные данные.

Вы даже можете вызвать свой объект Java напрямую из обработчика событий JavaScript (гораздо проще подключить через IDE), используя конструкцию JS "Packages".

Существует множество примеров, которые помогут вам сделать это на бирже BIRT.

...