EXTERNAL Command
Alerts the Project Manager to an undefined reference.
EXTERNAL FILE FileList | ARRAY ArrayList
| CLASS | FORM | LABEL | LIBRARY | MENU
| PROCEDURE | QUERY | REPORT | SCREEN | TABLE
Parameters
FILE FileList
Specifies that the file you include in an indirect file reference or macro substitution is a stand-alone file, such as a text file, .BMP bitmap file, and so on. FileList may contain a list of file names separated by commas.ARRAY ArrayList
When an array is created in a program and then used in a lower-level program, include ARRAY with the array name in the lower-level program. ArrayList may contain a list of array names separated by commas.In the following example, the first program creates an array named
gaInvoice
. The array is initialized and a lower-level program nameddispinvo
is called.dispinvo
displays the contents of the array created in the higher-level program. The command EXTERNAL ARRAY GAINVOICE is included to alert the Project Manager.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 ***
When an array is passed to a user-defined function or procedure, the corresponding array in the user-defined function or procedure must be identified to the Project Manager. Include the ARRAY option with the name of the array included in the PARAMETER statement.
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
Specifies that the file you include in an indirect file reference or macro substitution is a visual class library.EXTERNAL CLASS myvclass && CLASS myvclass must exist STORE 'myvclass' TO gcClassFile MODIFY CLASS (gcClassFile)
FORM
If a Form definition file is included in an indirect file reference or macro substitution, include FORM and the Form file name. FORM is identical to SCREEN.EXTERNAL FORM dataentr && FORM dataentr must exist STORE 'dataentr' TO gcFormFile DO FORM (gcFormFile)
LABEL
Specifies that the file you include in an indirect file reference or macro substitution is a label definition file.EXTERNAL LABEL Maillabl && LABEL FORM Maillabl must exist STORE 'Maillabl' TO gcLabelFile LABEL FORM (gcLabelFile) PREVIEW
LIBRARY
Include LIBRARY when a library file is referenced by indirect file referencing or macro substitution in SET LIBRARY.EXTERNAL LIBRARY regress && LIBRARY regress must exist STORE 'regress' TO gcStatFunc SET LIBRARY TO (gcStatFunc)
MENU
If a menu definition file is included in an indirect file reference or macro substitution, include MENU and the menu file name.EXTERNAL MENU pickfile && MENU pickfile must exist STORE 'pickfile' TO gcSysMenPad MODIFY MENU (gcSysMenPad)
PROCEDURE
Identifies an external procedure or user-defined function.EXTERNAL PROCEDURE delblank && PROCEDURE delblank must exist STORE 'delblank' TO gcTrimBlanks DO (gcTrimBlanks) WITH 'A B C D E'
QUERY
Specifies that the file you include in an indirect file reference or macro substitution is a query file.EXTERNAL QUERY sales && QUERY sales must exist STORE 'sales.qpr' TO gcSalesFile DO (gcSalesFile)
REPORT
Specifies that the file you include in an indirect file reference or macro substitution is a report definition file.EXTERNAL REPORT overdue && REPORT overdue must exist STORE 'overdue' TO gcReportFile REPORT FORM (gcReportFile) PREVIEW
SCREEN
If a form definition file is included in an indirect file reference or macro substitution, include SCREEN and the screen file name. SCREEN is identical to FORM.EXTERNAL SCREEN dataentr && SCREEN dataentr must exist STORE 'dataentr' TO gcScreenFile MODIFY SCREEN (gcScreenFile)
TABLE
Specifies that the file you include in an indirect file reference or macro substitution is a Visual FoxPro table.EXTERNAL TABLE customer && Table customer must exist STORE 'customer' TO gcMyTable USE (gcMyTable)
Remarks
Use EXTERNAL to include files and to resolve undefined references in a project created by the Project Manager. EXTERNAL is used only by the Project Manager and is ignored during program execution.
For more information on creating projects with the Project Manager, see Compiling an Application.
Files whose names you specify with EXTERNAL are included in a project by the Project Manager. You must include CLASS, FILE, FORM, LABEL, LIBRARY, MENU, PROCEDURE, QUERY, REPORT, SCREEN, or TABLE before the file name or a set of file names separated with commas to tell the Project Manager the type of files to include in the project.
The Project Manager must also be alerted to file names contained in a name expression or macro substitution. This ensures that all necessary files are included in a project when the project is built. It must also be alerted to arrays that are created in another procedure or user-defined function.
For more information on name expressions and macro substitution, see the & command. Whenever possible, use a name expression instead of macro substitution to improve performance.
See Also
BUILD APP | BUILD PROJECT | Compiling an Application | & | Project Manager