1

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

4

1 回答 1

1

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

为此,您可以创建一个包含参数的 java.util.Map。键是带有变量名的字符串。该值可以是字符串、数字或日期。如果变量将用作选择中的参数,则值类型应与数据库列类型匹配。

这些是通过调用 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);

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

于 2012-08-26T20:56:50.153 回答