2011-11-04 3 views
0

Я новичок в grails.I нужно создавать отчеты в формате pdf или в любом другом формате. Я использовал плагин dynamic-jasper для получения вывода в формате pdf. Я создал свой отчет, используя пример http://www.grails.org/plugin/dynamic-jasper.Как ограничить отчет, используя плагин Dynamic-jasper в grails?

Но в этом примере отчет, показывающий все значения, которые находятся в базе данных. Поэтому мне не нужны все значения в отчете. Вместо этого мне нужно ограничить отчет. I.e Когда я просматриваю значения (по некоторым sql-запросам), я получаю o/p найденных значений в списке. Поэтому мне нужно доклад искали ценности list.So просьба направлять мне решить эту проблему

+0

Возможный дубликат [Предельный отчет для данного идентификатора с плагином DynamicJasper grails?] (Http://stackoverflow.com/questions/7977961/limit-report-to-a-given-id-with-dynamicjasper-grails-plugin) –

+0

Да, но я получаю ответы от любого тела .... –

ответ

0

Это звучит, как вам нужно, чтобы использовать свойство DataSource:

DataSource: это замыкание, который получает сеанс и параметры. Здесь крючок, если вам нужно более сложные запросы для получения данных, то есть на основании параметров запроса или зарегистрированного пользователя в сессии, или просто интегрировать с вашими услугами или другими плагинами, как Filter Plugin

Внутри закрытия DataSource является где ваша логика должна ограничивать то, что показано в отчете (ваши SQL-запросы будут идти здесь, если вы используете это). Если вы прокрутите вниз до salesByStateReport в разделе «названные отчеты» на link вы получаете пример:

dataSource = { session, params -> 
     Sale.findAll('from Sale as s where s.branch.state = ? order by branch.name', [params.state]) 
    } 

Если вы используете формат сущности, просто измените «DataSource =» до «DataSource:» в ваша статическая отчетная карта.

Это будет вызываться из URL, как это, используя формат объекта:

http://localhost:8080/yourAppName/djReport/?entity=yourModelClass&state=yourStateValue

Или как это в формате имя:

http://localhost:8080/yourAppName/djReport/?report=your имя отчета & состояния = yourStateValue