Функции Visual Basic

В SunSystems Reporting Services можно использовать множество функций Visual Basic (VB). Ниже для примера приведены некоторые доступные типы функций:

  • Общие
  • Дата
  • Решение

Общие функции

Ниже показаны часто используемые общие функции и операторы:

Общая функция VB Описание
ABS (выражение) Возвращает абсолютное значение выражения.
MOD Можно использовать выражение RowNumber(Nothing) MOD 2, чтобы определить четные и нечетные строки набора данных.
MID, LEFT, RIGHT, LEN и TRIM Строковые функции, служащие для работы с текстовыми данными.
LCASE, UCASE Переводят строковые значения в нижний или верхний регистр.
FORMAT(выражение, "Standard") Переводит числовую строку в стандартный числовой формат.
CSTR, CDATE, CDBL Преобразует выражения в строку, дату или числовой тип Double.
Примечание. Часто возникает необходимость в преобразовании составного оператора IF, который должен возвращать числовое значение, включая его в функцию CDBL.
ME.Value Данное выражение возвращает текущее значение текстового окна и используется в выражениях видимости или условного форматирования, где условие зависит от значения текстового окна.

Функции для работы с датами

Наиболее распространенные функции для работы с данными:

Функции для работы с датами Описание
DAY(Date) Возвращает целое число от 1 до 31, соответствующее дню месяца.
MONTH(Date) Возвращает целое число от 1 до 12, соответствующее месяцу.
MONTHNAME(Date) Возвращает имя месяца, например сентябрь.
WEEKDAY(Date) Возвращает целое значение от 1 (соответствует воскресенью) до 7 (соответствует субботе).
WEEKDAYNAME(Date) Возвращает имя дня недели, например вторник.
YEAR(Date) Возвращает целое число от 1 до 9999, соответствующее году от указанной даты.
DATEPART("interval", Date) Возвращает целочисленное значение, содержащее указанный компонент заданного значения даты, где интервал — это
  • d: день (месяца)
  • y: день (года)
  • h: час
  • нет: минута
  • m: месяц
  • q: квартал
  • s: секунда
  • w: неделя (день недели)
  • ww: календарная неделя (неделя года, от 1 до 53)
  • yyyy: Год
DATEADD("interval", number, Date) Возвращает значение даты, содержащее дату и время с добавлением заданного интервала времени, где интервал — это
  • d: день; обрезается до целого значения
  • y: день (года); обрезается до целого значения
  • h: час; округляется до ближайшей миллисекунды
  • n: минута; округляется до ближайшей миллисекунды
  • m: месяц; обрезается до целого значения
  • q: квартал; обрезается до целого значения
  • s: секунда; округляется до ближайшей миллисекунды
  • w: день (недели); обрезается до целого значения
  • ww: неделя (года); обрезается до целого значения
  • yyyy: год; обрезается до целого значения
DATEDIFF("интервал", Дата1, Дата2) Возвращает длинное значение, определяющее разницу между датами Дата1 и Дата2 в единицах интервалов времени.
  • d: день
  • y: день (года, обрабатывается так же, как и день)
  • h: час
  • нет: минута
  • m: месяц
  • q: квартал
  • s: секунда
  • w: неделя
  • ww: календарная неделя года (использует первый день недели)
DATESERIAL(год, месяц, день) где
  • требуется год. Целочисленное выражение от 1 до 9999. Однако также допускаются значения менее, чем указанный интервал. Если год задается значением от 0 до 99, он считается находящимся между 1930 и 2029 гг. Если год меньше 1, он вычитается из текущего года.
  • требуется месяц. Целочисленное выражение от 1 до 12. Однако также допускаются значения, выходящие за пределы указанного интервала. Значение месяца смещается на 1 и применяется к январю расчетного года. Иными словами, к январю прибавляется (месяц — 1). При необходимости производится перерасчет года. Приведенные ниже результаты иллюстрируют этот эффект:
    • если месяц равен 1, то результат — январь расчетного года;
    • если месяц равен 0, то результат — декабрь предыдущего года;
    • если месяц равен -1, то результат — ноябрь предыдущего года;
    • если месяц равен 13, то результат — январь следующего года.
  • требуется день. Целочисленное выражение от 1 до 31. Однако также допускаются значения, выходящие за пределы указанного интервала. Значение дня смещается на 1 и применяется к первому дню расчетного месяца. Иными словами, к первому дню месяца прибавляется (день — 1). При необходимости производится перерасчет месяца и года. Приведенные ниже результаты иллюстрируют этот эффект:
    • если день равен 1, то результат — первый день расчетного месяца;
    • если день равен 0, то результат — последний день предыдущего месяца;
    • Если день равен –1, то результат — предпоследний день предыдущего месяца.
    • Если день оказался больше последнего дня текущего месяца, результатом будет надлежащий день следующего месяца. Например, если месяц равен 4, а день 31, то результатом будет 1 мая.

Следующее выражение также возвращает одно из трех значений на основе значения маркера, однако в отличие от прошлого примера использует функцию Switch, которая возвращает значение первого выражения в виде ряда, который оценивается на истинность:

=Switch(Fields!Marker.Value >= 7, "Green", Fields!Marker.Value >= 5, "Amber", Fields!Marker.Value < 5, "Red")

Использование выражений со счетчиками

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

Можно увеличивать счетчик на единицу на основании изменения значения поля и указать, что это применимо только там, где на этапе выполнения используются конкретные фильтры.

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