ISPF Table Display Support

In order to support an ISPF Table Display dialog, some additional extensions are necessary.

Some additional special variables are provided for the Table Display support as defined in the following table:

Special variable Description
TAUTAB Name of the ISPF table to display
TAUTABV List of the table variable names
TAUSCAN ‘N’ -> no scan argument is defined for the ISPF table

‘Y’ -> a scan argument is defined for the ISPF table

TAUCRP Variable containing the value of the current row pointer
TAUSELS Variable containing the number of selected lines

TAUCRP and TAUSELS are output variables set by the client.

A typical extension of the ISPF Table Display panel in the INIT or REINIT section looks like this:

VGET(TAUTODIA) SHARED                                              
IF (&tautodia = 'Y')                                               
   &resp = ''                                                      
   &tausels = 0                                                    
   &taupanel = '<panel name>'                                          
   &tautab = '<table name>'                                            
   &tauscan = 'N'                                                  
   &taups = 'I'                                                    
   &tautabv = ‘<tabvar1> … <tabvarn>’                                        
   &tauparms = <var1> … <varn>'                    
   &tauerr = ''                                                    
   *REXX(*,TAUPANEL,TAURESP,TAUPS,TAUPARMS,TAUSELS,TAUCRP,TAUTAB,  
            TAUSCAN,TAUTABV,TAUERR,(TAUZCDIF))      
   IF (&tauerr ^= &z)                                              
      VGET(TAUTOZCP) SHARED                                        
      &tautozcp = '&tautozcp &tauerr'                              
      VPUT(TAUTOZCP) SHARED                                        
   .autosel = YES                                                  
   &tau001 = &tabvar1 
        .  .  .                                                  
   &tau00n = &tabvarn

The table variables must be saved after the call to the panel REXX TAUZCDIF to refresh the content in the PROC section.

Another special extension of Table Display panels is that the panel REXX TAUZCDIF is also called in the PROC section of the panel. This call sets the current row pointer of the table to the value returned by the client. Additionally, in the PROC section, the table variables are refreshed to the content returned by the client, and the ISPF table control variable ZTDSELS is set to the number of selected rows returned by the client.

A typical extension of the ISPF Table Display panel in the PROC section looks like this:

IF (&tautodia = 'Y')                                                 
   IF (&TAURESP = 'Ok')                                              
       &taupanel = '<panel name>'                                         
      &tautab = '<table name>'                                           
      &ztdsels = &tausels                                            
      &tabvar1 = &tau001                                                 
          .  .  .                                              
      &tabvarn = &tau00n                                                
      &taups = 'P'                                                   
      *REXX(*,TAUPANEL,TAUPS,TAUCRP,TAUTAB,(TAUZCDIF))     
      IF (&TAURESP = 'Exit')                                            
         .RESP = END

In the AWM model, a tool descriptor representing an ISPF Table Display dialog is characterized by its relation to a file descriptor. The file descriptor has to be defined as a structure Table with the type InputStream (see File descriptor).

The properties referenced by the file descriptor have to map to the table variables defined in the special variable TAUTABV.

By defining relations from the file descriptor to action descriptors, you can configure the panel and line commands of the ISPF table. The action descriptor must point to a tool descriptor of type "Execute ISPF Dialog Command".