Here is the RE#xx exec to swap between logical screens based on application
name rather then its number. Enjoy.                      


| Itschak Mugzach | Director | SecuriTeam Software |
| Email: [EMAIL PROTECTED] | Mob: +972 522 986404 | Skype: Itschak
Mugzach | Web: www.Securiteam.co.il  | 



/* REXX */
/*--------------------------------------------------------------------*/
/*                                                                    */
/*                           SWAP TO SDSF                             */
/* THIS (SMALL) PROGRAM INVOKES AS AN ISPF COMMAND. IT WILL LOOK AT   */
/* THE ISPF SWAP LIST TABLE AND LOOK TO SEE IF SDSF IS ALREADY STARTED*/
/* IF SDSF IS STARTED, IT WILL SWAP TO SDSF. OTHERWISE, IT WILL START */
/* SDSF IN A NEW LOGICAL SCREEN.                                      */
/* THE PROGRAM WAS DEVELOPED BY ITSCHAK MUGZACH FROM SECURITEAM SOFTWA*/
/*    AS A SAMPLE TO AZRIEL SNIR.                                     */
/*     (C) SECURITEAM SOFTWARE 2006.                                  */
/*--------------------------------------------------------------------*/
/* TRACE "R" */
 SWAPTOSDSF:
     SIGNAL SWAPTOSDSF.CONFIG
     TRACE ALL
 SWAPTOSDSF.DOC:
 
SWAPTOSDSF.CONFIG:
   PSEUDOPAN = "ISRTSO"                 /* PSEUDO PANEL TO DISPLAY */
   SDSFAPPL  = "ISF"                    /* SDSF APPLID */
   MAXAPPLS  = 8                        /* MAX LOGICAL SCREENS TO CHK*/
 
SWAPTOSDSF.CONST:
    STS0001E  = 'STS0001E SCREEN IMAGE NOT FOUND'
    STS0002I  = 'STS0002I MYSWAPTOSDSF OPTIONS SELECTED: '
    STS0003I  = 'STS0003I STATUS FOR DEVICE ADDRESS '
    DISPLY4   = 'COMMAND NOT FOUND'
    DISPLY8   = 'END OR RETURN COMMAND ENTERED'
    DISPLY12  = 'PANEL, MESSAGE, OR CURSOR FIELD COULD NOT BE FOUND'
    DISPLY16  = 'DATA TRUNCATION OR TRANSLATION ERROR'
    DISPLY20  = 'SEVERE ERROR.'
    SELECT4   = 'RETURN COMMAND ENTERED FROM SELECTED MENU OR FROM',
                'OR FROM LOWER LEVEL PANEL.'
    SELECT8   = 'INVALID FOR SELECT PANEL COMMAND.'
    SELECT12  = 'THE PANEL COULD NOT BE FOUND.'
    SELECT16  = 'TRUNCATION ERROR IN STORING ZCMD OR ZSEL VARIABLE.'
    SELECT20  = 'SEVERE ERROR.'
    SWAPCMD   = "SWAP LIST;END"  /* SDSF APPLID */
    NSWAPSDF  = "START S"
 
 SWAPTOSDSF.VAR:
    INDEX      = 0
 
 SWAPTOSDSF.MAIN:
    ADDRESS ISPEXEC "CONTROL ERRORS RETURN"
    ADDRESS ISPEXEC "CONTROL NONDISPL END NOCMD"
    ADDRESS ISPEXEC "DISPLAY PANEL("PSEUDOPAN") COMMAND(SWAPCMD)"
    IF (RC ×= 0) THEN DO
       CALL  ERRORHANDLER RC DISPLY STSPPRCX
       END
    ADDRESS ISPEXEC "VGET (ZAPPID1 ZAPPID2 ZAPPID3 ZAPPID4) ASIS"
    ADDRESS ISPEXEC "VGET (ZAPPID5 ZAPPID6 ZAPPID7 ZAPPID8) ASIS"
    ADDRESS ISPEXEC "VGET (ZTLDID1 ZTLDID2 ZTLDID3 ZTLDID4) ASIS"
    ADDRESS ISPEXEC "VGET (ZTLDID5 ZTLDID6 ZTLDID7 ZTLDID8) ASIS"
    DO WHILE (INDEX < MAXAPPLS)
       INDEX = INDEX + 1
       APPLIDENT = VALUE(ZAPPID||INDEX)
       IF (APPLIDENT = SDSFAPPL) THEN DO
            SWAPIDENT = SUBSTR(VALUE(ZTLDID||INDEX),1,1)
            SWAPSDSF = "SWAP "||SWAPIDENT
                 /*  SAY 'SWAPIDENT =' SWAPIDENT */
                 /*  SAY 'SWAPSDSF  =' SWAP2SDSF */
            INDEX = 99
            ADDRESS ISPEXEC "CONTROL NONDISPL END NOCMD"
            ADDRESS ISPEXEC "DISPLAY PANEL("PSEUDOPAN") COMMAND(SWAPSDSF)"
            ADDRESS ISPEXEC "CONTROL NOCMD"
            END
           END
         IF (INDEX ×= 99) THEN DO
             ADDRESS ISPEXEC "CONTROL NONDISPL END"
             ADDRESS ISPEXEC "DISPLAY PANEL("PSEUDOPAN") COMMAND(NSWAPSDF)"
             END
         EXIT
      /* -------------------------------------END OF BBBB-------------*/
 ERRORHANDLER:
    SIGNAL HANDLEDAILS.CONS
    TRACE ALL
  ERRORHANDLER.DOC:
 /*-------------------------------------------------------------------*/
 /*                                                                   */
 /*                      APPLICATION ERROR HANDLER                    */
 /*                GENERATE ERROR MESSAGES & CALL CLEANUP             */
 /*  (C) COPYWRITE SECURITEAM SOFTWARE LTD 2006                       */
 /*-------------------------------------------------------------------*/
  ERRORHANDLER.CONS:
     NOP
   ERRORHANDLER.VAR:
      NOP
   ERRORHANDLER.MAIN:
      ARG RCX FUNC PARM1
      SAY 'STS9999D' VALUE(FUNC||RC)
      EXIT RC
      END
 /*-------------------------------------------------------------------*/
/* TRACE "R"                                                    */
/*                                                              */
/* "ISPEXEC SELECT PGM(ISPSTRT) PARM(SWAP SDSF)"                */
/* "ISPEXEC SELECT PGM(ISPSTRT) PARM(START S)"                  */
/* IF RC <> 0 THEN "ISPEXEC SELECT PGM(ISPSTRT) PARM(START S)"  */
EXIT

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to