如何在RTF(BI Publisher)中求和不同的值



交易ID |金额|日期

1 | 200 | 2020年4月20日

1 | 200 | 2020年4月21日

2 | 300 | 2020年4月22日

3 | 400 | 2020年4月23日

1 | 200 | 2020年4月21日

4 | 200 | 2020年4月17日

2 | 300 | 2020年4月22日

在交易ID唯一的情况下,如何计算金额?RTF文件BI发布服务器上的小计和合计都需要此功能。尝试过此操作,但失败,但返回空值。

这里有一个方法,它使用for each group函数和一个正在运行的total变量。

<?for-each:record_set?>
<?xdoxslt:set_variable($_XDOCTX,'running_amount',0)?>
<?for-each-group:record;transaction_id?>
<?xdoxslt:set_variable($_XDOCTX,'running_amount', xdoxslt:get_variable($_XDOCTX,'running_amount')+amount)?>
<?end for each group?>
<?end for each?>
Non-Unique Sum:<?sum(record/amount)?>
Unique Sum<?xdoxslt:get_variable($_XDOCTX,'running_amount')?>
<?end for each?>

样本数据

<record_set>
<record>
<transaction_id>1</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>1</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>2</transaction_id>
<amount>300</amount>
</record>
<record>
<transaction_id>3</transaction_id>
<amount>400</amount>
</record>
<record>
<transaction_id>1</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>4</transaction_id>
<amount>200</amount>
</record>
<record>
<transaction_id>2</transaction_id>
<amount>300</amount>
</record>
</record_set>

最新更新