DISPLAY

DISPLAY [(rep)] [options] {[/ ] [output-format] output-element}

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント:AT END OF PAGE | AT TOP OF PAGE | CLOSE PRINTER | DEFINE PRINTER EJECT | FORMAT | NEWPAGE | PRINT | SKIP | SUSPEND IDENTICAL SUPPRESS | WRITE | WRITE TITLE | WRITE TRAILER

関連機能グループ:出力レポートの作成


関数

DISPLAY ステートメントでは、レポートに出力するフィールドを列形式で指定します。列は各フィールドごとに作成され、フィールドヘッダーが列の上に表示されます。

注意:
WRITE ステートメントと PRINT ステートメントを使用すると、フリーフォーマット(列なし)の出力を生成することができます。

プログラミングガイド』の次のトピックも参照してください。

構文説明

構文要素 説明
(rep)
レポート指定:

表記 (rep) は、DISPLAY ステートメントを適用するレポートの ID を指定するために使用できます。

レポート ID として、範囲 0 ~ 31 の値、または DEFINE PRINTER ステートメントを使用して割り当てた論理名を指定できます。

(rep) を指定しない場合、ステートメントは最初のレポート(レポート 0)に適用されます。

プリンタファイルが PC として Natural に定義されている場合、レポートは PC にダウンロードされます。「例 8」を参照してください。

Natural で作成した出力レポートのフォーマットを制御する方法については、『プログラミングガイド』の「レポートフォーマットおよび制御」を参照してください。

options
表示オプション:

詳細については、下記の「表示オプション」を参照してください。

output-format
出力フォーマット定義:

詳細については、下記の「出力フォーマット定義」を参照して下さい。

/
行送り - スラッシュ表記:

文字列内でスラッシュ(/)を指定すると、表示中の文字列が改行されます。

出力項目の間にスラッシュを指定すると、スラッシュ(/)で指定された出力項目は、同じ列内で縦方向に配置されます。この列のヘッダーでは、縦方向に表示されている項目のヘッダーが、列の上側に縦方向で配置されます。

プログラミングガイド』の次のトピックも参照してください。

output-element
出力項目:

詳細については、下記の「出力項目」を参照してください。

表示オプション

[NOTITLE] [NOHDR]

[AND] [GIVE] [SYSTEM] FUNCTIONS

[(statement-parameters)]

構文要素の説明:

構文要素 説明
NOTITLE
デフォルトページタイトルの省略:

デフォルトでは、DISPLAY ステートメントで出力される各ページに、Natural によって 1 行のタイトル行が作成されます。このタイトルには、ページ番号と日時が含まれます。時刻は、プログラム実行開始時またはジョブ開始時(バッチモード)に設定されます。デフォルトタイトル行は、WRITE TITLE ステートメントで書き換えることができます。また、DISPLAY ステートメントにキーワード NOTITLE を指定して、タイトル行を省略することもできます。

例:

  • デフォルトタイトルが生成されます。

    DISPLAY NAME
  • ユーザータイトルが生成されます。

    DISPLAY NAME WRITE TITLE 'user-title'
  • タイトルは生成されません。

    DISPLAY NOTITLE NAME

注意:
NOTITLE オプションを使用すると、同じオブジェクト内でデータを同じレポートに書き込むすべての DISPLAYPRINT、および WRITE ステートメントに適用されます。

NOHDR
列ヘッダー:

列ヘッダーは、DISPLAY ステートメントで指定したフィールド(列)ごとに、次の規則に従って生成されます。

  • DISPLAY ステートメントでは、フィールド名の前に表示されるヘッダー文字列を明示的に指定できます。例えば、次のようになります。

    DISPLAY 'EMPLOYEE' NAME 'SALARY' SALARY
  • フィールドのヘッダーを明示的に指定しない場合は、DEFINE DATA ステートメントで定義したヘッダーが使用されます。

  • DEFINE DATA ステートメントでデータベースフィールドのヘッダーが定義されていない場合は、DDM に定義されているヘッダーがデフォルトとして使用されます。

  • デフォルトのヘッダーが DDM に定義されていない場合は、フィールド名がヘッダーとして使用されます。

  • DEFINE DATA ステートメントでユーザー定義変数のヘッダーが定義されていない場合は、変数名がヘッダーとして使用されます。ヘッダー定義については、DEFINE DATA ステートメントも参照してください。

    DISPLAY NAME SALARY #NEW-SALARY
  • Natural では、常に列ヘッダーに下線が付けられ、表示するデータと下線の間に 1 行の空行が生成されます。

  • プログラム内に複数の DISPLAY ステートメントがある場合は、最初の DISPLAY ステートメントにより、使用する列ヘッダーが決定されます。これはコンパイル時に評価されます。

列ヘッダーの省略:

1 つのフィールドの列ヘッダーを省略するには

  • フィールド名の前に、次の文字列(アポストロフィ-スラッシュ-アポストロフィ)を指定します。

    '/'

    例えば、次のようになります。

    DISPLAY '/' NAME 'SALARY' SALARY
すべての列ヘッダーを省略するには
  • キーワード NOHDR を指定します。

    DISPLAY NOHDR NAME SALARY

注意:

  1. NOHDR は最初の DISPLAY ステートメントにのみ有効です。これは、後続の DISPLAY ステートメントでは列ヘッダーを作成できないためです。
  2. NOTITLENOHDR の両方を使用する場合は、次の順序で指定する必要があります:DISPLAY NOTITLE NOHDR NAME SALARY
GIVE SYSTEM FUNCTIONS
Natural システム関数の使用:

GIVE SYSTEM FUNCTIONS 節によって、次の Natural システム関数を使用できます。AVERCOUNTMAXMINNAVERNCOUNTNMINSUMTOTAL。これらのシステム関数は、GIVE SYSTEM FUNCTIONS 節を含む DISPLAY ステートメントの実行時に評価されます。

これらのシステム関数は、AT END OF PAGE 条件で実行されるステートメントで参照できます。

注意:

  1. レポートごとに、1 つの DISPLAY ステートメントにのみ GIVE SYSTEM FUNCTIONS 節を含めることができます。DISPLAY ステートメントからシステム関数が評価されるときに、システム関数はページ単位で評価されます。つまり、新しいページが始まると、TOTAL 以外の関数はすべてゼロにリセットされます。
  2. システム関数をサブルーチン内の DISPLAY ステートメントで使用する場合は、END OF PAGE 処理を同じルーチン内で開始する必要があります。
  3. キーワード GIVE の代わりに、キーワード GIVING を使用できます。

例 2 - DISPLAY ステートメントでの GIVE SYSTEM FUNCTIONS 節の使用例」も参照してください。

statement-parameters
ステートメントレベルでのパラメータ定義:

1 つまたは複数のパラメータをカッコで囲んで、ステートメントレベルで、つまり DISPLAY ステートメントの直後に指定できます。

この方法で指定した各パラメータは、以前に GLOBALS コマンド、SET GLOBALS ステートメント(レポーティングモードでのみ)、または FORMAT ステートメントで指定したパラメータを上書きします。

複数のパラメータを指定する場合は、個々のパラメータを 1 つ以上の空白で区切る必要があります。各パラメータ指定を 2 行のステートメント行に分割することはできません。

注意:
ここで適用されるパラメータ設定は、変数フィールドにのみ関連し、テキスト定数には影響しません。テキスト定数にフィールド属性を設定する場合は、この要素に属性を明示的に設定する必要があります(「要素(フィールド)レベルでのパラメータ定義」を参照)。

以下の項目も参照してください。

パラメータのリスト

以下のパラメータは、DISPLAY ステートメントで指定できます。

パラメータ名 説明 ステートメントレベル(S)、要素レベル(E)または両方(SE)で可能な指定
AD 属性定義 SE
AL 出力の英数字長 SE
CD カラー定義 SE
CV 制御変数 SE
DF 日付フォーマット SE
DL 出力の表示長 SE
DY ダイナミック属性 SE
EM 編集マスク SE
EMU Unicode 編集マスク E
ES 空行の省略 S
FC 充填文字 SE
FL 浮動小数点仮数長 SE
GC グループヘッダーの充填(フィラー)文字 SE
HC ヘッダーの中央揃え SE
HW ヘッダーの幅 SE
IC 挿入文字 SE
ICU Unicode 挿入文字 SE
IS 重複抑制 SE
LC 先頭文字 SE
LCU Unicode 先頭文字 SE
LS Line Size S
MC マルチプルバリューフィールド数 S
MP レポートの最大ページ数 S
NL 出力の数値長 SE
PC ピリオディックグループ数 S
PM Print Mode SE
PS Page Size S
SF フィールド間の空白 SE
SG 符号の位置 SE
TC 末尾文字 SE
TCU Unicode 末尾文字 SE
UC 下線付き文字 SE
ZP ゼロ出力 SE

各パラメータの詳細については、『パラメータリファレンス』(セッションパラメータ)を参照してください。

プログラミングガイド』の次のトピックも参照してください。

ステートメントおよび要素(フィールド)レベルでのパラメータ使用例

DEFINE DATA LOCAL
1 VARI (A4)     INIT <'1234'>                           /*     Output 
END-DEFINE                                              /*    Produced
*                                                       /*    ---------  
DISPLAY NOHDR           'Text'         '='   VARI       /*    Text 1234
DISPLAY NOHDR (AD=U)    'Text'         '='   VARI       /*    Text 1234
DISPLAY NOHDR           'Text' (AD=U)  '='   VARI (AD=U)/*    Text 1234
DISPLAY NOHDR           'Text' (AD=U)  '='   VARI       /*    Text 1234
END

出力フォーマット定義

nX

               
nT                
x/y

../graphics/cbo2.gif

'text'

[(attributes)]

       
T*field-name 'c'(n)

     
P*field-name                
                     

VERTICALLY

AS

'text' [(attributes)] [CAPTIONED]

[/ ]

 
[CAPTIONED]  
[HORIZONTALLY]                

フィールドの位置指定表記

構文要素 説明
nX
列の間隔:

この表記により、列の間に n 個のスペースが挿入されます。

例:

DISPLAY NAME 5X SALARY

以下の項目も参照してください。

nT
タブ設定:

nTT 表記により、位置 n を表示するように位置指定(タブ設定)されます。後方への位置指定はできません。

次の例では、NAME が 25 桁目から、SALARY が 50 桁目から表示されます。

DISPLAY 25T NAME 50T SALARY

以下の項目も参照してください。

x/y
x/y 位置指定:

x/y 表記により、次の要素は最後のステートメント出力の x 行下、列 y の先頭に配置されます。y をゼロにすることはできません。後方への位置指定はできません。

T*field-name
フィールドの相対位置指定:

T* 表記により、前の DISPLAY ステートメントで使用されたフィールドの特定の表示桁に位置指定できます。後方への位置指定はできません。

P*field-name
フィールドおよび行の相対位置指定:

P* 表記により、前の DISPLAY ステートメントで使用されたフィールドの特定の表示桁を位置指定できます。縦(VERT)方向の表示モードと組み合せて使用します。後方への位置指定はできません。

以下の項目も参照してください。

列ヘッダー割り当ての上書き

構文要素 説明
'text'

'/'

テキスト割り当て:

フィールドの直前に指定すると、一重引用符で囲まれた文字列によって列ヘッダーが上書きされます。

フィールド名の前にスラッシュ文字 '/' を指定すると、列ヘッダーは省略されます。

DISPLAY 'EMPLOYEE' NAME 'MARITAL/STATUS' MAR-STAT

複数の 'text' 要素をフィールド名の前に指定すると、最後'text' 要素が列ヘッダーとして使用され、残りの要素は列内でフィールド値の前に配置されます。

以下の項目も参照してください。

'c'(n)
文字の繰り返し:

フィールド値の直前に、一重引用符で囲まれた文字列が n 回表示されます。例えば、次のようになります。

DISPLAY '*' (5) '=' NAME

結果

***** SMITH

以下の項目も参照してください。

出力属性

attributes は、テキスト表示に使用される出力属性を示します。属性は次のいずれかです。

AD=ad-value
CD=cd-value
PM=pm-value

ad-value
cd-value

上記の意味は次に示すとおりです。

ad-value、、cd-value および pm-value は、『パラメータリファレンス』ドキュメントの関連セクションで記載されている、対応するセッションパラメータ AD、、CD および PM の可能な値を示します。

コンパイラは、実際には 1 つの出力フィールドに複数の属性値を受け入れます。例えば、次のように指定できます。AD=BDIただし、この場合は最後の値のみが適用されます。示した例では、値 I のみが有効になり、出力フィールドは強調表示されます。

英数字/Unicode 定数(Natural データフォーマット A または U )の場合は、ad-value または cd-value あるいはその両方を、それぞれの前に先行する CD= または AD= なしで、指定することができます。入力した単一の値が、最初にすべての可能な CD 値に対してチェックされます。例えば、IRE の値は、高輝度表示/赤として解釈されますが、高輝度表示/右詰め/必須としては解釈されません。単一の cd-value またはad-value の前に CD= または AD= が付いた値を組み合わせることはできません。

VERTICAL(縦)/HORIZONTAL(横)表示

VERT 節は、複数のフィールド値を同一の列内で上下に表示するために使用します。垂直モードでは、キーワード VERT または HORIZ を指定すると新しい列が開始されます。

垂直モードの列ヘッダーは、次に示すように AS 節で指定したエントリで制御されます。

構文要素 説明
VERTICALLY
AS 節のない DISPLAY VERT
縦方向の列。AS 節を省略すると、列ヘッダーは出力されません。
DISPLAY VERT NAME SALARY

表示例については、『プログラミングガイド』の「AS 節のない DISPLAY VERT」を参照してください。

AS 'text'
DISPLAY VERT AS 'text' 節:
縦方向の列。AS 'text' を指定すると、一重引用府内の文字列が列ヘッダーとして使用されます。

表示例については、『プログラミングガイド』の「DISPLAY VERT AS 'text'」を参照してください。

'text' の文字列中にスラッシュ文字 / がある場合、列ヘッダーは改行されて複数行になります。

DISPLAY VERT AS 'LAST/NAME' NAME
AS 'text' CAPTIONED
DISPLAY VERT AS 'text' CAPTIONED 節:
縦方向の列。AS 'text' CAPTIONED を指定すると、'text' が列ヘッダーとして使用され、各明細行のフィールド値の直前に標準ヘッダーまたはフィールド名が挿入されます。
DISPLAY VERT AS 'PERSONS/SELECTED' CAPTIONED NAME FIRST-NAME

表示例については、『プログラミングガイド』の「DISPLAY VERT AS text CAPTIONED」を参照してください。

AS CAPTIONED
DISPLAY VERT AS CAPTIONED 節:
縦方向の列。AS CAPTIONED を指定すると、フィールドの標準ヘッダー(ヘッダー文字列あるいはフィールド名)が列ヘッダーとして使用されます。
DISPLAY VERT AS CAPTIONED NAME FIRST-NAME
HORIZONTALLY
DISPLAY HORIZ 節:
横方向の列。これはデフォルトの表示モードです。

キーワードを使用して縦方向の表示と横方向の表示を混在させることができます。

ある出力項目の縦方向の表示を一時的に停止する必要がある場合は、その要素の前に "-"(ハイフン)を指定します。例えば、次のようになります。

DISPLAY VERT NAME - FIRST-NAME SALARY

この例では、FIRST-NAMENAME の横に横方向で表示され、SALARYNAME の下に縦方向で表示されます。

標準の表示モードは、横方向です。表示されるフィールドごとに 1 つの列が生成されます。

列ヘッダーは、Natural によって次の優先順位で取得および使用されます。

  1. DISPLAY ステートメントで指定したヘッダーの 'text'

  2. データベースフィールドについては DDM に定義されたデフォルトのヘッダー、またはユーザー定義変数については変数名。

  3. データベースフィールドに対してヘッダー文字列が定義されていない場合は、DDM に定義されたフィールド名。

グループ名については、グループ全体に 1 つのグループヘッダーがつけられます。グループを指定する場合、グループ全体に対するヘッダーだけをユーザーが変更できます。

列ヘッダーの最大行数は 15 行です。

DISPLAY ステートメントからの出力は、行の幅(ラインサイズ)を超えないようにする必要があります。行の幅を超えると、エラーメッセージが発行されます。

縦方向の表示と横方向の表示の詳細な使用方法については、次の例を参照してください。

出力項目

'text' [(attributes)]

 
'c'(n) [(attributes)]  
  nX   ['='] {operand1 [(parameters)]}
  nT    
  x/y    

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1   S A G N A N P I F B D T L   G O ×

構文要素の説明

構文要素 説明
nX
列の間隔:

これは、「出力フォーマット定義」の場合と同じです(上記参照)。

nT
タブ設定:

これは、「出力フォーマット定義」の場合と同じです(上記参照)。

x/y
x/y 位置指定:

これは、「出力フォーマット定義」の場合と同じです(上記参照)。

'text'
テキスト割り当て:

これは、「出力フォーマット定義」の場合と同じです(上記参照)。

'c'(n)
文字の繰り返し:

これは、「出力フォーマット定義」の場合と同じです上記参照)。

'text' '='

'c' (n) '='

'text' '=' をフィールドの直前に置くと、text がフィールド値の直前に出力されます。これは、'c' (n) '=' と同じように適用できます。
DISPLAY '*****' '=' NAME
attributes
出力属性:

これは、「出力属性」の場合と同じです(上記を参照)。

operand1 表示フィールド。
parameters
要素(フィールド)レベルでのパラメータ定義:

1 つまたは複数のパラメータをカッコで囲んで、要素(フィールド)レベルで、つまり operand1 の直後に指定できます。この方法で指定した各パラメータは、以前にステートメントレベルGLOBALS コマンド、SET GLOBALS ステートメント(レポーティングモードでのみ)、または FORMAT ステートメントで指定した対応するパラメータを上書きします。

複数のパラメータを指定する場合は、各エントリ間に 1 つ以上の空白を配置する必要があります。エントリを 2 行のステートメント行に分割することはできません。

以下の項目も参照してください。

DISPLAY ステートメントに適用されるデフォルト

DISPLAY ステートメントには、次のデフォルトが適用されます。

  • レポートの幅
    レポートの幅は、Natural をインストールしたときの設定値がデフォルトになります。このデフォルト値は通常、バッチモードでは 132 であり、TP モードでは端末の 1 行の長さです。この値は、セッションパラメータ LS で上書きできます。TP モードでは、行の長さ(LS)とページの大きさ(PS)のパラメータは、使用中の端末タイプの物理特性に基づいて Natural で設定されます。

  • 端末画面の出力
    DISPLAY ステートメントの出力を端末画面に表示する場合、出力は物理的に 2 桁目から始まります。これは、1 桁目が 3270 タイプ端末の属性桁として予約されているためです。

  • 用紙への印刷
    DISPLAY ステートメントの出力を用紙に印刷する場合は、1 桁目から印刷されます。

  • フィールド間の空白
    出力項目間のデフォルトのフィールド間の空白は 1 桁です。したがって、列の間には最小 1 桁の空白があけられます(端末属性用に予約済)。この値は、セッションパラメータ SF で上書きできます。

  • フィールド出力
    フィールド長、またはフィールドヘッダーのうちいずれか長い方によって、レポートの列の幅が決まります(HW パラメータが使用されない場合)。

    • フィールドの方がヘッダーよりも長い場合、パラメータ HC=L または HC=R でヘッダーを左寄せまたは右寄せにする指示がない限り、ヘッダーは列の上でセンタリングされます。

    • また、ヘッダーの方がフィールドより長い場合、フィールドはヘッダーの下に左詰めで出力されます。

    • フィールド内の値は、英数字フィールドでは左詰めになり、数字フィールドでは右詰めになります。

    • 数値フィールドは、AD=L を指定すると左詰めで表示されます。

    • 英数字フィールドは、AD=R を指定すると右詰めで表示できます。

    • 縦方向の表示では、フィールドの中で最も長いデータ値またはヘッダーによって列の幅が決まります(HW パラメータを使用しない場合)。

  • 符号
    数字フィールドの印刷時には、符号桁として 1 桁余分に左側に確保されます。Natural セッションパラメータ SG を使用すると、符号桁を省略できます。

  • ページオーバーフロー
    DISPLAY ステートメントの実行前に、ページオーバーフローがチェックされます。DISPLAY ステートメントの実行中に、新しいページタイトルまたはトレイラ情報が生成されることはありません。

例 1 - nX および nT 表記を使用した DISPLAY ステートメント

** Example 'DISEX1': DISPLAY (with nX, nT notation)                     
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 JOB-TITLE                                                           
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
READ EMPL-VIEW BY NAME                                                  
  DISPLAY NOTITLE 5X NAME 50T JOB-TITLE
END-READ                                                                
*                                                                       
END

プログラム DISEX1 の出力:

        NAME                                         CURRENT         
                                                    POSITION         
--------------------                        -------------------------
                                                                     
ABELLAN                                     MAQUINISTA               
ACHIESON                                    DATA BASE ADMINISTRATOR  
ADAM                                        CHEF DE SERVICE          
ADKINSON                                    PROGRAMMER

例 2 - DISPLAY ステートメントでの GIVE SYSTEM FUNCTIONS 節の使用例

** Example 'DISEX2': DISPLAY (with GIVE SYSTEM FUNCTIONS)               
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 SALARY    (1)                                                       
  2 CURR-CODE (1)                                                       
END-DEFINE                                                              
*                                                                       
LIMIT 15                                                                
FORMAT PS=15                                                            
*                                                                       
READ EMPLOY-VIEW                                                        
  DISPLAY GIVE SYSTEM FUNCTIONS                                         
          PERSONNEL-ID NAME FIRST-NAME SALARY (1) CURR-CODE (1)
  AT END OF PAGE                                                        
    WRITE /    'SALARY STATISTICS:'                                     
          / 7X 'MAXIMUM:' MAX(SALARY(1))  CURR-CODE (1)
          / 7X 'MINIMUM:' MIN(SALARY(1))  CURR-CODE (1)
          / 7X 'AVERAGE:' AVER(SALARY(1)) CURR-CODE (1)
  END-ENDPAGE                                          
END-READ                                               
*                                                      
END

プログラム DISEX2 の出力:

Page      1                                                  05-01-12  09:47:48
                                                                               
PERSONNEL         NAME              FIRST-NAME        ANNUAL   CURRENCY        
   ID                                                 SALARY     CODE          
--------- -------------------- -------------------- ---------- --------        
                                                                               
50005500  BLOND                ALEXANDRE                172000 FRA             
50005300  MAIZIERE             ELISABETH                166900 FRA             
50004900  CAOUDAL              ALBERT                   167350 FRA             
50004600  VERDIE               BERNARD                  170100 FRA             
50004200  VAUZELLE             BERNARD                  159790 FRA             
50004100  CHAPUIS              ROBERT                   169900 FRA             
50003800  JOUSSELIN            DANIEL                   171990 FRA             
50006900  BAILLET              PATRICK                  188000 FRA             
50007600  MARX                 JEAN-MARIE               365700 FRA             
                                                                               
SALARY STATISTICS:                                                             
       MAXIMUM:     365700 FRA                                                 
       MINIMUM:     159790 FRA                                                 
       AVERAGE:     192414 FRA

例 3 - P* 表記を使用した DISPLAY ステートメント

** Example 'DISEX3': DISPLAY (with P* notation)                         
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 SALARY (1)                                                          
  2 BIRTH                                                               
  2 CITY                                                                
END-DEFINE                                                              
*                                                                       
LIMIT 2                                                                 
READ EMPL-VIEW BY CITY FROM 'N'                                         
 DISPLAY NOTITLE NAME CITY                                             
          VERT AS 'BIRTH/SALARY' BIRTH (EM=YYYY-MM-DD) SALARY (1)
  SKIP 1                                                                
  AT BREAK OF CITY                                                          
    DISPLAY P*SALARY (1) AVER(SALARY (1))                         
    SKIP 1                                                              
  END-BREAK                                                             
END-READ
END

プログラム DISEX3 の出力:

        NAME                 CITY           BIRTH   
                                            SALARY  
-------------------- -------------------- ----------
                                                    
WILCOX               NASHVILLE            1970-01-01
                                               38000
                                                    
MORRISON             NASHVILLE            1949-07-10
                                               36000
                                                    
                                                    
                                               37000

例 4 - textn および属性表記を使用した DISPLAY ステートメント

** Example 'DISEX4': DISPLAY (with 'c(n)' notation and attribute)       
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 DEPT                                                                
  2 LEAVE-DUE                                                           
  2 NAME                                                                
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
READ EMPL-VIEW BY DEPT FROM 'T'                                         
  IF LEAVE-DUE GT 40                                                    
   DISPLAY NOTITLE                                                     
           'EMPLOYEE' NAME                /* OVERRIDE STANDARD HEADER   
           'LEAVE ACCUMULATED' LEAVE-DUE  /* OVERRIDE STANDARD HEADER   
           '*'(10)(I)                     /* DISPLAY 10 '*' INTENSIFIED 

  ELSE                                                                  
    DISPLAY NAME LEAVE-DUE                                         
  END-IF                                                                
END-READ
*       
END

プログラム DISEX4 の出力:

      EMPLOYEE       LEAVE ACCUMULATED           
-------------------- -----------------           
                                                 
LAVENDA               33                         
BOYER                 33                         
CORREARD              45               **********
BOUVIER               19

例 5 - 横方向の表示を使用した DISPLAY ステートメント

** Example 'DISEX5': DISPLAY (horizontal display)                       
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 JOB-TITLE                                                           
  2 SALARY    (1:2)                                                     
  2 CURR-CODE (1:2)                                                     
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
READ EMPL-VIEW BY NAME                                                  
 DISPLAY NOTITLE NAME JOB-TITLE SALARY (1:2) CURR-CODE (1:2)    
  SKIP 1                                                                
END-READ                                                                
*                                                                       
END

プログラム DISEX5 の出力:

        NAME                  CURRENT            ANNUAL   CURRENCY
                             POSITION            SALARY     CODE  
-------------------- ------------------------- ---------- --------
                                                                  
ABELLAN              MAQUINISTA                   1450000 PTA     
                                                  1392000 PTA     
                                                                  
ACHIESON             DATA BASE ADMINISTRATOR        11300 UKL     
                                                    10500 UKL     
                                                                  
ADAM                 CHEF DE SERVICE               159980 FRA     
                                                        0         
                                                                  
ADKINSON             PROGRAMMER                     34500 USD     
                                                    31700 USD

例 6 - 縦および横方向の表示を使用した DISPLAY ステートメント

** Example 'DISEX6': DISPLAY (vertical and horizontal display)          
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 CITY                                                                
  2 JOB-TITLE                                                           
  2 SALARY    (1:2)                                                     
  2 CURR-CODE (1:2)                                                     
END-DEFINE                                                              
*                                                                       
LIMIT 1                                                                 
READ EMPL-VIEW BY NAME                                                  
 DISPLAY NOTITLE VERT AS CAPTIONED                                     
          NAME CITY 'POSITION' JOB-TITLE                                
          HORIZ 'SALARY' SALARY (1:2) 'CURRENCY' CURR-CODE (1:2)
  /*                                                                    
  SKIP 1                                                                
END-READ 
END

プログラム DISEX6 の出力:

          NAME              SALARY   CURRENCY
          CITY                               
        POSITION                             
------------------------- ---------- --------
                                             
ABELLAN                      1450000 PTA     
MADRID                       1392000 PTA     
MAQUINISTA

例 7 - ステートメント/要素レベルでパラメータを使用した DISPLAY ステートメント

** Example 'DISEX7': DISPLAY (with parameters for statement/element)    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 PERSONNEL-ID                                                        
  2 TELEPHONE                                                           
    3 AREA-CODE                                                         
    3 PHONE                                                             
END-DEFINE                                                              
*                                                                       
LIMIT 3                                                                 
READ EMPL-VIEW BY NAME                                                  
 DISPLAY NOTITLE (AL=16 GC=+ NL=8 SF=3 UC==)                           
          PERSONNEL-ID NAME TELEPHONE (LC=< TC=>)                 
END-READ                                                                
END

プログラム DISEX7 の出力:

   PERSONNEL             NAME         +++++++++++++++TELEPHONE+++++++++++++++
       ID                                                                    
                                             AREA              TELEPHONE     
                                             CODE                            
================   ================   ==================   ==================
                                                                             
60008339           ABELLAN            <1     >             <4356726        > 
30000231           ACHIESON           <0332  >             <523341         > 
50005800           ADAM               <1033  >             <44864858       >

例 8 - 出力ファイルを PC として Natural に定義する場合のレポート指定

** Example 'PCDIEX1': DISPLAY and WRITE to PC                           
**                                                                      
** NOTE: Example requires that Natural Connection is installed.         
************************************************************************
DEFINE DATA LOCAL                                                       
01 PERS VIEW OF EMPLOYEES                                               
  02 PERSONNEL-ID                                                       
  02 NAME                                                               
  02 CITY                                                               
END-DEFINE                                                              
*                                                                       
FIND PERS WITH CITY = 'NEW YORK'               /* Data selection        
  WRITE (7) TITLE LEFT 'List of employees in New York' /                
  DISPLAY (7)          /* (7) designates the output file (here the PC).
    'Location'  CITY                                                    
    'Surname'   NAME                                                    
    'ID'        PERSONNEL-ID                                            
END-FIND                                                                
END