Rational Developer for System z
PL/I for Windows, Version 8.0, プログラミング・ガイド

タブ制御テーブルの指定変更

PRINT ファイルへのデータ指示出力およびリスト指示出力は、あらかじめ設定されているタブ位置に合わせて配置されます。 タブ位置は、PL/I が定義するタブ制御テーブル内で定義されます。 タブ制御テーブルは、PLITABS という名前の外部構造体です。 図 11 に PLITABS の宣言を示します。

図 11. PLITABS の宣言. (標準ページ・サイズ、行サイズ、およびタブ位置を設定しています)
dcl 1 PLITABS static external,
  ( 2   Offset init (14),
    2    Pagesize init (60),
    2    Linesize init (120),
    2    Pagelength init (64),
    2    Fill1 init (0),
    2    Fill2 init (0),
    2    Fill3 init (0),
    2    Number_of_tabs init (5),
    2    Tab1 init (25),
    2    Tab2 init (49),
    2    Tab3 init (73),
    2    Tab4 init (97),

    2    Tab5 init (121)) fixed bin (15,0);

テーブル内にフィールドを定義する方法は、次のとおりです。

Offset
PLITABS の先頭からの Number_of_tabs のオフセットで表された 2 進整数。Number_of_tabs は、使用するタブ数を示すためのフィールドです。
Pagesize
デフォルトのページ・サイズを定義する 2 進整数。ページ・サイズは、ストリーム出力時、および PLIDUMP データ・セットへのダ ンプ出力時に使われる値です。
Linesize
デフォルトの行サイズを定義する 2 進整数。
Pagelength
端末での印刷で使われるデフォルトのページ長を定義する 2 進整数。値が 0 の場合は、不定形式出力となります。
Fill1、Fill2、Fill3
3 の 2 進整数。将来の利用のために予約済み。
Number_of_tabs
テーブル内のタブ位置エントリーの数 (最大 255) を定義する 2 進整数。タブ・カウント = 0 の場合は、指定されたタブ位置はすべて無視されます。
Tab1-Tabn:
印刷行内のタブ位置を定義する 2 進整数。最初のタブ位置には 1 という番号がつき、最大値は 255 です。各タブの値は、テーブル内でその前にあるタブの値より大きく なければなりません。さもなければその値は無視されます。印刷される出力の最初のデータ・フィールドは、次の有効なタブ位置から始まります。

リンカーを用いて PLITABS への外部参照を解決すれば、ユーザー・プログラムで PL/I のデフォルトのタブ設定を変更することが できます。 この変更は、メインルーチンが含まれるソース・プログラム内に、PLITABS という名前と EXTERNAL STATIC という属性を持つ PL/I 構造体を記述することによって実行します。

図 12 は、PL/I 構造体の例です。この例では、位置 30、60、90 に 3 つのタブを設定し、ページ・サイズおよび行サイズにはデフォルト値が使われています。TAB1 は行上に印刷される 2 番目の項目の位置を識別することに 注意してください。行上の第 1 項目は常に 左マージンから始まります。構造体の第 1 項目は、NO_OF_TABS フィールドへのオフセットです。なお、FILL1、FILL2、FILL3 は、オフセットの値を -6 で調整すれば省略できます。

図 12. 設定済みのタブ設定を変更する場合の PL/I 構造体 PLITABS
dcl 1 PLITABS static ext,
    2 (Offset init(14),
      Pagesize init(60),
      Linesize init(120),
      Pagelength init(0),
      Fill1 init(0),
      Fill2 init(0),
      Fill3 init(0),
      No_of_tabs init(3),
      Tab1 init(30),
      Tab2 init(60),

      Tab3 init(90)) fixed bin(15,0);

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)