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

AT END OF DATA

ストラクチャードモード構文

[AT]END [OFDATA [(r)]
statement ../graphics/dot3.gif
END-ENDDATA

レポーティングモード構文

[AT]END [OFDATA [(r)]

statement

DO statement ../graphics/dot3.gif DOEND

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

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

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

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


機能

AT END OF DATA ステートメントは、データベース処理ループで選択された全レコードの処理が終了したときに行う処理を指定します。

このセクションでは、次のトピックについて説明します。

プログラミングガイド』の「AT START/END OF DATA ステートメント」を参照してください。

処理

このステートメントは非手続き型なので、プログラム内の位置ではなくイベントによって実行されます。

データベースフィールドの値

処理ループで AT END OF DATA 条件が発生したときに、すべてのデータベースフィールドは、最後に処理されたレコードの値になります。

位置

このステートメントは、対応するループ生成ステートメントと同じプログラムモジュール内に指定する必要があります。

システム関数

AT END OF DATA ステートメントで使用できる Natural システム関数については、『システム関数』ドキュメントの「処理ループでのシステム関数の使用」セクションを参照してください。

Top of page

制限事項

Top of page

構文説明

(r)
特定の処理ループの参照:
AT END OF DATA ステートメントは、表記 (r) によって、アクティブな特定の処理ループに関連付けることができます。 この表記がない場合、AT END OF DATA ステートメントはアクティブなデータベース処理ループ内の一番外側に関連付けられます。
END-ENDDATA Natural 予約語 END-ENDDATA を使用して、AT END OF DATA ステートメントを終了させる必要があります。

Top of page

** Example 'AEDEX1S': AT END OF DATA                                    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 SALARY    (1)                                                       
  2 CURR-CODE (1)                                                       
END-DEFINE                                                              
*                                                                       
LIMIT 5                                                                 
EMP. FIND EMPLOY-VIEW WITH CITY = 'STUTTGART'                           
  IF NO RECORDS FOUND                                                   
    ENTER                                                               
  END-NOREC                                                             
  DISPLAY PERSONNEL-ID NAME FIRST-NAME                                  
          SALARY (1) CURR-CODE (1)                                      
  /*
   AT END OF DATA                                               
    IF *COUNTER (EMP.) = 0                                     
      WRITE 'NO RECORDS FOUND'                                 
      ESCAPE BOTTOM                                            
    END-IF                                                     
    WRITE NOTITLE / 'SALARY STATISTICS:'                       
                  / 7X 'MAXIMUM:' MAX(SALARY(1))  CURR-CODE (1)
                  / 7X 'MINIMUM:' MIN(SALARY(1))  CURR-CODE (1)
                  / 7X 'AVERAGE:' AVER(SALARY(1)) CURR-CODE (1)
    END-ENDDATA 
  /*                                                           
END-FIND                                                       
*                                                              
END                                                           

処理ループで使用する Natural システム関数」も参照してください。

プログラム AEDEX1S の出力:

PERSONNEL         NAME              FIRST-NAME        ANNUAL   CURRENCY
   ID                                                 SALARY     CODE  
--------- -------------------- -------------------- ---------- --------
                                                                       
11100328  BERGHAUS             ROSE                      70800 DM      
11100329  BARTHEL              PETER                     42000 DM      
11300313  AECKERLE             SUSANNE                   55200 DM      
11300316  KANTE                GABRIELE                  61200 DM      
11500304  KLUGE                ELKE                      49200 DM      
                                                                       
SALARY STATISTICS:                                                     
       MAXIMUM:      70800 DM                                          
       MINIMUM:      42000 DM                                          
       AVERAGE:      55680 DM                                         

レポーティングモードの例については、ライブラリ SYSEXRM のプログラム AEDEX1R を参照してください。

Top of page