我想知道使用字段值而不是参数填充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.
提前致谢!
答案 0 :(得分:4)
我认为没有任何好处。这只是一个语义差异。字段来自数据源,应该放在详细信息区域中,这将对数据源中的每个元素重复。参数具有唯一值,对整个报告是全局的。
因此,如果必须为结果集(或集合的bean)的每一行重复饼图,请使用字段。如果报表中只有一个全局饼图,请使用参数。