Expression Language
Expression language – it is set of operations, constant, functions and variables. This language is used for writing usage of marker conditions (cond attribute) and information output (expr attribute).
Operations
Arithmetic operations.
+, -, *, /, %(module division), ^(to raise to a power).
All arithmetic operations are made with numbers. Addition (+) may be used with series/ It means series catenation.
Logical operations.
&& (logical and), || (logical or). Logical operations are made by Boolean operands.
Comparing operations.
<, <=, >, >=, <> , =. Comparing operations are made by Boolean operands.
Functions
Functions divided on standard and user. Standard functions are realized in language, user functions may be added by writing on C#.
Common function syntax: <function name>[arg1..argN]
Standard functions.
Function |
Syntax |
Example |
Description |
abs |
abs[p1] where p1 can be converted to a double. |
abs[-10] = 10 |
Calculates the absolute value of a numeric parameter. |
avg |
avg[p1, ..., pn] where p1,...,pn can be converted to doubles. |
avg[1, 2, 3] = 2 |
Calculates the average of a list of numbers. The list items must be able to convert to doubles. |
between |
between[var, val1, val2] where var, val1, and val2 are integers. if var >= val1 and var <= val2 then the function returns "true", otherwise, the function return "false". |
between[fico, 400, 700] Note that fico is a variable. |
Indicates if a value is between the other values. Please note that the comparison is inclusive. |
concat |
concat[p1, ..., pn] |
concat["This", " ", "is", " ", "a", " ", "test"] = "This is a test" |
This operand function concatenates the parameters together to make a string. |
contains |
contains[p1, p2, ...., pn] If p1 in in the list p2, ..., pn, this function returns "true" otherwise, this function returns "false". |
contains[state, "NY", "WA", "CA"] = true |
Indicates if the item is contained in the list. |
cos |
cos[p1] where p1 can be converted to doubles. |
cos[90] < 0 |
Calculates the cosine of a number. |
date |
date[m, d, y] where m is an integer and is the month, d is an integer and is the day, and y is an integer and is the year |
date[3, 20, 2007] |
Create a new date data type |
dateadd |
dateadd[date, "type", amount] where date is a valid date, and type is "y", "m", "d" or "b" (representing year, month, day, or business days) and amount is an integer |
dateadd[now[], "b", 5] |
Adds an amount to a date. Please note that the amount may be negative. |
datemax |
datemax[d1, ..., dn] where d1, ..., dn are dates |
datemax[ 3.20.1999, 3.20.2005, 3.20.2008] = 3.20.2008 |
Returns the maximum date in the list |
datemin |
datemin[d1, ..., dn] where d1, ..., dn are dates. |
datemax[ 3.20.1999, 3.20.2005, 3.20.2008] = 3.20.1999 |
Returns the minimum date in the list. |
day |
day[d1] where d1 is a date value |
day[3.20.1999] = 20 |
Returns the day of a date |
eval |
eval[r] where r is any valid rule |
eval[concat["1", "+", "2"]] = 3 |
Evaluates a string rule |
iif |
iif[c, a, b] where c is the condition and must evaluate to a boolean. The value a is returned if c is true, otherwise, the value b is returned. |
iif[year[now[]] = 2008, "2008", "Not 2008"] |
Performs an if-else-end |
indexof |
indexof[a, b1, ..., bn] If the list b1, ..., bn contains the value a, the index of the value is returned, otherwise, -1 is returned. Pleaes note that this is zero based indexing |
iif[indexof[a, "CA", "NY", "WA"] >= 0, "found state", "not found"] |
Returns the index of a list item. |
isalldigits |
isalldigits[p1] where p1 is a string parameter |
isalldigits["12345"] = true |
Determine if the parameter contains all digits. |
isfalseornull |
IsFalseOrNull[a] |
IIF[IsFalseOrNull[a], "false", "not false"] |
Indicates if the parameter has the value false or is null |
isnullorempty |
IsNullOrEmpty[a] |
|
Indicates is the parameter is null or empty. |
istrueornull |
isTrueorNull[a] |
|
Indicates if the parameter has the value true or is null; |
join |
join[a, b1, ..., bn] where a is the delimiter and b1, ..., bn are the items to be joined. |
join[" ", "This", "is", "a", "test"] = "This is a test" |
Joins a list of items together using a delimiter |
lcase |
LCase[a] |
LCase["TEST"] = "test" |
Converts a string to lower case |
left |
left[s, n] where s is the string and n is the number of characters |
left["abcd", 2] = "ab" |
Returns the left number of characters from a string parameter. |
len |
len[a] where a is a string variable |
len["test"] = 4 |
Returns te length of a string |
lpad |
lpad[a, b, n] where a and b are string values and n is numeric. The parameter p will be appended to the left of parameter a, n times. |
lpad["test", ".", 10] = "..........test" |
Pads a string on the left with new values |
ltrim |
ltrim[a] |
|
Trims the spaces from the left of a string |
mid |
mid[p1, ..., pn] where p1, ..., pn are numberic values |
mid[1, 4, 100] = 4 |
Calculates the median for a list of numbers |
month |
month[d1] where d1 is a date value |
month[now[]] returns the current month |
Returns the month of a date |
not |
not[p1] where p1 is a boolean parameter |
not[5<10]=false |
Performs a NOT on a boolean parameter. |
now |
now[] This operand function takes no parameters |
year[now[]] = 2008 |
Returns the current date |
numericmax |
NumericMax[p1, ..., pn] |
|
Finds the maximum numeric value in a list |
numericmin |
NumericMin[p1, ..., pn] |
|
Finds the numeric minimum value in a list |
pcase |
pcase[a] where a is a string |
join[" ", pcase["dave"], pcase["SMITH"] ] = "Dave Smith" |
Converts a string to Proper Case |
remove |
remove[a, b] where a and b are string |
Remove["....this...is..a...test...", ".a"] = "thisistest" |
Removes the specified characters from the string |
replace |
Replace[a, b, c] where a is the search string, b is the value being replaced, and c is the value that is being inserted |
replace["3.20.2008", ".", "-"] = "3-20-2008" |
Replaces one string with another string |
right |
right[s, n] where s is the string and n is the number of characters. |
right["abcd", 2] = "cd" |
Returns the right number of characters from a string parameter |
round |
round[n, d] where n is the numberic value to be rounded, and d is the number of decimal places. |
round[123.45, 0] = 123 |
Rounds a numeric value to the number of decimal places |
rpad |
rpad[a, b, n] where a and b are string values and n is numeric. The parameter p will be appended to the right of parameter a, n times. |
rpad["test", ".", 10] = "test.........." |
Pads a string on the right with new values |
rtrim |
rtrim[a] |
|
Trims the spaces from the right of a string |
searchstring |
SearchString[a, n, b] where a is the string that is being searched, b is the string that is being sought, and n is the start position in a |
SearchString["abcdefghijk", 0, "efg"] = 4 |
Searches for a string within another string at a specified starting position |
sin |
sin[a] |
sin[45] = 0.85 |
Calcuates the sin of a number |
sqrt |
sqrt[a] where a is a numberic parameter |
sqrt[25] = 5 |
Calculates the square root of a number. |
stringmax |
StringMax[p1, ..., pn] |
StringMax["Apple", "Zebra"] = "Zebra" |
Finds the maximum string in the list |
stringmin |
StringMax[p1, ..., pn] |
StringMax["Apple", "Zebra"] = "Apple" |
Finds the minimum string in the list |
substring |
SubString[s, a, b] where s is the string, a is the starting point, and b is the number of characters extracted. |
substring["abcdefghijk", 3, 5] = "defgh" |
Extracts a substring from a string |
trim |
trim[a] |
|
Trims the spaces from the entire string |
ucase |
ucase[a] |
ucase["test"] = "TEST" |
Converts a string to upper case |
year |
Returns the year of a date |
year[d1] where d1 is a date |
year[now[]] returns the current year |
Constant
Constant are numbers and series used in expression writing. Series constant placed into inverted commas. Note that inverted commas don`t doubled (for escape inverted commas in attribute)
Examples:
1
1.5
“text constant“
Variables
Variables are intended for using expression data source. There are 4 groups:
- Sheet variables;
- Current grouping structure variables;
- Current structure summary table variables (are not supported yet);
- Outside arguments.
Sheet variables.
Sheet variables are applied for using data source in expressions, may be used as any template expression. If calls are non aggregation - the first row of data source column value will be used
Have compound name. Syntax name:
{CN|CELLS}_{<source name>}_field_{<column name>}[_{{MAX|MAXIMUM}|{MIN|MINIMUM}}]
CN|CELLS – it means, that variable applies to sheet variable.
<source name> - data source name, which the variable will be initialized
<column name> - data source column name
{MAX|MAXIMUM}|{MIN|MINIMUM} – aggregation function with column data. Maximum or minimum can be calculated.
Examples:
CN_Persons_field_Name – sheet variable, which initialized from the first series Persons data source, from column Name.
CELLS_Persons_field_Salary_MAX – sheet variable, which initialized from the first series Persons data source, with max Salary column value.
Current grouping structure variables
Current grouping structure variables are applied for using data source structure (src attribute, or PlaceFor marker in expressions in group structure. If calls are non aggregation - the first series of data source context column value will be used
Have compound name. Syntax name:
{GN}_
{
{GS|SECTION}|
{{G|GROUP}<group_number>}|
{D|DATA}
}_
{
{field_{<column_name>}[_{{MAX|MAXIMUM}|{MIN|MINIMUM}}]}|
{extra_{oddSeries|evenSeries|subGroupCount}}
}
GN – – it means, that variable applies to current group structure variables.
Data source context divided into 3 types:
GS|SECTION – group source context. Variable may be used as any structure expression.
{G|GROUP}<group_number> – group part source context, group_number – group number, beginning from 1. Group order 0 equivalents GS|SECTION. Variable may be used in group only. Group order is (beginning from 1) more than 1 or equivalents context group order.
D|DATA – currents series data context. Variable may be used in group data structure.
Then there will be data type – column, or special value
field_{<column_name>}[_{{MAX|MAXIMUM}|{MIN|MINIMUM}}]
describes column or aggregation function by the column
<column name> - data source column name
{MAX|MAXIMUM}|{MIN|MINIMUM} – aggregation function by the column data. Maximum or minimum can be calculated.
extra_{oddSeries|evenSeries|subGroupCount}
describes special context value
oddSeries – Boolean value. Is the current series even for chosen context
evenSeries – Boolean value. Is the current series odd for chosen context
subGroupCount – number. Shows quantity of subgroups with number N+1 for current subgroups with number N.
Examples:
GN_S_field_Name – variable, which initialized from the first series of group data source structure, from Name column.
GN_G1_field_Name – variable, which initialized from the first series of data, grouped by the column group with number 1, from Name column .
GN_D_field_Name - variable, which initialized current data series, from Name column.
GN_G1_field_Salary_MAX - variable, which initialized max value data Salary column, grouped by the column group with number 1.
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents