Hola, bueno primero que nada este es mi primer post y quisiera compartir con ustedes el siguiente programa que hice yo, para mostrar un reporte simple, pasando como parámetros la tabla y sus descripciones que finalmente muestra un reporte con un breve titulo.
*&---------------------------------------------------------------------*
*& Report ZAHM_SIMPLE_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report zahm_simple_alv.
type-pools: slis.
*&---------------------------------------------------------------------*
*& Form MOSTRAR_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_ITAB text
*----------------------------------------------------------------------*
form mostrar_alv using p_itab type standard table
wa_itab type any
itab_desc type standard table
titulo type data.
types:
begin of ty_descrip,
campo(20) type c,
end of ty_descrip.
data:
struc_desc type ref to cl_abap_structdescr,
lt_layout type slis_layout_alv,
ls_lvc_fieldcatalogue type lvc_s_fcat,
lt_lvc_fieldcatalogue type lvc_t_fcat,
ls_fieldcatalogue type slis_fieldcat_alv,
lt_fieldcatalogue type slis_t_fieldcat_alv.
field-symbols:
<str_comp> type abap_compdescr,
<fs> type any.
data wa_itab_desc type ty_descrip.
- Obtener lo campos de la estructura
assign wa_itab to <fs>. "asignar la estructura
struc_desc ?= cl_abap_typedescr=>describe_by_data( <fs> ).
loop at struc_desc->components assigning <str_comp>.
ls_lvc_fieldcatalogue-fieldname = <str_comp>-name.
ls_lvc_fieldcatalogue-tabname = 'itab'.
append ls_lvc_fieldcatalogue to lt_lvc_fieldcatalogue.
ls_fieldcatalogue-fieldname = <str_comp>-name.
ls_fieldcatalogue-tabname = 'itab'.
clear wa_itab_desc.
read table itab_desc index sy-tabix into wa_itab_desc.
if sy-subrc = 0.
ls_fieldcatalogue-seltext_l = wa_itab_desc-campo.
else.
ls_fieldcatalogue-seltext_l = <str_comp>-name.
endif.
append ls_fieldcatalogue to lt_fieldcatalogue.
endloop.
- LAYOUT del ALV
lt_layout-zebra = 'X'.
lt_layout-colwidth_optimize = 'X'.
lt_layout-window_titlebar = titulo.
- MOSTRAR el ALV
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
is_layout = lt_layout
it_fieldcat = lt_fieldcatalogue
tables
t_outtab = p_itab
exceptions
program_error = 1
others = 2.
endform. " MOSTRAR_ALV
##Como funciona
Crear otro programa que ejecutara el perform del programa anterior…
report zahm_alv_reporte.
types:
begin of ty_descrip,
campo(20) type c,
end of ty_descrip.
data: it_mean type standard table of mean,
wa_mean like line of it_mean.
data: itab_desc type standard table of ty_descrip,
wa_itab_desc like line of itab_desc,
*|||||||||||||||||||||||||||||||||||||||||||||||||||||||
*|||||||||||||||||||||||||||||||||||||||||||||||||||||||
*|||||||||||||||TABLA MEAN||||||||||||
*|||||||||||||||||||||||||||||||||||||||||||||||||||||||
*|||||||||||||||||||||||||||||||||||||||||||||||||||||||
clear itab_desc.
- Obtener datos para la tabla
select * from mean into table it_mean.
Tabla de Descripciones (crear un metodo para agregar descricpciones) " por default nombre de los campos se11.
*wa_itab_desc-campo = 'Clase'.
*append wa_itab_desc to itab_desc.
- Crear ALV
perform mostrar_alv(zahm_simple_alv) using it_mean wa_mean itab_desc 'prueba ALV dinamico MEAN'.
Saludos!!