REPORT ZPDFDIS.
DATA:
i_T100 TYPE T100 OCCURS 0,
pdf LIKE tline OCCURS 0.
DATA:
g_spool TYPE tsp01-rqident,
g_program TYPE sy-repid VALUE sy-repid.
TYPE-POOLS:slis.
DATA: w_print TYPE slis_print_alv.
DATA: p_file TYPE string.
p_file = 'C:\itab_to_pdf1.pdf'.
"START-OF-SELECTION.
START-OF-SELECTION.
SELECT * FROM T100 INTO TABLE i_T100 UP TO 100 ROWS.
w_print-print = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_program
i_structure_name = 'T100'
is_print = w_print
TABLES
t_outtab = i_T100.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
g_spool = sy-spono.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = g_spool
TABLES
pdf = pdf.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = p_file
filetype = 'BIN'
TABLES
data_tab = pdf.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_program
i_structure_name = 'T100'
TABLES
t_outtab = i_T100. "is_print = w_print
ENDIF.
ENDIF.
ENDIF.
*---PDF预览
DATA fm_name TYPE rs38l_fnam.
*通过函数来获取Smartforms函数名
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZHRRPA009'
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
DATA: l_outset TYPE ssfcompop,
ls_control_parameters TYPE ssfctrlop,
ls_job_output_info TYPE ssfcrescl.
ls_control_parameters-no_dialog = 'X'. "控制Smartforms不输出
ls_control_parameters-getotf = 'X'.
CALL FUNCTION fm_name "Smartform模块参数
EXPORTING
control_parameters = ls_control_parameters
IMPORTING
job_output_info = ls_job_output_info
TABLES
sm_itab = it_main.
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
i_otf = ls_job_output_info-otfdata[]
EXCEPTIONS
CONVERT_OTF_TO_PDF_ERROR = 1
CNTL_ERROR = 2
OTHERS = 3.