Command LIST Foundation

Outputs records and/or displays them on the screen.

Syntax
LIST <Expression,...> ;
   [FOR     <lForCondition>] ;
   [WHILE   <lWhileCondition>] ;
   [NEXT    <nCount>] ;
   [RECORD  <xRecordID>] ;
   [TO FILE <cFilename>] ;
   [TO PRINTER] ;
   [REST] ;
   [ALL] ;
   [OFF]
Parameters
<Expression,...>
<Expression,...> is a comma-separated list of expressions to display or output for each record in the current work area.
<lForCondition>
<lForCondition> is an optional logical expression defining a condition. The expressions in the list <Expression,...> are displayed or output only when <lForCondition> returns the value .T. (true).
<lWhileCondition>
<lWhileCondition> is an optional logical expression defining a condition. The expressions in the list <Expression,...> are displayed starting at the current record only as long as <lWhileCondition> returns the value .T. (true). As soon as the expression results in the value .F. (false), the operation is terminated.
<nCount>
<nCount> optionally specifies the number of records to display starting with the current record.
<xRecordID>
<xRecordID> is an optional record ID (for DBF files it is the record number). If the record ID is included, only the specified data record is displayed.
FILE <cFilename>
<cFilename> specifies the name of the file to which the data is also written. The name must contain the drive and path if they are necessary. The file name can be specified either as a literal or as a character expression in parentheses. When the file name is specified without a file extension, ".TXT" is used by default. The file is created. If it already exists, it is overwritten without warning.
PRINTER
The option TO PRINTER specifies that the output should also be sent to the printer.
REST
The option REST specifies whether records are displayed only from the current record to the last record. If a condition is specified, the option ALL is the default value.
ALL
The option ALL specifies whether all records in the work area are displayed. This is the default setting. If a condition is specified, the condition is tested for all records.
OFF
Specifying the option OFF indicates that the record ID is not output. For DBF files, the record ID is the record number (RecNo()).
Description

The command LIST outputs the values of the expression list <Expression,...> in table form. The values are separated by blank spaces. LIST does not display column headings and processes the data records in the current work area sequentially. The expression list is output for each record matching the conditions or until the specified number of records have been output. During processing of the records, the display is not paused. LIST is identical to the command DISPLAY, except for the default number of records. For LIST, the default option is ALL (all records are output).

The command LIST outputs the values of <Expression,...> on the screen. The output can also be sent to the printer or to a file using the options TO PRINTER or TO FILE. To suppress output on the screen, the command SET CONSOLE OFF must be specified before the call of LIST.

records marked for deletion are not output when SET DELETED is turned ON. Otherwise, the deletion flag is identified in the output by an asterisk (*).

The function DbList() is the functional equivalent of LIST.

Examples
LIST
// In the example, all parts from an inventory file 
// where the inventory quantity is less than the minimum 
// inventory level are listed. This creates and prints 
// out an order list. 

PROCEDURE Main 

   USE Inventry NEW 

   LIST PartNo, Part, OnStock, MinAmount TO PRINTER ; 
    FOR OnStock < MinAmount 

   USE 
RETURN 
Pausing output of LIST
// The example shows how the screen display can be paused 
// after each MaxRow() rows and how the option to terminate 
// output using the ESC key can be provided. 

#include "Inkey.ch" 

PROCEDURE Main 
   LOCAL nCount := 0 

   USE Customer NEW 

   LIST LName, FName, Phone ; 
        WHILE IIf( ++nCount % MaxRow()==0, Inkey(0)<>K_ESC, .T. ) 

   USE 
RETURN 
Feedback

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.