Возвращает номер строки, выполняющейся в настоящий момент команды программного модуля, относительно начала программного файла, который содержит указанный программный модуль (процедуру или функцию).

LINENO([1])

Параметры

1

В этом случае, возвращается номер строки команды относительно начала текущей процедуры или функции. Если данный параметр отсутствует, то возвращается номер строки команды относительно начала всего программного файла.

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

Числового типа (Numeric)

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

Нумерация программных строк начинается с самого начала программного файла. Строки Комментариев, строки продолжения предыдущих программных строк (оканчивающиеся символом продолжения программной строки (;) - точка-с-запятой), включаются в общую нумерацию программных строк. Если выполнение текущей программы приостановлено (например, по команде SuspEnd), функция LINENO( ) возвращает номер строки команды, в которой выполнена остановка выполнения программы. LINENO( ) возвращает значение = 0, если программа завершила свое выполнение.

По-умолчанию, номер строки команды возвращается относительно начала программного файла. Если вызвана внешняя процедура, то нумерация строк продолжается с самого начала вызываемой программы или модуля.

Функция LINENO( ) эффективно может быть использована при Отладке программных Модулей. Вы можете установить Точку Останова (BreakPoint) для остановки выполнения программы в требуемом месте, задавая номер соответствующей строки, для этого: откройте соответствующее системное окно Breakpoints window, установите тип точки останова 'Break when expression is true'  -  Остановка при выполнении логического условия; и введите следующее выражение: LINENO( ) = nExpression, в соответствующем текстовом боксе  Expression textbox.

Expand imageПример

В следующем примере приводится фрагмент простейшей программы обработки ошибок.

  CopyCode imageКопировать Код
ON ERROR DO bug_proc WITH LINENO( )
BRWS && Causes an error
ON ERROR

*** Bug_Proc error handler ***

PROCEDURE bug_proc
PARAMETERS gnBadLine
WAIT WINDOW 'Error occurred at line: ' + ALLTRIM(STR(gnBadLine))
RETURN

Expand imageСм. также