После выполнения основной операции результат может быть обработан еще один раз, если вы зададите математическую функцию в свойстве

ResultFunction.

Таким образом, при помощи элемента CalcOp разработчик может реализо-вывать довольно сложные вычисления.

Если задать в качестве двух источников данных:

П два фиксированных значения (свойства Srcivalue и Src2Value);
О два поля из одного или двух просмотров данных (свойства SrclDataField И Src2DataField);

О комбинацию первых двух вариантов то их значения будут последовательно обработаны вычислительной операцией, которую вы зададите свойствами:

□
SrclFunction;
О SrclFunction;
П Operator;

О ResultFunction.

Кроме этого, элемент CalcOp позволяет создавать вычислительные цепочки, если использовать в качестве одного или двух источников другие вычислительные элементы (рис. 26.9).

Программирование в Delphi 7

Рис. 26.9. Пример вычислительной цепочки на основе элементов CalcOp

Это могут быть как простые элементы CalcText и CalcTotal, так и другие элементы CalcOp, которые, в свою очередь, могут содержать сколь угодно сложные вычислительные цепи.

Пример использования элемента CalcOp имеется в демонстрационном приложении Demo Reports на дискете, прилагаемой к этой книге.

Управляющие вычислительные элементы

Выше мы упоминали о свойстве controller элементов CaicText и CalcTotal, которое позволяет определить момент начала вычислений. Для этого используется специальный невизуальный элемент calcController. Обычно он располагается на той же полосе, что и вычислительные элементы и инициализирует процесс вычисления в момент своей печати. Хотя на самом деле невизуальный элемент CalcController не печатается, тем не менее событие onBeforePrint он получает исправно вместе со всеми элементами, расположенными на данной полосе. А значит и с инициализацией вычислений он справится вполне.

Обладая несколькими специфическими свойствами, он позволяет определить момент начала вычислений более точно. И так же, как элемент FontMaster используется для централизованного управления шрифтами, этот элемент может быть центром управления вычислениями.

Свойство initcalcVar должно ссыпаться на другой вычислительный элемент. И вычисленное им значение будет использовано в качестве начального.

Свойство initDataField задает поле данных, значение которого используется в качестве начального. Работает, если свойство initcaicvar не задано.

Свойство initvalue задает начальное значение, если предыдущие два свойства не заданы.

Для того чтобы эти свойства работали и задавали начальное значение, ссылка на элемент CalcController должна присутствовать в свойстве Initializer элементов оформления CaicText ИЛИ CaicTotai.

Элемент DataCycle используется для дополнительной фильтрации, сортировки и просмотра данных, поля которого используются для вычислений. С его помощью можно получить нужное для вычислений подмножество записей набора данных, не изменяя просмотра данных.

Свойство DataView задает просмотр данных, с которым будет работать элемент DataCycie.

При ПОМОЩИ СЮЙСТВ MasterDataView,MasterKey И DetailKey МОЖНО ПОЛУЧИТЬ подмножество записей для отношения "один-ко-многим".


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Октябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс