ABAP DIALOG開發基本技術參考(smartform 打印功能,可打PDF)
来源:互联网 发布:美国制造业 知乎 编辑:程序博客网 时间:2024/05/17 23:23
*&---------------------------------------------------------------------*
*& Include ZINCLUDE_MM079_PRI
*&---------------------------------------------------------------------*
*****************BEGIN FOR PRINTER SMARTFORMS****************************
DATA: L_PRN_COMP TYPE SSFCOMPOP,
L_PRN_CTRLOP TYPE SSFCTRLOP,
JOB_OUTPUT_OPTIONS TYPE SSFCRESOP,
JOB_OUTPUT_INFO TYPE SSFCRESCL. "CNSAPWIN
DATA: L_FM_NAME TYPE TDSFNAME.
DATA: t_otf_from_fm TYPE ssfcrescl,
t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
t_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE.
TABLES: USR01.
FORM SUB_SET_PRINTER_CONTROL USING PF_COPYIES PF_VIEW PF_NODIALOG PF_LANGU PF_PDF.
SELECT SINGLE * FROM USR01 WHERE BNAME = SY-UNAME.
* control setting
L_PRN_CTRLOP-PREVIEW = PF_VIEW.
L_PRN_CTRLOP-NO_DIALOG = PF_NODIALOG.
L_PRN_CTRLOP-LANGU = PF_LANGU.
L_PRN_CTRLOP-DEVICE = 'PRINTER'.
L_PRN_CTRLOP-GETOTF = PF_PDF. "SP02 (pdf)
* printer setting
IF PF_COPYIES > 1.
L_PRN_COMP-TDCOPIES = PF_COPYIES.
ELSE.
L_PRN_COMP-TDCOPIES = 1.
ENDIF.
L_PRN_COMP-TDSUFFIX2 = SY-REPID.
L_PRN_COMP-TDDEST = USR01-SPLD.
*** l_prn_comp-tdprinter = 'PRINTER'.
L_PRN_COMP-TDNEWID = 'X'.
L_PRN_COMP-TDIMMED = 'X'.
L_PRN_COMP-TDFINAL = 'X'.
L_PRN_COMP-TDNOPRINT = PF_VIEW. "NO PRINT BUTTON
*--begin 如果“列印”時,不想顯示“預覽”按鈕,可以取消以下註釋
**** (考慮到用戶預覽打印后,直接右上角關閉screen,則會影響流水號),還是取消以下註釋
IF PF_VIEW = ''.
L_PRN_COMP-TDNOPREV = 'X'.
ELSE.
L_PRN_COMP-TDNOPREV = ''.
ENDIF.
*--end
* l_prn_comp-tddelete = 'X'.
* 為了打PDF,所以要清空,如果打smartform時,在 CALL FUNCTION 'SSF_OPEN'后有賦值
L_PRN_CTRLOP-NO_OPEN = ''.
L_PRN_CTRLOP-NO_CLOSE = ''.
ENDFORM.
FORM SUB_BEGIN_PRINTER_MODULE USING P_SF_NAME.
* group all printout into one spool
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = P_SF_NAME
IMPORTING
FM_NAME = L_FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 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.
ENDFORM.
FORM SUB_CALL_OPENFORM.
CALL FUNCTION 'SSF_OPEN'
EXPORTING
* ARCHIVE_PARAMETERS = ARCHIVE_PARAMETERS
USER_SETTINGS = ' '
OUTPUT_OPTIONS = L_PRN_COMP
CONTROL_PARAMETERS = L_PRN_CTRLOP
IMPORTING
JOB_OUTPUT_OPTIONS = JOB_OUTPUT_OPTIONS
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_PRN_CTRLOP-NO_OPEN = 'X'.
L_PRN_CTRLOP-NO_CLOSE = 'X'.
ENDFORM.
FORM SUB_BEGIN_PRINTER.
CALL FUNCTION L_FM_NAME
EXPORTING
CONTROL_PARAMETERS = L_PRN_CTRLOP
OUTPUT_OPTIONS = L_PRN_COMP
USER_SETTINGS = '' " using current setting
* T_HEADER = 'T_HEADER_A'
* TABLES
* IT_ITAB = ''
IMPORTING
job_output_info = t_otf_from_fm
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* t_otf[] = t_otf_from_fm-otfdata[].
APPEND LINES OF t_otf_from_fm-otfdata TO t_otf.
ENDFORM.
FORM SUB_CALL_CLOSEFORM.
CALL FUNCTION 'SSF_CLOSE'
IMPORTING
JOB_OUTPUT_INFO = JOB_OUTPUT_INFO
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
OTHERS = 4.
ENDFORM.
FORM PRI_PDF.
DATA: w_bin_filesize TYPE i, " Binary File Size
w_filename TYPE string,
w_file_path TYPE string,
w_full_path TYPE string.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = w_bin_filesize
TABLES
otf = t_otf
lines = t_pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* To display File SAVE dialog window
CONCATENATE sy-cprog '-' sy-datum '-' sy-uzeit '.PDF' INTO w_filename.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
default_file_name = w_filename
CHANGING
filename = w_filename
path = w_file_path
fullpath = w_full_path
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Use the FM GUI_DOWNLOAD to download the generated PDF file onto the
* presentation server
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = w_bin_filesize
filename = w_full_path
filetype = 'BIN'
TABLES
data_tab = t_pdf_tab.
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
- ABAP DIALOG開發基本技術參考(smartform 打印功能,可打PDF)
- Smartform標準調用打印(可打PDF)
- ABAP:Smartform生成PDF
- SMARTFORM打印PDF
- ABAP DIALOG開發基本技術參考(主程式)
- ABAP DIALOG開發基本技術參考(SCREEN的主模塊調用)
- smartform 打印预览时转PDF查看
- smartform 打印预览时转PDF查看
- ABAP DIALOG開發基本技術參考(主窗體100的INCLUDE-OOP ALV技術)
- ABAP DIALOG開發基本技術參考(主窗體200的INCLUDE-SCREEN技術)
- smartform打印
- 通过PDF无纸化测试SAP SmartForm打印效果
- ABAP Smartform实例
- ABAP开发Smartform实例
- ABAP程序打印Spool Request到PDF
- smartform转PDF
- Smartform下載PDF
- SMARTFORM 转 PDF
- 想入市下列树型列表框啊?
- Related to Oracle 面向程序员的数据库访问性能优化法则(转)
- 网站seo的一些经验总结
- 单例模式
- ABAP DIALOG開發基本技術參考(主窗體200的INCLUDE-SCREEN技術)
- ABAP DIALOG開發基本技術參考(smartform 打印功能,可打PDF)
- 单文档(SDI)视图类中手动添加的CListCtrl响应鼠标单击事件!
- 关于Java支付宝接口的心得
- 太抠了。
- Android 实现图片的自动缩放,适应分辨率不同的手机
- ABAP DIALOG開發基本技術參考(SCREEN的主模塊調用)
- VB动态更改窗口图标的类(支持WinXP的32位图标)
- PHP的cURL库简单和有效地抓网页
- JQuery Table