Pseudo Functions
Spectre pseudo functions are not proper functions—they do not result in any run time calculations. Instead, these functions substitute expressions or parts of expressions into other expressions.
calc(calc_name : string) : expression
For example:
`calc("Revenue")` substitutes the expression named Revenue, defined earlier, into the calculation
calc "Accounts with Late Charges" `filter(dimcount("Account ID"), sum(value("Late Charge Amount")) > 0)` when used in a cPlan, calculates the number of accounts with late charges
calc "Calendar_sort" ```
switch(calc("Month Name"),
"January", 1,
"February", 2,
"March", 3,
"April", 4,
"May", 5,
"June", 6,
"July", 7,
"August", 8,
"September", 9,
"October", 10,
"November", 11,
12)```
calc "Current Date" `date(file_contents("current-date.txt"))` when used in a cPlan, sets the Current Date based on what is in the text file
eval(expression_string : string) : expression
For example:
`eval("1 + 1")` returns 2
`eval("length(\\"test\\")")` returns 4
add "First" `eval("value(\\"column1\\")")` adds a column to the cBase named First with the same data as column1
param(parameter_name : string) : expression
For example:
`param("Year")` returns the value set for the Year parameter
filter ```value("Payment Status") = "Closed" and
value("Payments") > 0 and
value("Service Month") >= same_period(value("Service Month"),
param("Start Month"),"YYYY-MM") and
value("Service Month") <= same_period(value("Service Month"),
param("End Month"),"YYYY-MM") ```
—when this filter is part of a cPlan with parameters, the start month and end month are evaluated before the rest of the expression
param_contains(parameter_name : string, value : string) : expression
For example:
`param_contains("State", "Ohio")` determines if the State parameter value is Ohio
calc "Total" `if(param_contains("Summary","SumA"),sum(value("SumA")),sum(value("SumB")))` when used in a cPlan, calculates the total using data from SumA or SumB, depending on the value set for the parameter named Summary
param_match(parameter_name : string, column_name : string) : expression
For example:
`param_match("State")` determines if the State parameter value matches the value in the State column
calc "Brand Cases" `calc("Cases")` filter=`param_match("user-select-brand", "Brand")` label="First Selection" calculates cases for the user selected brand
calc "XXX Cases" `calc("Cases")` filter=`param_match("user-select-dimension-value", param("select-dimension"))` label="First Selection" calculates cases labeled "First Selection" based on the value of the parameters: user-select-dimension-value and select-dimension
See also: Alphabetized Functions for Spectre.