将ALV直接输出成PDF格式

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值