SYNTAX:
xpxSelectAggrInstances (aggrId : AGGREGATE OF GENERIC; condition : STRING; options : INTEGER; firstIndex, maxHits : INTEGER;
VAR indexOfLastFound : INTEGER; VAR actualHits : INTEGER; VAR foundInstances : AGGREGATE OF GENERIC) status : INTEGER;
The xpxSelectAggrInstances function returns a list containing the indexes of all the instances within an aggregate that matches a given Express-X logical expression.
The arguments for the function are:
Argument:: |
Description: |
aggrId |
A numeric aggregateID that uniquely identifies the aggregate of interest in the EDMdatabase. This may be any type of aggregate, persistant, volatile or scratch. |
condition |
A conditional statement, written in Express-X, that the instances shall match. |
options |
Not used. |
firstIndex |
The aggregate index from which to start searching for matching instances. |
maxHits |
Specifies the maximum number of matching instances to return. |
indexOfLastFound |
The index of the last found matching instance element. This return value enables incremental search for matching elements. See example below. |
actualHits |
The number of matching instances found. |
foundInstances |
Return value. A numeric aggregateID that uniquely identifies the volatile list that will contain the index of each matching instance. |
This function is equivalent to the EDMinterface function edmiSelectAggrInstances.
Example:
. . .
firstIndex = 1;
maxHits := 10;
actualHits := maxHits;
WHEN (actualHits = maxHits);
BEGIN
indexList := xpfSelectAggrInstances(myAggrId,
?(NAME LIKE JOHN%) AND (AGE > 30)?
0, firstIndex, maxHits, lastMatch,
actualHits,);
(* Process matching elements here *)
firstIndex := lastMatch + 1;
END;
. . .