列ヘッダー

このドキュメントでは、DISPLAY ステートメントで作成される列ヘッダーの表示を制御する方法について説明します。

以下のトピックについて説明します。


デフォルトの列ヘッダー

デフォルトでは、DISPLAY ステートメントによるデータベースフィールドの各出力は、DDM のフィールドに定義されているデフォルトの列ヘッダー付きで表示されます。

** Example 'DISPLX01': DISPLAY
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 PERSONNEL-ID
  2 NAME
  2 BIRTH
  2 JOB-TITLE
END-DEFINE
*
READ (3) VIEWEMP BY BIRTH
  DISPLAY PERSONNEL-ID NAME JOB-TITLE
END-READ
END

プログラム DISPLX01 の出力:

上記のプログラム例では、デフォルトのヘッダーを使用して、以下の出力が作成されます。

Page      1                                                  04-11-11  14:15:54
 
PERSONNEL         NAME                  CURRENT
   ID                                  POSITION
--------- -------------------- -------------------------
 
30020013  GARRET               TYPIST
30016112  TAILOR               WAREHOUSEMAN
20017600  PIETSCH              SECRETARY

デフォルトの列ヘッダーの省略 - NOHDR オプション

列ヘッダーなしでレポートを出力する場合は、DISPLAY ステートメントにキーワード NOHDR を追加します。

DISPLAY NOHDR PERSONNEL-ID NAME JOB-TITLE

独自の列ヘッダーの定義

デフォルトヘッダーの代わりに独自の列ヘッダーを出力する場合、フィールドの直前に 'text'(アポストロフィ付き)を指定します。text がそのフィールドに使用するヘッダーとなります。

** Example 'DISPLX08': DISPLAY  (with column title in 'text')
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 PERSONNEL-ID
  2 NAME
  2 BIRTH
  2 JOB-TITLE
END-DEFINE
*
READ (3) VIEWEMP BY BIRTH
  DISPLAY PERSONNEL-ID
         'EMPLOYEE' NAME
         'POSITION' JOB-TITLE
END-READ
END

プログラム DISPLX08 の出力:

上記のプログラムには、フィールド NAME のヘッダー EMPLOYEE、およびフィールド JOB-TITLE のヘッダー POSITION が含まれています。フィールド PERSONNEL-ID についてはデフォルトヘッダーが使用されます。プログラムが次の出力を生成します。

Page      1                                                  04-11-11  14:15:54
 
PERSONNEL       EMPLOYEE               POSITION
   ID
--------- -------------------- -------------------------
 
30020013  GARRET               TYPIST
30016112  TAILOR               WAREHOUSEMAN
20017600  PIETSCH              SECRETARY

NOTITLE と NOHDR の組み合わせ

ページタイトルも列ヘッダーもないレポートを作成するには、NOTITLE および NOHDR オプションを以下の順番で一緒に指定します。

DISPLAY NOTITLE NOHDR PERSONNEL-ID NAME JOB-TITLE

列ヘッダーの中央揃え - HC パラメータ

デフォルトでは、列ヘッダーは列の上に中央揃えで出力されます。HC パラメータを使用すると、列ヘッダーの配置を操作することができます。

有効な指定は以下のとおりです。

HC=L ヘッダーは左揃えで出力されます。
HC=R ヘッダーは右揃えで出力されます。
HC=C ヘッダーは中央揃えで出力されます。

HC パラメータを FORMAT ステートメントで使用してレポート全体に適用させるか、または DISPLAY ステートメントで使用してステートメントレベルおよび要素レベルの両方で適用させることができます。例:

DISPLAY (HC=L) PERSONNEL-ID NAME JOB-TITLE

列ヘッダーの幅 - HW パラメータ

HW パラメータを使用して、DISPLAY ステートメントで出力される列の幅を指定します。

有効な指定は以下のとおりです。

HW=ON DISPLAY 列の幅は、ヘッダーテキストの長さまたはフィールドの長さのどちらか長い方で決定されます。これは、デフォルトで適用されます。
HW=OFF DISPLAY 列の幅は、フィールドの長さのみで決定されます。ただし、HW=OFF はヘッダーを作成しない DISPLAY ステートメント、つまり、NOHDR オプション付きの最初の DISPLAY ステートメントまたは後続の DISPLAY ステートメントにのみ適用されます。

HW パラメータを FORMAT ステートメントで使用してレポート全体に適用させるか、または DISPLAY ステートメントで使用してステートメントレベルおよび要素(フィールド)レベルの両方で適用させることができます。

ヘッダーの充填文字 - FC および GC パラメータ

列の幅をヘッダーではなくフィールド長で決定する場合、FC パラメータを使用して、DISPLAY ステートメントで出力されるヘッダーの両側に列幅全体に渡って表示される充填文字を指定します(上記HW パラメータを参照)。フィールド長で決定しない場合、FC は無視されます。

フィールドグループまたはピリオディックグループを DISPLAY ステートメントで出力する場合、グループ内の個々のフィールドのヘッダーの上に、そのグループに属しているすべてのフィールド列に渡って、グループヘッダーが表示されます。GC パラメータを使用すると、このようなグループヘッダーの両側に表示される充填文字を指定できます。

FC パラメータが個々のフィールドのヘッダーに適用されるのに対して、GC パラメータはフィールドグループのヘッダーに適用されます。

パラメータ FC および GCFORMAT ステートメントで指定してレポート全体に適用させるか、または、DISPLAY ステートメントで指定してステートメントレベルおよび要素(フィールド)レベルの両方で適用させることができます。

** Example 'FORMAX01': FORMAT (with parameters FC, GC)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 NAME
  2 INCOME (1:1)
    3 CURR-CODE
    3 SALARY
    3 BONUS (1:1)
END-DEFINE
*
FORMAT FC=* GC=$
*
READ (3) VIEWEMP BY NAME
  DISPLAY NAME (FC==) INCOME (1)
END-READ
END

プログラム FORMAX01 の出力:

Page      1                                                  04-11-11  14:15:54
                                                                               
========NAME======== $$$$$$$$$$$$INCOME$$$$$$$$$$$$                            
                                                                               
                     CURRENCY **ANNUAL** **BONUS***                            
                         CODE     SALARY                                       
-------------------- -------- ---------- ----------                            
                                                                               
ABELLAN              PTA         1450000          0                            
ACHIESON             UKL           10500          0                            
ADAM                 FRA          159980      23000

タイトルおよびヘッダーの下線付き文字 - UC パラメータ

デフォルトでは、タイトルおよびヘッダーにハイフン(-)で下線が引かれます。

UC パラメータを使用すると、下線用の文字として使用する別の文字を指定できます。

UC パラメータを FORMAT ステートメントで指定してレポート全体に適用させるか、または DISPLAY ステートメントで指定してステートメントレベルおよび要素(フィールド)レベルの両方で適用させることができます。

** Example 'FORMAX02': FORMAT (with parameter UC)
************************************************************************
DEFINE DATA LOCAL
1 VIEWEMP VIEW OF EMPLOYEES
  2 PERSONNEL-ID
  2 NAME
  2 BIRTH
  2 JOB-TITLE
END-DEFINE
*
FORMAT UC==
*
WRITE TITLE LEFT JUSTIFIED UNDERLINED 'EMPLOYEES REPORT' 
SKIP 1 
READ (3) VIEWEMP BY BIRTH
  DISPLAY PERSONNEL-ID (UC=*) NAME JOB-TITLE
END-READ
END

上記のプログラムでは、UC パラメータがプログラムレベルおよび要素(フィールド)レベルで指定されています。FORMAT ステートメントで指定された下線文字(=)は、別の下線文字(*)が指定されているフィールド PERSONNEL-ID を除いて、レポート全体に適用されます。

プログラム FORMAX02 の出力:

EMPLOYEES REPORT 
===============================================================================
 
PERSONNEL         NAME                  CURRENT
   ID                                  POSITION
********* ==================== =========================

30020013  GARRET               TYPIST
30016112  TAILOR               WAREHOUSEMAN
20017600  PIETSCH              SECRETARY

列ヘッダーの省略 - スラッシュ表記

アポストロフィスラッシュアポストロフィ('/')の表記を使用すると、DISPLAY ステートメントで表示される個々のフィールドのデフォルトの列ヘッダーを省略できます。NOHDR オプションがすべての列ヘッダーを省略するのに対して、'/' 表記は個々の列ヘッダーを省略するために使用できます。

アポストロフィスラッシュアポストロフィ('/')の表記は、DISPLAY ステートメントで、列ヘッダーを省略するフィールドの名前の直前に指定します。

以下の 2 つの例を比較してください。

例 1

DISPLAY NAME PERSONNEL-ID JOB-TITLE

この場合、3 つすべてのフィールドのデフォルトの列ヘッダーが表示されます。

Page      1                                                  04-11-11  14:15:54
                                                                               
        NAME         PERSONNEL          CURRENT                                
                          ID             POSITION                          
-------------------- --------- -------------------------                 
                                                                               
ABELLAN              60008339  MAQUINISTA               
ACHIESON             30000231  DATA BASE ADMINISTRATOR                   
ADAM                 50005800  CHEF DE SERVICE                           
ADKINSON             20008800  PROGRAMMER                                
ADKINSON             20009800  DBA                                       
ADKINSON             20011000  SALES PERSON          

例 2:

DISPLAY '/' NAME PERSONNEL-ID JOB-TITLE

この場合、'/' 表記によってフィールド NAME の列ヘッダーが省略されます。

Page      1                                                  04-11-11  14:15:54
                                                                               
                     PERSONNEL          CURRENT                          
                        ID             POSITION                          
                     --------- -------------------------                 
                                                                               
ABELLAN              60008339  MAQUINISTA                                
ACHIESON             30000231  DATA BASE ADMINISTRATOR                   
ADAM                 50005800  CHEF DE SERVICE                           
ADKINSON             20008800  PROGRAMMER                                
ADKINSON             20009800  DBA                                       
ADKINSON             20011000  SALES PERSON     

列ヘッダーの他の例

次の例のプログラムを参照してください。