Показать / скрыть оглавление

    Обзор вычисляемых полей

    Вычисляемые поля позволяют предварительно обрабатывать входные данные отчета на основе определенного выражения. Таким образом, использование вычисляемых полей позволяет применять сложные выражения к одному или нескольким полям данных, полученным из базового источника данных вашего отчета. Кроме того, вы можете группировать и сортировать данные отчета на основе значения вычисляемого поля.

    Создание вычисляемых полей

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

    Нажмите кнопку Правка для вычисляемого поля, чтобы отобразить свойства вычисляемого поля. Нажмите кнопку свойства Выражение.

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

    Замечание

    Редактор выражений отображает только те поля данных, которые получены из источника данных, заданного значениями свойств Источник данных и Элемент данных вычисляемого поля.

    Переключитесь на панель Свойства, выберите категорию Данные и разверните раздел Вычисляемые поля, чтобы отобразить коллекцию вычисляемых полей и управлять ее элементами.

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

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

    Синтаксис выражений

    Поле данных вставляется в текст выражения, используя его имя в [ квадратных скобках ], а параметры вставляются с использованием префикса ? перед их именами.

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

    Константы даты и времени должны быть заключены в хэштеги ( # ) (например, [OrderDate] >= #1/1/2009# ). Чтобы представить нулевую ссылку (не относящуюся ни к какому объекту), используйте вопросительный знак (например, [Регион] != ? ). Для обозначения строк используйте апострофы ( ' ), иначе произойдет ошибка.

    Чтобы вставить апостроф в текст выражения, ему должен предшествовать другой апостроф (например, 'Образец текста' ).

    Тип значения, возвращаемого вычисляемым полем, определяется его свойством Тип поля.

    Если в выражении вычисляемого поля используются разные типы, необходимо преобразовать их в один и тот же тип (например, Max(ToDecimal([Quantity]),[UnitPrice])) ).

    Хотя значение, возвращаемое вычисляемым полем, обычно преобразуется в строку (для отображения в текстовом элементе управления отчетом), оно может возвращать значение любого типа. Например, если поле базы данных содержит изображение, можно задать для выражения вычисляемого поля значение "=...", после чего это вычисляемое поле можно привязать к элементу управления Картинка.

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

    [<Коллекция>][<Условие>].<Агрегат>(<Выражение>)

    • <Коллекция> - указывает коллекцию, для которой должно быть рассчитано агрегированное значение. Это может быть имя отношения в случае отношения master-detail или имя свойства коллекции, предоставляемого целевым классом. Например, [CategoriesProducts][[CategoryId]>5].Count(). Пустые скобки [] указывают на корневую коллекцию.
    • <Условие> - указывает условие, определяющее, какие записи должны участвовать в вычислении агрегатной функции. Чтобы получить агрегированное значение для всех записей, удалите это логическое предложение вместе с квадратными скобками (например, [].Count()).
    • <Агрегат> - указывает одну из доступных агрегатных функций.
    • <Выражение> - указывает выражение, оценивающее значения, которые будут использоваться для выполнения вычислений. Например, [][[CategoryID] > 5].Sum([UnitPrice]*[Quantity]). Функция Count не требует значений полей для подсчета записей, поэтому оставьте для этой функции круглые скобки пустыми.

    Вы можете обратиться к обрабатываемой в данный момент группе с помощью оператора обхода родительских отношений ('^'). Это позволяет вам вычислять агрегаты внутри групп, используя следующие выражения: [][[^.CategoryID] == [CategoryID]].Sum([UnitPrice]).

    Дополнительные сведения см. в разделе Синтаксис выражений.

    Примеры

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

    • Вычисление агрегатных функций
    • Вычисление средневзвешенных функций
    • Сортировка данных по вычисляемому полю
    • Группировка данных по вычисляемому полю
    В начало страницы Справочная система Колибри. Группа компаний Октоника, 2022