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

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 включена для того, чтобы предупредить диспетчер проектов.

  CopyCode imageCopy Code
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.

  CopyCode imageCopy Code
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

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

  CopyCode imageCopy Code
EXTERNAL CLASS myvclass  && CLASS myvclass must exist
STORE 'myvclass' TO gcClassFile
MODIFY CLASS (gcClassFile)
FORM

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

  CopyCode imageCopy Code
EXTERNAL FORM dataentr  && FORM dataentr must exist
STORE 'dataentr' TO gcFormFile
DO FORM (gcFormFile)
LABEL

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

  CopyCode imageCopy Code
EXTERNAL LABEL Maillabl     && LABEL FORM Maillabl must exist
STORE 'Maillabl' TO gcLabelFile
LABEL FORM (gcLabelFile) PREVIEW 
LIBRARY

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

  CopyCode imageCopy Code
EXTERNAL LIBRARY regress  && LIBRARY regress must exist
STORE 'regress' TO gcStatFunc
SET LIBRARY TO (gcStatFunc)
MENU

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

  CopyCode imageCopy Code
EXTERNAL MENU pickfile  && MENU pickfile must exist
STORE 'pickfile' TO gcSysMenPad
MODIFY MENU (gcSysMenPad)
PROCEDURE

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

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

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

  CopyCode imageCopy Code
EXTERNAL QUERY sales  && QUERY sales must exist
STORE 'sales.qpr' TO gcSalesFile
DO (gcSalesFile)
REPORT

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

  CopyCode imageCopy Code
EXTERNAL REPORT overdue     && REPORT overdue must exist
STORE 'overdue' TO gcReportFile
REPORT FORM (gcReportFile) PREVIEW
SCREEN

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

  CopyCode imageCopy Code
EXTERNAL SCREEN dataentr  && SCREEN dataentr must exist
STORE 'dataentr' TO gcScreenFile
MODIFY SCREEN (gcScreenFile)
TABLE

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

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

Expand imageЗамечания

Используйте команду EXTERNAL, чтобы включать необходимые файлы и разрешать неопределенные ссылки в проекте, созданном диспетчером проектов. Команда EXTERNAL используется только диспетчером проектов и игнорируется в процессе выполнения программы.

Подробнее о создании проектов с помощью диспетчера проектов смотрите Компиляция приложения.

Файлы, имена которых вы задаете в команде EXTERNAL, включаются в проект диспетчером проектов. Перед именем файла необходимо задать ключевое слово CLASS, FILE, FORM, LABEL, LIBRARY, MENU, PROCEDURE, QUERY, REPORT, SCREEN или TABLE, чтобы сообщить диспетчеру проектов тип файла, включаемого в проект.

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

Подробнее о выражениях имени и макроподстановках см. описание команды &. По мере возможности старайтесь всегда использовать вместо макроподстановки выражение имени: это повысит производительность.

Expand imageСмотрите также