Example 1 Example 2  

<ASSIGN> Macro,  assign to a value or to a database record 
Property Description
ID=NAME Tag identifier
VALUE=... Value of the assign tag
SQL=statement SQL statement

<IF>html-statements</IF> Macro, conditional include HTML Statements
Property Description
Value=... Value to Compare
Contains=match Include if Value Contains match
EQ=match | Equal=match Include if Value equals match
LT=match | LessThan=match Include if Value less than match
GT=match | GreaterThan=match Include if Value greater than match
LE=match Include if Value is less than or equal to match
GE=match Include if Value is greater than or equal to match
Not Negate Condition
Blank Include if Value is Blank
Zero Include if Value is Blank

<LOOP> Macro, Loop through a set of Macro statements, (does not generate output, see group statement for output)
Property Description
ID=NAME Tag identifier
LIST="v1,v2,..." List of Values (1 loop per value)
SQL=statement SQL statement (1 loop per record)
Count=n Repeat Loop N times
Min=n Minimum Loop Value
Maximum=n Maximum Loop Value
Increment=n Increment Loop Value

<RANDOM> Macro, Create a Random List of Values
Property Description
ID=NAME Tag identifier
LIST="v1,v2,..." List of Values
SQL=statement SQL statement
Min=value Minimum Value
Max=value Maximum Value
Unique=true | false Requires each returned values to be unique
Exclude="v1,v2,.." Exclude these values from being returned


<STORE> Macro, Store a constant into a List
Property Description
ID=NAME Tag Identifier
Value=... Value to Store
Reverse="True | False" If true: Reverse output order to First In Last Out, Default = First In First Out


<GROUP> Macro, Create an HTML Group, Repeat 0 or more times.
forces a page break to keep each group on a page
Property Description
ID=NAME Tag identifier
LIST="v1,v2,..." List of Values (1 group per value)
SQL=statement SQL statement (1 group per record)
Count=n Repeat Group N times
Columns=n Create Multiple Columns (1 to 30)
ColumnOrder=true Output Groups in Column Order
Default = false, row order


MACRO REFERENCE Replace Within the HTML text the Following, References can be nested
HTML Reference Replace With
{ID} <ASSIGN id=name> value Next
<RANDOM id-=name> value Next
<STORE id=name> <LOOP> <GROUP> <ASSIGN> Value
{ID.Last} Last Value Referenced
<RANDOM> <GROUP> <LOOP>, or <STORE>
{ID.Count} Counter (1..n)
<RANDOM> <GROUP> {LOOP}, or <STORE>
{ID.Index} Index (0..n-1)
<RANDOM> <GROUP> <LOOP>, or <STORE>
{ID.total} Total Values
<GROUP>
{ID.Radian} Return converted Degrees to Radians
<STORE> <ASSIGN> <GROUP> <LOOP>
{ID.Rewind} Rewind List
<STORE>
{ID.field-name} Field Value of SQL statement
<ASSIGN>, <RANDOM> or <GROUP>
{ID,join} Join Values of a LIST separated by commas
<ASSIGN> <STORE>
{Page} PDF Current Page Number
{PageTotal} PDF total Pages, valid only in <PageHeader> and <PageFooter> tags
{Date} Current Date
{Time} Current Time
{DateTime} Current Date and Time
{PI} Value of PI "3.1415926..."
{function(arg-list)} Perform Function:
EVAL, TAN, SIN, COS, ATAN,  SQRT, PI, MIN, MAX, ABS, CEIL, FLOOR, ROUND, POW, LOG, RANDOM, ACOS, ASIN, ESCAPE, UNESCAPE, MOD

Note:
Random() return 0 to 1
Random(max) return 1 to max-value
Random(min,max) return min value to max value