Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Класс EntitySchemaQuery. Добавление колонок в запрос

Glossary Item Box

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

Для добавления колонок в запрос предназначен метод addColumn(), который возвращает экземпляр добавленной в запрос колонки. Имя колонки относительно корневой схемы в методах addColumn() формируется согласно правилам, описанным в статье "Класс EntitySchemaQuery. Построение путей к колонкам". Данный метод имеет несколько разновидностей, что позволяет добавлять в запрос колонки с различными параметрами (табл. 1).

Табл. 1. — Методы добавления колонок в запрос

Метод
addColumn(column,[columnAlias])

Создает и добавляет в коллекцию колонок запроса экземпляр колонки Terrasoft.EntityQueryColumn.

column String/Terrasoft.BaseQueryColumn Путь колонки для добавления (указывается относительно rootSchema) или экземпляр колонки запроса Terrasoft.BaseQueryColumn.
columnAlias String (необязательный) Псевдоним колонки.
addAggregationSchemaColumn(columnPath, aggregationType, [columnAlias], aggregationEvalType)

Создает и добавляет в коллекцию колонок запроса экземпляр функциональной колонки Terrasoft.FunctionQueryColumn с заданным типом агрегации (Terrasoft.FunctionType.AGGREGATION).

columnPath String Путь колонки для добавления (указывается относительно rootSchema).
aggregationType Terrasoft.AggregationType Тип используемой агрегирующей функции.
columnAlias String (необязательный) Псевдоним колонки.
aggregationEvalType Terrasoft.AggregationEvalType Область применения агрегирующей функции.

Типы агрегации (Terrasoft.AggregationType)

AVG Среднее значение всех элементов.
COUNT Количество всех элементов.
MAX Максимальное значение среди всех элементов.
MIN Минимальное значение среди всех элементов.
NONE Тип агрегирующей функции не определен.
SUM Сумма значений всех элементов.

Области применения агрегирующей функции (Terrasoft.AggregationEvalType)

NONE Область применения агрегирующей функции не определена.
ALL Применяется для всех элементов.
DISTINCT Применяется к уникальным значениям.
addParameterColumn(paramValue, paramDataType, [columnAlias])

Создает и добавляет в коллекцию колонок запроса экземпляр колонки-параметра Terrasoft.ParameterQueryColumn.

paramValue Mixed Значение параметра. Значение должно соответствовать типу данных.
paramDataType Terrasoft.DataValueType Тип данных параметра.
columnAlias String (необязательный) Псевдоним колонки.
addFunctionColumn(columnPath, functionType, [columnAlias])

Создает и добавляет в коллекцию колонок запроса экземпляр колонки-функции Terrasoft.FunctionQueryColumn.

columnPath String Путь колонки для добавления (указывается относительно rootSchema).
functionType Terrasoft.FunctionType Тип функции.
columnAlias String (необязательный) Псевдоним колонки.

Типы функций (Terrasoft.FunctionType)

NONE Тип функционального выражения не определен.
MACROS Подстановка по макросу.
AGGREGATION Агрегирующая функция.
DATE_PART Часть даты.
LENGTH Размер значения в байтах. Используется для бинарных данных.
addDatePartFunctionColumn(columnPath, datePartType, [columnAlias])

Создает и добавляет в коллекцию колонок запроса экземпляр колонки-функции Terrasoft.FunctionQueryColumn с типом [Часть даты] (Terrasoft.FunctionType.DATE_PART).

columnPath String Путь колонки для добавления (указывается относительно rootSchema).
datePartType Terrasoft.DatePartType Часть даты, используемая в качестве значения.
columnAlias String (необязательный) Псевдоним колонки.

Часть даты (Terrasoft.DatePartType)

NONE Пустое значение.
DAY День.
WEEK Неделя.
MONTH Месяц.
YEAR Год.
WEEK_DAY День недели.
HOUR Час.
HOUR_MINUTE Минута.
addMacrosColumn(macrosType, [columnAlias])

Создает и добавляет в коллекцию колонок запроса экземпляр колонки-функции Terrasoft.FunctionQueryColumn с типом [Макрос] (Terrasoft.FunctionType.MACROS), который не требует парметризации (например, текущий месяц, текущий пользователь, первичная колонка, и т.д.).

macrosType Terrasoft.QueryMacrosType Тип макроса колонки.
columnAlias String (необязательный) Псевдоним колонки.

Типы макроса колонки (Terrasoft.QueryMacrosType)

NONE Тип макроса не определен.
CURRENT_USER Текущий пользователь.
CURRENT_USER_CONTACT Контакт текущего пользователя.
YESTERDAY Вчера.
TODAY Сегодня.
TOMORROW Завтра.
PREVIOUS_WEEK Предыдущая неделя.
CURRENT_WEEK Текущая неделя.
NEXT_WEEK Следующая неделя.
PREVIOUS_MONTH Предыдущий месяц.
CURRENT_MONTH Текущий месяц.
NEXT_MONTH Следующий месяц.
PREVIOUS_QUARTER Предыдущий квартал.
CURRENT_QUARTER Текущий квартал.
NEXT_QUARTER Следующий квартал.
PREVIOUS_HALF_YEAR Предыдущее полугодие.
CURRENT_HALF_YEAR Текущее полугодие.
NEXT_HALF_YEAR Следующее полугодие.
PREVIOUS_YEAR Предыдущий год.
CURRENT_YEAR Текущий год.
PREVIOUS_HOUR Предыдущий час.
CURRENT_HOUR Текущий час.
NEXT_HOUR Следующий час.
NEXT_YEAR Следующий год.
NEXT_N_DAYS Следующие N дней. Требует параметризации.
PREVIOUS_N_DAYS Предыдущие N дней. Требует параметризации.
NEXT_N_HOURS Следующие N часов. Требует параметризации.
PREVIOUS_N_HOURS Предыдущие N часов. Требует параметризации.
PRIMARY_COLUMN Первичная колонка.
PRIMARY_DISPLAY_COLUMN Первичная колонка для отображения
PRIMARY_IMAGE_COLUMN Первичная колонка для отображения изображения.
addDatePeriodMacrosColumn(macrosType, [macrosValue], [columnAlias])

Создает и добавляет в коллекцию колонок запроса экземпляр колонки-функции Terrasoft.FunctionQueryColumn, с типом [Макрос] (Terrasoft.FunctionType.MACROS). Функция добавляет колонку с типом макрос, который требует парметризации. Например, следующие N дней, 3-й квартал года, и т.д.

macrosType Terrasoft.QueryMacrosType Тип макроса колонки.
macrosValue Number/Date (необязательный) Вспомогательная переменная для макроса.
columnAlias String (необязательный) Псевдоним колонки.

Примеры добавления колонок в запрос

Пример 1. — Добавление в коллекцию колонок запроса колонки из корневой схемы

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addColumn("DurationInMinutes", "ActivityDuration");

Пример 2. — Добавление в коллекцию колонок запроса аггрегирующей колонки с типом аггрегации SUM, применяющимся ко всем записям таблицы

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addAggregationSchemaColumn("DurationInMinutes", Terrasoft.AggregationType.SUM, "ActivitiesDuration", Terrasoft.AggregationEvalType.ALL);

Пример 3. — Добавление в коллекцию колонок запроса аггрегирующей колонки с типом аггрегации COUNT, применяющимся к уникальным записям таблицы

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addAggregationSchemaColumn("DurationInMinutes", Terrasoft.AggregationType.COUNT, "UniqueActivitiesCount", Terrasoft.AggregationEvalType.DISTINCT);

Пример 4. — Добавление в коллекцию колонок запроса колонки-параметра с типом данных TEXT

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addParameterColumn("DurationInMinutes", Terrasoft.DataValueType.TEXT, "DurationColumnName");

Пример 5. — Добавление в коллекцию колонок запроса колонки-функции с типом функции LENGTH (размер значения в байтах)

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addFunctionColumn("Photo.Data", Terrasoft.FunctionType.LENGTH, "PhotoLength");

Пример 6. — Добавление в коллекцию колонок запроса колонки-функции с типом DATE_PART (часть даты). В качестве значения используется день недели

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addDatePartFunctionColumn("StartDate", Terrasoft.DatePartType.WEEK_DAY, "StartDay");

Пример 7. — Добавление в коллекцию колонок запроса колонки-функции с типом MACROS, который не требует парметризации — PRIMARY_DISPLAY_COLUMN (первичная колонка для отображения)

var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
    rootSchemaName: "Activity"
});
esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN, "PrimaryDisplayColumnValue");

Смотрите также

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?