JasperReports:参数还是字段?

时间:2011-12-05 17:38:44

标签: java jasper-reports

我想知道使用字段值而不是参数填充JasperReport是否有任何性能优势(或其他好处)。

例如,假设我想填充一个包含10个饼图的饼图。

有什么好处 - 如果有的话 - 将馅饼的表达式设置为:

JRDesignExpression key = new JRDesignExpression("$F{PieSlice}.key");
JRDesignExpression label = new JRDesignExpression("$F{PieSlice}.label");
JRDesignExpression value = new JRDesignExpression("$F{PieSlice}.value");

......而不是:

Map<String,String> params = new HashMap<String,String>();
params.put("pie-slice-key-01", "foo");
params.put("pie-slice-label-01", "Foo");
params.put("pie-slice-value-01", .25);
// ... etc.

JasperPrint print = JasperFillManager.fill(jasperDesign, params);

// ...

JRDesignExpression key = new JRDesignExpression("$P{pie-slice-key-01}");
JRDesignExpression label = new JRDesignExpression("$P{pie-slice-label-01}");
JRDesignExpression value = new JRDesignExpression("$P{pie-slice-value-01}");

JRDesignExpression key = new JRDesignExpression("$P{pie-slice-key-02}");
JRDesignExpression label = new JRDesignExpression("$P{pie-slice-label-02}");
JRDesignExpression value = new JRDesignExpression("$P{pie-slice-value-02}");

// ...etc.

提前致谢!

1 个答案:

答案 0 :(得分:4)

我认为没有任何好处。这只是一个语义差异。字段来自数据源,应该放在详细信息区域中,这将对数据源中的每个元素重复。参数具有唯一值,对整个报告是全局的。

因此,如果必须为结果集(或集合的bean)的每一行重复饼图,请使用字段。如果报表中只有一个全局饼图,请使用参数。