Anuncio

Colapsar
No hay anuncio todavía.

selection screen dynamico

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • selection screen dynamico

    Que tal Gente! como estan? de seguro mejor que yo jeje..
    Les consulto a uds por este problema que me aqueja. Tengo una pantalla de seleccion en la cual tengo dos radiobuttons, en el cual 'una parametro', se afectado por los mismos.
    Es decir cuando un radiobutton este seleccionado esta 'variable' tiene que estar deshabilitada o desaparecer, y cuando este seleccionado el otro radiobutton, tiene que aparcer la variable. Por lo que encontre, tengo que usar el loop at screen y luego activar y desactivar, pero no lo consigo. Este es mi intento:

    SELECT-OPTIONS:
    s_bukrs FOR T001-BUKRS NO-EXTENSION OBLIGATORY NO INTERVALS ,
    s_gjahr FOR BKPF-GJAHR NO-EXTENSION OBLIGATORY NO INTERVALS,
    s_monat FOR BKPF-MONAT NO-EXTENSION OBLIGATORY NO INTERVALS.

    SELECTION-SCREEN BEGIN OF BLOCK eje_1 WITH FRAME TITLE text-001.

    PARAMETERS:
    p_file TYPE ibipparms-path OBLIGATORY,"Directorio
    rb_gen1 TYPE c RADIOBUTTON GROUP a1 DEFAULT 'X',
    rb_gen2 TYPE c RADIOBUTTON GROUP a1.

    SELECT-OPTIONS s_salida FOR BKPF-GJAHR NO-EXTENSION NO INTERVALS MODIF ID F1.

    SELECTION-SCREEN END OF BLOCK EJE_1.

    Luego en el evento at selection...

    ************************************************** ********************
    AT SELECTION-SCREEN OUTPUT.
    ************************************************** ********************
    LOOP AT SCREEN.
    CASE screen-group1.
    WHEN 'F1'.

    IF rb_gen1 IS INITIAL.

    screen-active = '0'.
    ELSE.

    screen-active = '1'.

    ENDIF.

    WHEN OTHERS.
    screen-active = '1'.

    ENDCASE.
    MODIFY SCREEN.
    ENDLOOP.

    **********************************************
    Y saque un ejemplo de un chino XD...en el cual lo hace con dos radiobutton y dos parametros, lo cual esta perfecto y anda joya. Pero en mi caso tengo en el mismo bloque los parametros ...y no le encuentro la vuelta.
    Este es el ejemplo:
    PARAMETERS: p1 TYPE c RADIOBUTTON GROUP g1 USER-COMMAND uc,
    p2 TYPE c RADIOBUTTON GROUP g1 DEFAULT 'X'.
    PARAMETERS: p_werks TYPE werks MODIF ID ty1,
    p_matnr TYPE matnr MODIF ID ty2.

    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
    CASE screen-group1.
    WHEN 'TY1'.
    IF p1 IS INITIAL.
    screen-active = '0'.
    ELSE.
    screen-active = '1'.
    ENDIF.
    WHEN 'TY2'.
    IF p2 IS INITIAL.
    screen-active = '0'.
    ELSE.
    screen-active = '1'.
    ENDIF.
    ENDCASE.
    MODIFY SCREEN.
    ENDLOOP.

    AT SELECTION-SCREEN.
    CLEAR sy-ucomm.

    Desde antemano muchas gracias por su ayuda.

    saludos!

  • #2
    selection-screen dynamico

    Otra consulta, si en vez de hacer desaparercer el campo. Se puede dejar deshabilitado simplemente?

    Comentario


    • #3
      Hola!

      puedes probar con este código, seguramente te será de utilidad:

      Código:
      REPORT ZRADIO_BUTTONS. 
      PARAMETERS: p_1(10) MODIF ID A, 
                             p_2(2)   MODIF ID B, 
                             p_3(5). 
      PARAMETERS: p_A RADIOBUTTON GROUP rad1 USER-COMMAND ACT DEFAULT 'X', 
                             p_B RADIOBUTTON GROUP rad1. 
      
      AT SELECTION-SCREEN OUTPUT. 
      LOOP AT screen. 
        IF p_A = 'X'. 
           IF screen-group1 = 'B'. 
           screen-active = 0. 
           ENDIF. 
        ELSEIF p_B = 'X'. 
          IF screen-group1 = 'A'. 
          screen-active = 0. 
          ENDIF. 
        ENDIF.
      
        MODIFY screen. 
      ENDLOOP.
      También puede interesarte este post para el caso que lo quieras hacer en una dynpro:
      Foros de SAP, Manuales y empleos SAP en la mayor comunidad SAP de habla hispana, SAP HANA, SAP Fiori, SD, MM, HR

      Comentario

      Trabajando...
      X