Ocultar un parámetro obligatorio cuando el cambio de los botones de la radio

Tengo algunos componentes radiobutton y cuando cambio entre ellos algunos de los bloques de aparecer/desaparecer.
Sin embargo, si yo parámetros establecidos como obligatorios o necesarios que no se esconden, a menos que me llene de ellos. Quiero hacer parámetros necesarios, pero tengo que ocultar cuando me cambie el botón de opción.

  • Por favor, especifique si usted está hablando de una pantalla de selección o una pantalla regular.
  • Lo sentimos, en una selección de pantalla.
InformationsquelleAutor luiserta | 2012-12-07

2 Kommentare

  1. 4

    Supongo que es una pantalla de selección de…

    • luego de bucle en la pantalla y comprobar el valor de «YOUR_RADIO_BUTTON»
    • activar o desactivar los bloques

      AT SELECTION-SCREEN OUTPUT.
      
        LOOP AT SCREEN.
      * Radio button parameter = P_RADIO
      *   hide the parameter named "to_hide" 
          IF P_RADIO EQ 'X' AND SCREEN-NAME CS 'TO_HIDE'.
            SCREEN-INPUT = 0.
            MODIFY SCREEN.
          ENDIF.
      
      *   display the parameter named "to_hide"
          IF P_RADIO <> 'X' AND SCREEN-NAME CS 'TO_HIDE'.
            SCREEN-INPUT = 1.
            MODIFY SCREEN.
          ENDIF.
      
        ENDLOOP.
      
    • Entiendo lo que quieres decir, pero si un parámetro dentro del bloque es obligatorio, no se puede ocultar un bloque debido a que usted necesita para llenar el parámetro obligatorio.
    • El propósito de la solución no funciona debido a que el evento EN la SELECCIÓN de la SALIDA de la PANTALLA no se activará a menos que el parámetro ha sido llenado.
  2. 2

    Si utiliza PARAMETERS ... OBLIGATORY, este es un incondicional de declaración – este parámetro es necesario, independientemente de las otras opciones. Si usted necesita un condicional de verificación, usted tiene el código es para ti:

    PARAMETERS p_chkbuk AS CHECKBOX.
    PARAMETERS p_bukrs  TYPE bukrs.
    
    AT SELECTION-SCREEN ON p_bukrs. 
      IF p_chkbuk = abap_true AND p_bukrs IS INITIAL. 
        MESSAGE 'You need to enter something.' TYPE 'I' DISPLAY LIKE 'E'.
      ENDIF.
    
    • Hmm. Ok. Funciona, pero el programa termina. He encontrado una manera. Simplemente puedo poner MESSAGE 'You need to enter something.' TYPE 'I' DISPLAY LIKE 'E'.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea