!--a11y-->

印刷プロセスを開始する前に、印刷パラメータを設定する必要があります。
一覧を登録後に印刷する場合、印刷パラメータで指定された印刷書式を使用して完全な一覧が分割され、必要であれば切り捨てて、印刷ページに合うように調整されます。
一覧を登録中に印刷する場合は、印刷書式を使用してプログラムで実際に一覧がフォーマットされます。
印刷パラメータは、ユーザによって対話的に、またはプログラム内で設定されます。
各印刷プロセスに対して、スプールシステムは完全かつ整合性のある印刷パラメータのセットを必要とします。ABAP では、構造 PRI_PARAMS (ABAP ディクショナリ) が印刷パラメータのセットを表します。
印刷パラメータを対話的に渡す際、レポートの開始後にダイアログボックスが表示され、ここでユーザは最も重要な印刷パラメータを入力する必要があります。
以下のテーブルは、印刷リスト出力ダイアログウィンドウの入力項目と PRI_PARAMS コンポーネントとの対応を示しています。
|
入力項目 |
コンポーネント |
意味 |
|
出力デバイス |
PDEST |
プリンタまたは FAX の名称 ( デフォルト値はユーザデフォルトから取得されます) |
|
コピー数 |
PRCOP |
印刷されるコピーの数 ( デフォルト値: 1) |
|
名称 |
PLIST |
スプール依頼の名称。これは、即時印刷しない場合にのみ設定します ( ユーザ名 (SY-UNAME) の先頭 3 文字を含むレポート名 (SY-REPID) を使用して事前設定します) 。 |
|
タイトル |
PRTXT |
スプール依頼の内容説明テキスト。このテキストは、標準カバーシートに記載されます。PRTXT は、印刷依頼の一覧の名称 PLIST も置換します ( システム → サービス → 印刷依頼) 。 |
|
権限 |
PRBER |
スプール依頼に対する権限。この権限を持つユーザのみが依頼の内容を参照することができます。 |
|
即時印刷 |
PRIMM |
この項目をマークすると、依頼の完了直後にスプール依頼が出力デバイスに送信されます ( デフォルト値はユーザデフォルトから取得されます) |
|
印刷後に削除 |
PRREL |
この項目をマークすると、スプール依頼が出力デバイスに出力された直後に削除されます。マークしない場合は、依頼は 保存期間が過ぎた後で削除されます ( デフォルト値はユーザデフォルトから取得されます) |
|
新規スプール依頼 |
PRNEW |
この項目をマークすると、新規スプール依頼が登録されます。マークしない場合、このスプール依頼を未完了の依頼に付加することが試行されます。この場合、 名称、出力デバイス、コピー数、および書式は同じでなければなりません。 |
|
保存期間 |
PEXPI |
スプール依頼を削除する前に保存しておく日数( デフォルト値: 8) |
|
アーカイブモード |
ARMOD |
アーカイブモードを指定します。値を選択するには、入力可能値ヘルプを使用する必要があります。入力可能値ボタンをクリックして、 印刷、アーカイブ、および印刷およびアーカイブ (ARMOD 1 、2 、または 3) を選択します ( デフォルト値: 印刷) |
|
SAP カバーシート |
PRSAP |
この項目に 'X' が含まれている場合、複数のデータを含む 1 つの標準カバーシートが登録されます。'D' が含まれている場合は、出力デバイスの設定に応じて、カバーシートが印刷されるかどうかが決まります。この項目が空白の場合、カバーシートは登録されません。 ( デフォルト値: 'D') 。 |
|
受信者 |
PRREC |
SAP カバーシート の受信者名を指定します( デフォルト値: ユーザ名) 。 |
|
部門 |
PRABT |
SAP カバーシート の部門名を指定します ( デフォルト値はユーザデフォルトから取得されます) 。 |
|
行 |
LINCT |
行数。この項目には、REPORT 命令の LINE-COUNT オプションと同じ効果があります。印刷に対して 0 ( 無制限の行数) を指定することはできません。この項目の最大数は、書式項目の内容によって決まります ( デフォルト値: 内部設定) 。 |
|
列 |
LINSZ |
一覧行あたりの文字数。この項目には、REPORT 命令の LINE-SIZE オプションと同じ効果があります。この項目の最大数は、書式項目の内容によって決まります ( デフォルト値: 内部設定) 。 |
|
書式設定 |
PAART |
この項目により、実際の出力のページ書式が決定されます。接続されているプリンタに応じて、この項目に異なる最大ページ長とページ幅の値を入力し、異なる書式を設定することができます ( デフォルト値: 内部設定) 。 |
印刷リスト出力 ダイアログボックスで、入力値の整合性と完全性がチェックされます。印刷パラメータが不整合である場合は ( 指定された出力デバイスでサポートされていない出力書式の使用など) 、印刷できません。

印刷パラメータ LINCT と LINSZ は、REPORT または NEW-PAGE 命令の LINE-COUNT および LINE-SIZE オプションを上書きしません。プログラムでこれらのオプションを使用する場合、そこで指定した値がコンポーネント LINCT と LINSZ に入力されます。この後、印刷リスト出力ダイアログボックス内の対応する入力項目は入力を受け付けなくなります。指定した値が 書式項目の最大値を超える場合は、一覧を印刷できません。
印刷パラメータの他に、アーカイブパラメータもあります。ただし、アーカイブパラメータを指定する必要があるのは、イメージストアがオンになっている場合のみです ( アーカイブモードがアーカイブまたは印刷およびアーカイブであること) 。ABAP では、構造 ARC_PARAMS (ABAP ディクショナリ) がアーカイブパラメータのセットを表します。
以下のテーブルは、印刷リスト出力ダイアログウィンドウの入力項目と ARC_PARAMS コンポーネントとの対応を示しています。
|
入力項目 |
コンポーネント |
意味 |
|
オブジェクトタイプ |
SAP_OBJECT |
SAP オブジェクトのオブジェクトタイプ |
|
文書タイプ |
AR_OBJECT |
アーカイブオブジェクトの文書タイプ |
|
情報 |
INFO |
アーカイブ依頼の簡易形式の情報 |
|
テキスト |
ARCTEXT |
アーカイブ依頼の内容説明テキスト |
ダイアログボックスで行ったエントリに整合性があり、完全である場合にのみ、一覧をアーカイブすることができます。イメージストアの場合、アーカイブした一覧での後日の検索を支援するために、索引情報を一覧に書き込むと有効です。この書込は、一覧の登録中にのみ行うことができます (SAP ArchiveLink を使用した一覧の登録 を参照してください) 。

プログラム内から印刷パラメータとアーカイブパラメータを設定するには、汎用モジュールGET_PRINT_PARAMETERS を使用する必要があります。印刷およびアーカイブパラメータセットに直接割り当てられた値は許可されません。直接割り当てた値を使用すると、実行時エラーが発生します。
印刷リスト出力 ダイアログウィンドウは、ユーザが以下を選択した後で必ず表示されます。
キ 選択画面で、実行 + 印刷
キ 一覧インタフェースで、印刷
これらのユーザアクションに対してダイアログボックスを非表示にすることはできません。
ただし、汎用モジュールSET_PRINT_PARAMETERS を使用して、印刷リスト出力ダイアログボックスに対してプログラム内から事前定義された値を設定することができます。汎用モジュールSET_PRINT_PARAMETERS を使用します。この汎用モジュールにはエクスポートパラメータがなく、上記のユーザアクションのいずれかを使用して一覧が印刷される場合 にのみ有効になります。
選択画面で実行 + 印刷 を選択する場合、AT SELECTION-SCREEN イベント中 ( またはそれ以前) に SET_PRINT_PARAMETERS を呼び出す必要があります。一覧インタフェースで印刷を選択する場合は、一覧を出力画面に送信する前に汎用モジュールを呼び出す必要があります。
以下のテーブルは、SET_PRINT_PARAMETERS のインポートパラメータと印刷およびアーカイブパラメータとの関係を示しています。
|
インポートパラメータ |
パラメータ |
意味 |
|
IN_PARAMETERS |
PRI_PARAMS |
セット全体 |
|
IN_ARCHIVE_PARAMETERS |
ARC_PARAMS |
セット全体 |
|
ARCHIVE_MODE |
PRI_PARAMS-ARMOD |
アーカイブモード |
|
AUTHORITY |
PRI_PARAMS- PRBER |
権限 |
|
COPIES |
PRI_PARAMS- PRCOP |
コピー数 |
|
COVER_PAGE |
PRI_PARAMS-PRBIG |
選択カバーシート |
|
DATA_SET |
PRI_PARAMS-PRDSN |
スプールファイル |
|
DEPARTMENT |
PRI_PARAMS-PRABT |
部門名 |
|
DESTINATION |
PRI_PARAMS-PDEST |
出力デバイス |
|
EXPIRATION |
PRI_PARAMS-PEXPI |
保存期間 |
|
IMMEDIATELY |
PRI_PARAMS-PRIMM |
即時印刷 |
|
LAYOUT |
PRI_PARAMS-PAART |
書式設定 |
|
LINE_COUNT |
PRI_PARAMS-LINCT |
ページあたりの行数 |
|
LINE_SIZE |
PRI_PARAMS-LINSZ |
行あたりの列数 |
|
LIST_NAME |
PRI_PARAMS-PLIST |
スプール依頼の名称 |
|
LIST_TEXT |
PRI_PARAMS-PRTXT |
内容説明テキスト |
|
NEW_LIST_ID |
PRI_PARAMS-PRNEW |
新規スプール依頼 |
|
RECEIVER |
PRI_PARAMS-PRREC |
受信者 |
|
RELEASE |
PRI_PARAMS-PRREL |
印刷後に削除 |
|
SAP_COVER_PAGE |
PRI_PARAMS-PRSAP |
SAP カバーシート |
|
TYPE |
PRI_PARAMS-PTYPE |
スプール依頼のタイプ |
|
FOOT_LINE |
PRI_PARAMS-FOOTL |
出力フッタ行 |
|
ARCHIVE_ID |
ARC_PARAMS-ARCHIV_ID |
アーカイブ対象 |
|
ARCHIVE_INFO |
ARC_PARAMS-INFO |
情報 |
|
ARCHIVE_TEXT |
ARC_PARAMS-ARCTEXT |
内容説明テキスト |
|
AR_OBJECT |
ARC_PARAMS-AR_OBJECT |
文書タイプ |
|
SAP_OBJECT |
ARC_PARAMS-SAP_OBJECT |
オブジェクトタイプ |
構造 PRI_PARAMS およびARC_PARAMS の構造をそれぞれパラメータ IN_PARAMETERS と IN_ARCHIVE_PARAMETERS に割り当てる必要があります。これらの項目文字列は initial であるか、または汎用モジュールGET_PRINT_PARAMETERS の結果を含んでいる必要があります。
FOOT_LINE パラメータは、ユーザが一覧インタフェースで印刷を選択した場合にのみ使用されます。このパラメータが 'X' に等しい場合、各ページに 1 つのシステム定義フッタが出力されます。
汎用モジュールをプログラムに組み込むには、ABAP エディタで 編集 → 命令挿入 ...CALL FUNCTION を選択します。
以下の印刷命令を使用するとします。
キ NEW-PAGE PRINT ON
キ SUBMIT ...TO SAP-SPOOL
キ CALL FUNCTION 'JOB-SUBMIT'
印刷命令の該当オプションを使用して、プログラム内から印刷パラメータを設定します。 印刷パラメータダイアログボックスは、表示することも非表示にすることもできます。
パラメータがスプールシステムに適切かつ完全に送信されるようにするには、印刷命令で常にパラメータセット全体を転送してください。パラメータセットを登録するには、汎用モジュールGET_PRINT_PARAMETERS を使用します。
汎用モジュールGET_PRINT_PARAMETERS には、以下のタスクがあります。
キ 印刷パラメータとアーカイブパラメータの完全なセットを登録します。
個別の印刷パラメータとアーカイブパラメータは、互いにに強固に結び付いていて、完全でなければなりません。たとえば、各出力デバイスに対して、レイアウト書式を指定する必要があり、行数と列数を設定する必要があります。または、アーカイブモード アーカイブまたは印刷およびアーカイブを設定する際、アーカイブパラメータを設定する必要があります。
キ 実際の印刷命令からユーザダイアログを切り離します。
印刷命令 (NEW-PAGE PRINT ON 、SUBMIT <rep> TO SAP-SPOOL) はユーザダイアログをサポートしますが、前画面機能が提供されないという不利な点があります。印刷命令を使用して印刷プロセスを開始した後、印刷命令の前に戻ることはできません。ユーザは、 終了を使用してプログラム全体を強制終了し、プロセスを終了することしかできません。
GET_PRINT_PARAMETERS は、以下の機能を実行します。
キ インポートパラメータを使用して、印刷パラメータとアーカイブパラメータを設定します。汎用モジュールは、設定されていない必要な値をシステムからインポートパラメータを介して受け取ります。これらの値は、 印刷リスト出力ダイアログウィンドウにある事前定義された値に一致し、そのいくつかはユーザマスタレコードで設定されています。
キ デフォルトでは、汎用モジュールはユーザダイアログのために印刷リスト出力ダイアログボックスを表示します。このダイアログボックスで、ユーザはインポートパラメータまたは事前定義された値によって入力された項目を上書きすることができます。
キ 汎用モジュールにより、その他の値が自動的に設定されます。特定のレイアウトに対してインポートパラメータを設定すると、行や列などの従属パラメータがインポートパラメータとして要求されるのではなく、これらの値が自動的に設定されます。
キ 汎用モジュールにより、印刷パラメータとアーカイブパラメータの完全なセットがエクスポートパラメータとして提供されます。印刷命令のオプションを使用して、これらのエクスポートパラメータをスプールシステムに転送することができます。これらのパラメータセットは、完全に入力されているか、まったく空白であるかのいずれかです。
汎用モジュールGET_PRINT_PARAMETERS には、汎用モジュールSET_PRINT_PARAMETERS と同じインポートパラメータがありますが、以下の例外があります。
GET_PRINT_PARAMETERS には、インポートパラメータ FOOT_LINE がありません。これは、このパラメータは、一覧の出力画面で 印刷 を選択した場合にのみ必要となるためです。
GET_PRINT_PARAMETERS には、その他に以下のインポートパラメータがあります。
キ MODE
このパラメータは、以下のようにモジュールの動作に影響を与えます。
|
MODE |
動作 |
|
PARAMS |
これはデフォルトの設定です。ユーザは、ダイアログウィンドウで印刷または 取消を選択することができます。 |
|
PARAMSEL |
ダイアログウィンドウには、追加チェックボックス選択カバーシートがあります。ユーザがこの項目 ( 印刷パラメータ PRBIG) に入力すると、出力に選択画面の選択を含むカバーシートが含められます。 |
|
DISPLAY |
ダイアログウィンドウの印刷パラメータは表示専用になります。 |
|
CURRENT |
汎用モジュールを使用して、現在の印刷プロセス中 ( 印刷命令の後) に印刷パラメータを決定します。これらの値は、印刷用のパラメータセットに一致します。進行中の印刷プロセスがない場合は、事前設定された値が使用されます。 |
|
BATCH |
汎用モジュールを使用して、バックグラウンドジョブ用の印刷パラメータを決定します。開始される実行可能プログラム ( レポート) をインポートパラメータ REPORT で指定する必要があります。プログラムの REPORT 命令にオプション LINE-COUNT と LINE-SIZE が含まれている場合は、これらがダイアログウィンドウで事前設定として使用されます。ダイアログウィンドウには、 印刷押ボタンの代わりに保存押ボタンが表示されます。 |
キ REPORT
REPORT に含まれる値は常に、スプール依頼の名称に対する事前定義された値 ( コンポーネント PLIST) に影響を与えます。それ以外の場合は、この値はSY-REPID システム項目によって決定されます。この値は、インポートパラメータLIST_NAME によって上書きされます ( 使用される場合) 。
MODE が 'BATCH' に設定されている場合、REPORT の値によりバックグラウンドジョブとして開始するレポートの名称を指定します。GET_PRINT_PARAMETERS は、そのレポートの印刷パラメータと現在のレポート以外の印刷パラメータを決定します。
キ NO_DIALOG
ダイアログボックスを表示するかどうかを決定します。NO_DIALOG に 'X' が含まれている場合、ダイアログは非表示になります。
汎用モジュール GET_PRINT_PARAMETERS には、以下のエクスポートパラメータがあります。
キ OUT_PARAMETERS
このパラメータには、印刷パラメータの完全なセットが含まれているか、またはまったく空です (VALID を参照してください) 。
キ OUT_ARCHIVE_PARAMETERS
このパラメータには、アーカイブパラメータの完全なセットが含まれているか、またはまったく空です (VALID を参照してください) 。
キ VALID
このパラメータは、セットOUT_PARAMETERS と OUT_ARCHIVE_PARAMETERS が完全に入力されているか、空白であるかを示します。VALID に 'X' が含まれている場合、パラメータセットは完全です。これらのパラメータセットをスプールシステムに転送することができます。VALID に SPACE が含まれている場合、パラメータセットは空です。ユーザがユーザダイアログを取り消すと、VALID は SPACE に設定されます。そのため、ユーザダイアログの後には、必ず VALID を確認してください。ユーザダイアログが発生しない場合、VALID に 'X' が含まれています。
汎用モジュールGET_PRINT_PARAMETERS には、以下の例外パラメータがあります。
キ ARCHIVE_INFO_NOT_FOUND
指定されたアーカイブデータに不整合があるか、指定されたアーカイブがシステムに存在しません。
キ INVALID_PRINT_PARAMS 、INVALID_ARCHIVE_PARAMS
印刷パラメータまたはアーカイブパラメータのセットが無効です。パラメータ項目文字列の個別コンポーネントに値を直接割り当てたか、これらの構造を使用してインポートパラメータIN_PARAMETERS または IN_ARCHIVE_PARAMETERS に入力したために、パラメータセットが無効になっています。パラメータ項目文字列は、常に前回のGET_PRINT_PARAMETERS 呼出の結果でなければなりません。0 に設定されている行または列などの無効なインポートパラメータによっても、無効なパラメータセットが登録されます。
汎用モジュールGET_PRINT_PARAMETERS は、ABAP で印刷パラメータおよびアーカイブパラメータセットに値を割り当てるためにのみ使用することができます。GET_PRINT_PARAMETERS を使用して入力されたパラメータセットをスプールシステムに転送することにより、プログラムが異常終了するのを回避することができます。これは、バックグラウンド処理の際に特に重要です。ただし、エクスポートパラメータ VALID が SPACE に等しくなく、例外が発生しないことを確認する必要があります。
GET_PRINT_PARAMETERS を使用する際、パラメータセットが完全であり、印刷依頼が実行されうることが最も重要になります。GET_PRINT_PARAMETERS では、印刷リスト出力ダイアログウィンドウのような完全な整合性チェックは実行されません。整合性は、印刷依頼の実行に必要な場合にのみ保証されます。不整合なエントリは部分的に無視され、一部が置換されます。たとえば、以下のことが可能です。
キ インポートパラメータ LINE_SIZE, LINE_COUNT を使用して、LAYOUT パラメータに対応しない値を設定します。ユーザダイアログで、この不整合が検出されます。ユーザダイアログなしで、これらの値によって印刷が切り詰められる可能性があります。
キ インポートパラメータ DESTINATION で無効な値を設定すると同時に、IMMEDIATELY を 'X' に設定します。この場合、汎用モジュールによって出力デバイスがデフォルト値 (LP01) に置換され、コンポーネント PRIMM が SPACE に設定されます。これにより、スプールシステムでデフォルトプリンタに適した設定で依頼が保存されます。
汎用モジュールをプログラムに組み込むには、ABAP エディタで 編集 → 命令挿入 ...CALL FUNCTION を選択します。
汎用モジュールGET_PRINT_PARAMETERS を連続して何度か呼び出すと効果的です。たとえば、プログラムの先頭でGET_PRINT_PARAMETERS を使用して、ユーザダイアログをトリガし、ユーザに基本設定を行うよう求めることができます。次に、エクスポートパラメータOUT_PARAMETERS と OUT_ARCHIVE_PARAMETERS をインポートパラメータとして使用して汎用モジュールを呼び出し、プログラム内から特定のパラメータを修正することができます ( たとえば、幅の広い一覧を横向き書式で印刷したり、幅の狭い一覧を縦向き書式で印刷したりするなど) 。