Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

unable to generate pdf format?

former_member182426
Active Contributor
0 Kudos

hi friends,

Here my requirement is the output of this report i have to convert into PDF format file and download to local harddisk.

my report is as...

PARAMETERS: W_PERNR LIKE PERNR-PERNR.

DATA: INFO TYPE STRING.

DATA: PA LIKE PA0001-ABKRS,

CR_MONTH LIKE T569V-PABRP,

CR_YEAR LIKE T569V-PABRJ,

BEGDA LIKE T549Q-BEGDA,

ENDDA LIKE T549Q-ENDDA.

CALL FUNCTION 'ZSHAN_GET_PAYAREA'

EXPORTING

USERID = W_PERNR

IMPORTING

PAYAREA = PA

.

.

*CONCATENATE PA CR_MONTH CR_YEAR BEGDA ENDDA INTO INFO SEPARATED BY

*SPACE.

*message: INFO TYPE 'I'.

submit hincedt0 with PNPPERNR-LOW eq W_PERNR

with PNPXABKR eq PA

with FORMULAR eq 'YRAJ'.

anybody help me in this.....

Thanks & Regards,

Shankar.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

Refer this code:

TABLES :
  vbak,
  vbap,
  vbpa,
  mara.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS:
s_vkorg FOR vbak-vkorg OBLIGATORY,
s_vtweg FOR vbak-vtweg OBLIGATORY,
s_spart FOR vbak-spart OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS:
s_vbeln FOR vbak-vbeln,
s_matnr FOR mara-matnr.

PARAMETERS:
p_kunnr TYPE vbak-kunnr.

SELECT-OPTIONS:
s_erdat FOR vbak-erdat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b2.
DATA : w_spono  LIKE  tsp01-rqident,
     w_binsize TYPE i,
     w_filelen TYPE i,
     t_sale LIKE TABLE OF tline WITH HEADER LINE.
DATA:
BEGIN OF t_sales OCCURS 0,
  vbeln TYPE vbak-vbeln,
  vkorg TYPE vbak-vkorg,
  vtweg TYPE vbak-vtweg,
  spart TYPE vbak-spart,
  erdat TYPE vbak-erdat,
  kunnr TYPE vbak-kunnr,
  posnr TYPE vbap-posnr,
  matnr TYPE vbap-matnr,
  arktx TYPE vbap-arktx,
  parvw TYPE vbpa-parvw,
  kwmeng TYPE vbap-kwmeng,
  kunnr1 TYPE vbpa-kunnr ,
END OF t_sales.

START-OF-SELECTION.

  SELECT vbak~vbeln
         vkorg
         vtweg
         vbak~spart
         vbak~erdat
         vbak~kunnr
         vbap~posnr
         matnr
          arktx
          parvw
         kwmeng
         vbpa~kunnr

    INTO CORRESPONDING FIELDS OF TABLE t_sales
    FROM ( ( vbak JOIN vbap ON vbap~vbeln EQ vbak~vbeln )
    JOIN vbpa ON vbpa~vbeln EQ vbak~vbeln
**                         and vbpa~posnr eq vbap~posnr
                           AND vbpa~parvw EQ 'WE' )

    WHERE vkorg IN s_vkorg
      AND vtweg IN s_vtweg
      AND vbak~spart IN s_spart
      AND vbak~vbeln IN s_vbeln
      AND matnr IN s_matnr
      AND vbak~kunnr EQ p_kunnr
      AND vbak~erdat IN s_erdat.
  IF sy-subrc EQ 0.
    NEW-PAGE PRINT ON.
    PERFORM display_sales_data.
    NEW-PAGE PRINT OFF.
  ELSE.
    MESSAGE 'No records found with the spcified criteria' TYPE 'E'.
  ENDIF.

  w_spono = sy-spono.



  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
      src_spoolid                    = w_spono
*   NO_DIALOG                      =
*   DST_DEVICE                     =
*   PDF_DESTINATION                =
   IMPORTING
     pdf_bytecount                  = w_binsize
*   PDF_SPOOLID                    =
*   LIST_PAGECOUNT                 =
*   BTC_JOBNAME                    =
*   BTC_JOBCOUNT                   =
   TABLES
     pdf                            = t_sale
   EXCEPTIONS
     err_no_abap_spooljob           = 1
     err_no_spooljob                = 2
     err_no_permission              = 3
     err_conv_not_possible          = 4
     err_bad_destdevice             = 5
     user_cancelled                 = 6
     err_spoolerror                 = 7
     err_temseerror                 = 8
     err_btcjob_open_failed         = 9
     err_btcjob_submit_failed       = 10
     err_btcjob_close_failed        = 11
     OTHERS                         = 12
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
     bin_filesize                  = w_binsize
      filename                      =
             'C:\Documents and Settings\Desktop\sales.pdf'
     filetype                      = 'BIN'
*   APPEND                        = ' '
*   WRITE_FIELD_SEPARATOR         = 'X'
*   HEADER                        = '00'
*   TRUNC_TRAILING_BLANKS         = ' '
*   WRITE_LF                      = 'X'
*   COL_SELECT                    = ' '
*   COL_SELECT_MASK               = ' '
*   DAT_MODE                      = ' '
*   CONFIRM_OVERWRITE             = ' '
*   NO_AUTH_CHECK                 = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   WRITE_BOM                     = ' '
* IMPORTING
*   FILELENGTH                    = w_filelen
    TABLES
      data_tab                      = t_sale
   EXCEPTIONS
     file_write_error              = 1
     no_batch                      = 2
     gui_refuse_filetransfer       = 3
     invalid_type                  = 4
     no_authority                  = 5
     unknown_error                 = 6
     header_not_allowed            = 7
     separator_not_allowed         = 8
     filesize_not_allowed          = 9
     header_too_long               = 10
     dp_error_create               = 11
     dp_error_send                 = 12
     dp_error_write                = 13
     unknown_dp_error              = 14
     access_denied                 = 15
     dp_out_of_memory              = 16
     disk_full                     = 17
     dp_timeout                    = 18
     file_not_found                = 19
     dataprovider_exception        = 20
     control_flush_error           = 21
     OTHERS                        = 22
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  display_sales_data
*&---------------------------------------------------------------------*
*    This subroutine is used to display the sales report               *
*----------------------------------------------------------------------*
*    No interface parameters
*----------------------------------------------------------------------*
FORM display_sales_data .

  LOOP AT t_sales.

    AT NEW spart.
      SKIP 3.
      WRITE 😕 'Sales Organization : ', t_sales-vkorg,
        / 'Distribution Channel : ', t_sales-vtweg,
        / 'Division             : ', t_sales-spart.
      SKIP.
      WRITE:/ 'Sales Order'(001),
        15 'Order Date'(002),
        30 'Sold-to-party'(003),
        50 'Ship-to-party'(004),
        65 'Item'(005),
        75 'Material'(006),
        90 'Quantity'(007).
      SKIP.

    ENDAT.


    IF t_sales-kunnr1 IS INITIAL.
      t_sales-kunnr1 = p_kunnr.
    ENDIF.

    WRITE 😕 t_sales-vbeln UNDER text-001,
      t_sales-erdat UNDER text-002,
      t_sales-kunnr UNDER text-003,
      t_sales-kunnr1 UNDER text-004,
      t_sales-posnr UNDER text-005,
      t_sales-matnr UNDER text-006,
      t_sales-kwmeng UNDER text-007.
  ENDLOOP.
ENDFORM.                               " display_sales_data

Regards,

Sravanthi

9 REPLIES 9

Former Member
0 Kudos

Hi

Refer this code:

TABLES :
  vbak,
  vbap,
  vbpa,
  mara.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS:
s_vkorg FOR vbak-vkorg OBLIGATORY,
s_vtweg FOR vbak-vtweg OBLIGATORY,
s_spart FOR vbak-spart OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS:
s_vbeln FOR vbak-vbeln,
s_matnr FOR mara-matnr.

PARAMETERS:
p_kunnr TYPE vbak-kunnr.

SELECT-OPTIONS:
s_erdat FOR vbak-erdat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b2.
DATA : w_spono  LIKE  tsp01-rqident,
     w_binsize TYPE i,
     w_filelen TYPE i,
     t_sale LIKE TABLE OF tline WITH HEADER LINE.
DATA:
BEGIN OF t_sales OCCURS 0,
  vbeln TYPE vbak-vbeln,
  vkorg TYPE vbak-vkorg,
  vtweg TYPE vbak-vtweg,
  spart TYPE vbak-spart,
  erdat TYPE vbak-erdat,
  kunnr TYPE vbak-kunnr,
  posnr TYPE vbap-posnr,
  matnr TYPE vbap-matnr,
  arktx TYPE vbap-arktx,
  parvw TYPE vbpa-parvw,
  kwmeng TYPE vbap-kwmeng,
  kunnr1 TYPE vbpa-kunnr ,
END OF t_sales.

START-OF-SELECTION.

  SELECT vbak~vbeln
         vkorg
         vtweg
         vbak~spart
         vbak~erdat
         vbak~kunnr
         vbap~posnr
         matnr
          arktx
          parvw
         kwmeng
         vbpa~kunnr

    INTO CORRESPONDING FIELDS OF TABLE t_sales
    FROM ( ( vbak JOIN vbap ON vbap~vbeln EQ vbak~vbeln )
    JOIN vbpa ON vbpa~vbeln EQ vbak~vbeln
**                         and vbpa~posnr eq vbap~posnr
                           AND vbpa~parvw EQ 'WE' )

    WHERE vkorg IN s_vkorg
      AND vtweg IN s_vtweg
      AND vbak~spart IN s_spart
      AND vbak~vbeln IN s_vbeln
      AND matnr IN s_matnr
      AND vbak~kunnr EQ p_kunnr
      AND vbak~erdat IN s_erdat.
  IF sy-subrc EQ 0.
    NEW-PAGE PRINT ON.
    PERFORM display_sales_data.
    NEW-PAGE PRINT OFF.
  ELSE.
    MESSAGE 'No records found with the spcified criteria' TYPE 'E'.
  ENDIF.

  w_spono = sy-spono.



  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
      src_spoolid                    = w_spono
*   NO_DIALOG                      =
*   DST_DEVICE                     =
*   PDF_DESTINATION                =
   IMPORTING
     pdf_bytecount                  = w_binsize
*   PDF_SPOOLID                    =
*   LIST_PAGECOUNT                 =
*   BTC_JOBNAME                    =
*   BTC_JOBCOUNT                   =
   TABLES
     pdf                            = t_sale
   EXCEPTIONS
     err_no_abap_spooljob           = 1
     err_no_spooljob                = 2
     err_no_permission              = 3
     err_conv_not_possible          = 4
     err_bad_destdevice             = 5
     user_cancelled                 = 6
     err_spoolerror                 = 7
     err_temseerror                 = 8
     err_btcjob_open_failed         = 9
     err_btcjob_submit_failed       = 10
     err_btcjob_close_failed        = 11
     OTHERS                         = 12
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
     bin_filesize                  = w_binsize
      filename                      =
             'C:\Documents and Settings\Desktop\sales.pdf'
     filetype                      = 'BIN'
*   APPEND                        = ' '
*   WRITE_FIELD_SEPARATOR         = 'X'
*   HEADER                        = '00'
*   TRUNC_TRAILING_BLANKS         = ' '
*   WRITE_LF                      = 'X'
*   COL_SELECT                    = ' '
*   COL_SELECT_MASK               = ' '
*   DAT_MODE                      = ' '
*   CONFIRM_OVERWRITE             = ' '
*   NO_AUTH_CHECK                 = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   WRITE_BOM                     = ' '
* IMPORTING
*   FILELENGTH                    = w_filelen
    TABLES
      data_tab                      = t_sale
   EXCEPTIONS
     file_write_error              = 1
     no_batch                      = 2
     gui_refuse_filetransfer       = 3
     invalid_type                  = 4
     no_authority                  = 5
     unknown_error                 = 6
     header_not_allowed            = 7
     separator_not_allowed         = 8
     filesize_not_allowed          = 9
     header_too_long               = 10
     dp_error_create               = 11
     dp_error_send                 = 12
     dp_error_write                = 13
     unknown_dp_error              = 14
     access_denied                 = 15
     dp_out_of_memory              = 16
     disk_full                     = 17
     dp_timeout                    = 18
     file_not_found                = 19
     dataprovider_exception        = 20
     control_flush_error           = 21
     OTHERS                        = 22
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  display_sales_data
*&---------------------------------------------------------------------*
*    This subroutine is used to display the sales report               *
*----------------------------------------------------------------------*
*    No interface parameters
*----------------------------------------------------------------------*
FORM display_sales_data .

  LOOP AT t_sales.

    AT NEW spart.
      SKIP 3.
      WRITE 😕 'Sales Organization : ', t_sales-vkorg,
        / 'Distribution Channel : ', t_sales-vtweg,
        / 'Division             : ', t_sales-spart.
      SKIP.
      WRITE:/ 'Sales Order'(001),
        15 'Order Date'(002),
        30 'Sold-to-party'(003),
        50 'Ship-to-party'(004),
        65 'Item'(005),
        75 'Material'(006),
        90 'Quantity'(007).
      SKIP.

    ENDAT.


    IF t_sales-kunnr1 IS INITIAL.
      t_sales-kunnr1 = p_kunnr.
    ENDIF.

    WRITE 😕 t_sales-vbeln UNDER text-001,
      t_sales-erdat UNDER text-002,
      t_sales-kunnr UNDER text-003,
      t_sales-kunnr1 UNDER text-004,
      t_sales-posnr UNDER text-005,
      t_sales-matnr UNDER text-006,
      t_sales-kwmeng UNDER text-007.
  ENDLOOP.
ENDFORM.                               " display_sales_data

Regards,

Sravanthi

0 Kudos

Hi Sravanti,

That was a great code.

0 Kudos

HI,

this way i know. But here my problem is,

I will be displaying the payslip by using the program

HINCEDT0.

It will display the payslip form as ouptu. Now this output i want to convert as PDF file and save to local disk.

when i execute it, it's creating spool request sucessfully.

when i tried to convert this spool request into PDF also there is no problem.

But it's not showing any information in PDF files. just empty.

I hope now you got it... wat's my exact problem

Thanks & Regards,

Shankar.

0 Kudos

Hi,

i think your spool is in OTF-Format

Try FM: CONVERT_OTFSPOOLJOB_2_PDF

Regards, Dieter

0 Kudos

hi,

Mine is not a SAPscrit / SMARTFORM output.

It's a standard report program.

HINCEDT0.

In selection screen enter PAYROLL AREA,PERIODS, PERNR, AND SPECIFY HRFORM FORM NAME.

plz try one time, you execute it then it will show output. In that output just click on FORM button. It will show payslip details.

This output i want convert into PDF format. and i have to download to local disk.

For this just i am doing like this.

submit HINCEDT0 with PNPPERNR-LOW eq W_PERNR

with PNPXABKR eq PA

with FORMULAR eq 'YRAJ'

TO SAP-SPOOL

SPOOL PARAMETERS wf_params

WITHOUT SPOOL DYNPRO

AND RETURN.

After this i am getting spool number and With this spool number i tried to convert into PDF using these FM's.

CONVERT_ABAPSPOOLJOB_2_PDF &

CONVERT_OTFSPOOLJOB_2_PDF

But i didn't get any result.

Plz if any body have solutions tel me....

Thanks & Regards,

Shankar.

0 Kudos

Hi Sravanti,

When i am trying to use your code and generate the PDF file in my local harddisk.

FIle is creating in the desktop, but when i am opening the file the it is showing error i have tried in other machines too but it is not working. previously it was showing SPOOL Request 0 does not exist.

can you help me with this.

Former Member
0 Kudos

Hi,

Print it out in spool, convert the spool into PDF and download it.

Lot of examples in this forum. Search for it.

Hope it helps.

Regards, Dieter

Former Member
0 Kudos

hi,

we have a program which directly converts to PDF and save it as a local file

i.e. RSTXPDF4.

former_member182426
Active Contributor
0 Kudos

cleared