Управляющие вычислительные элементы
Выше мы упоминали о свойстве Controller элементов CalcText и calcTotal, которое позволяет определить момент начала вычислений. Для этого используется специальный невизуальный элемент CalcController. Обычно он располагается на той же полосе, что и вычислительные элементы и инициализирует процесс вычисления в момент своей печати. Хотя на самом деле невизуальный элемент CalcController не печатается, тем не менее событие onBeforePrint он получает исправно вместе со всеми элементами, расположенными на данной полосе. А значит и с инициализацией вычислений он справится вполне.
Обладая несколькими специфическими свойствами, он позволяет определить момент начала вычислений более точно. И так же, как элемент FontMaster используется для централизованного управления шрифтами, этот элемент может быть центром управления вычислениями.
Свойство initcaicvar должно ссылаться на другой вычислительный элемент. И вычисленное им значение будет использовано в качестве начального.
Свойство initDataField задает поле данных, значение которого используется в качестве начального. Работает, если свойство initcaicvar не задано.
Свойство initvalue задает начальное значение, если предыдущие два свойства не заданы.
Для того чтобы эти свойства работали и задавали начальное значение, ссылка на элемент CalcController должна присутствовать в свойстве Initializer элементов оформления Cal или CalcTotal.
Элемент DataCycle используется для дополнительной фильтрации, сортировки и просмотра данных, поля которого используются для вычислений. С его помощью можно получить нужное для вычислений подмножество записей набора данных, не изменяя просмотра данных.
Свойство oataview задает просмотр данных, с которым будет работать элемент DataCycle.
При помощи свойств MasterDataView, MasterKey и DetailKey можно получить подмножество записей для отношения "один-ко-многим".
Свойство sortKey позволяет отсортировать записи по заданному полю.