Los ALV (Abap List Viewer) es la herramienta de SAP para presentar los informes de una manera más practica y funcional que los típicos listados de texto plano. Su interface permite funcionalidades como filtros, subtotales, totales, variantes de visualización, etc...
Crystal Reports es un aplicación, adquirida por SAP en el 2007, que sirve para diseñar y generar informes desde una amplia gama de fuentes de datos.
En el ultimo proyecto que he trabajado, el cliente nos pidió que varios ALV pudiesen se impresos en un formato concreto y utilizando Crystal Reports. Reconozco que nunca había trabajado Crystal Reports, si era necesario imprimir el informe, creaba un smartforms y lo llamaba desde el ALV, pero nunca había intentado integrar ALV y Crystal Reports.
Por suerte existe INTERNET.
Los requerimientos minimos para poder integrar ALV y Crystal Report son:
- SapGui 7.10 o superior.
- SAP Business Suite 7 Innovations 2010
- SAP Crystal Reports 2008 SP02 o superior.
Software Downloads > Installations and Upgrade > Search for installations and Upgrade > Buscar "CR ADD-ON FOR BS APPS 1.0"
Click, y en la nueva ventana, Click en "Installation" , descargamos el archivo ZIP.
Descomprimir e instalar el add-on.
Despues, comprobamos que en nuestro sistema SAP se puede utilizar Crytal Repport (ECC 6.0).
Primero vamos a la transacción SALV_GUI_CUST o a través de la SPRO:
IMG > SAP NetWeaver > Application Server > SAP List Viewer > Maintain SAP GUI Specific Settings
Por ejemplo, ejecutamos el sencillo programa BALVSD02_GRID desde la transacción SE38.
El menú superior, en VISTA o VIEW, aparecerá ahora la opción CRYSTAL REPORT.
![]() |
Si os da algún error cuando intentéis pasar a la vista de Crystal Report, por ejemplo CR101, revisar la siguiente nota:
Note 1371966 - ALV/Crystal Reports Integration: Collective note corrections
Note 1371966 - ALV/Crystal Reports Integration: Collective note corrections
¿Como se añade esa opción en los Status GUI de mis ALV ?
Si estáis utilizando un ALV con un Status GUI personalizado, no aparecerá la opción CRYSTAL REPORT.
Tenéis que añadir dos fcodes al Status GUI:
- Cod. de funcion &VCRYSTAL: Activa la vista crystal report
- Cod. de funcion &VGRID: Activa la vista ALV normal
Vamos a modificar el programa Z_ALV_TO_EXCEL de la anterior entrada para que pueda verse con crystal report.
Aqui teneis el codigo del programa sin adaptar para crystal report.
Primero le añadimos los códigos de funciones al Status GUI del ALV
![]() |
Cod. de función standard para crystal report / Alv |
También marcamos la opción de la función REUSE_ALV_GRID_DISPLAY para grabar layout.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = g_repid i_callback_user_command = 'USER_COMMAND_01' i_callback_pf_status_set = 'SET_PF_STATUS_01' i_structure_name = 'T_OUTTAB' is_layout = gs_layout it_fieldcat = gt_fieldcat[] * it_sort = gt_sort[] * it_excluding = gt_exclude[] * I_DEFAULT = 'X' i_save = 'A' "<-------grabar layouts
is_variant = ls_vari it_events = gt_events[] TABLES t_outtab = ti_spfli EXCEPTIONS program_error = 1 OTHERS = 2.
Ejecutamos el programa.
Si tenemos instalado el SAP Crystal Reports 2008 SP02 o superior podemos descargarnos el formulario a un archivo RPT y modificarlo.
Una vez modificado, importamos el archivo RPT a SAP.
Por ultimo, para que pueda ser visualizado por cualquier usuario que ejecute el programa, grabamos el formulario de crystal report modificado como un layout del ALV.
Cuando el usuario ejecute el programa seleccionara el layout o se puede dejar como layout por defecto.
Fuentes:
Si tenemos instalado el SAP Crystal Reports 2008 SP02 o superior podemos descargarnos el formulario a un archivo RPT y modificarlo.
Una vez modificado, importamos el archivo RPT a SAP.
Por ultimo, para que pueda ser visualizado por cualquier usuario que ejecute el programa, grabamos el formulario de crystal report modificado como un layout del ALV.
Cuando el usuario ejecute el programa seleccionara el layout o se puede dejar como layout por defecto.
Fuentes: