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
, whereasSSROUND(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.