Real-time delivery report in SAP ABAP
Real-time example of displaying delivery details for a range of sales orders in SAP ABAP.
REPORT ZPROJECT_RANGE NO STANDARD PAGE HEADING LINE-COUNT 37(3). TABLES : VBAK,VBAP,VBFA,LIKP,LIPS. TYPES: BEGIN OF TY_VBAK, VBELN TYPE VBAK-VBELN, VKORG TYPE VBAK-VKORG, VTWEG TYPE VBAK-VTWEG, SPART TYPE VBAK-SPART, END OF TY_VBAK. TYPES: BEGIN OF TY_VBAP, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, ZMENG TYPE VBAP-ZMENG, NETPR TYPE VBAP-NETPR, END OF TY_VBAP. TYPES: BEGIN OF TY_LIKP, VBELN TYPE LIKP-VBELN, END OF TY_LIKP. TYPES: BEGIN OF TY_LIPS, VBELN TYPE LIPS-VBELN, POSNR TYPE LIPS-POSNR, LFIMG TYPE LIPS-LFIMG, NETPR TYPE LIPS-NETPR, END OF TY_LIPS. TYPES: BEGIN OF TY_VBFA, VBELV TYPE VBFA-VBELV, POSNV TYPE VBFA-POSNV, VBELN TYPE VBFA-VBELN, POSNN TYPE VBFA-POSNN, VBTYP_N TYPE VBFA-VBTYP_N, END OF TY_VBFA. TYPES: BEGIN OF TY_FINAL, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, ZMENG TYPE VBAP-ZMENG, NETPR TYPE VBAP-NETPR, VBELN1 TYPE LIPS-VBELN, POSNR1 TYPE LIPS-POSNR, LFIMG TYPE LIPS-LFIMG, NETPR1 TYPE LIPS-NETPR, END OF TY_FINAL. DATA : I_VBAK TYPE TABLE OF TY_VBAK,WA_VBAK TYPE TY_VBAK. DATA : I_VBAP TYPE TABLE OF TY_VBAP,WA_VBAP TYPE TY_VBAP. DATA : I_LIKP TYPE TABLE OF TY_LIKP,WA_LIKP TYPE TY_LIKP. DATA : I_LIPS TYPE TABLE OF TY_LIPS,WA_LIPS TYPE TY_LIPS. DATA : I_VBFA TYPE TABLE OF TY_VBFA,WA_VBFA TYPE TY_VBFA. DATA : I_FINAL TYPE TABLE OF TY_FINAL,WA_FINAL TYPE TY_FINAL. DATA : V_TITLE TYPE STRING. DATA : V_FNAME TYPE STRING. SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN NO-EXTENSION. SELECT-OPTIONS : S_VKORG FOR VBAK-VKORG NO INTERVALS NO-EXTENSION. SELECT-OPTIONS : S_VTWEG FOR VBAK-VTWEG NO INTERVALS NO-EXTENSION. SELECT-OPTIONS : S_SPART FOR VBAK-SPART NO INTERVALS NO-EXTENSION. SELECTION-SCREEN END OF BLOCK B1. SELECTION-SCREEN SKIP. PARAMETERS : P_FILE TYPE RLGRAP-FILENAME. PARAMETERS : DOWNLOAD AS CHECKBOX. INITIALIZATION. V_TITLE = 'SALES DOCUMENT:ITEM DATA AND DELIVERY DETAILS'. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. PERFORM GET_FILE_PATH. AT SELECTION-SCREEN ON HELP-REQUEST FOR P_FILE. PERFORM GET_HELP_FOR_FILE_PATH. AT SELECTION-SCREEN. PERFORM VALIDATE_SALESDOCUMENT. PERFORM VALIDATE_SALESORGANIZATION. PERFORM VALIDATE_DISTRIBUTIONCHANNEL. PERFORM VALIDATE_DIVISION. START-OF-SELECTION. PERFORM GET_DATA. PERFORM DISPLAY_DATA. PERFORM DOWNLOAD_DATA. END-OF-SELECTION. TOP-OF-PAGE. PERFORM DISPLAY_HEADING. END-OF-PAGE. PERFORM DISPLAY_FOOTER. FORM GET_FILE_PATH . CALL FUNCTION 'KD_GET_FILENAME_ON_F4' EXPORTING PROGRAM_NAME = SYST-REPID DYNPRO_NUMBER = SYST-DYNNR FIELD_NAME = P_FILE CHANGING FILE_NAME = P_FILE. ENDFORM. " GET_FILE_PATH FORM GET_HELP_FOR_FILE_PATH . MESSAGE 'PLEASE SELECT FILE PATH' TYPE 'I'. ENDFORM. " GET_HELP_FOR_FILE_PATH FORM VALIDATE_SALESDOCUMENT . SELECT SINGLE VBELN FROM VBAK INTO WA_VBAK WHERE VBELN IN S_VBELN. IF SY-SUBRC <> 0. MESSAGE 'INVALID SALES DOCUMENT NO' TYPE 'I'. ENDIF. ENDFORM. " VALIDATE_SALESDOCUMENT FORM VALIDATE_SALESORGANIZATION . SELECT VKORG FROM VBAK INTO WA_VBAK UP TO 1 ROWS WHERE VKORG IN S_VKORG. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE 'INVALID SALES ORGANIZATION' TYPE 'I'. ENDIF. ENDFORM. " VALIDATE_SALESORGANIZATION FORM VALIDATE_DISTRIBUTIONCHANNEL. SELECT VTWEG FROM VBAK INTO WA_VBAK UP TO 1 ROWS WHERE VTWEG IN S_VTWEG. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE 'INVALID DISTRIBUTION CHANNEL' TYPE 'I'. ENDIF. ENDFORM. " VALIDATE_DISTRIBUTIONCHANNEL FORM VALIDATE_DIVISION . SELECT SPART FROM VBAK INTO WA_VBAK UP TO 1 ROWS WHERE SPART IN S_SPART. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE 'INVALID DIVISION' TYPE 'I'. ENDIF. ENDFORM. " VALIDATE_DIVISION FORM GET_DATA . SELECT VBELN VKORG VTWEG SPART FROM VBAK INTO TABLE I_VBAK WHERE VBELN IN S_VBELN AND VKORG IN S_VKORG AND VTWEG IN S_VTWEG AND SPART IN S_SPART. IF I_VBAK IS NOT INITIAL. SELECT VBELN POSNR MATNR ZMENG NETPR FROM VBAP INTO TABLE I_VBAP FOR ALL ENTRIES IN I_VBAK WHERE VBELN = I_VBAK-VBELN. SELECT VBELV POSNV VBELN POSNN VBTYP_N FROM VBFA INTO TABLE I_VBFA FOR ALL ENTRIES IN I_VBAP WHERE VBELV = I_VBAP-VBELN AND VBTYP_N = 'J'. SELECT VBELN FROM LIKP INTO TABLE I_LIKP FOR ALL ENTRIES IN I_VBFA WHERE VBELN = I_VBFA-VBELN. SELECT VBELN POSNR LFIMG NETPR FROM LIPS INTO TABLE I_LIPS FOR ALL ENTRIES IN I_LIKP WHERE VBELN = I_LIKP-VBELN. SORT I_VBAP. SORT I_LIPS. LOOP AT I_VBFA INTO WA_VBFA. READ TABLE I_LIPS INTO WA_LIPS WITH KEY VBELN = WA_VBFA-VBELN POSNR = WA_VBFA-POSNN BINARY SEARCH. READ TABLE I_VBAP INTO WA_VBAP WITH KEY VBELN = WA_VBFA-VBELV POSNR = WA_VBFA-POSNV BINARY SEARCH. WA_FINAL-VBELN = WA_VBAP-VBELN. WA_FINAL-POSNR = WA_VBAP-POSNR. WA_FINAL-MATNR = WA_VBAP-MATNR. WA_FINAL-ZMENG = WA_VBAP-ZMENG. WA_FINAL-NETPR = WA_VBAP-NETPR. WA_FINAL-VBELN1 = WA_LIPS-VBELN. WA_FINAL-POSNR1 = WA_LIPS-POSNR. WA_FINAL-LFIMG = WA_LIPS-LFIMG. WA_FINAL-NETPR1 = WA_LIPS-NETPR. APPEND WA_FINAL TO I_FINAL. CLEAR WA_FINAL. ENDLOOP. ENDIF. ENDFORM. " GET_DATA FORM DISPLAY_DATA . LOOP AT I_FINAL INTO WA_FINAL. WRITE : / WA_FINAL-VBELN,WA_FINAL-POSNR,WA_FINAL-MATNR,WA_FINAL-ZMENG,WA_FINAL-NETPR, WA_FINAL-VBELN1,WA_FINAL-POSNR1,WA_FINAL-LFIMG,WA_FINAL-NETPR. ENDLOOP. ENDFORM. " DISPLAY_DATA FORM DOWNLOAD_DATA . IF DOWNLOAD = 'X'. V_FNAME = P_FILE. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = V_FNAME FILETYPE = 'ASC' WRITE_FIELD_SEPARATOR = 'X' TABLES DATA_TAB = I_FINAL. IF SY-SUBRC = 0. MESSAGE 'DATA SUCCESSFULLY DOWNLOADED' TYPE 'I'. ENDIF. ENDIF. ENDFORM. " DOWNLOAD_DATA FORM DISPLAY_HEADING . WRITE: SY-ULINE. WRITE :/45 V_TITLE. WRITE: SY-ULINE. ENDFORM. " DISPLAY_HEADING FORM DISPLAY_FOOTER . WRITE: SY-ULINE. WRITE :/45 'INTEL GROUP OF COMPANIES'. WRITE: SY-ULINE. ENDFORM. " DISPLAY_FOOTER
Classical Report with top of page and end of page in SAP ABAP
Real-time classical report with top of page and end of page in SAP ABAP
*&---------------------------------------------------------------------* *& Report ZCLASSICAL_REPORT * *& * REPORT ZCLASSICAL_REPORT NO STANDARD PAGE HEADING LINE-SIZE 120 LINE-COUNT 10(1). TABLES: MARA, "Material Master T001W. "Plant Master DATA: V_LINE TYPE I. DATA: BEGIN OF IT_MARD OCCURS 1, MATNR LIKE MARA-MATNR, MAKTX LIKE MAKT-MAKTX, WERKS LIKE MARD-WERKS, LGORT LIKE MARD-LGORT, LABST LIKE MARD-LABST, END OF IT_MARD. SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR, S_WERKS FOR T001W-WERKS. PARAMETERS: P1 TYPE I. SELECTION-SCREEN: END OF BLOCK B1. INITIALIZATION. S_MATNR-LOW = '100-100'. S_MATNR-HIGH = '100-500'. S_MATNR-SIGN = 'I'. S_MATNR-OPTION = 'BT'. APPEND S_MATNR. S_WERKS-LOW = '0001'. S_WERKS-HIGH = '3800'. S_WERKS-SIGN = 'I'. S_WERKS-OPTION = 'BT'. APPEND S_WERKS. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF SCREEN-NAME = 'S_WERKS-LOW'. SCREEN-REQUIRED = 1. * SCREEN-INPUT = 0. * SCREEN-INVISIBLE = 1. MODIFY SCREEN. ENDIF. ENDLOOP. AT SELECTION-SCREEN. AT SELECTION-SCREEN ON S_WERKS. IF NOT S_WERKS[] IS initial. PERFORM VALIDATE_PLANT. ENDIF. AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERKS-LOW. MESSAGE I000(Z00) WITH 'On Value Request'. AT SELECTION-SCREEN ON HELP-REQUEST FOR P1. MESSAGE I000(Z00) WITH 'On Help Request'. START-OF-SELECTION. PERFORM GET_DATA. END-OF-SELECTION. PERFORM SHOW_LIST. *----------------------------------------------------------------------* * TOP-OF-PAGE *----------------------------------------------------------------------* TOP-OF-PAGE. PERFORM BUILD_PAGE_HEADER. END-OF-PAGE. PERFORM BUILD_PAGE_FOOTER. FORM VALIDATE_PLANT . SELECT WERKS FROM T001W INTO T001W-WERKS UP TO 1 ROWS WHERE WERKS IN S_WERKS. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE E000(Z00) WITH 'Invalid Range of Plants' S_WERKS-LOW 'And' S_WERKS-HIGH. ENDIF. ENDFORM. " VALIDATE_PLANT FORM GET_DATA . SELECT A~MATNR B~MAKTX C~WERKS C~LGORT C~LABST INTO TABLE IT_MARD FROM MARA AS A INNER JOIN MAKT AS B ON B~MATNR = A~MATNR INNER JOIN MARD AS C ON C~MATNR = A~MATNR WHERE A~MATNR IN S_MATNR AND C~WERKS IN S_WERKS AND SPRAS = SY-LANGU. ENDFORM. " GET_DATA FORM BUILD_PAGE_HEADER . FORMAT INTENSIFIED ON COLOR COL_HEADING. ULINE AT (105). WRITE:/ SY-VLINE, 'Material No', 20 SY-VLINE, 'Material Desc', 62 SY-VLINE, 'Plant', 72 SY-VLINE, 'Str.Loc', 81 SY-VLINE, 'Qty', 105 SY-VLINE. ULINE AT (105). FORMAT RESET. ENDFORM. " BUILD_PAGE_HEADER FORM SHOW_LIST . LOOP AT IT_MARD. WRITE:/ SY-VLINE, IT_MARD-MATNR, 20 SY-VLINE, IT_MARD-MAKTX, 62 SY-VLINE, IT_MARD-WERKS, 72 SY-VLINE, IT_MARD-LGORT, 81 SY-VLINE, IT_MARD-LABST, 105 SY-VLINE. ENDLOOP. ULINE AT (105). *--footer for last page conditionally V_LINE = ( SY-LINCT - SY-LINNO ) - 1. SKIP V_LINE. ENDFORM. " SHOW_LIST FORM BUILD_PAGE_FOOTER . WRITE:/90 'Page :', SY-PAGNO. ENDFORM. " BUILD_PAGE_FOOTER
Interactive Report -1
Example for Interactive Report :
*&---------------------------------------------------------------------*
*& Report ZINT_REPORT *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZINT_REPORT
NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 20(2).
DATA: IT_VBRK LIKE VBRK OCCURS 1 WITH HEADER LINE,
IT_VBRP LIKE VBRP OCCURS 1 WITH HEADER LINE.
DATA: V_LINE TYPE I,
V_VBELN LIKE VBRK-VBELN.
SELECT-OPTIONS: S_VBELN FOR IT_VBRK-VBELN.
START-OF-SELECTION.
PERFORM GET_DATA.
END-OF-SELECTION.
IF NOT IT_VBRK[] IS INITIAL.
PERFORM SHOW_BLIST.
ELSE.
MESSAGE I000(Z00) WITH 'No Data found to display'.
ENDIF.
TOP-OF-PAGE.
PERFORM BUILD_PAGE_HEADER.
END-OF-PAGE.
PERFORM BUILD_PAGE_FOOTER.
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND = 1.
PERFORM SEC_PAGE_HEADER.
* ELSEIF SY-LSIND = 2.
* WRITE:/ 'PAGE HEADER FOR 2ND SECONDARY LIST'.
* ELSE.
* WRITE:/ 'PAGE HEADER FOR SECONDARY LIST'.
ENDIF.
AT LINE-SELECTION.
IF SY-LSIND = 1.
PERFORM SHOW_SLIST.
ENDIF.
AT PF5.
MESSAGE I000(Z00) WITH 'You clicked on F5 key'.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .
*--Billing doc header data
SELECT *
FROM VBRK
INTO TABLE IT_VBRK
WHERE VBELN IN S_VBELN.
IF SY-SUBRC = 0.
*--Billing doc Item data
SELECT *
FROM VBRP
INTO TABLE IT_VBRP
WHERE VBELN IN S_VBELN.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form BUILD_PAGE_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_PAGE_HEADER .
ULINE AT (50).
FORMAT INTENSIFIED ON COLOR COL_HEADING.
WRITE:/ SY-VLINE,
'Biiling Doc',
16 SY-VLINE,
'Billing Date',
30 SY-VLINE,
'Billing Type',
50 SY-VLINE.
ULINE AT /(50).
ENDFORM. " BUILD_PAGE_HEADER
*&---------------------------------------------------------------------*
*& Form BUILD_PAGE_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_PAGE_FOOTER .
ULINE AT (50).
WRITE:/30 'Page :', SY-PAGNO.
ENDFORM. " BUILD_PAGE_FOOTER
*&---------------------------------------------------------------------*
*& Form SHOW_BLIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW_BLIST .
LOOP AT IT_VBRK.
WRITE:/ SY-VLINE,
IT_VBRK-VBELN COLOR COL_KEY HOTSPOT ON,
16 SY-VLINE,
IT_VBRK-FKDAT,
30 SY-VLINE,
IT_VBRK-FKART,
50 SY-VLINE.
HIDE IT_VBRK-VBELN.
ENDLOOP.
V_LINE = ( SY-LINCT - SY-LINNO ) - 1.
ENDFORM. " SHOW_BLIST
*&---------------------------------------------------------------------*
*& Form SHOW_SLIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW_SLIST .
* CONDENSE SY-LISEL+1(10).
* V_VBELN = SY-LISEL+1(10).
*
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* INPUT = V_VBELN
* IMPORTING
* OUTPUT = V_VBELN.
* LOOP AT IT_VBRP WHERE VBELN = V_VBELN.
LOOP AT IT_VBRP WHERE VBELN = IT_VBRK-VBELN.
WRITE:/ SY-VLINE,
IT_VBRP-POSNR,
11 SY-VLINE,
IT_VBRP-MATNR,
30 SY-VLINE,
IT_VBRP-ARKTX,
73 SY-VLINE,
IT_VBRP-FKIMG,
95 SY-VLINE,
IT_VBRP-NETWR,
120 SY-VLINE.
ENDLOOP.
ENDFORM. " SHOW_SLIST
*&---------------------------------------------------------------------*
*& Form SEC_PAGE_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SEC_PAGE_HEADER .
ULINE AT (120).
FORMAT INTENSIFIED ON COLOR COL_HEADING.
WRITE:/ SY-VLINE,
'Item No',
11 SY-VLINE,
'Material',
30 SY-VLINE,
'Material Desc',
73 SY-VLINE,
'Qty',
95 SY-VLINE,
'Amount',
120 SY-VLINE.
ULINE AT (120).
FORMAT RESET.
ENDFORM. " SEC_PAGE_HEADER
*&---------------------------------------------------------------------*
*& Report ZINT_REPORT *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZINT_REPORT
NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 20(2).
DATA: IT_VBRK LIKE VBRK OCCURS 1 WITH HEADER LINE,
IT_VBRP LIKE VBRP OCCURS 1 WITH HEADER LINE.
DATA: V_LINE TYPE I,
V_VBELN LIKE VBRK-VBELN.
SELECT-OPTIONS: S_VBELN FOR IT_VBRK-VBELN.
START-OF-SELECTION.
PERFORM GET_DATA.
END-OF-SELECTION.
IF NOT IT_VBRK[] IS INITIAL.
PERFORM SHOW_BLIST.
ELSE.
MESSAGE I000(Z00) WITH 'No Data found to display'.
ENDIF.
TOP-OF-PAGE.
PERFORM BUILD_PAGE_HEADER.
END-OF-PAGE.
PERFORM BUILD_PAGE_FOOTER.
TOP-OF-PAGE DURING LINE-SELECTION.
IF SY-LSIND = 1.
PERFORM SEC_PAGE_HEADER.
* ELSEIF SY-LSIND = 2.
* WRITE:/ 'PAGE HEADER FOR 2ND SECONDARY LIST'.
* ELSE.
* WRITE:/ 'PAGE HEADER FOR SECONDARY LIST'.
ENDIF.
AT LINE-SELECTION.
IF SY-LSIND = 1.
PERFORM SHOW_SLIST.
ENDIF.
AT PF5.
MESSAGE I000(Z00) WITH 'You clicked on F5 key'.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA .
*--Billing doc header data
SELECT *
FROM VBRK
INTO TABLE IT_VBRK
WHERE VBELN IN S_VBELN.
IF SY-SUBRC = 0.
*--Billing doc Item data
SELECT *
FROM VBRP
INTO TABLE IT_VBRP
WHERE VBELN IN S_VBELN.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form BUILD_PAGE_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_PAGE_HEADER .
ULINE AT (50).
FORMAT INTENSIFIED ON COLOR COL_HEADING.
WRITE:/ SY-VLINE,
'Biiling Doc',
16 SY-VLINE,
'Billing Date',
30 SY-VLINE,
'Billing Type',
50 SY-VLINE.
ULINE AT /(50).
ENDFORM. " BUILD_PAGE_HEADER
*&---------------------------------------------------------------------*
*& Form BUILD_PAGE_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM BUILD_PAGE_FOOTER .
ULINE AT (50).
WRITE:/30 'Page :', SY-PAGNO.
ENDFORM. " BUILD_PAGE_FOOTER
*&---------------------------------------------------------------------*
*& Form SHOW_BLIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW_BLIST .
LOOP AT IT_VBRK.
WRITE:/ SY-VLINE,
IT_VBRK-VBELN COLOR COL_KEY HOTSPOT ON,
16 SY-VLINE,
IT_VBRK-FKDAT,
30 SY-VLINE,
IT_VBRK-FKART,
50 SY-VLINE.
HIDE IT_VBRK-VBELN.
ENDLOOP.
V_LINE = ( SY-LINCT - SY-LINNO ) - 1.
ENDFORM. " SHOW_BLIST
*&---------------------------------------------------------------------*
*& Form SHOW_SLIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SHOW_SLIST .
* CONDENSE SY-LISEL+1(10).
* V_VBELN = SY-LISEL+1(10).
*
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* INPUT = V_VBELN
* IMPORTING
* OUTPUT = V_VBELN.
* LOOP AT IT_VBRP WHERE VBELN = V_VBELN.
LOOP AT IT_VBRP WHERE VBELN = IT_VBRK-VBELN.
WRITE:/ SY-VLINE,
IT_VBRP-POSNR,
11 SY-VLINE,
IT_VBRP-MATNR,
30 SY-VLINE,
IT_VBRP-ARKTX,
73 SY-VLINE,
IT_VBRP-FKIMG,
95 SY-VLINE,
IT_VBRP-NETWR,
120 SY-VLINE.
ENDLOOP.
ENDFORM. " SHOW_SLIST
*&---------------------------------------------------------------------*
*& Form SEC_PAGE_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SEC_PAGE_HEADER .
ULINE AT (120).
FORMAT INTENSIFIED ON COLOR COL_HEADING.
WRITE:/ SY-VLINE,
'Item No',
11 SY-VLINE,
'Material',
30 SY-VLINE,
'Material Desc',
73 SY-VLINE,
'Qty',
95 SY-VLINE,
'Amount',
120 SY-VLINE.
ULINE AT (120).
FORMAT RESET.
ENDFORM. " SEC_PAGE_HEADER
Classical report with events in SAP ABAP
Developing classical report with classical report events in SAP ABAP.
REPORT ZCLASSICAL_REPORT NO STANDARD PAGE HEADING LINE-SIZE 120 LINE-COUNT 10(1). *----------------------------------------------------------------------* * TYPES DECLARATIONS *----------------------------------------------------------------------* *----------------------------------------------------------------------* * TABLES DECLARATIONS *----------------------------------------------------------------------* TABLES: MARA, "Material Master T001W. "Plant Master *----------------------------------------------------------------------* * DATA DECLARATIONS *----------------------------------------------------------------------* DATA: V_LINE TYPE I. *----------------------------------------------------------------------* * CONSTANTS DECLARATIONS *----------------------------------------------------------------------* *----------------------------------------------------------------------* * INTERNAL TABLE DECLARATIONS *----------------------------------------------------------------------* DATA: BEGIN OF IT_MARD OCCURS 1, MATNR LIKE MARA-MATNR, MAKTX LIKE MAKT-MAKTX, WERKS LIKE MARD-WERKS, LGORT LIKE MARD-LGORT, LABST LIKE MARD-LABST, END OF IT_MARD. *----------------------------------------------------------------------* * SELECTION SCREEN DESIGN *----------------------------------------------------------------------* SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR, S_WERKS FOR T001W-WERKS. PARAMETERS: P1 TYPE I. SELECTION-SCREEN: END OF BLOCK B1. *----------------------------------------------------------------------* * INITIALIZATION *----------------------------------------------------------------------* INITIALIZATION. S_MATNR-LOW = '100-100'. S_MATNR-HIGH = '100-500'. S_MATNR-SIGN = 'I'. S_MATNR-OPTION = 'BT'. APPEND S_MATNR. S_WERKS-LOW = '0001'. S_WERKS-HIGH = '3800'. S_WERKS-SIGN = 'I'. S_WERKS-OPTION = 'BT'. APPEND S_WERKS. *----------------------------------------------------------------------* * AT SELECTION SCREEN OUTPUT *----------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF SCREEN-NAME = 'S_WERKS-LOW'. SCREEN-REQUIRED = 1. * SCREEN-INPUT = 0. * SCREEN-INVISIBLE = 1. MODIFY SCREEN. ENDIF. ENDLOOP. *----------------------------------------------------------------------* * AT SELECTION SCREEN *----------------------------------------------------------------------* AT SELECTION-SCREEN. *----------------------------------------------------------------------* * AT SELECTION SCREEN *----------------------------------------------------------------------* AT SELECTION-SCREEN ON S_WERKS. IF NOT S_WERKS[] IS initial. PERFORM VALIDATE_PLANT. ENDIF. *----------------------------------------------------------------------* * AT SELECTION SCREEN ON VALUE REQUEST *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERKS-LOW. MESSAGE I000(Z00) WITH 'On Value Request'. *----------------------------------------------------------------------* * AT SELECTION SCREEN ON HELP REQUEST *----------------------------------------------------------------------* AT SELECTION-SCREEN ON HELP-REQUEST FOR P1. MESSAGE I000(Z00) WITH 'On Help Request'. *----------------------------------------------------------------------* * START-OF-SELECTION *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM GET_DATA. *----------------------------------------------------------------------* * END-OF-SELECTION *----------------------------------------------------------------------* END-OF-SELECTION. PERFORM SHOW_LIST. *----------------------------------------------------------------------* * TOP-OF-PAGE *----------------------------------------------------------------------* TOP-OF-PAGE. PERFORM BUILD_PAGE_HEADER. *----------------------------------------------------------------------* * END-OF-PAGE *----------------------------------------------------------------------* END-OF-PAGE. PERFORM BUILD_PAGE_FOOTER. *&---------------------------------------------------------------------* *& Form VALIDATE_PLANT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM VALIDATE_PLANT . SELECT WERKS FROM T001W INTO T001W-WERKS UP TO 1 ROWS WHERE WERKS IN S_WERKS. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE E000(Z00) WITH 'Invalid Range of Plants' S_WERKS-LOW 'And' S_WERKS-HIGH. ENDIF. ENDFORM. " VALIDATE_PLANT *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM GET_DATA . SELECT A~MATNR B~MAKTX C~WERKS C~LGORT C~LABST INTO TABLE IT_MARD FROM MARA AS A INNER JOIN MAKT AS B ON B~MATNR = A~MATNR INNER JOIN MARD AS C ON C~MATNR = A~MATNR WHERE A~MATNR IN S_MATNR AND C~WERKS IN S_WERKS AND SPRAS = SY-LANGU. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form BUILD_PAGE_HEADER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM BUILD_PAGE_HEADER . FORMAT INTENSIFIED ON COLOR COL_HEADING. ULINE AT (105). WRITE:/ SY-VLINE, 'Material No', 20 SY-VLINE, 'Material Desc', 62 SY-VLINE, 'Plant', 72 SY-VLINE, 'Str.Loc', 81 SY-VLINE, 'Qty', 105 SY-VLINE. ULINE AT (105). FORMAT RESET. ENDFORM. " BUILD_PAGE_HEADER *&---------------------------------------------------------------------* *& Form SHOW_LIST *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM SHOW_LIST . LOOP AT IT_MARD. WRITE:/ SY-VLINE, IT_MARD-MATNR, 20 SY-VLINE, IT_MARD-MAKTX, 62 SY-VLINE, IT_MARD-WERKS, 72 SY-VLINE, IT_MARD-LGORT, 81 SY-VLINE, IT_MARD-LABST, 105 SY-VLINE. ENDLOOP. ULINE AT (105). *--footer for last page conditionally V_LINE = ( SY-LINCT - SY-LINNO ) - 1. SKIP V_LINE. ENDFORM. " SHOW_LIST *&---------------------------------------------------------------------* *& Form BUILD_PAGE_FOOTER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM BUILD_PAGE_FOOTER . WRITE:/90 'Page :', SY-PAGNO. ENDFORM. " BUILD_PAGE_FOOTER
Classical Reports in SAP ABAP
Classical reports are simple reports in SAP ABAP, these are normal reports with only one output screen with out any user interaction.We will just out put dat with in the loop to develop a classical report.
CLASSICAL REPORTS CAN BE DEVELOPPED USING SOME EVENTS, REFER LIST OF EVENTS AVAILABLE IN SAP ABAP CLASSICAL REPORTS
.REPORT ZCLASSICAL_REPORT NO STANDARD PAGE HEADING LINE-SIZE 120 LINE-COUNT 10(1). *----------------------------------------------------------------------* * TYPES DECLARATIONS *----------------------------------------------------------------------* *----------------------------------------------------------------------* * TABLES DECLARATIONS *----------------------------------------------------------------------* TABLES: MARA, "Material Master T001W. "Plant Master *----------------------------------------------------------------------* * DATA DECLARATIONS *----------------------------------------------------------------------* DATA: V_LINE TYPE I. *----------------------------------------------------------------------* * CONSTANTS DECLARATIONS *----------------------------------------------------------------------* *----------------------------------------------------------------------* * INTERNAL TABLE DECLARATIONS *----------------------------------------------------------------------* DATA: BEGIN OF IT_MARD OCCURS 1, MATNR LIKE MARA-MATNR, MAKTX LIKE MAKT-MAKTX, WERKS LIKE MARD-WERKS, LGORT LIKE MARD-LGORT, LABST LIKE MARD-LABST, END OF IT_MARD. *----------------------------------------------------------------------* * SELECTION SCREEN DESIGN *----------------------------------------------------------------------* SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR, S_WERKS FOR T001W-WERKS. PARAMETERS: P1 TYPE I. SELECTION-SCREEN: END OF BLOCK B1. *----------------------------------------------------------------------* * INITIALIZATION *----------------------------------------------------------------------* INITIALIZATION. S_MATNR-LOW = '100-100'. S_MATNR-HIGH = '100-500'. S_MATNR-SIGN = 'I'. S_MATNR-OPTION = 'BT'. APPEND S_MATNR. S_WERKS-LOW = '0001'. S_WERKS-HIGH = '3800'. S_WERKS-SIGN = 'I'. S_WERKS-OPTION = 'BT'. APPEND S_WERKS. *----------------------------------------------------------------------* * AT SELECTION SCREEN OUTPUT *----------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF SCREEN-NAME = 'S_WERKS-LOW'. SCREEN-REQUIRED = 1. * SCREEN-INPUT = 0. * SCREEN-INVISIBLE = 1. MODIFY SCREEN. ENDIF. ENDLOOP. *----------------------------------------------------------------------* * AT SELECTION SCREEN *----------------------------------------------------------------------* AT SELECTION-SCREEN. *----------------------------------------------------------------------* * AT SELECTION SCREEN *----------------------------------------------------------------------* AT SELECTION-SCREEN ON S_WERKS. IF NOT S_WERKS[] IS initial. PERFORM VALIDATE_PLANT. ENDIF. *----------------------------------------------------------------------* * AT SELECTION SCREEN ON VALUE REQUEST *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERKS-LOW. MESSAGE I000(Z00) WITH 'On Value Request'. *----------------------------------------------------------------------* * AT SELECTION SCREEN ON HELP REQUEST *----------------------------------------------------------------------* AT SELECTION-SCREEN ON HELP-REQUEST FOR P1. MESSAGE I000(Z00) WITH 'On Help Request'. *----------------------------------------------------------------------* * START-OF-SELECTION *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM GET_DATA. *----------------------------------------------------------------------* * END-OF-SELECTION *----------------------------------------------------------------------* END-OF-SELECTION. PERFORM SHOW_LIST. *----------------------------------------------------------------------* * TOP-OF-PAGE *----------------------------------------------------------------------* TOP-OF-PAGE. PERFORM BUILD_PAGE_HEADER. *----------------------------------------------------------------------* * END-OF-PAGE *----------------------------------------------------------------------* END-OF-PAGE. PERFORM BUILD_PAGE_FOOTER. *&---------------------------------------------------------------------* *& Form VALIDATE_PLANT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM VALIDATE_PLANT . SELECT WERKS FROM T001W INTO T001W-WERKS UP TO 1 ROWS WHERE WERKS IN S_WERKS. ENDSELECT. IF SY-SUBRC <> 0. MESSAGE E000(Z00) WITH 'Invalid Range of Plants' S_WERKS-LOW 'And' S_WERKS-HIGH. ENDIF. ENDFORM. " VALIDATE_PLANT *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM GET_DATA . SELECT A~MATNR B~MAKTX C~WERKS C~LGORT C~LABST INTO TABLE IT_MARD FROM MARA AS A INNER JOIN MAKT AS B ON B~MATNR = A~MATNR INNER JOIN MARD AS C ON C~MATNR = A~MATNR WHERE A~MATNR IN S_MATNR AND C~WERKS IN S_WERKS AND SPRAS = SY-LANGU. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form BUILD_PAGE_HEADER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM BUILD_PAGE_HEADER . FORMAT INTENSIFIED ON COLOR COL_HEADING. ULINE AT (105). WRITE:/ SY-VLINE, 'Material No', 20 SY-VLINE, 'Material Desc', 62 SY-VLINE, 'Plant', 72 SY-VLINE, 'Str.Loc', 81 SY-VLINE, 'Qty', 105 SY-VLINE. ULINE AT (105). FORMAT RESET. ENDFORM. " BUILD_PAGE_HEADER *&---------------------------------------------------------------------* *& Form SHOW_LIST *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM SHOW_LIST . LOOP AT IT_MARD. WRITE:/ SY-VLINE, IT_MARD-MATNR, 20 SY-VLINE, IT_MARD-MAKTX, 62 SY-VLINE, IT_MARD-WERKS, 72 SY-VLINE, IT_MARD-LGORT, 81 SY-VLINE, IT_MARD-LABST, 105 SY-VLINE. ENDLOOP. ULINE AT (105). *--footer for last page conditionally V_LINE = ( SY-LINCT - SY-LINNO ) - 1. SKIP V_LINE. ENDFORM. " SHOW_LIST *&---------------------------------------------------------------------* *& Form BUILD_PAGE_FOOTER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM BUILD_PAGE_FOOTER . WRITE:/90 'Page :', SY-PAGNO. ENDFORM. " BUILD_PAGE_FOOTER
No comments:
Post a Comment