Параметры источника данных рождения из файла свойств
-
20-09-2019 - |
Вопрос
У меня есть несколько отчетов BIRT, которые получают данные из одного и того же источника данных jdbc.
Можно ли получить параметры подключения (URL-адрес драйвера, имя пользователя и пароль) из внешнего файла свойств или подобного?
Решение
После создания функционального источника данных вы можете добавить этот источник данных в библиотеку отчетов, которую можно импортировать и использовать во всех отчетах BIRT в вашей системе.Источник внутри библиотеки может иметь статические атрибуты соединения, или вы можете абстрагировать их, используя внешние свойства.
Если вы хотите экспортировать информацию о соединении, вам нужно будет настроить сам источник данных.В редакторе источников данных есть раздел «Привязка свойств», который позволяет абстрагировать все значения, управляющие подключением к данным.Отсюда вы можете привязать значения (с помощью редактора выражений) либо к параметрам отчета, либо к файлу свойств.
Для привязки к параметру отчета используйте следующий синтаксис: params[parametername].value
как выражение.
Чтобы выполнить привязку к файлу свойств, установите файл ресурсов в свойствах отчета верхнего уровня.Отсюда вы можете просто использовать значение ключа свойства, чтобы привязать запись к источнику данных.
Удачи!
Другие советы
Альтернативой хорошему решению @Mystik «Привязка свойств» является экспортирование в профиль подключения.
- Создать источник данных (скажем «DS»), настроив правильную конфигурацию параметров для подключения к БД.
- Щелкните правой кнопкой мыши «DS» > «Энтерализация в профиль подключения…»> отметьте оба параметра, задайте имя для профиля подключения, ОК > задайте путь и имя файла для сохранения Магазин профилей подключения (скажем, «имя_отчета.cps»), снимите флажок «Шифровать...»(таким образом мы можем вручную изменить информацию в XML-файле).
Теперь у нас есть «reportName.cps», XML-файл, который мы можем изменить в соответствии со средой, в которой мы размещаем наш отчет (разработка, производство и т. д.).Проблема в том, что «DS» статически загрузил информацию из «reportName.cps».Он загружает их динамически, если может найти «reportName.cps» по указанному нами абсолютному пути.Поэтому при изменении среды путь к файлу будет другим, и отчет не найдет наш файл.Чтобы сообщить отчету правильное расположение файла и динамически его загрузить, напишем скрипт:
Настройка доОткрыть скрипт чтобы использовать профиль подключения, развернутый в папке ресурсов, который может быть разным для каждой среды:
var myresourcefolder = reportContext.getDesignHandle().getResourceFolder(); this.setExtensionProperty("OdaConnProfileStorePath", myresourcefolder + "/reportName.cps");