subroutine statement

The subroutine statement defines a program as an external subroutine.


subroutine {(arg.list)}


arg.list Variables to be assigned by the corresponding call statement. Subroutine to define as external.


FlashBASIC or 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 argument list are delimited by , (commas). arg.list must contain the same number of arguments as are in the call statement.

Note: This statement can be run from TCL provided the subroutine is not Flash-compiled and there are no parameters specified.

If a subroutine is called from the Update processor, in either a file-defining item, or an attribute-defining item, no arg.list can 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 is called once for every value in the attribute.

A subroutine exits with a return statement.

All external subroutines must be cataloged prior to execution.


This example prompts for a date and calls the external subroutine to make sure the date is legal.

*program main
10 input
if not(ok) then goto 10

Here is the subroutine:

if pdate matches "1n0n1x1n0n1x2n0n" then
   if iconv(pdate,’d’) # "" then
   end else
end else

The variable ok is set to 1 if the date is valid. Otherwise, ok is set to 0 (false).