PRINT

PRINT [(rep)] [NOTITLE] [NOHDR] [(statement-parameters)]

nX

 

'text' [(attributes)]

nT 'c'(n) [(attributes)]
/

['='] operand1[(parameters)]

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント:AT END OF PAGE | AT TOP OF PAGE | CLOSE PRINTER | DEFINE PRINTER | DISPLAY | EJECT | FORMAT | NEWPAGE | SKIP | SUSPEND IDENTICAL SUPPRESS | WRITE | WRITE TITLE | WRITE TRAILER

関連機能グループ:出力レポートの作成


関数

PRINT ステートメントは、出力をフリーフォーマットで生成するために使用します。

PRINT ステートメントは、次の点で WRITE ステートメントと異なります。

  • 各オペランドの出力は、オペランドの長さではなく値の内容に合わせて書き込まれます。数値の先頭のゼロおよび英数字の末尾の空白は省略されます。セッションパラメータ AD では、数値を左揃えで出力するか右揃えで出力するかを定義します。AD=L の場合、数値の末尾の空白は省略されます。AD=R の場合、数値の先頭の空白は出力されます。

  • 出力結果が現在の行サイズ(LS パラメータ)を超過した場合、出力が次の行に継続します。このとき、英数字定数、または編集マスク指定のない英数字変数の内容は、現在の行の右端の空白または英字でも数字でもない文字で分割されます。分割された値の初めの部分は現在の行に出力され、後ろの部分は次の行に出力されます。2 番目の部分の先頭の空白は削除されます。この結果、空の行は非表示になります。

    他のすべてのオペランドについては、値全体が次の行に出力されます。

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1   S A G N A U N P I F B D T L   G O ×

構文要素の説明:

構文要素 説明
(rep)
レポート指定:

表記 (rep) は、PRINT ステートメントを適用するレポートの ID を指定するために使用できます。

範囲 0 - 31 の値、または DEFINE PRINTER ステートメントを使用して割り当てた論理名を指定できます。

(rep) が指定されていない場合、PRINT ステートメントは最初のレポート(レポート 0)に適用されます。

プリンタファイルが PC として Natural に定義されている場合、レポートは PC にダウンロードされます。「例 2」を参照してください。

Natural で作成される出力レポートの形式を制御する方法については、『プログラミングガイド』の「レポートフォーマットおよび制御」を参照してください。

NOTITLE
デフォルトページタイトルの省略:

Natural は、PRINT ステートメントによって出力される各ページに 1 行のタイトル行を生成します。このタイトルには、ページ番号と日時が含まれます。時刻は、セッション開始時(TP モード)またはジョブ開始時(バッチモード)に設定されます。このデフォルトのタイトル行は WRITE TITLE ステートメントを使用して上書きできます。また、PRINT ステートメントに NOTITLE 節を指定することで省略することもできます。例:

  • デフォルトタイトルが生成されます。

    PRINT NAME
  • ユーザータイトルが生成されます。

    PRINT NAME WRITE TITLE 'user-title'
  • タイトルは生成されません。

    PRINT NOTITLE NAME

NOTITLE オプションを使用すると、同じオブジェクト内でデータを同じレポートに書き込むすべての DISPLAYPRINT、および WRITE ステートメントに適用されます。

NOHDR
列ヘッダーの省略:

PRINT ステートメント自体では、列ヘッダーは生成されません。ただし、PRINT ステートメントを DISPLAY ステートメントと組み合わせて使用する場合、PRINT ステートメントの NOHDR オプションを使用して、DISPLAY ステートメントによって生成される列ヘッダーを省略できます。NOHDR オプションは、PRINT ステートメントの実行によって新しいページが出力される場合にのみ有効です。

NOHDR オプションを使用しないと、この新しいページに DISPLAY ステートメントの列ヘッダー(存在する場合)が出力されます。NOHDR を使用すると、出力されません。

statement-parameters
ステートメントレベルでのパラメータ定義:

1 つまたは複数のパラメータをカッコで囲んで、ステートメントレベルで、つまり PRINT ステートメントまたは出力要素の直後に指定できます。

この方法で指定した各パラメータは、以前に GLOBALS コマンド、SET GLOBALS ステートメント(レポーティングモードでのみ)、または FORMAT ステートメントで指定したパラメータを上書きします。複数のパラメータを指定する場合は、各パラメータ間を 1 つ以上の空白で区切る必要があります。1 つのパラメータエントリを 2 行に分けて指定することはできません。

ここで適用されるパラメータ設定は、変数フィールドにのみ関連し、テキスト定数には影響しません。テキスト定数にフィールド属性を設定する場合は、この要素に属性を明示的に設定する必要があります(「要素(フィールド)レベルでのパラメータ定義」を参照)。

以下の項目も参照してください。

nX, nT, /
フィールドの位置指定、テキスト、属性の割り当て

下記の「フィールドの位置指定、テキスト/属性の割り当て」を参照してください。

パラメータのリスト

PRINT ステートメントで指定可能なパラメータ 指定(S = ステートメントレベル、E = 要素レベル)
AD 属性定義 SE
AL 出力の英数字長 SE
CD カラー定義 SE
CV 制御変数 SE
DF 日付フォーマット SE
DL 出力の表示長 SE
DY ダイナミック属性 SE
EM 編集マスク SE
EMU Unicode 編集マスク E
FL 浮動小数点仮数長 SE
MC マルチプルバリューフィールド数 S
MP レポートの最大ページ数 S
NL 出力の数値長 SE
PC ピリオディックグループ数 S
PM Print Mode SE
SG 符号の位置 SE
ZP ゼロ出力 SE

各セッションパラメータの詳細については、『パラメータリファレンス』を参照してください。

ステートメントおよび要素(フィールド)レベルでのパラメータ使用例

DEFINE DATA LOCAL
1 VARI (A4)     INIT <'1234'>                  /*     Output 
END-DEFINE                                     /*    Produced
*                                              /*    ---------  
PRINT           'Text'           VARI          /*    Text 1234
PRINT (PM=I)    'Text'           VARI          /*    Text 4321
PRINT           'Text' (PM=I)    VARI (PM=I)   /*    txeT 4321
PRINT           'Text' (PM=I)    VARI          /*    txeT 1234
END

フィールドの位置指定、テキスト/属性の割り当て

nX

 

'text'[(attributes)]

nT   'c' ( n ) [(attributes)]
/

['='] operand1 [(parameters)]

フィールドの位置指定表記

構文要素 説明
nX
列の間隔:
この表記により、列の間に n 個のスペースが挿入されます。
PRINT NAME 5X SALARY
nT
タブ設定:

nT 表記により、位置 n を出力するように位置指定(タブ設定)されます。後方への位置指定は行送りになります。

次の例では、NAME は位置 25 から、SALARY は位置 50 から出力されます。

PRINT 25T NAME 50T SALARY
/
行送り - スラッシュ表記:

フィールドまたはテキスト要素の間に配置した場合は、スラッシュ(/)により次の出力行の先頭に位置指定されます。

PRINT NAME / SALARY

テキスト/属性割り当て

構文要素 説明
'text'
テキスト割り当て:

一重引用符で囲まれた文字列が表示されます。

PRINT 'EMPLOYEE' NAME 'MARITAL/STATUS' MAR-STAT
'c' (n)
文字の繰り返し:

フィールド値の直前に、一重引用符で囲まれた c 文字が n 回表示されます。

PRINT '*' (5) '=' NAME
'='
フィールドヘッダーの後に位置するフィールド内容:

フィールドの前に配置した場合は、等号 '=' により、DEFINE DATA ステートメントまたは DDM の定義に従って、フィールドヘッダーはフィールド内容の前に表示されます。

PRINT '=' NAME
operand1
出力するフィールド:

operand1 として、出力するフィールドを指定します。

parameters
要素(フィールド)レベルでのパラメータ定義:

1 つまたは複数のパラメータ(上記のを参照)をカッコで囲んで、operand1 の直後に指定できます。

この方法で指定した各パラメータは、以前にステートメントレベルで、または GLOBALS コマンド、SET GLOBALS(レポーティングモードでのみ)、または FORMAT ステートメントで指定したパラメータを上書きします。

複数のパラメータを指定する場合は、各エントリ間に 1 つ以上の空白を配置する必要があります。エントリを 2 行のステートメント行に分割することはできません。

以下の項目も参照してください。

出力属性

attributes は、テキスト表示に使用される出力属性を示します。属性は次のいずれかです。

AD=ad-value
CD=cd-value
PM=pm-value

ad-value
cd-value

上記の意味は次に示すとおりです。

ad-value、、cd-value および pm-value は、『パラメータリファレンス』ドキュメントの関連セクションで記載されている、対応するセッションパラメータ AD、、CD および PM の可能な値を示します。

コンパイラは、実際には 1 つの出力フィールドに複数の属性値を受け入れます。例えば、次のように指定できます。AD=BDIただし、この場合は最後の値のみが適用されます。示した例では、値 I のみが有効になり、出力フィールドは強調表示されます。

英数字/Unicode 定数(Natural データフォーマット A または U )の場合は、ad-value または cd-value あるいはその両方を、それぞれの前に先行する CD= または AD= なしで、指定することができます。入力した単一の値が、最初にすべての可能な CD 値に対してチェックされます。例えば、IRE の値は、高輝度表示/赤として解釈されますが、高輝度表示/右詰め/必須としては解釈されません。単一の cd-value またはad-value の前に CD= または AD= が付いた値を組み合わせることはできません。

例 1 - PRINT ステートメント

** Example 'PRTEX1': PRINT                                              
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 CITY                                                                
  2 JOB-TITLE                                                           
  2 ADDRESS-LINE (2)                                                    
END-DEFINE                                                              
*                                                                       
LIMIT 1                                                                 
READ EMPLOY-VIEW BY CITY                                                
  /*                                                                    
  WRITE NOTITLE 'EXAMPLE 1:'                                            
             // 'RESULT OF WRITE STATEMENT:'                            
  WRITE       /  NAME  ',' FIRST-NAME ':' JOB-TITLE '*' (30)            
  WRITE       / 'RESULT OF PRINT STATEMENT:'                            
  PRINT       /  NAME  ',' FIRST-NAME ':' JOB-TITLE '*' (30)      
  /*                                        
  WRITE      // 'EXAMPLE 2:'                
             // 'RESULT OF WRITE STATEMENT:'
  WRITE       /  NAME 60X ADDRESS-LINE (1:2)
  WRITE       / 'RESULT OF PRINT STATEMENT:'
  PRINT       /  NAME 60X ADDRESS-LINE (1:2)
  /*                                        
END-READ                                    
END

プログラム PRTXEX1 の出力:

EXAMPLE 1:                                                                    
                                                                              
RESULT OF WRITE STATEMENT:                                                    
                                                                              
SENKO                , WILLIE               : PROGRAMMER                      
******************************                                                
                                                                              
RESULT OF PRINT STATEMENT:                                                    
                                                                              
SENKO , WILLIE : PROGRAMMER ******************************                    
                                                                              
                                                                              
EXAMPLE 2:                                                                    
                                                                              
RESULT OF WRITE STATEMENT:                                                    
                                                                              
SENKO                                                                         
2200 COLUMBIA PIKE    #914                                                    
                                                                              
RESULT OF PRINT STATEMENT:                                                    
                                                                              
SENKO                                                            2200 COLUMBIA
PIKE  #914

例 2 - レポートが PC にダウンロードされる PRINT ステートメント

** Example 'PCPIEX1': PRINT to PC                                       
**                                                                      
** NOTE: Example requires that Natural Connection is installed.         
************************************************************************
DEFINE DATA LOCAL                                                       
01 PERS VIEW OF EMPLOYEES                                               
  02 PERSONNEL-ID                                                       
  02 NAME                                                               
  02 CITY                                                               
END-DEFINE                                                              
*                                                                       
FIND PERS WITH CITY = 'NEW YORK'                 /* Data selection      
  PRINT (7) 5T CITY 20T NAME 40T PERSONNEL-ID    /* (7) designates      
                                                 /* the output file    
                                                 /* (here the PC).      
END-FIND                                                                
END