このドキュメントでは、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
列ヘッダーなしでレポートを出力する場合は、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 オプションを以下の順番で一緒に指定します。
DISPLAY NOTITLE NOHDR PERSONNEL-ID NAME JOB-TITLE
デフォルトでは、列ヘッダーは列の上に中央揃えで出力されます。HC パラメータを使用すると、列ヘッダーの配置を操作することができます。
有効な指定は以下のとおりです。
HC=L |
ヘッダーは左揃えで出力されます。 |
HC=R |
ヘッダーは右揃えで出力されます。 |
HC=C |
ヘッダーは中央揃えで出力されます。 |
HC パラメータを FORMAT ステートメントで使用してレポート全体に適用させるか、または DISPLAY ステートメントで使用してステートメントレベルおよび要素レベルの両方で適用させることができます。例:
DISPLAY (HC=L) PERSONNEL-ID NAME JOB-TITLE
HW パラメータを使用して、DISPLAY ステートメントで出力される列の幅を指定します。
有効な指定は以下のとおりです。
HW=ON |
DISPLAY 列の幅は、ヘッダーテキストの長さまたはフィールドの長さのどちらか長い方で決定されます。これは、デフォルトで適用されます。
|
HW=OFF |
DISPLAY 列の幅は、フィールドの長さのみで決定されます。ただし、HW=OFF はヘッダーを作成しない DISPLAY ステートメント、つまり、NOHDR オプション付きの最初の DISPLAY ステートメントまたは後続の DISPLAY ステートメントにのみ適用されます。
|
HW パラメータを FORMAT ステートメントで使用してレポート全体に適用させるか、または DISPLAY ステートメントで使用してステートメントレベルおよび要素(フィールド)レベルの両方で適用させることができます。
列の幅をヘッダーではなくフィールド長で決定する場合、FC パラメータを使用して、DISPLAY ステートメントで出力されるヘッダーの両側に列幅全体に渡って表示される充填文字を指定します(上記の HW パラメータを参照)。フィールド長で決定しない場合、FC は無視されます。
フィールドグループまたはピリオディックグループを DISPLAY ステートメントで出力する場合、グループ内の個々のフィールドのヘッダーの上に、そのグループに属しているすべてのフィールド列に渡って、グループヘッダーが表示されます。GC パラメータを使用すると、このようなグループヘッダーの両側に表示される充填文字を指定できます。
FC パラメータが個々のフィールドのヘッダーに適用されるのに対して、GC パラメータはフィールドグループのヘッダーに適用されます。
パラメータ FC および GC を FORMAT ステートメントで指定してレポート全体に適用させるか、または、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 パラメータを 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 つの例を比較してください。
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
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
次の例のプログラムを参照してください。