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.