Как установить пользовательскую переменную mysql при загрузке отчета Birt

Я использую инструмент отчетности о рождении с года. его крутой продукт очень хороший.

Сегодня у меня проблема. что я хочу установить пользовательскую переменную mysql при загрузке отчета в качестве примера SET @user="USR009";

Я пробовал несколько способов сделать это, я не мог получить ответ, может ли кто-нибудь помочь мне в этом вопросе, большое спасибо

я застрял в этой проблеме

С уважением, Рошан


person Roshan Wijesena    schedule 20.07.2011    source источник


Ответы (2)


Вы можете установить значение в запросе с помощью параметра отчета и инициализировать его в скрипте.

  1. Добавить параметр отчета (ПАРАМЕТР_1)
  2. Добавьте "SET @user = QUERY_PARAMETER;" перед оператором select в наборе данных.
  3. Выбрав набор данных, выберите вкладку сценария и найдите раскрывающийся список beforeOpen. Здесь добавьте строку: this.queryText = this.queryText.replace("QUERY_PARAMETER", params["PARAMETER_1"].value);

Скрипт заменит все экземпляры QUERY_PARAMETER текстом. Возможно, вам все еще понадобятся кавычки в операторе set (например, SET @user = "QUERY_PARAMETER";).

Список параметров

Редактировать список данных

Скрипт

person Adam Morris    schedule 20.07.2011
comment
Большое спасибо за ваш комментарий. Я пробовал этот способ, но появляется ошибка. Следующие элементы содержат ошибки: Таблица (id = 142): - Невозможно получить метаданные набора результатов. org.eclipse.birt.report.data.oda.jdbc.JDBCException: инструкция SQL не возвращает объект ResultSet. Ошибка SQL №1: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'select * from vw_hs_hr_ello' в строке 3; - person Roshan Wijesena; 20.07.2011
comment
Ошибка означает, что SQL недействителен. Возможно, вам придется заключить QUERY_USER в кавычки, чтобы он читался как SET @ USER = QUERY_USER; Также - попробуйте запрос в mysql с QUERY_USER, замененным текстом, который у вас есть в параметре отчета, и убедитесь, что он там работает. - person Adam Morris; 20.07.2011
comment
Сотрите это - это запрос перед выбором, который не нравится birt. - person Adam Morris; 20.07.2011

Проблема была решена создать СП

delimiter //
 Create  PROCEDURE abcd(param INT)
     BEGIN
       SET @USER=param;
       SELECT @USER;

END//

И в вашем запросе вызовите SP с переменным;

работает как шарм

person Roshan Wijesena    schedule 20.07.2011