PDA

Ver la Versión Completa : Mostrar distintos ALV....


Rebe22
20/10/08, 13:56:29
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
20/10/08, 14:13:45
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.

Rebe22
20/10/08, 14:21:05
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


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.

DavidXD_XD
20/10/08, 15:36:46
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 :D

cmejiab
20/10/08, 16:01:00
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

Rebe22
20/10/08, 16:07:47
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...

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!!!


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

cmejiab
21/10/08, 19:45:12
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

r.velasco
23/10/08, 16:05:13
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.