Возвращает имя выполняемого в настоящий момент программного модуля на заданном уровне вложения выполняемых программных модулей; или имя выполняемого программного модуля, в котором произошла Ошибка выполнения.

PROGRAM([nLevel])

Параметры

nLevel

Определяет номер уровня выполняемых модулей, на котором требуется определить имя текущего модуля. Параметр nLevelможет принимать значения: от 0 - до общего количества уровней вложения вызываемых программ. Дополнительная информация о количестве допустимых уровней программных вложений при выполнении команды DO... находится в разделе:  Системные возможности Visual FoxPro.

Когда параметр nLevel - отсутствует, функция  PROGRAM( ) возвращает имя текущей выполняемой программы (модуля). Если вы задаете значение = 0 или = 1, для nLevel, PROGRAM( ) возвращает имя Главной программы, или имя программы самого верхнего уровня.

Если для параметра nLevel вы задаете значение уровня = -1, PROGRAM( ) возвращает числовое значение уровня выполняемой в настоящий момент программы. Однако, при выполнениее команды: ? PROGRAM(–1) из системного Командного окна, всегда возвращается значение = 0.

Если параметр nLevel имеет недопустимое значение для уровней программной вложенности (nesting depth), функция PROGRAM( ) возвращает пустую строку ("").

Expand imageВозвращаемое значение

Символьное или Числовое. PROGRAM( ) возвращает имя выполняемого программного модуля, или номер уровня выполняемой программы, или пустую строку.

Expand imageКомментарии

Рассматриваемая в данном разделе функция PROGRAM( ) может быть использована для обработки возможных Ошибок выполнения. Функция PROGRAM( ) аналогична системной функции: SYS(16) - Имя файла выполняемой программы.

Expand imageПример

  CopyCode imageКопировать Код
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

Expand imageСм. также