Ayuda con screen de un report!!!!

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Marat
    Junior Member
    • ago
    • 19

    #1

    Ayuda con screen de un report!!!!

    Holaaaaa!!!
    LLevo un mes programando en ABAP y aun estoy muy verde. Tengo un problemilla. Me han pedido que cree un report (sin dynpro) con 4 radiobuttons. Al pulsar en uno de ellos se deben mostrar una serie de parametros, pero al seleccionar otro, esos parametros deben desaparecer y aparecer otros distintos.
    He estado leyendo por el foro algunas cosas interesantes, pero a mi no me funcionan...ni el LOOP AT SCREEN, ni nada de nada.

    Esto es lo que he puesto, a ver si alguien me puede ayudar:
    SELECTION-SCREEN: BEGIN OF BLOCK bloq1 WITH FRAME TITLE text-001.

    PARAMETERS: r1 RADIOBUTTON GROUP g1,
    r2 RADIOBUTTON GROUP g1,
    r3 RADIOBUTTON GROUP g1,
    r4 RADIOBUTTON GROUP g1.
    PARAMETERS: p1(128) TYPE C default ' ' MODIF ID g2. "parametro con la ruta completa del fichero
    SELECTION-SCREEN: END OF BLOCK bloq1.

    T SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
    IF r1 = 'X'.
    IF SCREEN-GROUP1 = 'g2'.
    SCREEN-INVISIBLE = 0.
    SCREEN-INPUT = 1.
    ENDIF.
    ELSE.
    IF SCREEN-GROUP1 = 'g2'.
    SCREEN-INVISIBLE = 1.
    SCREEN-INPUT = 0.
    ENDIF.
    ENDIF.
    * Se actualizan las modificaciones en la tabla SCREEN
    MODIFY SCREEN.
    ENDLOOP.

    Por favor si alguien me puede ayudar o indicarme donde puedo consultarlo se lo agradezco mucho!!!
    marat
  • ballan
    Senior Member
    • oct
    • 671

    #2
    Aqui tienes un pequeño ejemplo, la clave esta en que tiene que asignarle un user-command a algun elemento para que pase por el evento at selection-screen output

    En los programas de carga dependiendo de si van a hacerla con fichero local o en el servidor quiero que cambie el parametro que acepta la ruta dependiendo del radiobutton que pinchen y yo lo hago asi


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

    PARAMETERS: p_local RADIOBUTTON GROUP 001 USER-COMMAND a1 DEFAULT 'X'.
    PARAMETERS: p_fondo RADIOBUTTON GROUP 001.

    PARAMETERS: p_filel TYPE rlgrap-filename MODIF ID 002.
    PARAMETERS: p_filef TYPE string MODIF ID 003.

    PARAMETERS: p_test AS CHECKBOX.
    PARAMETERS: p_jd TYPE apqi-groupid OBLIGATORY DEFAULT text-002.

    SELECTION-SCREEN: END OF BLOCK a1.

    AT SELECTION-SCREEN OUTPUT.

    IF NOT p_local IS INITIAL.

    LOOP AT SCREEN.

    IF screen-group1 = '002'.

    screen-output = 1.
    screen-input = 1.
    screen-invisible = 0.
    MODIFY SCREEN.

    ELSEIF screen-group1 = '003'.

    screen-output = 0.
    screen-input = 0.
    screen-invisible = 1.
    MODIFY SCREEN.

    ENDIF.

    ENDLOOP.

    ELSE.

    LOOP AT SCREEN.

    IF screen-group1 = '002'.

    screen-output = 0.
    screen-input = 0.
    screen-invisible = 1.
    MODIFY SCREEN.

    ELSEIF screen-group1 = '003'.

    screen-output = 1.
    screen-input = 1.
    screen-invisible = 0.
    MODIFY SCREEN.

    ENDIF.

    ENDLOOP.

    ENDIF.

    Comentario

    • robert_milan
      Senior Member
      • jun
      • 315

      #3
      VE SI ESTE EJEMPLO TE PUEDE SERVIR

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

      PARAMETERS: carga RADIOBUTTON GROUP g1 USER-COMMAND ent,
      modifica RADIOBUTTON GROUP g1,
      casa RADIOBUTTON GROUP g1,
      anula RADIOBUTTON GROUP g1.
      PARAMETERS: p_file(128) TYPE C default ' ' MODIF ID g2. "parametro con la ruta completa del fichero
      SELECTION-SCREEN: END OF BLOCK bloq1.

      INITIALIZATION.
      LOOP AT SCREEN.
      IF SCREEN-NAME = 'P_FILE' OR SCREEN-NAME = '%_P_FILE_%_APP_%-TEXT'.
      SCREEN-INVISIBLE = 1.
      SCREEN-INPUT = 0.
      ENDIF.
      * Se actualizan las modificaciones en la tabla SCREEN
      MODIFY SCREEN.
      ENDLOOP.

      AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
      IF carga = 'X'.
      IF SCREEN-NAME = 'P_FILE' OR SCREEN-NAME = '%_P_FILE_%_APP_%-TEXT'.
      SCREEN-INVISIBLE = 0.
      SCREEN-INPUT = 1.
      ENDIF.
      ELSE.
      IF SCREEN-NAME = 'P_FILE' OR SCREEN-NAME = '%_P_FILE_%_APP_%-TEXT'.
      SCREEN-INVISIBLE = 1.
      SCREEN-INPUT = 0.
      ENDIF.
      ENDIF.
      * Se actualizan las modificaciones en la tabla SCREEN
      MODIFY SCREEN.
      ENDLOOP.

      SALUDOS
      Un Huevon No Inútil


      Solo di lo que piensas, a la mejor tienes la mejor respuesta....

      Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

      Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

      Consultor FI jr/ABAP Sr.

      Comentario

      Trabajando...