BIRT: Как я могу получить доступ к текущим соединениям / сеансу БД из JavaScript? - PullRequest
0 голосов
/ 13 октября 2010

Мне нужно запустить фрагмент кода Java, который создает сложный запрос SQL. Я знаю, как вызывать методы Java из JavaScript в BIRT, но как я могу получить указатель на текущий сеанс / соединение с БД?

1 Ответ

1 голос
/ 13 октября 2010

Если вы измените событие onCreate вашего набора данных, вы можете сделать это в отчете и оставить BIRT для управления соединением с БД. Сделайте следующее:

  1. Выберите ваш набор данных в окне проводника данных
  2. Выберите вкладку сценариев вдоль нижнего края области холста Eclipse
  3. Выберите событие "onCreate" из раскрывающегося списка доступных событий в верхней части
  4. Поработайте над магией построения запросов в редакторе, используя JavScript. Вы можете импортировать существующий POJO, который строит ваш запрос, используя конструкцию "Packages".
  5. Как только ваш POJO построит запрос, верните его в сценарий и установите "this.queryText" равным полученной строке.

Это гарантирует, что набор данных выполняет новый запрос, а не тот, который использовался для создания набора данных.

Единственное, на что нужно обратить внимание, это то, что запрос, который вы задали в скрипте, должен возвращать одинаковое количество столбцов, и каждый столбец должен иметь имя, совпадающее с конфигурацией по умолчанию, и иметь одинаковый тип данных. То, как заполняются отдельные столбцы, зависит от SQL, как должен выглядеть конечный набор данных.

Удачи!

...