Alerts the Project Manager to an undefined reference.
EXTERNAL FILE FileList | ARRAY ArrayList | CLASS | FORM | LABEL | LIBRARY | MENU | PROCEDURE | QUERY | REPORT | SCREEN | TABLE
- 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 named
dispinvodisplays 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)
- 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)
- 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)
- 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
- 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)
- 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)
- 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'
- 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)
- 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
- 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)
- 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)
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.