Дополнительные поля

<< Click to Display Table of Contents >>

Navigation:  Анализ данных >

Дополнительные поля

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

 

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

 

 

Текст, указанный на закладке "Выражение", включается в Select-секцию SQL-запроса. Результатом выражения может быть число, строка или дата. Для вставки в выражение значений полей таблицы и атрибутов элементов справочников и документов используется меню Поле, расположенное над редактором текста. Текст может содержать функции и выражения SQL (см. пункт Дополнительное условие предыдущего параграфа).

 

На рисунке выше в группу колонок "Торговый автомат" добавлена колонка "ТА", в которой отражается наименование торговой точки и местоположение автомата, разделённые запятой. В таблице заголовки дополнительных колонок выделяются подчёркиванием ("ТА"). Прокомментируем использование функции coalesce в данном выражении. Если задать текст

{Торговый автомат.Торговая точка} || ', ' || {Торговый автомат.Местоположение},

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

{Торговый автомат.Торговая точка} ||

coalesce(', ' || {Торговый автомат.Местоположение}, '').

 

При создании дополнительных полей может оказаться удобным использование SQL-выражения CASE, возвращающего одно из нескольких значений в зависимости от выполнения того или иного условия. Синтаксис выражения выглядит следующим образом:
Case

   When Логическое_Выражение_1 Then Результат_1

   When Логическое_Выражение_2 Then Результат_2

   ...

   [Else Результат]

End.

Если выполнено первое условие (т.е. Логическое_Выражение_1 возвращает ИСТИНУ), будет возвращён Результат_1. В противном случае проверяется выполнение второго условия, и т.д. Если ни одно из условий не выполнено, возвращается результат, указанный после ключевого слова Else. Если ни одно из условий не выполнено и Else-секция не указана, возвращается пустое значение (NULL). Пример использования выражения CASE, возвращающее качество связи GSM-сигнала:

case when [Терминал -> Уровень сигнала, dBm] <= -100 then 'Плохое'

    when [Терминал -> Уровень сигнала, dBm] <=  -80 then 'Среднее'

    when [Терминал -> Уровень сигнала, dBm] >   -80 then 'Хорошее'

    else 'Не известно'

end.

 

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

 

Для удаления добавленной колонки используется кнопка в диалоге "Дополнительные поля". Чтобы удалить все дополнительные поля, нажмите кнопку .