Преобразование отчетов Oracle (.rdf) в отчеты BIRT - PullRequest
6 голосов
/ 14 января 2011

У меня есть несколько отчетов Oracle (.rdf), которые я собираюсь преобразовать в отчеты BIRT. Есть ли способ конвертировать .rdf файлы в файлы дизайна отчетов BIRT?

Ответы [ 3 ]

4 голосов
/ 24 января 2013

Полностью автоматизированное решение, вероятно, невозможно. Вы можете частично автоматизировать процесс конвертации следующим образом:

  1. Преобразование файлов RDF в XML.
  2. Извлечь запрос отчета.
  3. Преобразование XML в BIRT (или JRXML) с использованием XSLT.

Преобразование XML

Первый шаг довольно прост с использованием Cygwin:

cd /path/to/reports/
mkdir xml
for i in *.rdf; do
  rwconverter.exe batch=yes source="$i" dest=xml/"$i".xml dtype=xmlfile \
    userid=scott/tiger@xe
done

Добыча

Второй шаг также относительно прост: используется starlet (переименуйте xml.exe в starlet.exe, чтобы избежать конфликтов с Oracle xml.exe):

starlet.exe sel -t -v "/report/data/dataSource/select" filename.rdf.xml

Вы также можете использовать xmllint, но он включает элементы select и CDATA, которые вам придется анализировать отдельно:

xmllint --xpath /report/data/dataSource/select filename.rdf.xml

Преобразование формата

Третий шаг - сложный. Создайте шаблон XSL, который читает макеты RDF (например, <displayInfo x="0.74377" y="0.97913" width="1.29626" height="1.62695" />). Затем преобразуйте эти макеты в соответствующий формат, используемый обработчиком отчетов назначения (например, BIRT или JasperReports).

Вы не получите 100% -ное решение, но 80% -ное решение может значительно уменьшить количество монотонной, подверженной ошибкам работы, необходимой для преобразования отчетов.

3 голосов
/ 11 февраля 2011

У меня когда-то была задача конвертировать * .rdf файлы в отчеты Jasper.Поскольку я не знаю BIRT, я понятия не имею, будет ли этот подход работать и с BIRT.

В любом случае, я экспортировал файлы * .rdf как xml, проанализировал вывод с помощью Perl и написал определения JasperТакже как XML.Для большинства отчетов это работало довольно хорошо.Я имею в виду, однако, один отчет, который я не смог перевести автоматически: это был отчет, в котором набор результатов двух запросов был выложен рядом.

1 голос
/ 25 января 2011

Я не нашел никаких инструментов, которые делают это.Некоторые могут назвать это бизнес-возможностью .

RDF, насколько я могу судить, файлы в каком-то классном двоичном формате.Чтобы даже попытаться сделать это, я бы сначала преобразовал его в файл REX, который должен быть portable xml.Затем необходимо преобразовать структуру REX в структуру BIRT.Честно говоря, я понятия не имею, насколько задокументирован REX-файл, но, возможно, поскольку вы знаете, как он выглядит с визуальной стороны, вы можете понять его.

Удачи!

...