04-26-2019 5:06 PM
Hi guys
In an ALV report I made 2 custom GUI buttons (PDF & Mail).
After output is displayed, if I click PDF button the report should be downloaded as PDF.
Can I not Generate and Pass SPOOL to FMs without scheduling a job.
How do I generate SPOOL and pass to FMs when PDF button pressed.
Thanks.
FORM display_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZALV_PDF_MAIL'
is_layout = wa_layout
it_fieldcat = it_fldcat
IT_EVENTS = it_event
TABLES
t_outtab = it_final
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " DISPLAY_ALV
*&---------------------------------------------------------------------*
*& Form F_PF_STATUS
*&---------------------------------------------------------------------*
FORM f_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'NEWGUI'.
ENDFORM. " F_PF_STSTUS
*&---------------------------------------------------------------------*
*& Form F_USER_CMD
*&---------------------------------------------------------------------*
FORM f_user_cmd USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'PDF'.
PERFORM get_pdf.
WHEN 'MAIL'.
PERFORM send_mail.
ENDCASE.
ENDFORM. " F_USER_CMD
*&---------------------------------------------------------------------*
*& Form GET_PDF
*&---------------------------------------------------------------------*
FORM get_pdf .
DATA: l_params TYPE pri_params,
l_valid TYPE c,
it_pdf TYPE TABLE OF tline,
l_spool type tsp01-rqident.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
* ARCHIVE_ID = C_CHAR_UNKNOWN
* ARCHIVE_INFO = C_CHAR_UNKNOWN
* ARCHIVE_MODE = C_CHAR_UNKNOWN
* ARCHIVE_TEXT = C_CHAR_UNKNOWN
* AR_OBJECT = C_CHAR_UNKNOWN
* ARCHIVE_REPORT = C_CHAR_UNKNOWN
* AUTHORITY = C_CHAR_UNKNOWN
* COPIES = C_NUM3_UNKNOWN
* COVER_PAGE = C_CHAR_UNKNOWN
* IN_ARCHIVE_PARAMETERS = ' '
* IN_PARAMETERS = l_params
* LAYOUT = C_CHAR_UNKNOWN
* LINE_COUNT = C_INT_UNKNOWN
* LINE_SIZE = C_INT_UNKNOWN
* LIST_NAME = C_CHAR_UNKNOWN
* LIST_TEXT = C_CHAR_UNKNOWN
* MODE = ' '
* NEW_LIST_ID = C_CHAR_UNKNOWN
* PROTECT_LIST = C_CHAR_UNKNOWN
no_dialog = 'X'
IMPORTING
* OUT_ARCHIVE_PARAMETERS =
out_parameters = l_params
valid = l_valid
* VALID_FOR_SPOOL_CREATION =
.
NEW-PAGE PRINT ON PARAMETERS l_params NO DIALOG.
perform display_alv.
NEW-PAGE PRINT OFF.
l_spool = sy-spono.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = l_spool
no_dialog = 'X'
* DST_DEVICE =
* PDF_DESTINATION =
* NO_BACKGROUND =
* GET_SIZE_FROM_FORMAT =
* USE_CASCADING = ' '
* IMPORTING
* PDF_BYTECOUNT =
* PDF_SPOOLID =
* LIST_PAGECOUNT =
* BTC_JOBNAME =
* BTC_JOBCOUNT =
* BIN_FILE =
TABLES
pdf = it_pdf
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
filename = 'C:\Users\David\Desktop\ZALV_PDF_MAIL.pdf'
FILETYPE = 'PDF'
* APPEND = ' '
* WRITE_FIELD_SEPARATOR = ' '
* 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 = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
* SHOW_TRANSFER_STATUS = ABAP_TRUE
* VIRUS_SCAN_PROFILE = '/SCET/GUI_DOWNLOAD'
* IMPORTING
* FILELENGTH =
tables
data_tab = it_pdf
* FIELDNAMES =
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* OTHERS = 22
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " GET_PDF
*&---------------------------------------------------------------------*
*& Form SEND_MAIL
*&---------------------------------------------------------------------*
FORM send_mail .
ENDFORM. " SEND_MAIL