Description: This program will generate the PDF form from ABAP List Output.
I have used the format X_90_120 for generating PDF form from List Output.
You can do this setting by changing the properties of printer after
clicking the PDF generation button in the List output.* Author: Nagaraj Kalbavi&---------------------------------------------------------------------*& Report Z_CREATE_PDF_ABAPLIST&---------------------------------------------------------------------*& Description: Simple Program to generate PDF from ABAP List Output&---------------------------------------------------------------------REPORT Z_CREATE_PDF_ABAPLIST NO STANDARD PAGE HEADING. * PF-status containing a PDF button in the report Output to generate * PDF formSET PF-STATUS 'Z_PDF'.----------------------------------------------------------------------*Table Declarations----------------------------------------------------------------------TABLES: MARA, MARC, MAKT.--------------------------------------------------------------------- * Internal Table Declarations----------------------------------------------------------------------DATA: BEGIN OF TS_MARA OCCURS 0, MATNR LIKE MARA-MATNR, MTART LIKE MARA-MTART, MATKL LIKE MARA-MATKL, LVORM LIKE MARA-LVORM, WERKS LIKE MARC-WERKS, MAKTX LIKE MAKT-MAKTX, END OF TS_MARA.---------------------------------------------------------------------- * Selection Screen Parameters----------------------------------------------------------------------SELECTION-SCREEN BEGIN OF BLOCK B1. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR OBLIGATORY, S_WERKS FOR MARC-WERKS OBLIGATORY.SELECTION-SCREEN END OF BLOCK B1.----------------------------------------------------------------------TOP-OF-PAGE.----------------------------------------------------------------------write: 40 'Generating PDF from List Output' color 1 intensified on. skip 1. write: /1 'Date :', SY-DATUM, /1 'User ID :', SY-UNAME, /1(112) SY-ULINE.----------------------------------------------------------------------START-OF-SELECTION.---------------------------------------------------------------------- * Perform for Basic SelectionPERFORM GET_MARA. * Perform to Display DataPERFORM DISPLAY_MARA.----------------------------------------------------------------------------------AT USER-COMMAND.---------------------------------------------------------------------------------- * User Command to generate PDF Form AT USER-COMMAND. CASE SY-UCOMM. WHEN 'PDF'. DATA: L_PARAMS TYPE PRI_PARAMS, L_VALID TYPE STRING, W_SPOOL_NR LIKE TSP01-RQIDENT. * TO GET PRINT PARAMETERS CALL FUNCTION 'GET_PRINT_PARAMETERS' IMPORTING OUT_PARAMETERS = L_PARAMS VALID = L_VALID. IF SY-SUBRC <> 0. ENDIF. * Internal table for Selection ScreenDATA: BEGIN OF I_RSPARAMS OCCURS 0. INCLUDE STRUCTURE RSPARAMS.DATA: END OF I_RSPARAMS. * Store the current selection screen detailsCALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS' EXPORTING CURR_REPORT = SY-REPID * IMPORTING* SP = TABLES SELECTION_TABLE = I_RSPARAMS * EXCEPTIONS* NOT_FOUND = 1* NO_REPORT = 2* OTHERS = 3 .IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF. * SUBMIT TO GET THE SPOOL NUMBERSUBMIT Z_CREATE_PDF_ABAPLIST WITH SELECTION-TABLE I_RSPARAMS TO SAP-SPOOL SPOOL PARAMETERS L_PARAMS WITHOUT SPOOL DYNPRO AND RETURN. * SELECT THE RECENTLY CREATED SPOOL SELECT MAX( RQIDENT ) INTO W_SPOOL_NR FROM TSP01 WHERE RQCLIENT = SY-MANDT AND RQOWNER = SY-UNAME.*REPORT TO GENERATE SPOOL NUMBER FOR PDF CONVERT SUBMIT RSTXPDF5 WITH SPOOLNO = W_SPOOL_NR WITH DSTDEVIC = 'LOCL' AND RETURN . IF SY-SUBRC EQ 0. CLEAR W_SPOOL_NR. * SELECT THE RECENTLY CREATED SPOOL FOR PDF SELECT MAX( RQIDENT ) INTO W_SPOOL_NR FROM TSP01 WHERE RQCLIENT = SY-MANDT AND RQOWNER = SY-UNAME.*REPORT TO DOWNLOAD PDF SPOOL TO GUI SUBMIT RSTXPDFT5 WITH SPOOLID = W_SPOOL_NR AND RETURN. ENDIF. ENDCASE.&---------------------------------------------------------------------*& Form GET_MARA&---------------------------------------------------------------------* text----------------------------------------------------------------------* --> p1 text* <-- p2 text----------------------------------------------------------------------FORM GET_MARA .CLEAR : TS_MARA.REFRESH: TS_MARA. * To select Materials based on Selection CriteriaSELECT A~MATNR A~MTART A~MATKL A~LVORM B~WERKS INTO CORRESPONDING FIELDS OF TABLE TS_MARA FROM MARA AS A INNER JOIN MARC AS B ON A~MATNR EQ B~MATNR WHERE A~MATNR IN S_MATNR AND B~WERKS IN S_WERKS.LOOP AT TS_MARA. SELECT SINGLE * FROM MAKT WHERE MATNR EQ TS_MARA-MATNR AND SPRAS EQ SY-LANGU. MOVE MAKT-MAKTX TO TS_MARA-MAKTX. MODIFY TS_MARA INDEX SY-TABIX.ENDLOOP.ENDFORM. " GET_MARA&---------------------------------------------------------------------*& Form DISPLAY_MARA&---------------------------------------------------------------------* text----------------------------------------------------------------------* --> p1 text* <-- p2 text----------------------------------------------------------------------FORM DISPLAY_MARA .CLEAR : TS_MARA.WRITE: /1 '|', 2(18) 'Material Number' COLOR 7, 21 '|', 22(5) 'Plant ' COLOR 7, 28 '|', 29(13) 'Material Type ' COLOR 7, 42 '|', 43(14) 'Material Group ' COLOR 7, 57 '|', 58(13) 'Deletion Flag ' COLOR 7, 71 '|', 72(40) 'Description ' COLOR 7, 112 '|'.WRITE: /1(112) SY-ULINE.LOOP AT TS_MARA. WRITE: /1 '|', 2(18) TS_MARA-MATNR, 21 '|', 22(5) TS_MARA-WERKS, 28 '|', 29(13) TS_MARA-MTART, 42 '|', 43(14) TS_MARA-MATKL, 57 '|', 58(13) TS_MARA-LVORM, 71 '|', 72(40) TS_MARA-MAKTX, 112 '|'.WRITE: /1(112) SY-ULINE.ENDLOOP.ENDFORM. " DISPLAY_MARA