バージョン 4.2.5
 —  ステートメント  —

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 ステートメントと異なります。

Top of page

構文説明

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

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
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
FL 浮動小数点仮数長 SE
MC マルチプルバリューフィールド数 S
MP レポートの最大ページ数 S
NL 出力の数値長 SE
PC ピリオディックグループ数 S
PM 出力モード SE
SG 符号の位置 SE
ZP ゼロ出力 SE

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

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

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

nX

 

'text'[(attributes)]

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

['='] operand1 [(parameters)]

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

nX
列の間隔:
この表記により、列の間に n 個のスペースが挿入されます。 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)
文字の繰り返し:

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

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

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

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

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

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

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

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

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

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

出力属性

attributes は、テキスト表示に使用される出力属性を示します。 可能な属性:

AD=AD-value
BX=BX-value
CD=CD-value
PM=PM-value

AD-value
CD-value

指定可能なセッションパラメータ値については、『パラメータリファレンス』ドキュメントの該当するセクションを参照してください。

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

Top of page

例 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 

Top of page