Fastreports 5 - Как сохранить результаты агрегатной функции в переменных и использовать эти результаты в той же полосе

Я новичок в Fastreports и не смог понять, как правильно использовать переменные. Я использую Fastreports 5 и Delphi XE7. У меня есть отчет, который суммирует комиссию за ряд транзакций и отображает ее вместе с налогами на эту комиссию, а затем суммирует все эти суммы как общую сумму. Все эти агрегатные функции находятся в одном бэнде сводки отчета.

В настоящее время я выполняю эту задачу следующим образом:

Total Checkoff: SUM(<checkoff."fee">
Total Void Checkoff: SUM(<voidcheckoff."fee">
Subtotal:  [SUM(<checkoff."checkoff">,PositiveCheckoff)+SUM(<VoidCheckoff."checkoff">,NegativeCheckoff)]
Fed Tax / HST: [(SUM(<checkoff."checkoff">,PositiveCheckoff)+SUM(<VoidCheckoff."checkoff">,NegativeCheckoff))* <checkoff."fed_rate">]
Local Tax:  [(SUM(<checkoff."checkoff">,PositiveCheckoff)+SUM(<VoidCheckoff."checkoff">,NegativeCheckoff))*<checkoff."prov_rate">]
Total Remitted: [(SUM(<checkoff."checkoff">,PositiveCheckoff)+SUM(<VoidCheckoff."checkoff">,NegativeCheckoff))+((SUM(<checkoff."checkoff">,PositiveCheckoff)+SUM(<VoidCheckoff."checkoff">,NegativeCheckoff))*(<checkoff."prov_rate">+<checkoff."fed_rate">))]

То, что я хотел бы сделать, эквивалентно:

plusFee = SUM(<checkoff."checkoff">
minusFee = SUM(<voidcheckoff."checkoff">//this number is negative
subtotal = plusFee + minusFee
fedTax = subtotal * fedRate
localTax = subtotal * localRate
total = subtotal + fedTax + localTax

Может кто-нибудь объяснить, как это сделать?


person Trevor    schedule 26.02.2016    source источник


Ответы (1)


Прочтите руководство пользователя

Особенность агрегатных функций заключается в том, что они должны использоваться внутри объектов «Текст»; однажды использованные таким образом, они могут быть использованы в самом скрипте. Если агрегатная функция появляется только в скрипте (без появления в объекте «Текст»), генерируется сообщение об ошибке. Это происходит потому, что агрегатная функция должна быть связана с определенной полосой; после такого подключения он будет работать правильно

Итак, вы должны использовать Total Checkoff: [SUM(<checkoff."fee">] Total Void Checkoff: [SUM(<voidcheckoff."fee">]

в TfrxMemoViews на сводном бэнде вычислить другие переменные в скрипте и показать эти переменные на сводном бэнде

person gpi    schedule 26.02.2016
comment
Я ценю попытку, но мой вопрос не в том, как отобразить результат, у меня уже есть эти суммы в текстовых объектах. Я хочу знать, есть ли способ сохранить результат суммы в переменной, выполнить математику с этой переменной, а затем отобразить измененный результат этой переменной в другом текстовом объекте? - person Trevor; 07.03.2016
comment
Попробуйте еще раз прочитать руководство пользователя и понять, как использовать агрегатную функцию в скрипте. - person gpi; 08.03.2016