Delphi для профессионалов



 

Вычисляемые значения по нескольким источникам


Вычислительный элемент calcOp позволяет проводить вычислительные операции над значениями из двух различных источников.

Разработчик должен задать исходные значения и источники данных, используя два набора свойств (табл. 26.1). Назначение части этих свойств вам уже знакомо (см. разд. "Вычисляемые значения по одному источнику" выше).

Таблица 26.1. Свойства элемента СаlсОр для определения двух источников данных

Первый источник

Второй источник

Назначение свойства

SrclCalcVar

Src2CalcVar

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

SrclDataField

Src2DataField

Задает поле просмотра, над значениями которого проводятся вычисления. Игнорируется при заданном свойстве SrcXCalcVar

SrclDataView

Src2DataView

Задает поле просмотра, над значениями которого проводятся вычисления. Игнорируется при заданном свойстве SrcXCalcVar

SrclFunction

Src2Function

Позволяет выбрать математическую функцию (их список гораздо шире, чем просто агрегатные функции), которая будет выполнена над исходным значением перед вычислением основной операции элемента

SrclValue

Src2Value

Задает фиксированное значение, над которым производится вычислительная операция

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

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

ResultFunction.

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

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

  •  два фиксированных значения (свойства srcivalue и Src2value);
  •  два поля из одного или двух просмотров данных (свойства SrciDataField и Src2DataField);
  •  комбинацию первых двух вариантов

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

  •  SrclFunction;
  •  SrclFunction;
  •  Operator;
  •  ResultFunction.

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

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

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

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