Perl-format
Perl形式-レポートの作成
前述のように、PerlはPractical Extraction and Reporting Languageの略であり、Perlを使用してレポートを記述することについて説明します。
Perlは、レポートを出力するために「フォーマット」と呼ばれる記述テンプレートを使用します。 Perlのフォーマット機能を使用するには、以下を行う必要があります-
- フォーマットを定義する
- フォーマットに表示されるデータを渡す
- フォーマットを呼び出す
フォーマットを定義する
以下は、Perl形式を定義する構文です
`+ FormatName +`はフォーマットの名前を表します。 フィールドラインは、データをフォーマットする特定の方法です。 値行は、フィールド行に入力される値を表します。 単一のピリオドでフォーマットを終了します。
`+ fieldline +`には任意のテキストまたはフィールドホルダーを含めることができます。 フィールドホルダーは、後日そこに配置されるデータ用のスペースを保持します。 フィールドホルダーの形式は次のとおりです-
このフィールドホルダーは、フィールドスペースが5の左寄せです。 フィールド内のスペースの数を知るには、@記号と<記号を数える必要があります。 その他のフィールドホルダーには、
例の形式は次のようになります-
この例では、$ nameは22文字のスペース内で左揃えとして書き込まれ、その後は2つのスペースで書き込まれます。
フォーマットを呼び出してデータを書き込む
この形式の宣言を呼び出すには、書き込みキーワードを使用します-
問題は、通常、形式名が開いているファイルハンドルの名前であり、書き込みステートメントがこのファイルハンドルに出力を送信することです。 データをSTDOUTに送信するため、EMPLOYEEをSTDOUTファイルハンドルに関連付ける必要があります。 ただし、最初に、select()関数を使用して、STDOUTが選択されたファイルハンドルであることを確認する必要があります。
次に、特別な変数$〜を使用して、STDOUTで新しいフォーマット名を設定することにより、EMPLOYEEをSTDOUTに関連付けます。
write()を実行すると、データはSTDOUTに送信されます。 注意:STDOUTをデフォルトのファイルハンドルとして設定していない場合は、selectの戻り値をスカラー値に割り当て、特殊変数の後にselectをこのスカラー変数とともに使用することにより、元のファイルハンドルに戻すことができます。 STDOUTに関連付けられる形式名を割り当てました。
上記の例は、次の形式でレポートを生成します
レポートヘッダーの定義
すべてうまくいきます。 ただし、レポートにヘッダーを追加することに興味があります。 このヘッダーは各ページの上部に印刷されます。 これを行うのは非常に簡単です。 テンプレートの定義とは別に、次のように、_TOPキーワードが追加された同じ名前のヘッダーを定義する必要があります
これで、レポートは次のようになります
ページのページネーションと行数の定義
レポートが複数のページを使用している場合はどうですか? そのための解決策があります。 次のようにヘッダーとともに `+ $%+`変数を使用します
出力は次のようになります
特別な変数 + $ = +
(または$ FORMAT_LINES_PER_PAGE)を使用してページごとの行数を設定できます。デフォルトでは$ =は60
レポートフッターの定義
最後の1つはフッターです。 ヘッダーと非常によく似ており、フッターを定義できます。フッターは各ページの後に書き込まれます。 ここでは、_TOPの代わりに_BOTTOMキーワードを使用します。
これにより、次の結果が得られます
フォーマットに関連する変数の完全なセットについては、リンクを参照してください:/perl/perl特殊変数[Perl特殊変数]セクション。