PROGRAM( ) Function
Returns the name of the program at a specified program level, the name of the currently executing program, the current program level, or the name of the program executing when an error occurred.
PROGRAM([nLevel])
nLevel
Specifies the number of program levels to search for the program name. The nLevel parameter can range from 0 to the program nesting depth. For more information about program nesting levels, see maximum number of DO calls in Visual FoxPro System Capacities.When nLevel is omitted, PROGRAM( ) returns the name of the currently executing program. If you specify 0 or 1 for nLevel, PROGRAM( ) returns the name of the master program, or the highest-level program.
If you specify –1 for nLevel, PROGRAM( ) returns the current program level as a numeric value. However, using
PROGRAM(–1)
in the Command window always returns zero (0).If nLevel exceeds the program nesting depth, PROGRAM( ) returns an empty string ("").
Character or Numeric. PROGRAM( ) returns a program name, the number of the current program level, or an empty string.
You can use PROGRAM( ) to help your program recover from errors. The PROGRAM( ) function is similar to SYS(16) - Executing Program File Name.
ON ERROR DO errhand WITH PROGRAM( )
** The next line should generate an error ** USE nodatabase ON ERROR && Returns to system default error-handling routine PROCEDURE errhand PARAMETERS gcProgram WAIT 'An error occurred in the program ' + gcProgram WINDOW
DO Command
LINENO( ) Function
MESSAGE( ) Function
ASTACKINFO( ) Function