PERFORM BREAK PROCESSING

PERFORM BREAK [PROCESSING] [(r)]
AT BREAK statement

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

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

関連ステートメント:ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET SAME | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW | READ | RETRY | STORE | UPDATE

関連機能グループ:データベースへのアクセスと更新


関数

PERFORM BREAK PROCESSING ステートメントは、自動ブレイク処理が設定されない FORREPEATCALL LOOP および CALL FILE の各ステートメントで生成されるループ内にブレイク処理を設定するために使用します。または、ユーザー開始のブレイク処理が必要な場合に使用します。レコードが読み取られた直後に実行される自動ブレイク処理とは異なり、PERFORM BREAK PROCESSING ステートメントは、プログラムの通常の流れの中で出現したときに実行されます。

このステートメントでは、(コントロールフィールドの値に基づいて)ブレイク処理の条件をチェックし、Natural システム関数を評価します。このチェックおよびシステム関数の評価は、実行対象のステートメントが出現するたびに行われます。このステートメントは、IF ステートメントで指定した条件に応じて実行することもできます。

構文説明

構文要素 説明
(r)
ステートメント参照表記:

デフォルトでは、プログラム、サブプログラム、またはサブルーチンの実行終了時に最後の PERFORM BREAK 条件が真となります。

表記 ((r)) を使用して、PERFORM BREAK の最後の処理を特定のループに関連付けることができます。この場合、PERFORM BREAK はそのループの終了処理の中(最後の自動 BREAK 処理後かつ AT END OF DATA ステートメントの実行前)で実行されます。

AT BREAK statement...

AT BREAK ステートメントの構文を参照してください。

** Example 'PBPEX1S': PERFORM BREAK PROCESSING  (structured mode)       
************************************************************************
DEFINE DATA LOCAL                                                       
1 #INDEX (N2)                                                           
1 #LINE  (N2) INIT <1>                                                  
END-DEFINE                                                              
*                                                                       
FOR #INDEX 1 TO 18                                                      
  PERFORM BREAK PROCESSING                                             
  /*                                                                    
  AT BREAK OF #INDEX /1/                                                
    WRITE NOTITLE / 'PLEASE COMPLETE LINES 1-9 ABOVE' /                 
    RESET INITIAL #LINE                                                 
  END-BREAK                                                             
  /*                                                                    
  WRITE NOTITLE '_' (64) '=' #LINE                                      
  ADD 1 TO #LINE                                                        
END-FOR                                                                 
*                                                                       
END

プログラム PBPEX1S の出力:

________________________________________________________________ #LINE:   1
________________________________________________________________ #LINE:   2
________________________________________________________________ #LINE:   3
________________________________________________________________ #LINE:   4
________________________________________________________________ #LINE:   5
________________________________________________________________ #LINE:   6
________________________________________________________________ #LINE:   7
________________________________________________________________ #LINE:   8
________________________________________________________________ #LINE:   9
                                                                           
PLEASE COMPLETE LINES 1-9 ABOVE                                            
                                                                           
________________________________________________________________ #LINE:   1
________________________________________________________________ #LINE:   2
________________________________________________________________ #LINE:   3
________________________________________________________________ #LINE:   4
________________________________________________________________ #LINE:   5
________________________________________________________________ #LINE:   6
________________________________________________________________ #LINE:   7
________________________________________________________________ #LINE:   8
________________________________________________________________ #LINE:   9
                                                                           
PLEASE COMPLETE LINES 1-9 ABOVE

レポーティングモードの例については、次のプログラムを参照してください:PBPEX1R