Команда EXTERNAL

Предупреждает диспетчер проектов о неопределенной ссылке.

Синтаксис:

EXTERNAL FILE FileList | ARRAY ArrayList 
	| CLASS | FORM | LABEL | LIBRARY | MENU
	| PROCEDURE | QUERY | REPORT | SCREEN | TABLE

Параметры:
FILE FileList
Предупреждает диспетчер проектов о том, что файл, который вы включили в косвенную ссылку или макроподстановку, является независимым, таким как тектовый файл, растр .BMP и т.п. Аргумент FileList может содержать список имен файлов, разделенных запятыми.
ARRAY ArrayList
Если массив создан в какой-либо программе, а затем используется в программе более низкого уровня, выдайте в этой программе низкого уровня команду ARRAY с именем массива. ArrayList может содержать список имен массивов, разделенных запятыми.
В следующем примере первая программа создает массив gaInvoice. Этот массив инициализируется, после чего вызывается программа dispinvo более низкого уровня. Программа dispinvo отображает содержимое массива, созданное в программе более высокого уровня. Команда EXTERNAL ARRAY GAINVOICE включена для того, чтобы предупредить диспетчер проектов.

DIMENSION gaInvoice(4)
STORE 'Paid' TO gaInvoice
DO dispinvo
*** Program dispinvo ***
PROCEDURE dispinvo
EXTERNAL ARRAY gaInvoice
? gaInvoice(1)
? gaInvoice(2)
? gaInvoice(3)
? gaInvoice(4)
RETURN
*** End of dispinvo program ***

Когда массив передается в пользовательскую функцию или процедуру, соответствующий массив в пользовательской функции или процедуре должен быть идентифицирован для диспетчера проектов. Задайте опцию ARRAY с именем массива, указанным в операторе PARAMETER.

DIMENSION gaArrayOne(2)		&& Create an array
EXTERNAL ARRAY gaArrayTwo	&& Name of the array used in the UDF
SET TALK OFF
STORE 10 TO gaArrayOne(1)
STORE  2 TO gaArrayOne(2)
= ADDTWO(@gaArrayOne)		&& Pass the array by reference to a UDF
FUNCTION ADDTWO
PARAMETER gaArrayTwo
CLEAR
gaArrayTwo(1) = gaArrayTwo(1) + 2
gaArrayTwo(2) = gaArrayTwo(2) + 2
? gaArrayTwo(1)
? gaArrayTwo(2)

CLASS
Предупреждает диспетчер проектов о том, что файл, указанный в косвенной ссылке на файл или в макроподстановке, является библиотекой визуальных классов.

EXTERNAL CLASS myvclass  && CLASS myvclass must exist
STORE 'myvclass' TO gcClassFile
MODIFY CLASS (gcClassFile)

FORM
Если в косвенной ссылке на файл или в макроподстановке указан файл определения объекта Form, задайте предложение FORM с именем файла формы. Предложения FORM и SCREEN идентичны.

EXTERNAL FORM dataentr  && FORM dataentr must exist
STORE 'dataentr' TO gcFormFile
DO FORM (gcFormFile)

LABEL
Предупреждает диспетчер проектов о том, что файл, указанный в косвенной ссылке на файл или в макроподстановке, является файлом определения этикетки.

EXTERNAL LABEL Maillabl	  && LABEL FORM Maillabl must exist
STORE 'Maillabl' TO gcLabelFile
LABEL FORM (gcLabelFile) PREVIEW 

LIBRARY
Задайте ключевое слово LIBRARY, если в команде SET LIBRARY косвенная ссылка на файл или макроподстановка указывает файл библиотеки.

EXTERNAL LIBRARY regress  && LIBRARY regress must exist
STORE 'regress' TO gcStatFunc
SET LIBRARY TO (gcStatFunc)

MENU
Если в косвенную ссылку на файл или в макроподстановку включен файл определения меню, задайте опцию MENU с именем файла меню.

EXTERNAL MENU pickfile  && MENU pickfile must exist
STORE 'pickfile' TO gcSysMenPad
MODIFY MENU (gcSysMenPad)

PROCEDURE
Идентифицирует внешнюю процедуру или пользовательскую функцию.

EXTERNAL PROCEDURE delblank	  && PROCEDURE delblank must exist
STORE 'delblank' TO gcTrimBlanks
DO (gcTrimBlanks) WITH 'A B C D E'

QUERY
Предупреждает диспетчер проектов о том, что файл, указанный в косвенной ссылке на файл или в макроподстановке, является файлом запроса.

EXTERNAL QUERY sales  && QUERY sales must exist
STORE 'sales.qpr' TO gcSalesFile
DO (gcSalesFile)

REPORT
Предупреждает диспетчер проектов о том, что файл, указанный в косвенной ссылке на файл или в макроподстановке, является файлом определения отчета.

EXTERNAL REPORT overdue	  && REPORT overdue must exist
STORE 'overdue' TO gcReportFile
REPORT FORM (gcReportFile) PREVIEW

SCREEN
Если в косвенной ссылке на файл или в макроподстановке указан файл определения формы, задайте предложение FORM с именем файла экрана. Предложения SCREEN и FORM идентичны.

EXTERNAL SCREEN dataentr  && SCREEN dataentr must exist
STORE 'dataentr' TO gcScreenFile
MODIFY SCREEN (gcScreenFile)

TABLE
Предупреждает диспетчер проектов о том, что файл, указанный в косвенной ссылке на файл или в макроподстановке, является таблицей Visual FoxPro.

EXTERNAL TABLE customer && Table customer must exist
STORE 'customer' TO gcMyTable
USE (gcMyTable)

Комментарии:
Используйте команду EXTERNAL, чтобы включать необходимые файлы и разрешать неопределенные ссылки в проекте, созданном диспетчером проектов. Команда EXTERNAL используется только диспетчером проектов и игнорируется в процессе выполнения программы.
Подробнее о создании проектов с помощью диспетчера проектов см. тему Использование диспетчера проектов и главу 15 "Компиляция приложения" Руководства разработчика.
Файлы, имена которых вы задаете в команде EXTERNAL, включаются в проект диспетчером проектов. Перед именем файла необходимо задать ключевое слово CLASS, FILE, FORM, LABEL, LIBRARY, MENU, PROCEDURE, QUERY, REPORT, SCREEN или TABLE, чтобы сообщить диспетчеру проектов тип файла, включаемого в проект.
Кроме того, диспетчер проектов следует предупреждать об именах файлов, содержащихся в выражении имени или в макроподстановке. Это гарантирует включение в строящийся проект всех необходимых файлов. Нужно также предупреждать о массивах, созданных в другой процедуре или в пользовательской функции.
Подробнее о выражениях имени и макроподстановках см. описание команды &. По мере возможности старайтесь всегда использовать вместо макроподстановки выражение имени: это повысит производительность.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 14.01.2003