/******************** STATEMENTS************************************** ** ** INITIAL (EXTENT) ** E possivel inicializar cada uma das ** extensoes de uma variavel, na pro- ** pria definicao da variavel. ** ** campo-1 NO-LABEL... (DEFINE FRAME...) ** Trata-se de uma caracteristica indi- ** vidual de um determinado dado que ** ocupa espaco na frame. ** ** SKIP(n) ** Ideal para formatar frames quanto ** a salto de linha. ** ** CHOOSE FIELD ** Cria um hightlight sobre as diversas ** extensoes de uma variavel e alimenta ** a variavel ambiente FRAME-VALUE com ** o valor escolhido pelo usuario. ** ** GO-ON (F5) (CHOOSE FIELD...) ** Indica uma tecla opcional para ** confirmar o CHOOSE alem do RETURN ** ** ** AUTO-RETURN (CHOOSE FIELD...) ** Dispensa o uso do RETURN. ** ** PROCEDURE nome-procedure: (Internal Procedure) ** Sao sub-procedures escritas no texto ** da propria procedure principal ** ** RETURN. (Procedure Exit) ** Finaliza uma procedure. ** ** RUN procedure-interna. ** Convoca uma procedure interna. ** **********************************************************************/ Código: DEF VAR opcao AS CHAR EXTENT 5 INITIAL ["Primeiro", "Seguinte", "Anterior", "Ultimo", "Fim"]. DEFINE FRAME f-state SPACE(15) state.state SKIP SPACE(15) state.state-name SKIP SPACE(15) state.region SKIP(1) opcao NO-LABEL SKIP WITH FRAME f-state ROW 6 COLUMN 5 COLOR BLACK/GRAY TITLE "Navegacao" SIDE-LABELS WIDTH 73. DISPLAY opcao WITH FRAME f-state. VIEW FRAME f-state. REPEAT: CHOOSE FIELD opcao GO-ON (F5) AUTO-RETURN WITH FRAME f-state. IF FRAME-VALUE = "PRIMEIRO" THEN DO: FIND FIRST state NO-ERROR. RUN mostra-dados. END. ELSE IF FRAME-VALUE = "Seguinte" THEN DO: FIND NEXT state NO-ERROR. RUN mostra-dados. END. ELSE IF FRAME-VALUE = "ANTERIOR" THEN DO: FIND PREV state NO-ERROR. RUN mostra-dados. END. ELSE IF FRAME-VALUE = "ULTIMO" THEN DO: FIND LAST state NO-ERROR. RUN mostra-dados. END. ELSE RETURN. END. PROCEDURE mostra-dados: IF AVAIL state THEN DISPLAY state.state state.state-name state.region WITH FRAME f-state. END.