Как суммировать различные значения в RTF (BI Publisher) - PullRequest
0 голосов
/ 24 апреля 2020

ID транзакции | Сумма | Дата

1 | 200 | 20/04/2020

1 | 200 | 21/04/2020

2 | 300 | 22/04/2020

3 | 400 | 23/04/2020

1 | 200 | 21/04/2020

4 | 200 | 17/04/2020

2 | 300 | 22/04/2020

Как сложить сумму, в которой идентификатор транзакции уникален? Это необходимо как для промежуточного итога, так и для общей суммы в RTF-файле BI Publisher. Пробовал это, но не удалось, но возвращает пустое значение.

1 Ответ

0 голосов
/ 25 апреля 2020

Вот метод, который использует функцию для каждой группы и переменную промежуточного итога.

<?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>
...