交易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>