Mostrar distintos ALV....

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Rebe22
    Junior Member
    • feb
    • 19

    #1

    Mostrar distintos ALV....

    Buenas a todos!!

    Tengo que hacer un ALV que contenga, dependiendo de un botón en la pantalla inicial me muestre un ALV u otro... es decir, en la pantalla de selección tengo 15 botones, cada uno de esos botones tiene asociado un informe (un ALV) con distintos campos, y tengo que mostrarlos....me han dicho que lo haga de forma "elegante" sin tener que usar 15 tablas.... pero no sé muy bien cómo hacerlo....

    ¿se os ocurre alguna idea? ¿tenéis algún código de ejemplo?

    Muchas gracias,

    Un saludo

    Rebeca
  • jennifer.llerena
    Junior Member
    • oct
    • 1

    #2
    Usar Variant

    Podrías tener una tabla que posea toda la información y ejecutar un sólo ALV. Y para personalizar la información que se muestre según el boton que se seleccione utilizarías diferentes VARIANTS, es un registro de los campos que deseas que se muestre en el ALV.
    Jennifer Mayra Llerena Santa Cruz
    Consultor ABAP Junior

    Comentario

    • Rebe22
      Junior Member
      • feb
      • 19

      #3
      Hola Jennifer,

      Y gracias por contestar, esa opción ya la había pensado pero sólo la podemos utilizar en un caso extremo de que no haya otra forma más "elegante" de hacerlo.... y la verdad que no sé muy bien como... he leído por internet hacerlo con un catálogo dinámico o algo así pero no tengo ni idea de lo que es.... Asique sino lo haré de esa forma, ¿tienes algún código q me puedas pasar con la opción de variants?

      Muchas gracias!

      Saludos!

      Rebeca


      Originalmente publicado por jennifer.llerena
      Podrías tener una tabla que posea toda la información y ejecutar un sólo ALV. Y para personalizar la información que se muestre según el boton que se seleccione utilizarías diferentes VARIANTS, es un registro de los campos que deseas que se muestre en el ALV.

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Hola ... para esa forma elegante necesariamente las 15 tablas tienen que estar integradas en una sola tabla interna ... si eso es posible solo tendrias que crear 15 catalogos que seria obligatorio ... si alguien sabe del catalogo dinamico seria muy buen aporte ... hasta ahora no he visto ningun catalogo dinamico
        David Carballido Córdova

        Comentario

        • cmejiab
          Junior Member
          • nov
          • 13

          #5
          Otra alternativa

          Hola Rebecca

          No se si sea una salida elegante. Pero xq no tienes una sola tabla interna con todos los campos q necesites ( de las 15 tablas), y segun el usuario seleccione muestras o no un determinado campo usando el campo NO_OUT del catalogo.

          es decir gwa_cat-no_out = 'X'. ( para no mostrar ese campo en el ALV)

          Espero que te ayude.

          Saludos
          César

          Comentario

          • Rebe22
            Junior Member
            • feb
            • 19

            #6
            Sí, es lo que hemos pensado creo que al final tiraremos por esa opción... porque creo que va a ser la más sencilla porque se diferencian en 1 dato todos los informes.....

            Una pregunta, cómo le digo al fieldcatalog que muestre uno u otro, es decir como le mando lo de gwa_cat-no_out?

            Por ejemplo tengo esto...

            Código:
            DATA: GS_FIELDCAT_ADD TYPE LVC_S_FCAT.
            
              CLEAR GS_FIELDCAT.
              GS_FIELDCAT-COL_POS   = 1.
              GS_FIELDCAT-REPTEXT   = 'Nº PERSONAL'.
              GS_FIELDCAT-SCRTEXT_S = 'Nº PERSONAL'.
              GS_FIELDCAT-FIELDNAME = 'PERNR'.
              GS_FIELDCAT-OUTPUTLEN = '20'.
              GS_FIELDCAT-TABNAME = 'T_TABLA'.
              APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
            
              CLEAR GS_FIELDCAT.
              GS_FIELDCAT-COL_POS   = 2.
              GS_FIELDCAT-REPTEXT   = 'DNI'.
              GS_FIELDCAT-SCRTEXT_S = 'DNI'.
              GS_FIELDCAT-FIELDNAME = 'PERID'.
              GS_FIELDCAT-TABNAME = 'T_TABLA'.
              APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
            Y con el botón primero muestro el número uno y con el botón segundo el número 2...¿como se lo paso?

            Muchas gracias!!!


            Originalmente publicado por cmejiab
            Hola Rebecca

            No se si sea una salida elegante. Pero xq no tienes una sola tabla interna con todos los campos q necesites ( de las 15 tablas), y segun el usuario seleccione muestras o no un determinado campo usando el campo NO_OUT del catalogo.

            es decir gwa_cat-no_out = 'X'. ( para no mostrar ese campo en el ALV)

            Espero que te ayude.

            Saludos
            César

            Comentario

            • cmejiab
              Junior Member
              • nov
              • 13

              #7
              Algo asi:

              DATA: GS_FIELDCAT_ADD TYPE LVC_S_FCAT.

              CLEAR GS_FIELDCAT.
              GS_FIELDCAT-COL_POS = 1.
              GS_FIELDCAT-REPTEXT = 'Nº PERSONAL'.
              GS_FIELDCAT-SCRTEXT_S = 'Nº PERSONAL'.
              GS_FIELDCAT-FIELDNAME = 'PERNR'.
              GS_FIELDCAT-OUTPUTLEN = '20'.
              GS_FIELDCAT-TABNAME = 'T_TABLA'.
              GS_FIELDCAT-no_out = 'X'. " para no mostrar este campo
              APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.

              CLEAR GS_FIELDCAT.
              GS_FIELDCAT-COL_POS = 2.
              GS_FIELDCAT-REPTEXT = 'DNI'.
              GS_FIELDCAT-SCRTEXT_S = 'DNI'.
              GS_FIELDCAT-FIELDNAME = 'PERID'.
              GS_FIELDCAT-TABNAME = 'T_TABLA'.
              APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.

              Espero te ayude.

              Saludos
              César

              Comentario

              • r.velasco
                Junior Member
                • feb
                • 5

                #8
                Hola rebeca,

                a mi se me ocurre, que si solo se diferencian en 1 campo, cargues todo el fieldcatalog y para el campo que se diferencia uses un CASE-ENDCASE, que según el boton que se ha pulsado rellene el campo de una u otra forma.
                Es más puedes tener en una tabla interna las 15 variantes del campo y en el case seleccionar una direcctamente.


                Saludos.

                Comentario

                Trabajando...