如何对 RTF 中的不同值求和(BI Publisher)
Posted
技术标签:
【中文标题】如何对 RTF 中的不同值求和(BI Publisher)【英文标题】:How to sum distinct values in RTF (BI Publisher) 【发布时间】:2020-04-24 14:40:02 【问题描述】:交易 ID |金额|日期
1 |200 | 20/04/2020
1 |200 | 21/04/2020
2 |300 | 22/04/2020
3 |400 | 2020 年 4 月 23 日
1 |200 | 21/04/2020
4 |200 | 17/04/2020
2 |300 | 22/04/2020
如何计算交易 ID 唯一的金额? RTF 文件 BI Publisher 上的小计和总计都需要这个。试过这个,但失败了,但返回空值。
【问题讨论】:
【参考方案1】:这是一个使用 for-each-group 函数和一个运行总变量的方法。
<?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>
【讨论】:
以上是关于如何对 RTF 中的不同值求和(BI Publisher)的主要内容,如果未能解决你的问题,请参考以下文章