Generate PDF from ABAP report

来源:互联网 发布:华为mate9pro下载软件 编辑:程序博客网 时间:2024/05/20 22:26
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
原创粉丝点击