85. Minor Children
Description
Count minor children; create a list of minor children; filter the minor children out from a list of all children.
Code
Count of minor children:
0
REPEAT Child Info
IF AGE( ChildBirthDate-d ) < 18
RESULT + 1
END IF
END REPEAT
Filter for Minors ("FilterMinors-c"):
AGE( ChildBirthDate-d ) < 18
List of Chilren:
(requires the filter above)
""
REPEAT Child Info
FILTER FilterMinors-c
FORMAT "A, B and C"
RESULT + ChildName-t
END REPEAT
List of Chilren (columnar):
(requires the filter above)
""
REPEAT Child Info
FILTER FilterMinors-c
RESULT + ChildName-t + "\r"
END REPEAT
Explanation
The proper way to filter for minors is to check their age with AGE( date ) < 18 (returns TRUE or FALSE), where "date" is a date variable that indicates the child's birthdate (ChildBirthDate-d above).
The first computation counts the number of minor children and returns that number. It accomplishes this by adding 1 to RESULT only if the child is less than 18.
The second computation is a filter to be used in repeated dialogs. It returns TRUE if the child is a minor, otherwise FALSE. This filter is used in the next two computations (as FilterMinors-c).
The next computation creates a list of minor children in the format "Jimmy Johnson, Sally Johnson and Aaron Johnson." The FILTER line calls our minor children filter and causes the REPEAT to skip any answers that fail to meet the filter's criteria (less than 18 years old). The FORMAT line indicates how we want the list formatted. And the RESULT line adds the next answer to the list. This list is returned by the computation.
The last computation is identical to the previous except that the list will be formatted:
Jimmy Johnson
Sally Johnson
Aaron Johnson
The carriage return is placed with "\r." For other ways to insert a carriage return, see Computation 12: Returns in Text Strings.