Вычислительный элемент 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
на дискете, прилагаемой к этой книге.
Знаете ли Вы, как разрешается парадокс Ольберса? (Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды. Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.