ABAPbeginner

ABAP Reporting: Classical & Interactive Reports

Building list-based reports using events like AT SELECTION-SCREEN, START-OF-SELECTION, and interactive drill-down with AT LINE-SELECTION.

Classical reporting is the oldest ABAP paradigm and still the backbone of countless custom reports across every SAP landscape, so interviewers use it as a baseline sanity check before moving to more advanced topics like ALV or Fiori. A candidate unable to describe the event-driven flow of a classical report likely hasn't spent real time in an ABAP editor.

A classical report is like a factory assembly line with fixed stations (events) the raw material (data) passes through in strict order; interactive drill-down is like a store directory where clicking a department name takes you to a more detailed aisle map.

Key Concepts

1
A classical report is structured around predictable events fired by the runtime in a fixed order: INITIALIZATION (before the selection screen displays), AT SELECTION-SCREEN (validation after user input), START-OF-SELECTION (main processing logic - the default event if none is named), and END-OF-SELECTION. Selection screens are built declaratively with PARAMETERS and SELECT-OPTIONS, and interviewers often probe whether a candidate knows the difference (a parameter is a single value input; a select-option generates a full range table with SIGN/OPTION/LOW/HIGH allowing complex ranges like BT, CP, NE).
INITIALIZATIONAT SELECTION-SCREENSTART-OF-SELECTIONEND-OF-SELECTIONPARAMETERS
2
Interactive reporting adds drill-down behavior via AT LINE-SELECTION (double-click on a basic list line producing detail lists), AT USER-COMMAND (custom toolbar buttons/function codes), and HIDE/GET CURSOR to remember which line/field a user clicked to conditionally branch the next list level. This is the mechanism behind classic drill-down reports before ALV interactivity became standard.
AT LINE-SELECTIONAT USER-COMMANDHIDEGET CURSOR
3
A mature answer distinguishes when classical/interactive reporting is still appropriate (background jobs, simple internal utility reports, technical/debug listings) versus when ALV or Fiori should be used instead (any user-facing report needing sort/filter/export), showing judgment about tool selection rather than defaulting to whichever technique was learned first.