通过SMATFORMS打印程序的参考模板详解编程语言

REPORT  ydemo_rick_print.

CONSTANTS: c_lable_smartforms TYPE tdsfname VALUE 'ZCUSTOMER'.  "标签smartforms 
DATA: wa_control_parameters LIKE ssfctrlop, 
wa_options TYPE ssfcompop, 
wa_job_output_info TYPE ssfcrescl, 
m_name TYPE rs38l_fnam. 
DATA: w_job_output_options TYPE ssfcresop. 
DATA: ls_zwmt018head TYPE zwmt018head, 
ls_zwmt018item TYPE zwmt018item. 
DATA: ls_print TYPE zcustomer_print. 
CLEAR ls_print. 
***对传入结构字段进行赋值 
CLEAR wa_control_parameters. 
CLEAR wa_options. 
CLEAR wa_job_output_info. 
wa_control_parameters-no_open  = 'X'. 
wa_control_parameters-no_close = 'X'. 
wa_control_parameters-langu    = sy-langu. 
*wa_control_parameters-no_dialog = 'X'."取消弹出窗口 
*wa_control_parameters-preview = 'X'."显示打印预览 
****** 
wa_options-tddest     = 'LP01'."默认打印机 
wa_options-rqposname = 'BTP'.  " 清单打印机-系统默认打印机 
wa_options-tdimmed    = 'X'. " 立即打印 
wa_options-tddelete   = 'X'."打印后删除 
*wa_options-tdnoprev   = 'X'.是否有打印预览按钮 
CALL FUNCTION 'SSF_OPEN' 
EXPORTING 
user_settings      = '' 
output_options     = wa_options 
control_parameters = wa_control_parameters 
IMPORTING 
job_output_options = w_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. 
EXIT. 
ENDIF. 
CLEAR m_name. 
*smartform打印 
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' 
EXPORTING 
formname           = c_lable_smartforms 
variant            = ' ' 
direct_call        = ' ' 
IMPORTING 
fm_name            = m_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. 
*smartform打印 
CALL FUNCTION m_name 
EXPORTING 
control_parameters = wa_control_parameters 
ih_print           = ls_print 
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. 
*    EXIT. 
CALL FUNCTION 'SSF_CLOSE' 
*    IMPORTING 
*      job_output_info  = wa_job_output_info 
EXCEPTIONS 
formatting_error = 1 
internal_error   = 2 
send_error       = 3 
OTHERS           = 4. 
IF sy-subrc <> 0. 
* Implement suitable error handling here 
ENDIF. 
*&---------------------------------------------------------------------* 
* 标记打印标识,当点击打印预览的时候不标记 
*----------------------------------------------------------------------* 
IF w_job_output_options-tdpreview <>'X'. 
"当点击打印时的执行 
ENDIF.

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/18368.html

(0)
上一篇 2021年7月19日 21:05
下一篇 2021年7月19日 21:05

相关推荐

发表回复

登录后才能评论