开发者

JasperReports: is it possible to use multiple data sources, or if not, to use collections in parameters?

It seems tha开发者_StackOverflow社区t the reporting idiom is that a report consist of a single list of items, with some additional data (parameters). Are there ways to include several unrelated lists in a report, or would this go against the idiom to such an extent that a different tool should rather be used to generate the output?

Suppose, for instance, you have a list of Persons that lives in a Building, with names, phone numbers and so on. This list would be the main datasource. Additionally, on the same report you want to show various other information about that Building, such as address, number of floors and so on. The number of items in this information might vary between Buildings, so that you cannot simply put it into static parameters, but would need a map or a list. This is of course a contrieved example, but should serve to illustrate the problem.

In short: can you use several unrelated lists in a report?


I think what you want is a Subreport within your report.

A Subreport can have a different datasource than the main report.

Here is a tutorial on how to create one.


Yes,

  • To execute multiple queries on single database connection see

    Multiple queries in a single jasper document

  • To generate new JRDatasource for subreport or component using subDataset from a List<MyBean> parameter or field the syntax is similar to:

    <parameter name="param1" class="java.util.List"/>
    
    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{param1})]]></dataSourceExpression>
    

    For example see How to design report with tabular format?

  • With xml and json datasource subDataSource can be used

    json: How to create multiple tables in jasper report using json as a datasource?

    xml: Jasper list element inside table element with XML datasource

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜