如何将参数传递给Windward报告?

时间:2012-08-26 20:56:50

标签: java reporting windward

运行报表时,我需要将参数(变量)传递到我的报表模板中。我该怎么做呢?我使用的是Windward的Java版本。

1 个答案:

答案 0 :(得分:1)

通过将参数附加到每个数据源来传递参数。您可以为每个数据源设置一组不同的参数和值。

您可以通过创建包含参数的java.util.Map来完成此操作。键是具有变量名称的String。值可以是String,Number或Date。如果变量将用作select中的参数,则值类型应与数据库列类型匹配。

通过调用DataSourceProvider.setMap()在数据源中设置它们。 Dom4jDataSource和JdbcDataSource都实现了DataSourceProvider。

DataSourceProvider datasource = new JdbcDataSource("com.microsoft.sqlserver.jdbc.SQLServerDriver", "jdbc:sqlserver://localhost:1433;DatabaseName=Northwind", "username, "password");
Map map = new HashMap();
map.put("now", new Date());
datasource.setMap(map);

请注意,如果将多个数据源应用于模板,则变量将跨数据源传输。如果在第一个数据源中设置了变量,而在第二个数据源中未设置该变量,则它将保留第一个数据的值。如果在第二个中设置,则将覆盖保存的值。