|Command||basic.subroutine Statement/BASIC Program
Applicable release versions: AP, R83
|Category||BASIC Program (486)|
|Description||defines program as an external subroutine.
Pick/BASIC provides the ability to "call subroutines". The "subroutine" statement must appear on the first line of an external subroutine invoked by a "call" statement.
Arguments defined in the optional "argument.list" are delimited by "," (commas). The "argument.list" must have the same number of arguments as are in the "call" statement.
If a subroutine is called from the Update processor, in either a file-defining item, or an attribute-defining item, no "argument.list" may be specified by the "call" statement. If called from a file-defining item, the "item" being filed is automatically passed as a parameter in a call. If called from an attribute-defining item, the current value of the attribute being processed is automatically passed. Note that the subroutine will be called once for every value in the attribute.
A subroutine exits with a "return" statement.
All external subroutines must be cataloged prior to execution.
*program main 10 input start.date call validate.date(start.date,ok) if not(ok) then goto 10 This example prompts for a date and calls the external subroutine "validate.date" to make sure the date is legal. Here is the subroutine: subroutine validate.date(pdate,ok) * may need rework for years crossing 2000 if pdate matches "1n0n1x1n0n1x2n0n" then if iconv(pdate,'d') # "" then ok=1 end else ok=0 end end else ok=0 end return The variable "ok" is set to 1 if the date is valid. Otherwise, "ok" is set to zero (false).