ABAP Report Template Generator
ABAPNewGenerate complete ABAP report program templates with selection screen, ALV output, authority checks, and message handling. Configurable for classic and modern ABAP.
Generated ABAP Report
REPORT ZMY_REPORT
TITLE 'My ABAP Report'.
*----------------------------------------------------------------------*
* Type definitions
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_data,
" TODO: Add fields matching VBAK
mandt TYPE mandt,
END OF ty_data.
*----------------------------------------------------------------------*
* Global data declarations
*----------------------------------------------------------------------*
DATA: lt_data TYPE TABLE OF ty_data,
ls_data TYPE ty_data.
*----------------------------------------------------------------------*
* Selection Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_bukrs FOR vbak-mandt.
PARAMETERS: p_maxrow TYPE i DEFAULT 1000.
SELECTION-SCREEN END OF BLOCK b1.
*----------------------------------------------------------------------*
* Authorization Check
*----------------------------------------------------------------------*
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD 'ZMY_REPORT'.
IF sy-subrc <> 0.
MESSAGE e001(00) WITH 'Unauthorized access'.
LEAVE PROGRAM.
ENDIF.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
" TODO: Set default values for selection screen
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
" Fetch data
SELECT *
FROM VBAK
INTO TABLE @lt_data
WHERE mandt IN @s_bukrs
UP TO @p_maxrow ROWS.
IF sy-subrc <> 0.
MESSAGE s001(00) WITH 'No data found'.
RETURN.
ENDIF.
*----------------------------------------------------------------------*
* END-OF-SELECTION
*----------------------------------------------------------------------*
END-OF-SELECTION.
DATA lo_salv TYPE REF TO cl_salv_table.
TRY.
cl_salv_table=>factory(
IMPORTING r_salv_table = lo_salv
CHANGING t_table = lt_data ).
lo_salv->get_columns( )->set_optimize( abap_true ).
lo_salv->get_display_settings( )->set_list_header( 'My ABAP Report' ).
lo_salv->get_functions( )->set_all( abap_true ).
lo_salv->display( ).
CATCH cx_salv_msg INTO DATA(lx_salv).
MESSAGE lx_salv->get_text( ) TYPE 'E'.
ENDTRY.
Advertisement
Frequently Asked Questions
What is the difference between a REPORT and a PROGRAM in ABAP?
REPORT is an ABAP program type (type 1) intended for executable programs with a selection screen and ALV output. PROGRAM is a more generic statement. In practice, executable ABAP programs start with REPORT or PROGRAM interchangeably, but REPORT is the convention for user-executable reports.
Should I use ALV GRID or ALV LIST for new reports?
Use ALV Grid (CL_GUI_ALV_GRID or SALV_TABLE) for new development. It supports column freezing, sort/filter, export to Excel, and in-place editing. Classic ALV LIST (REUSE_ALV_LIST_DISPLAY) is outdated but still used in legacy systems.
How do I add an authority check to my ABAP report?
Use AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD 'YT01'. If sy-subrc <> 0, call MESSAGE E...(). Add authority checks at report start and before any sensitive data access. The generated template includes a placeholder for authority checks.
Advertisement