Calculations

@construct-currency

  • first parameter: an amount (e.g., 500 or 5.123)

  • second parameter: USD, EUR, GBP or JPY

Returns a currency value that consists of the specified value and currency.

For example, {@construct-currency(500, "EUR") + 1 EUR} is equal to having typed {500 EUR + 1 EUR}

@count

  • parameter: some list

  • returns a whole number

Returns the number of elements present in the list.

For example, @count(@empty-list) results in 0, while @count(@list(‘alpha’, ‘beta’)) results in 2.

@difference

  • parameters: two lists (the second parameter will be automatically converted to a list)

  • returns a list

Returns the difference between the two lists, i.e. it takes the first list, removes all the elements of the second list that are also present in the first list, and then returns the result.

Examples:

  • @difference(@list(1, 2, 3), @list(1)) results in a list with elements 2 and 3

  • @difference(@list(1, 2, 3), 1) results in a list with elements 2 and 3 — note that the second parameter was automatically converted to @list(1)

  • @difference(@list(1, 2, 3), @list(1, 2, 3)) results in an empty list, because both lists share the same elements

  • @difference(@list(1, 2, 3), @list(1, 1, 2, 2, 3)) also results in an empty list

  • @difference(@list(1, 1, 2, 2, 3, 3), @list(1, 2, 3)) also results in an empty list

  • @difference(@list(1, 1, 2, 2, 3, 3), @list(1, 2)) results in a list with elements 3 and 3

@intersection

  • parameters: two lists (the second parameter will be automatically converted to a list)

  • returns a list

Takes the first list, and removes each element that does not also appear in the second list.

Examples:

  • @intersection(@list(1, 2, 3), @list(3)) will result in a list with element 3

  • @intersection(@list(1, 2, 3), 3) will result in a list with element 3 (note that the second parameter was automatically converted to a list)

  • @intersection(@list(1, 2, 3), @list(1, 2, 3)) will result in a list with elements 1, 2 and 3

  • @intersection(@list(1, 2, 3), @list(4, 5, 6)) will result in an empty list

@length

  • parameter: text

  • returns the number of characters found in the length

Returns the length of the text parameter, taking into account trailing or leading whitespace. For example, @length("alpha") returns 5, while @length(" alpha ") returns 7.

@lookup

  • parameters:

    • value to lookup

    • source-field (of type repeating-field)

    • target-field (of type repeating-field)

  • returns the value of the target-field that corresponds to the value to lookup, otherwise null

For example, assume you have a repeating-list #xxx^first-names and another repeating-list #xxx^last-names. @lookup("Daniel", #xxx^first-names, #xxx^last-names) will then result in the last name of Daniel (if found)

@nth

  • first parameter: a list

  • second parameter: a whole number

Returns the element at the specified index within the (repeating) list.

Returns an error when the index is not found. (If you want a null-value instead, please use @get).

Examples:

  • @nth(@list(100, 200, 300), 1) will result in 100

  • @nth(@list(100, 200, 200), 55) will result in an error (only indices 1, 2 or 3 would be valid)

Note that — unlike most programming languages — the index is one-based, i.e. the first index is one and not zero.

@percent-divide

  • parameters: two numbers

  • returns a number

Divides the first number by the second number, multiplies the result by 100, and returns the final result. Typically used to calculate a percentage.

For example, @percent-divide(5, 20) returns 25,00 — because 5 is 25% of 20.

Last updated