2014-01-02 3 views
0

Мои действия контроллера являетсяотчеты в яшмы Граалей

def jasper() { 
     def emp = Employee.findAll() 
    chain(controller:'jasper', action:'index', model:[data:emp],params:params) 
} 

и в моем файле jrxml я есть следующие поля: имя, фамилия, пол, телефон

Я хочу написать запрос, который будет иметь данные только имя и фамилию, но с таким же файлом jrxml тогда мое действие будет

def jasper() { 
     def emp = Employee.executeQuery("select a.name a.lastname from Employee a ") 
    chain(controller:'jasper', action:'index', model:[data:emp],params:params) 
} 

Это не печатают только имя и фамилия в моем докладе г ather дает NoSuchMethodException. Как это сделать?

+0

Первый запрос работает нормально? и вы напечатали результат, выполненный из executeQuery? – user1791574

ответ

0

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

В первом случае вы получите List<Employee>, а во втором случае вы получите List<Object[]>.

Вы можете переделать отчет Jasper, чтобы ожидать List<Object[]>, и использовать select a.name, a.lastname, a.gender, a.phone from Employee a для первого сценария. В этом случае вы можете снова защитить отчет от возможных нулевых значений, чтобы отчет работал хорошо со вторым, более ограниченным набором результатов.

Смежные вопросы