SunSystems Reporting Services Functions

You can use a number of SunSystems Reporting Services in-built functions as expressions:

  • Balance

    Returns the aggregate value of the expression for all rows that are less than or equal to the value specified as the Sequence parameter:

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

    Returns the aggregate value of the expression for all rows that are less than the value specified as the Sequence parameter. Generally the sequence is set to a period parameter. The syntax for this function is:

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

    Converts the SunsSystems5 language code to the user's locale. The syntax for this function is:

    SSLANGUAGETOLOCALE(Expression)

    Example:

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

    The most common rounding method where values are rounded up or down to the nearest number of places before or after the decimal.

    Note: This is not the equivalent of the Visual Basic Round method which rounds 5 to the nearest even number.

    For example ROUND(0.025) = 0.02, whereas SSROUND(0.025) = 0.03

    The syntax for this function is:

    SSROUND(numeric_expression, digit, reverse_negatives)

    Where

    • numeric expression is any numeric expression
    • digit specifies the number of digits to which you want to round the number derived from the numeric expression.

      When specifying the number of digits:

      • If digit is greater than 0 zero, then number is rounded to the specified number of decimal places.
      • If digit is 0, then number is rounded to the nearest integer.
      • If digit is less than 0, then number is rounded to the left of the decimal point.

      You can also use a value of c for digit, which uses the currency number of decimals for the field.

      For more information including examples, see the Number of Digits section in the Rounding Number Fields topic.

    • reverse_negatives is a boolean. This only affects the rounding of negative numbers. When FALSE then rounding up is away from zero and rounding down is towards zero. When TRUE, then rounding up a negative number rounds towards zero, and rounding down a negative number rounds away from zero.

      Example:

      SSROUND(2767.345, 2, FALSE) = 2767.35
      SSROUND(2767.345, -2, FALSE) = 2800.00
      Negative Rounding Expressions SSRound SSRoundUp SSRoundDown
      (2767.345, -2, FALSE) 2767.35 2767.35 2767.34
      (-2767.345, -2, FALSE) -2767.35 -2767.35 -2767.34
      (2767.344, -2, FALSE) 2767.34 2767.35 2767.34
      (2767.344, -2, FALSE) -2767.34 -2767.35 -2767.34
      (2767.345, -2, TRUE) 2767.35 2767.35 2767.34
      (2767.345, -2, TRUE) -2767.35 -2767.35 -2767.34
      (2767.344, -2, TRUE) 2767.34 2767.35 2767.34
      (2767.344, -2, TRUE) -2767.34 -2767.34 -2767.35
  • SSRoundUp

    Numbers are rounded up away from zero when reverse_negatives is FALSE, and to a larger number when reverse_negatives is TRUE. The syntax for this function is:

    SSROUNDUP(numeric_expression, digit, reverse_negatives)

    Example:

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

    Numbers are rounded down away from zero when reverse_negatives is FALSE, and to a smaller number when reverse_negatives is TRUE. The syntax for this function is:

    SSROUNDUP(numeric_expression, digit, reverse_negatives)

    Example:

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

    Values are rounded up or down to the nearest multiple of the unit specified. The syntax for this function is:

    SSMROUND(numeric_expression, multiple_unit, reverse_negatives)

    Where

    • numeric expression is any numeric expression
    • multiple_unit is always a positive number.
    • reverse_negatives is a boolean. When FALSE then any rounding up or down is away or towards zero. When TRUE, then any rounding up results in a larger number and rounding down results in a smaller number.

    Example:

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

    Values are rounded up to the nearest multiple of the unit specified.

  • SSMRoundDown

    Values are rounded down to the nearest multiple of the unit specified.