MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Utilizar un layout (foro/showthread.php?t=30403)

jtristan 28/05/09 06:28:10

Utilizar un layout
 
Hola,
estoy viendo ejemplos de como utilizar un layout en un alv. Por lo que veo, el código es OO. Supongo, que con un ALV normal no podré utilizar los layouts, que tengo que utilizar un ALV OO para poder utilizar esas características.

pafú 28/05/09 07:04:31

Que va, puedes utilizar perfectamente el layout sin necesidad de utilizar objetos.

Ej: informando el layout

* PARA ALV
TYPE-POOLS slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
ls_fieldcat TYPE slis_fieldcat_alv,
gs_layout TYPE slis_layout_alv.


* Se informa el layout
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-expand_all = 'X'.
gs_layout-box_tabname = 'I_SALIDA'.

jtristan 28/05/09 07:10:43

Muchas gracias Pafú.
Voy a echar un vistazo al box_tabname y veo como continuar.

jtristan 28/05/09 10:03:43

Despues de investigar un poco el boxtabname que creia que era por donde iban los tiros me da que hemos confundido el tema.
No me refería al layout de un avl, sino, a la opción de poder añadir campos o quitar campos que se visualizan en un informe, y que también se llama layout.
¿Alguien sabe algún sitio donde pueda encontrar un ejemplo?

Muchas gracias.
Un saludo.

PabloGP 28/05/09 14:02:22

Hola, con el parametro IS_LAYOUT podemos pasarle una tabla interna informando de la apariencia del report pero no te sirve para lo que tu quieres. Prueba esto:

FORM ALV.

PERFORM ASIGNAR_VARIANTE.
...
PERFORM LAYOUT.

*- Asignación del programa.
DATA G_REPID LIKE SY-REPID.
G_REPID = SY-REPID.

*- Función alv:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PF_STATUS_SET = 'FIJA_STATUS'
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = CATALOGO
IS_LAYOUT = LAYOUT
I_SAVE = 'A'
IS_VARIANT = I_VARIANT

IT_SORT = I_SORT
IT_EVENTS = T_EVENTOS
I_DEFAULT = 'X'
* IMPORTING
* es_exit_caused_by_user = salida
TABLES
T_OUTTAB = TI_SALIDA
EXCEPTIONS
OTHERS = 1.

ENDFORM.


Tienes que definir los parametros: IS_VARIANT e I_SAVE.

IS_VARIANT
Determina la variante de display con la que se mostrará la tabla de salida del ALV. Se le pasará una estructura definida de tipo DISVARIANT.

DATA: I_VARIANT TYPE DISVARIANT.

FORM VARIANT_BUILD .
I_VARIANT-REPORT = SY-REPID.
I_VARIANT-USERNAME = SY-UNAME.
ENDFORM.

I_SAVE
Para editar la disposición del layout.
Posibles valores (‘A’, ‘U’, 'X‘)
Mejor usa ‘A’ que seleccionará todo tipo de layouts definidos para el programa, tanto estándares como específicos de usuario.


Husos Horarios son GMT. La hora en este momento es 20:31:22.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web