Syntax: SET vname=<string operand> [(n)]
SET vname=<numeric operand> [(n.d)]
SET vname=<string operand1> ! <string operand2> ! ...
Placement: RETURN Section, EVERY Section, ATEND Section or
R_INITIAL section
Description: Assigns a value to a user defined string
variable, vname, which may be either local or global.
The length of a local variable is constant within a
REPORT and is defined to be the maximum length
attained by any SET statement.
The length of a global string variable is variable;
however, a global string variable occupies a constant
number of positions within a PRINT class statement.
In the first form, the simple <string operand> is
copied to the string variable vname. <string operand>
may be an alpha field, a local string variable, a global
string variable, a string constant or a string valued
function.
In the second form, the simple <numeric operand> is
converted to a string and copied to the string variable
vname. <numeric operand> may be a numeric field, a local
numeric variable, a global numeric variable or an
unsigned numeric constant.
In the third form, two or more simple <string operand>s
are concatenated and the result is copied to the string
variable vname.
The value of an alpha variable is moved to the
RETURN line only when the variable appears on the
left side of an equals in a SET statement. The
value of an alpha variable after being modified by
nxt(), nxtd() or nxtn() will not be moved to the
RETURN line unless the statement "SET vname=vname"
is performed.
Options which apply to the SET command are:
L - remove leading blanks from result string
N - if result is SQL-null, make result non SQL-null;
refer to CALC-SET-IF with SQL null
S - force result string to lower case
T - trim trailing blanks from result string; this
is meaningful only is vname is a global variable
U - force result string to upper case
7.5.1 Legal string operands are:
String constant enclosed in ' or "
Alpha fields
Alpha local variables
Alpha global variables
String functions
7.5.2 String valued functions
The following is a list of string-valued functions.
In the following descriptions,
. vname must be a global string variable
. dstring may be an alpha constant, an alpha variable,
or an alpha field;
. n may be a numeric constant, a numeric variable, or a
numeric field;
. text is a TEXT field.
7.5.3 edate() function - edit date
7.5.4 edate64() function - edit datetime
7.5.5 isnull() function - test for SQL NULL
7.5.6 lower() function - convert string to lower case
7.5.7 ltrim() function - trim blanks from left of string
7.5.8 nxt() function - retrieve sub-string
7.5.9 nxtd() function - extract sub-string
7.5.10 nxtn() function - extract sub-string
7.5.11 nxtw() function - extract sub-string
7.5.12 proper() function - convert string to proper name case
7.5.13 rtrim() function - trim spaces from right of string
7.5.14 squeeze() function - convert multiple spaces
7.5.15 trim() function - trim spaces from right of string
7.5.16 upper() function - convert string to upper case
7.5.17 _words() function - convert number to words
7.5.18 _present() function - record status
7.5.19 timestr() function - convert time to string
7.5.20 substr() function - extract sub-string from string
7.5.21 _porter() function - porter stemming function
7.5.22 _soundex() function - soundex fuzzy match function
7.5.23 _phonic() function - phonic fuzzy match function
7.5.24 _metaphone() function - metaphone fuzzy match function
edate() function - edit date
The string valued function edate(jd,template)
converts the numeric date since January 1, 1753 into
a date string. "jd" is the numeric date in the
form of a constant number, a numeric variable or a
numeric field. If "jd" is 0, it represents the current
date.
"template" is an editing template in the form of a
constant string, a string variable or a string field.
Each 'm' or 'M' represents a digit in the month (right to left);
each 'd' or 'D' represents a digit in the day (right to left);
each 'y' or 'Y' represents a digit of the year (right to left);
each 'x' or 'X' represents a character of the mnemonic month (left to right);
each 'z' or 'Z' represents a character of the mnemonic day (left to right);
If the year is edited as 'yy', it will represent the
last two digits of the year. If the year is edited
as 'yyyy' it will represent the absolute year from
1753 to 4999.
If the [,template] argument is omitted a default
template 'mm/dd/yy' is assumed.
edate64() function - edit datetime
The string valued function edate64(jd,template)
converts the numeric datetime into a string. The numeric
datetime is the number of days since January 1, 1753 plus
the time expressed as a fractional day. "jd" is the numeric
datetime in the form of a constant number, a numeric variable
or a numeric field. If "jd" is 0, it represents the current
datetime.
"template" is an editing template in the form of a
constant string, a string variable or a string field.
Each 'm' or 'M' represents a digit in the month (right to left);
each 'd' or 'D' represents a digit in the day (right to left);
each 'y' or 'Y' represents a digit of the year (right to left);
each 'x' or 'X' represents a character of the mnemonic month (left to right);
each 'z' or 'Z' represents a character of the mnemonic day (left to right);
If the year is edited as 'yy', it will represent the
last two digits of the year. If the year is edited
as 'yyyy' it will represent the absolute year from
1753 to 4999.
Each 'h' or 'H' represents a digit in the hour (right to left);
each 'n' or 'N' represents a digit in the minute (right to left);
each 's' or 'S' represents a digit of the second (right to left);
each 't' or 'T' represents a digit of the fractional second (left to right);
each 'a' or 'A' represents a character of the AM/PM suffix (left to right);
If the 'a' or 'A' suffix is not specified, a 24 hour clock
format is used; otherwise, a 12 hour clock is used.
If the [,template] argument is omitted a default
template 'mm/dd/yyyy hh:nn:ss.ttt' is assumed.
nxt() function - extract sub-string
Syntax: nxt(vname)
nxt(text)
Description: skips leading blanks, returns the sub-
string up to the next blank or end, then removes
the skipped and returned characters from vname.
nxtd() function - extract sub-string
Syntax: nxtd(vname,dstring)
nxtd(text,dstring)
Description: skips leading characters specified by
dstring, returns the sub-string up to the next
character specified by dstring or end, then removes
the skipped and returned characters from vname.
Note: nxt(vname) <==> nxtd(vname," ")
nxtn() function - extract sub-string
Syntax: nxtn(vname,n)
nxtn(text,n)
Description: returns n characters from vname, then
removes n characters from vname
nxtw() function - extract sub-string
Syntax: nxtw(vname,n)
nxtw(text,n)
Description: returns up to n characters from vname,
wrapped on a word boundary if possible, then
removes the characters from vname
_present() function - record status
Syntax: _present(dgname)
Description:
The _present() function in SET and IF is a function of
the hierarchy level of a data group. In general,
the hierarchy level is the ordinal of the data group
in the collection.
_present('TableName') is 'MISSING' if 'TableName' is not currently defined;
_present('TableName') is 'NO' if 'TableName' is defined but is not in
the current RETURN
_present('TableName') is 'YES' if 'TableName' is in the current RETURN
For example, the command:
RELATE A CUSTOMERS INVENTORY SALES OVER CUST# ITEM#
would produce a hierarchy that looked like this
in a RAWPRINT:
DGNAME REC# NAME PRICE QUAN
---------- ---- ---- ----- ----
CUSTOMERS 1 BATMAN
INVENTORY 1 12.75
SALES 1 5
SALES 2 8
INVENTORY 2 17.00
INVENTORY 3 25.00
SALES 3 12
SALES 4 24
For each frame of a REPORT, the _present() function is:
_present() _present() _present()
NAME PRICE QUAN 'CUSTOMERS' 'INVENTORY' 'SALES'
---- ----- ---- --------- --------- ---------
BATMAN 12.75 5 'YES' 'YES' 'YES'
8 'NO' 'NO' 'YES'
17.00 'NO' 'YES' 'MISSING'
25.00 12 'NO' 'YES' 'YES'
24 'NO' 'NO' 'YES'
The _level() function is an analogue to the _present() function.
timestr() function - convert time (in seconds and fractional seconds) to string
Syntax: timestr(<time-in-seconds>)
Description:
The timestr() function is used to convert a numeric time value
in seconds and fractional seconds to a string.
<time-in-seconds> is the numeric time in seconds and fractional seconds
If the fractional part of <time-in-seconds> is zero, the result
of the timestr() function is in the form 'hh:nn:ss'.
If the fractional part of <time-in-seconds> is non-zero, the result
of the timestr() function is in the form 'hh:nn:ss.ttt'.
For example (in ddtl notation):
>>timing/x %Start
...
>>timing/x %Stop
>>set %elapsed = timestr(timediff(%Start,%Stop))
>>vlist
%START = 10:23:04
%STOP = 10:24:17
%ELAPSED = 00:01:13
substr() function - retrieve sub-string from string
Syntax: substr(<string>,<position>,<count>)
Description:
The substring function is used to retrieve (but not remove)
a portion of a larger string.
<string> is an alpha variable, literal, or fieldname
<position> is the relative 1 starting character position to be retrieved
<count> is the (max) number of characters to be retrieved
The <position> and <count> parameters may be numeric constants, variables,
column names or expressions.
For example (in ddtl notation):
>>set %STRING = 'ABCDEFGHIJKLMN'
>>set %SUBSTR = substr(%STRING,3,5)
>>vlist
%STRING = ABCDEFGHIJKLMN
%SUBSTR = CDEFG
_porter() function - porter stemming function
Syntax: _porter(word)
Description:
The _porter(word) function is an implementation of the Porter
Stemming Algorithm, published by Martin Porter. The Porter Stemming
Algorithm uses a strictly computational process of removing
multiple prefixes and suffixes to give the root stem. For example,
nationalizations ==> nation
Porter stemming does not attempt to deal with special cases such as
mice ==> mouse
The result string of the _porter(word) function is always in lower case.
_soundex() function - soundex fuzzy match function
Syntax: _soundex(word)
Description:
The _soundex(word) function is an implementation of the Soundex
phonetic algorithm. This particular implementation is based on
a public domain version by Bob Jarvis dated 1997.
This implementation differs from the original in the fact that
the generated token can contain up to 6 characters.
_phonic() function - phonic fuzzy match function
Syntax: _phonic(word)
Description:
The _phonic(word) function is an implementation of the Phonic
phonetic algorithm, developed by Peter Christian. The Phonic
algorithm is an enhanced version of the Soundex algorithm.
This implementation differs from the original in the fact that
the generated token can contain up to 6 characters.
_metaphone() function - metaphone fuzzy match function
Syntax: _metaphone(word)
Description:
The _metaphone(word) function is an implementation of the Metaphone
phonetic algorithm, developed by Lawrence Phillips. The Metaphone
algorithm is an enhanced version of the Soundex algorithm.
The generated token can contain up to 6 characters.
Copyright © 2019 , WhamTech, Inc. All rights reserved. This
document is provided for information purposes only and the contents hereof are
subject to change without notice. Names may be
trademarks of their respective owners.