SAP ABAP REPORTS
So this is going to be my first article on SAP.
And we will specifically talk about Reports.
Reports are way to show data in some particular format. It may be standard or may be a custom report.
There are different ways in which you can make a report depending on your requirement. Since everything is moving towards Object oriented approach i would suggest you to go through Object oriented concepts as well as cloud based concepts and SAP HANA as it may help you if you are seeking a career in SAP.
We will discuss classical/interactive report in this particular blog.
I will straight away jump into the programming as i will edit the blog to write about the concepts mentioned in this program.
Transaction to create reports — SE38 or SE80
So below is the program for Interactive report.
I have highlighted some of the lines in Bold letters, you must be aware of this as this the very basic to get started with SAP ABAP.
*&———————————————————————*
*& Report ZABCD_PROG2
*&
*&———————————————————————*
*&
*&
*&———————————————————————*
INCLUDE zabcd_prog2_top . ” global Data
* INCLUDE ZABCD_PROG2_O01 . ” PBO-Modules
* INCLUDE ZABCD_PROG2_I01 . ” PAI-Modules
INCLUDE zabcd_prog2_f01. . ” FORM-Routines
AT SELECTION-SCREEN.
IF rbun2 = ‘X’.
MESSAGE ‘HI’ TYPE ‘I’.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
IF P_CHECK = ‘X’.
LOOP AT SCREEN.
IF SCREEN–NAME = ‘P_MATNR’.
SCREEN–INPUT = ‘0’.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MATNR.
PERFORM GET_HELP.
READ TABLE IT_MAKT INTO WA_MAKT INDEX 1.
READ TABLE IT_MAKT ASSIGNING <FS_MAKT> INDEX 1.
START-OF-SELECTION.
IF rbun1 = ‘X’.
PERFORM fetch_data.
ELSE.
MESSAGE ‘PLEASE SELECT R1’ TYPE ‘E’.
ENDIF.
PERFORM display_data.
AT LINE-SELECTION.
PERFORM GET_NEXT_LINE.
*&———————————————————————*
*& Form FETCH_DATA
*&———————————————————————*
* text
*———————————————————————-*
FORM fetch_data.
IF rbun1 = ‘X’.
SELECT mandt
matnr
ersda
ernam
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
ENDIF.
ENDFORM. “FETCH_DATA
*&———————————————————————*
*& Form DISPLAY_DATA
*&———————————————————————*
* text
*———————————————————————-*
FORM display_data.
LOOP AT it_mara INTO wa_mara.
WRITE : / wa_mara–matnr, wa_mara–ersda, wa_mara–ersda, wa_mara–ernam.
HIDE : wa_mara–matnr.
ENDLOOP.
DATA : V_YEAR TYPE I.
V_YEAR = SY–DATUM+0(4).
WRITE : V_YEAR.
ENDFORM. “DISPLAY_DATA
*&———————————————————————*
*& Form GET_NEXT_LINE
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM get_next_line .
SELECT SINGLE MATNR MAKTX FROM MAKT INTO WA_MAKT
WHERE MATNR = WA_MARA–MATNR.
IF SY–SUBRC = 0.
WRITE : / WA_MAKT–MATNe, WA_MAKT–MAKTX.
ENDIF.
ENDFORM. ” GET_NEXT_LINE
*&———————————————————————*
*& Form GET_HELP
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM get_help .
DATA : LT_MAKT TYPE TABLE OF TY_MAKT,
WA_MAKT TYPE TY_MAKT.
SELECT MATNR MAKTX FROM MAKT UP TO 100 ROWS
INTO TABLE LT_MAKT
WHERE SPRAS = ‘E’.
IF SY–SUBRC IS INITIAL.
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
* DDIC_STRUCTURE = ‘ ‘
retfield = ‘MATNR’
* PVALKEY = ‘ ‘
DYNPPROG = SY–REPID
* DYNPNR = ‘ ‘
* DYNPROFIELD = ‘ ‘
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ‘ ‘
VALUE_ORG = ‘S’
* MULTIPLE_CHOICE = ‘ ‘
* DISPLAY = ‘ ‘
* CALLBACK_PROGRAM = ‘ ‘
* CALLBACK_FORM = ‘ ‘
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
tables
value_tab = lt_makt
* FIELD_TAB =
* RETURN_TAB =
* DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy–subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDFORM. ” GET_HELP
************
Code inside the INCLUDE zabcd_prog2_top . This includes contains deceleration of the fields which we will be using in our program.
*********
REPORT zabcd_prog2.
TABLES : mara.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text–001.
PARAMETERS : P_MATNR TYPE CHAR10.
SELECT-OPTIONS : s_matnr FOR mara–matnr.
PARAMETERS : P_CHECK AS CHECKBOX USER-COMMAND TEST.
PARAMETERS : rbun1 RADIOBUTTON GROUP r1 DEFAULT ‘X’,
rbun2 RADIOBUTTON GROUP r1.
SELECTION-SCREEN END OF BLOCK b1.
TYPES : BEGIN OF ty_makt,
matne TYPE matnr,
maktx TYPE maktx,
SPRAS TYPE SPRAS,
END OF ty_makt.
DATA : it_mara TYPE TABLE OF mara,
wa_mara TYPE mara,
it_makt TYPE TABLE OF ty_makt,
wa_makt TYPE ty_makt.
FIELD-SYMBOLS:<FS_MAKT> TYPE TY_MAKT.