.foreach_item Macro

This macro is used for iterating on object collections:

.foreach_item (collection [,head [,tail [,condition [,comparison]]]])
	complex-template
.next [(separator)]

The template specified inside the block is applied to all objects contained in the specified collection.

If a comparison is specified, items in the collection are pre-sorted according to the corresponding rule before being iterated upon.

The following parameters are available:

Parameter

Description

collection

Collection over which iteration is performed

Type: Simple template

head

[optional] Generated before output, if there is one

Type: Text

tail

[optional] Appended to the output, if there is one

Type: Text

condition

[optional] If specified, only objects satisfying the given condition are considered during the iteration

Type: Simple condition

comparison

[optional] evaluated in a scope where two local objects respectively named 'Item1' and 'Item2' are defined. These correspond to items in the collection. <comparison> should evaluate to true if Item1 is to be placed after Item2 in the iteration

Type: Simple condition

complex-template

Template to apply to each item.

Type: Complex template

separator

[optional] Generated between non empty evaluations of <complex-template>

Type: Text

Note:

Macro parameters may be delimited by double quotes. The delimiters are required whenever the parameter value includes commas, braces, leading or trailing blanks. The escape sequence for double quotes inside a parameter value is \".

Example:

Attribute

Data type

Initial value

cust_name

String

__

cust_foreign

Boolean

false

.foreach_item(Attributes,,,,%Item1.Code% >= %Item2.Code%))
	Attribute %Code%[ = %InitialValue%];
.next(\n)

The result is:

Attribute cust_foreign = false

Attribute cust_name;

Note

The four commas after (Attributes,,,, means that all parameters (head, tail, condition and comparison) are skipped.


Created October 7, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com