~~NOTRANS~~
~~Title: Using Calculated Values~~
Sometimes, it's useful to add calculated values to your report. To do this, simply use your own implementation of **ICalculatedValue**.
Here's an example:
Bean bean = new Bean();
bean.put("AMOUNT", BigDecimal.valueOf(11.5));
bean.put("PRICE", BigDecimal.valueOf(15.44));
bean.put("CALCULATED", new ICalculatedValue()
{
@Override
public Object getValue(String pName, INode pNode)
{
return ((BigDecimal)pNode.get("AMOUNT")).multiply((BigDecimal)pNode.get("PRICE"));
}
});
BeanNode node = new BeanNode(bean);
RtfWorker w = new RtfWorker();
w.loadDocument(getTemplateInputStream("calculatedValues.rtf"));
w.fillInData(node);
w.saveDocument(new FileOutputStream(getTempOutputFile("result_calculatedValues.rtf")));
If you're using an AbstractDataNode like **StorageNode**, **ListNode** or **EmptyNode**, be sure that you set the calculated value as parameter:
dataNode.setParameter("CALCULATED", new ICalculatedValue() {...});