有一个主模板A,A里面有个子模板B,B里面有个子模板C。
在A的数值传递时,需要将B的Report和DataSource传递过来,与此同时,
也将C的Report传递过来。
使用map.put("cReport",cReport);
传递。
然后在A的Paramters里面建立一个cReport,类型为net.sf.jasperreports.engine.JasperReport。
然后在A里面点击B报表
选择Properties中的Subreport,点击下面的Edit Parameters,然后点击Add
Name可以自定义,但是必须和之后C里面的名称相同,Expression点击右边的进行选择传递过来的C模板。然后打开B模板,在B模板的Parameters中添加一个cReport的数,类型为net.sf.jasperreports.engine.JasperReport。
假设在B的Fields中,已有C模板所需要的数值,点击B模板中的C模板,
其中Expression选择B中的cReport,Data选择B中所含有的C模板中的那个参数,不过需要在前面加上
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(数据)
就可以了