VWM

/*                                               2011/2012  MCSERRA  */
/* REXX                                                              */
/*                                             NAO ALTERAR POR FAVOR */
/* ----------------------------------------------------------------- */
/* VWM
     MACRO EDIT - VIEW ELEMENTO POR PESQUISA NUM CONJUNTO DE
                  DATASETS PREDEFINIDOS, COM BASE NA POSICAO
                  DO CURSOR
                  (OPTIMIZADO SE UTILIZADO EM TECLA DE FUNCAO)

     TECLA DE FUNCAO RECOMENDADA: PF04
*/
/*                                             NAO ALTERAR POR FAVOR */
/* ----------------------------------------------------------------- */
    "ISREDIT MACRO "
/*                                                                  */
     "ISPEXEC CONTROL ERRORS RETURN"
/*--------------------------------------------------------------------*/
     "ISREDIT (ROW,COL) = CURSOR"
     "ISREDIT (LINHA) = LINE " ROW
     CND = 0
     DO N = COL TO (COL - 8) BY -1  UNTIL CND > 0
        IF N > 0 THEN
        DO
           AUX = SUBSTR(LINHA, N , 1)
           IF AUX = " " | AUX = "(" | AUX = ")" THEN CND = 1
           IF AUX = "|" | AUX = '"' | AUX = "'" THEN CND = 1
           IF AUX = "." | AUX = "<" | AUX = ">" THEN CND = 1
           IF AUX = "+" | AUX = "-" | AUX = "_" THEN CND = 1
           IF AUX = ";" | AUX = "," | AUX = ":" THEN CND = 1
           IF CND = 1 THEN
           DO
              CND = N + 1
              LINHA = SUBSTR(LINHA, CND)
           END
        END
        ELSE
        DO
          CND = N + 1
          LINHA = SUBSTR(LINHA, CND)
        END
     END
     IF CND > 0 THEN CND = 0
     DO N = 1 TO 9 UNTIL CND > 0
        IF N < 9 THEN
        DO
           AUX = SUBSTR(LINHA, N , 1)
           IF AUX = " " | AUX = "(" | AUX = ")" THEN CND = 1
           IF AUX = "|" | AUX = '"' | AUX = "'" THEN CND = 1
           IF AUX = "." | AUX = "<" | AUX = ">" THEN CND = 1
           IF AUX = "+" | AUX = "-" | AUX = "_" THEN CND = 1
           IF AUX = ";" | AUX = "," | AUX = ":" THEN CND = 1
           IF CND = 1 THEN
           DO
              CND = N - 1
              LINHA = SUBSTR(LINHA, 1, CND)
           END
        END
        ELSE
        DO
           CND = N - 1
           LINHA = SUBSTR(LINHA, 1, CND)
        END
     END
     MEM = STRIP(LINHA)
     IF LENGTH(MEM) > 8 THEN
     DO
        IF SUBSTR(MEM, 1, 1) <> '#' THEN
        DO
           ZEDSMSG = 'ELEMENTO INVALIDO'
           ZEDLMSG = 'ELEMENTO NA POSICAO DO CURSOR COM MAIS DE 8 CHAR'
           "ISPEXEC SETMSG MSG(ISRZ001)"
           "ISREDIT CURSOR = " ROW COL
           EXIT
        END
     END

     CALL VEX 'V' MEM
/*                                                                    */
     "ISREDIT CURSOR = " ROW COL
  EXIT
/*                                               2011/2012  MCSERRA  */

Comentários

Mensagens populares deste blogue

CC

ED

Z#SQLCOD