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)
-
-
numeric_expression
-
numeric expression is any numeric expression
-
digit
-
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.
-
reverse_negatives
-
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)
-
-
numeric_expression
-
numeric expression is any numeric expression
-
multiple_unit
-
multiple_unit is always a positive number
-
reverse_negatives
-
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.