Функции службы отчетов SunSystems

В качестве выражений можно использовать ряд встроенных функций SunSystems Reporting Services:

  • Balance;

    Возвращает агрегатное значение выражения для всех строк, которое равно или меньше значения, указанного в параметре Sequence:

    BALANCE(Expression, Sequence, Calculation Type, Scope)
  • OpeningBalance

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

    OPENINGBALANCE(Expression, Sequence, Calculation Type, Scope)
  • SSLanguageToLocale

    Преобразует код на языке SunsSystems5 на язык пользователя. Данная функция имеет следующий синтаксис:

    SSLANGUAGETOLOCALE(Expression)

    Пример

    SSLANGUAGETOLOCALE("2") = en-GB
  • SSRound

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

    Примечание. Данный метод не эквивалентен методу округления Visual Basic, который округляет 5 до ближайшего четного числа.

    Например, ROUND(0,025) = 0,02, в то время как SSROUND(0,025) = 0,03

    Данная функция имеет следующий синтаксис:

    SSROUND(numeric_expression, digit, reverse_negatives)

    где

    • числовое_выражение — любое числовое выражение;
    • цифра означает количество разрядов, до которых нужно округлить число, полученное из числового выражения.

      Указание количества разрядов

      • Если цифра больше нуля (0), то число округляется то указанного десятичного разряда.
      • Если цифра равна 0, то число округляется до ближайшего целого.
      • Если цифра меньше 0, то число округляется до разряда слева от десятичной запятой.

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

      Для получения дополнительной информации, в том числе примеров, см. раздел Количество разрядов в теме «Округление числовых полей».

    • инвертировать_отрицательные — это логическое выражение. Оно относится исключительно к округлению отрицательных чисел. Если значение параметра ЛОЖЬ, то округление вверх осуществляется от нуля, а округление вниз — к нулю. Если значение ИСТИНА, то округление вверх происходит к нулю, а округление вниз — от нуля.

      Пример

      SSROUND(2767.345, 2, FALSE) = 2767.35
      SSROUND(2767.345, -2, FALSE) = 2800.00
      Выражения отрицательного округления SSRound SSRoundUp SSRoundDown
      (2767,345, –2; ЛОЖЬ) 2767,35 2767,35 2767,34
      (–2767,345; –2; ЛОЖЬ) –2767,35 –2767,35 –2767,34
      (2767,344; –2; ЛОЖЬ) 2767,34 2767,35 2767,34
      (2767,344; –2; ЛОЖЬ) –2767,34 –2767,35 –2767,34
      (2767,345; –2; ИСТИНА) 2767,35 2767,35 2767,34
      (2767,345; –2; ИСТИНА) –2767,35 –2767,35 –2767,34
      (2767,344; –2; ИСТИНА) 2767,34 2767,35 2767,34
      (2767,344; –2; ИСТИНА) –2767,34 –2767,34 –2767,35
  • SSRoundUp

    Числа округляются вверх от нуля, если значение «reverse_negatives» — ЛОЖЬ, и до большего — если «reverse_negatives» имеет значение ИСТИНА. Данная функция имеет следующий синтаксис:

    SSROUNDUP(numeric_expression, digit, reverse_negatives)

    Пример

    SSROUNDUP(2767.344, 2, FALSE) = 2767.35
  • SSRoundDown

    Числа округляются вниз от нуля, если значение «reverse_negatives» — ЛОЖЬ, и до меньшего — если «reverse_negatives» имеет значение ИСТИНА. Данная функция имеет следующий синтаксис:

    SSROUNDUP(numeric_expression, digit, reverse_negatives)

    Пример

    SSROUNDUP(2767.345, 2, FALSE) = 2767.34
  • SSMRound

    Значения округляются вверх или вниз до ближайшего кратного указанной единице. Данная функция имеет следующий синтаксис:

    SSMROUND(numeric_expression, multiple_unit, reverse_negatives)

    где

    • числовое_выражение — любое числовое выражение;
    • кратная_единица — обязательно положительное число.
    • инвертировать_отрицательные — это логическое выражение. Если это ЛОЖЬ, то любое округление вверх или вниз производится от нуля или к нулю. Если это ИСТИНА, то округление вверх дает большее число, а округление вниз — меньшее.

    Пример

    SSMROUND(2767.345, 2, FALSE) = 2768
    SSROUND(10, 3, FALSE) = 9 
  • SSMRoundUp

    Значения округляются вверх до ближайшего кратного указанной единице.

  • SSMRoundDown

    Значения округляются вниз до ближайшего кратного указанной единице.