An example RML code block to do this is something like:
<blockTable colWidths="365.0,90.0,75.0" style="Table10">
<tr>
<td>
<para style="terp_default_8">
<font color="white">
</font>
</para>
</td>
<td>
<para style="terp_default_9">Payment(s):
</para>
</td>
<td>
<para style="terp_default_Right_9">
[[ formatLang(-(o.amount_total - o.residual), digits=2, currency_obj=o.currency_id) ]]
</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_8">
<font color="white">
</font>
</para>
</td>
<td>
<para style="terp_default_9">
<b>Total Due:</b>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<b> [[ formatLang(o.residual, digits=2,currency_obj=o.currency_id) ]]</b>
</para>
</td>
</tr>
</blockTable>
PRIOR to any payments being made, the invoice report would look like this:
AFTER a payment of $250, the invoice report would look like this:
You also need to make sure the report is regenerated, not reloaded. For more information see https://accounts.openerp.com/forum/Help-1/question/9571