Using the Aggregate Range APIs

This section lists the steps and shows the source code you must use to use these aggregate range routines.

Programming Example

The following example uses the aggregate range routines to specify the SUM function.

     CALLP     U@DB@AGINIT(DGAM@@HANDLE:  
               %ADDR(DA@DBGLGAM2))                    
     CALLP     U@DB@AGSET(DGAM@@HANDLE: DA@DBGLGAM2:  
               'SUM': 'DB-BEG-BAL    ': 1:            
               %ADDR(DGAM#AG#DBBGBL):                 
               %ADDR(DGAM#SU#DBBGBL))                 
     CALLP     U@DB@AGSET(DGAM@@HANDLE: DA@DBGLGAM2:  
               'SUM': 'CR-BEG-BAL    ': 1:            
               %ADDR(DGAM#AG#CRBGBL):                 
               %ADDR(DGAM#SU#CRBGBL))                 
                                                      
     EVAL      I2             = 1                     
     DOW       I2 <= VWSPRD#END                       
     CALLP     U@DB@AGSET(DGAM@@HANDLE: DA@DBGLGAM2:  
               'SUM': 'DB-AMOUNT     ': I2:           
               %ADDR(DGAM#AG#DBAMNT(I2)):             
               %ADDR(DGAM#SU#DBAMNT(I2)
     CALLP     U@DB@AGSET(DGAM@@HANDLE: DA@DBGLGAM2: 
               'SUM': 'CR-AMOUNT     ': I2:          
               %ADDR(DGAM#AG#CRAMNT(I2)):            
               %ADDR(DGAM#SU#CRAMNT(I2)))            
     ADD       1             I2                      
     ENDDO                                           
                                                    
     EVAL      DGAM@NOTFOUND  = TRUE                 
     CALLP     DS@DBGLGAM2(E@DBAGGREGATE)