Autor Tema: Pantalla de Selección Dinámico  (Leído 16653 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado oscar

  • Administrador
  • Usuario Sr.
  • *****
  • Mensajes: 112
    • Ver Perfil
Pantalla de Selección Dinámico
« en: 12 de Julio de 2007, 09:25:58 am »
Este es un ejemplo de una pantalla de Seleción Dinámica.

Simplemente hay que pinchar en los RADIOBUTTON y ver que pasa.

Código: [Seleccionar]
*&---------------------------------------------------------------------*
*& Report  ZPANTALLA_DINAMICA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

  REPORT  zpantalla_dinamica.
  TABLES: trdir.

  SELECTION-SCREEN BEGIN OF BLOCK uno WITH FRAME TITLE text-001.
  PARAMETERS: r_opt01 RADIOBUTTON GROUP rad1,
              r_opt02 RADIOBUTTON GROUP rad1,
              r_opt03 RADIOBUTTON GROUP rad1,
              r_opt04 RADIOBUTTON GROUP rad1.

  SELECTION-SCREEN SKIP.

  PARAMETERS: p_opt01 RADIOBUTTON GROUP rad2 USER-COMMAND aaa,
              p_opt02 RADIOBUTTON GROUP rad2,
              p_opt03 RADIOBUTTON GROUP rad2,
              p_opt04 RADIOBUTTON GROUP rad2.
  SELECTION-SCREEN END OF BLOCK uno.

  SELECTION-SCREEN BEGIN OF BLOCK dos WITH FRAME TITLE text-002.
  SELECT-OPTIONS: s_opt1 FOR trdir-cnam,
                  s_opt22 FOR trdir-cnam,
                  s_opt333 FOR trdir-cnam,
                  s_opt444 FOR trdir-cnam.
  SELECTION-SCREEN END OF BLOCK dos.




  AT SELECTION-SCREEN OUTPUT.

    LOOP AT SCREEN.
*---- Opción 1
      IF r_opt01 = 'X'.
        IF screen-name CS 'S_OPT1'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT22' OR
               screen-name CS 'S_OPT333' OR
               screen-name CS 'S_OPT444' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.

*---- Opción 2
      ELSEIF p_opt02 = 'X'.
        IF screen-name CS 'S_OPT22'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT1' OR
               screen-name CS 'S_OPT333' OR
               screen-name CS 'S_OPT444' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.

*---- Opción 3
      ELSEIF p_opt03 = 'X'.
        IF screen-name CS 'S_OPT333'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT1' OR
               screen-name CS 'S_OPT22' OR
               screen-name CS 'S_OPT444' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.

*---- Opción 4
      ELSEIF p_opt04 = 'X'.
        IF screen-name CS 'S_OPT444'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT1' OR
               screen-name CS 'S_OPT22' OR
               screen-name CS 'S_OPT333' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.