2015-10-28 4 views
2

отчета Цель: Анализ эффективности игроков по сравнению статистикиPentaho Report Designer: Передача списка значений в качестве параметров, чтобы сообщить

Desired Report Layout

Пожалуйста, обратитесь к раскладке и читать. Имена игроков должны быть добавлены из списка, который может быть чем-то вроде текстового поля ввода, многоэкранного окна, выпадающего списка и т. Д. Если я выберу Jake Tyler в этом списке, отчет должен обновиться и показать мне статистику. Затем, когда я выбираю Адама Смита, он должен появиться в качестве следующей записи ниже Джейка со своей соответствующей статистикой.

Я знаю, как передать отдельных игроков в качестве параметров в запросе с использованием параметров Pentaho и размечают их в состоянии, используя SQL, как:

'where PlayerName = ${playername}' 

Но мне нужно знать, как пройти несколько имен игроков в подобном чтобы генерировать этот отчет с использованием многозначных параметров String.

Не могли бы вы рассказать мне, как это сделать? Я слышал такие вещи, как x-действия, которые могли бы работать, но я не знаю, как это использовать. Я уверен, что это поможет многим людям, которые пытаются достичь чего-то подобного, что может показаться им сложным.

ответ

1

Вы можете просто использовать where PlayerName IN (${playername}). Список должен быть правильно передан из параметра в запрос. , и этот параметр также должен правильно получать данные.
Например:

select 'Jake Taylor' as pn 
    union 
    select 'Adam Smith' as pn 
    union 
    select 'Chris Lawson' as pn 

или

select distinct column_name from table_name 

это может быть отправлен параметра (в Add parameter окне) и ваш главный запрос может быть получен, как я объяснено выше, с использованием IN


NB: Вы можете использовать только Display types: Multi value list, Multi selection box и т. Д. Не выпадающие, которые пропускают только одно значение.

+0

У меня возникла ситуация, когда первое имя и фамилия игрока находятся в разных столбцах. Если теперь я хочу передать эти два поля вместе как список в параметрах, как вы предлагаете мне это сделать? Для параметра: 'выберите отчетливый CONCAT (FName, '', LName) КАК PLAYER_NAME от player_table' главного запроса: ' выберите FName, LName из player_table , где CONCAT (имя_файла, '', LName) В ($ {player_name}) ' Вывод - 1 строка из 1 игрока. Я получаю желаемый результат, если я вводим имена непосредственно как: 'IN ('Adam Smith', 'Chris Lawson', 'Jake Taylor')' Но не с параметром Cld u предлагает исправить plz? – AS91