Performs a bit-wise AND of two values.
Syntax
$and(char1,char2)
Parameters
| char1 | a character string, or an expression that evaluates to a character string |
| char2 | a character string, or an expression that evaluates to a character string |
Return Value
Character string.
Comments
The $and function combines the bit patterns of two characters in the fashion of a Boolean AND and returns the resulting character. If the char1 or char2 string contains more than one character, only the first character in the string (one byte) is processed. You can express char1 and char2 as hex codes (e.g., 6E).
Example
$ and("E","F")The bit pattern of hex 0E is 00001110 and of hex 0F is 00001111. The above expression returns the bit pattern 00001110 (character hex 0E).
See Also
$not
$or
About Character Literals
About Functional Expressions
Calculates a time value by adding ticks to (or subtracting ticks from) a specified time value.
Syntax
$addticks(time,number)
Parameters
| time | an 8-digit number, or an expression that evaluates to an 8-digit number, that expresses a valid time value in the format HHMMSSTT |
| number | a number, or an expression that evaluates to a number |
Return Value
Number, representing a time value.
Comments
Use $addticks to perform arithmetic with time values. The $addticks function calculates a time value by adding a number representing ticks to a time value. If number is negative, the effect is to subtract the ticks from the time.
Example
If $Time has the value 22503075, then
$addticks($time,5)
evaluates to 22503080.
$addticks($time,25)
evaluates to 22503100.
$addticks($time,-5)
evaluates to 22503070.
$addticks($time,200)
evaluates to 22503275.
See Also
$addhours
$addminutes
$addseconds
$ticks
Returns information about the currently accessed application directories.
Syntax
$dirpath()
Return Value
Character string.
Comments
$dirpath returns a character string consisting of the names of all currently accessed application directories and their access types (U for update, R for read). Information about each directory is enclosed in semicolons (;). The directory name appears first, followed by the access type in parentheses.
Directories appear in the order that they were accessed; that is, the most recently accessed directories appear first.
Example
access dir1
access dir2 updatev
output $dirpath()
Prints the string; dir2(U);dir1(R);ZIM(U);_$ZimServices(R);_$session$_(U);
let vDirPath = $dirpath()
let vPos = $position($toalpha(vDirPath, -1), ";Dir1(")
if vPos > 0
output "Directory Dir1 is accessed ";
if $substring(vDirPath,vPos+6,1)="U"
output "update."
else
output "read."
endif
else
output "Directory Dir1 is NOT accessed."
endifUses $position to test if a particular directory is accessed.
See Also
ACCESS
RELEASE
Calculates a time value by adding minutes to (or subtracting minutes from) a specified time value.
Syntax
$addminutes(time,number)
where
| time | an 8-digit number or an expression that evaluates to an 8-digit number, that expresses a valid time value in the format HHMMSSTT |
| number | a number or an expression that evaluates to a number |
Return Value
Number, representing a time value.
Comments
Use $addminutes to perform arithmetic with time values. The $addminutes function calculates a time value by adding a number representing minutes to a time value. If number is negative, the effect is to subtract the minutes from the time.
Example
If $Time has the value 22503075, then
$addminutes($time,5)
Evaluates to 22553075.
$addminutes($time,10)
Evaluates to 23003075.
$addminutes($time,-5)
Evaluates to 22453075.
$addminutes($time,65)
Evaluates to 23553075.
Calculates a time value by adding seconds to (or subtracting seconds from) a specified time value.
Syntax
$addseconds(time,number)
Parameters
| time | an 8-digit number, or an expression that evaluates to an 8-digit number, that expresses a valid time value in the format HHMMSSTT |
| number | a number, or an expression that evaluates to a number |
Return Value
Number, representing a time value.
Comments
Use $addseconds to perform arithmetic with time values. The $addseconds function calculates a time value by adding a number representing seconds to a time value. If number is negative, the effect is to subtract the seconds from the time.
Example
If $Time has the value 22503075, then
$addseconds($time,5)
evaluates to 22503575.
$addseconds($time,35)
evaluates to 22510575.
$addseconds($time,-5)
evaluates to 22502575.
$addseconds($time,65)
evaluates to 22513575.
$addseconds(22595900,1)
evaluates to 23000000.
See Also
$addhours
$addminutes
$addticks
$seconds
Counts the number of set members that meet a specified condition, excluding records in which the condition is $Null.
Syntax
$count(expression)
Parameters
| expression | is any expression |
Return Value
Number, with no decimal places.
Comments
Expression is often a WHERE expression that includes only selected set members in the counting operation. If the WHERE expression (expr1 WHERE expr2) is true, then the member containing expr1 is included in the running count; otherwise, expression is considered $Null and is not included in the running count.
Example
compute Employees where DeptName="Sales"
evaluate (let EmpsInSales = $count(LastName where LastName = "Smith"))
First finds all employees in the sales department, then counts the number of Smiths among those employees.
add Employees from TestData let EmpNum = ($count("")+1000)As employee data is added, each new record is counted. New employee records are assigned unique employee numbers in sequence, based on the current value of $count plus 1000.
See Also
$average
$max
$min
$total
About Character Literals
About Functional Expressions
WHERE
Converts a value into its numeric equivalent.
Syntax
$tonumber(expression,decimals)
Parameters
| expression | Any value, or an expression that yields any value. |
| decimals | A number specifying the number of decimal places required in the converted value. Decimals can be negative. |
Return Value
Number equivalent of expression.
Comments
Use $tonumber to obtain the numeric equivalent of expression. If decimals is negative, the implicit number of decimal places in expression is used.
Example
$tonumber(1.273,2)
Evaluates to 1.27.
$tonumber(16/6,3)
Evaluates to 2.667.
$tonumber("2345",2)Evaluates to 2345.00.
$tonumber("Smith",5)Evaluates to 0.00000 (and produces an error).
$tonumber("1.2"*1.20,-1)Evaluates to 1.44.
See Also
$money
$round
$toalpha
$tocharacter
About Functional Expressions
Decimals and Rounding
Decimals in Functional Expressions
Number Literals
Returns the minimum value of a set of values.
Syntax
$min(expression)
Parameters
Return Value
The value of the selected instance of expression.
Comments
Use $min to find the smallest value among members of a set. Instances of expression that are $Null are ignored.
Expression is often a WHERE expression that includes only selected values in the operation. If the WHERE expression (expr1 WHERE expr2) is true, the expr1 value is included in the operation; otherwise, expression is considered $Null and is ignored.
Example
compute Employees where DeptName = "Sales"
evaluate (let MaxSal = $max(Salary))
(let MinSal = $min(Salary))
(let MaxSalF = $max(Salary where Sex = "F"))
(let MinSalF = $min(Salary where Sex = "F"))
At the end of this operation, MaxSal contains the highest salary paid to any employee in Sales; MinSal contains the lowest salary paid to any employee in Sales; MaxSalF contains the highest salary paid to any female employee in Sales; and, MinSalF contains the lowest salary paid to any female employee in Sales.
See Also
$average
$count
$max
$total
About Functional Expressions
WHERE
Returns the maximum value of a set of values.
Syntax
$max(expression)
Parameters
Return Value
The value of the selected instance of expression.
Comments
Use $max to find the largest value among members of a set. Instances of expression that are $Null are ignored.
Expression is often a WHERE expression that includes only selected values in the operation. If the WHERE expression (expr1 WHERE expr2) is true, the expr1 value is included in the operation; otherwise, expression is considered $Null and is ignored.
Example
compute Employees where DeptName = "Sales"
evaluate (let MaxSal = $max(Salary))
(let MinSal = $min(Salary))
(let MaxSalF = $max(Salary where Sex = "F"))
(let MinSalF = $min(Salary where Sex = "F"))
At the end of this operation, MaxSal contains the highest salary paid to any employee in Sales; MinSal contains the lowest salary paid to any employee in Sales; MaxSalF contains the highest salary paid to any female employee in Sales; and, MinSalF contains the lowest salary paid to any female employee in Sales.
See Also
$average
$count
$min
$total
About Functional Expressions
WHERE
Returns the average value of a set of values, excluding $Null values.
Syntax
$average(expression)
Parameters
Return Value
Number, with the number of decimal places implied by expression.
Comments
The function calculates the average of a set of values, excluding $Null values.
Expression is often a WHERE expression that includes only selected values in the averaging operation. If the WHERE expression (expr1 WHERE expr2) is true, the expr1 value is included in the averaging operation; otherwise, expression is considered $Null and is not included in the averaging operation.
Example
compute Employees where DeptName="Sales"
evaluate (let AvgAge = $average($year($date)-$year(BirthDate)))
(let AvgSal = $average(Salary where Sex = "F"))
Finds the average age of all employees, and the average salary of all female employees, in the sales department.
report footing
$average(Salary)
($total(Salary*Salary) / $count(Salary) - $average(Salary) * $average(Salary))
Reports average salary and salary variance.
See Also
$count
$max
$min
$total
How to Use The Report Generator
WHERE