JasperReports for grails:使用HashMap作为模型?

时间:2013-05-08 12:01:06

标签: sql grails groovy jasper-reports jasper-plugin

想象一下,我在Groovy中有两个看起来像这样的类:

class Person {
  int id;
  String name;
}

class Item {
  int id;
  int price;
}

现在使用以下SQL创建一个列出所有人姓名的JasperReport会很简单:

SELECT name FROM Person

此外,传递一个可以创建列表的模型很容易:

def p = Person.withCriteria {
   eq('name','SomeGuy')
}
chain(controller:'jasper',action:'index',model:[data:p],params:params)

但我想要做的是使用以下查询:

SELECT name, (SELECT sum(i.price) FROM Item f WHERE f.id=p.id) as priceSum FROM Person p

现在这是我不知道如何继续的部分:我如何将任何模型传递给j​​asperReport?我不能只使用

def p = Person.withCriteria {
   eq('name','SomeGuy')
}

因为那样,priceSum属性将会丢失。 我想做的是这样的事情:

def l = ['name':'SomeGuy','priceSum':'5000']
chain(controller:'jasper',action:'index',model:[data:l],params:params)

但这也不起作用,它给了我:

 Message: Cannot get property 'name' on null object 
 Caused by: java.lang.NullPointerException: Cannot get property 'name' on null object 

有什么类似的东西能起作用吗?

0 个答案:

没有答案