Навигация:  МОДУЛЬ "СИСТЕМНОЕ ЯДРО" > ПОДМОДУЛЬ "СТАТИСТИКА" > Простые запросы > Настройка внешнего вида отчета >

Вычислимые поля

Предыдущая страницаВернуться в начало главыСледующая страница

286

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

Для вычислимого поля задается формула. Обращение к какому-либо полю из отчета происходит как [Имя_столбца] (применяется имя столбца в отчете, а не имя поля в таблице базы данных). Остальные параметры аналогичны параметрам обычного столбца.

Функции Transact-SQL, используемые в вычислимых полях

В формулах для столбцов могут использоваться следующие функции Transact-SQL:

IF(<Условие>,<Выражение1>,
<Выражение2>)

Если <Условие> истинно, то результат функции - <Выражение1>, иначе - <Выражение2>

IF([Поле] > 0, 1, 2)

YEAR(<Дата>)

Год, соответствующий <Дате>

YEAR([Поле])

MONTH(<Дата>)

Месяц, соответствующий <Дате>

MONTH ([Поле])

DAY(<Дата>)

День, соответствующий <Дате>

DAY ([Поле])

HOUR(<Дата>)

Час, соответствующий <Дате>

HOUR ([Поле])

MINUTE(<Дата>)

Минута, соответствующая <Дате>

MINUTE ([Поле])

SECOND(<Дата>)

Секунда, соответствующая <Дате>

SECOND ([Поле])

DATESTR(<Дата>[,<Строка с форматом>])

Преобразует <Дату> в текст. Если формат не задан, используется формат по умолчанию.

Пример формата:

'dd/mm/yyyy hh:mm:ss' - 30.12.2009 12:34:45

'dddd, dd mmmm yyyy' - понедельник, 30 декабря 2009

Описание формата:

dd - день в виде числа (30)

dddd - день недели (понедельник)

mm - месяц в виде числа (12)

mmmm - название месяца (декабрь)

yyyy - год (2009)

hh - часы

mm - минуты

ss - секунды

/ - разделитель даты (в результат будет подставлен разделитель из настроек windows)

: - разделитель времени (в результат будет подставлен разделитель из настроек windows)

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

DATESTR([Поле])

DATESTR([Дата рождения],'dd/mm/yyyy')

SUBSTR(<Строка>,<Позиция>,<Длина>)

Выделяет из <Строки> подстроку заданной <Длины>, начиная с <Позиции>

SUBSTR('строка', 1 ,4) = ‘стро’

LOWERCASE(<Строка>)

Переводит <Строку> в нижний регистр

LOWERCASE('СТРока') = ‘строка’

UPPERCASE(<Строка>)

Переводит <Строку> в верхний регистр

UPPERCASE('СТРока') = ‘СТРОКА’

INTTOSTR(<Число>)

Преобразует <Число> в строку

INTTOSTR([Поле])

STRTOINT(<Строка>)

Преобразует <Строку> в число

STRTOINT ([Поле])

FLOATTOSTR(<Число>)

Преобразует дробное <Число> в строку

FLOATTOSTR([Поле])

NUMERICNULL()

Возвращает пустое значения для поля, которое нужно интерпретировать как числовое (а не, например, строковое). Пример использования — выражения для различения 0 и NULL в отчетах:

IF(<Условие>, 0, NUMERICNULL())

При задании формулы в параметрах столбца следует иметь в виду, что пустая строка автоматически конвертируется в символ "Пробел".

Например, формула для столбца

IF([p]='45235',barcode128('PAT'+[p]),'')

при невыполнении условия [p]='45235' вернет символ "Пробел" вместо пустой строки.

Чтобы получить в отчете пустую строку, формула должна возвращать строку '<!ClearCell!>', т.е. предыдущая формула должна быть записана следующим образом:

IF([p]='45235',barcode128('PAT'+[p]),'<!ClearCell!>')

В отчете пустая ячейка имеет нулевую ширину, что вызывает соответствующее изменение ширины ячейки, находящейся перед пустой.