Progress
Language Tutorial
for Windows


Using Base Fields with the @ Option

You cannot place an expression in a DEFINE FRAME statement because no values exist at compile time for Progress to format. Since you often need to put derived data in frames, you need a way to handle expressions. One solution is to create variables to hold the values. Another solution provides more flexibility: create variables with the characteristics of the expression results (data type, formatting, and label) as base fields. You can include the base fields in the frame definition and then replace the base field with any compatible expression result at run time using the @ option of the DISPLAY statement.

Here is an example:

DEFINE Base1 AS CHARACTER NO-LABEL.

DEFINE FRAME Frame1
    Name SKIP
    Base1 SKIP
    Phone SKIP
        WITH NO-BOX.
        .
        .
        .
IF Contact EQ "" THEN
    DISPLAY Name "No Contact" @ Base1 Phone WITH FRAME Frame1.
ELSE
    DISPLAY Name Contact @ Base1 Phone WITH FRAME Frame1.
        .
        .
        . 

The example above compiles a phone list of customer and contact names. If no contact is on file, “No Contact” appears in the report.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095