$Alpha

From m204wiki
Jump to navigation Jump to search

The $Alpha function verifies whether a string is composed only of characters that are valid in the specified (or default) language.

Syntax

%result = $Alpha(string [,language])

%result A numeric variable that contains:
  • 1, for a true condition.
  • 0, for a false condition if one of these occurs:
    • string contains digits, spaces, or punctuation marks
    • string is null
    • U.S. English characters in the string have accent marks
string The string to be verified. string must be one of the following:
  • A literal enclosed in quotation marks
  • A %variable
  • A field name without quotation marks. In this case, the function call must be embedded in a FOR EACH RECORD loop where the current value of the field is verified.
language An optional string that specifies the language to use. language is handled as follows:
  • You can enter a literal enclosed in quotation marks or a %variable containing a valid language name. If the value you enter is not a supported language, the request is canceled with the following error message. See the LANGUSER parameter for the valid values.

    M204.2340: INVALID LANGUAGE ARGUMENT: 'language' FOR $FUNCTION: ALPHA

  • If you omit the language argument, Model 204 performs the validation in U.S. English, even if the value of the LANGUSER parameter is not US, and lowercase characters are not recognized.
  • An asterisk enclosed in quotation marks ('*') instructs Model 204 to use the value of the LANGUSER parameter.

Examples

The following table has examples of the string and language arguments as literals.

Function code... Returns...

$alpha('JOHN','US')

1

$alpha('MÂCON','FRENCHC')

1

$alpha('MÂCON','US')

0

$alpha('JOHN SMITH','US')

0

$alpha('ÎLE D'ORLÉANS','FRENCHC')

0

$alpha('12A','US')

0

$alpha('12A','FRENCHC')

0

In the following code example, the request sorts and prints the names of agents whose name contains nonalphabetic characters. The quoted asterisk in the $Alpha call causes Model 204 to verify the contents of the field AGENT against whatever language is indicated by the value of the LANGUSER parameter:

RESET LANGUSER 'FRENCHC' BEGIN POL.HOLDERS: FIND ALL RECORDS FOR WHICH RECTYPE = POLICYHOLDER END FIND FOR EACH RECORD IN POL.HOLDERS IF NOT $alpha (AGENT, '*') THEN PLACE RECORD ON LIST BADNAME END IF END FOR ORDERED.LIST: SORT RECORDS ON LIST BADNAME BY AGENT FOR EACH RECORD IN ORDERED.LIST PRINT AGENT END FOR END

Note: For upward compatibility reasons, $Alpha and $Alphnum do not recognize lowercase English letters as alphabetic characters unless a non-null language parameter is specified.