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 form SET 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 Selection PERFORM GET_MARA. * Perform to Display Data PERFORM 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 Screen DATA: BEGIN OF I_RSPARAMS OCCURS 0. INCLUDE STRUCTURE RSPARAMS. DATA: END OF I_RSPARAMS. * Store the current selection screen details CALL 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 NUMBER SUBMIT 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 Criteria SELECT 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