smartform

1.页格式:
1.1 运行事务代码SPAD;选择工具栏上的【完全管理】按钮——>选择【设备类型】页面(在该页面上有四个按钮:【设备类型】、【打印控制】、【格式类型】、【页格式】)
1.2选择【页格式】进入页格式列表界面,选择工具栏上的【修改】图标,工具栏左边会出现【新建】图标(注:不点【修改】图标是不会出现【新建】图标的);选择【新建】图标进入新建页格式界面,输入页格式名称“zkz”,方向选择肖像“Portrait”即竖向,纸张大小为:纸宽“215mm”、纸长“140mm”;(注:方向选为竖向则纸打印时是按竖向来作打印,如方向选横向则按横向打印,当你纸张设为140*215时才可横向打印);保存退出;

2.样式:输入事务码smartforms
在这里插入图片描述
在这里插入图片描述
3.同样SMARTFORMS事务码

在这里插入图片描述
在这里插入图片描述
4.smartforms调用
FORM data_print_list USING it_row_id TYPE lvc_t_roid.
*" 清单打印
DATA: lv_formname TYPE tdsfname VALUE ‘ZZLJYFIRP_0007_LIST’,
lv_function_name TYPE rs38l_fnam,
ls_output_option TYPE ssfcompop,
ls_control_param TYPE ssfctrlop,
ls_job_output_info TYPE ssfcrescl.
DATA: lv_open TYPE flag.

DATA: lo_grid TYPE REF TO cl_gui_alv_grid,
lt_row TYPE lvc_t_roid,
ls_row TYPE lvc_s_roid.

DATA: ls_list_header TYPE zsjyfi_0009,
ls_list_footer TYPE zsjyfi_0010,
lt_list TYPE STANDARD TABLE OF zsjyfi_0008,
ls_list TYPE zsjyfi_0008.

DATA: ls_output TYPE ty_output,
lt_output TYPE STANDARD TABLE OF ty_output.

CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = lo_grid.
CALL METHOD lo_grid->check_changed_data.

CHECK lo_grid IS NOT INITIAL.

lo_grid->get_selected_rows(
IMPORTING

  •  et_index_rows =     " Indexes of Selected Rows
    

    et_row_no = lt_row
    ).

    LOOP AT lt_row INTO ls_row.
    READ TABLE gt_output INTO ls_output INDEX ls_row-row_id.
    IF sy-subrc = 0.
    APPEND ls_output TO lt_output.
    ENDIF.
    ENDLOOP.

*" 抬头
ls_list_header-bukrs = ls_output-bukrs.
SELECT SINGLE
butxt
INTO ls_list_header-butxt
FROM t001
WHERE bukrs = p_bukrs.

LOOP AT lt_output INTO ls_output.

*" 清单
MOVE-CORRESPONDING ls_output TO ls_list.
ls_list-dmbtr = ls_output-document_dmbtr.
APPEND ls_list TO lt_list.

*" 合计
ls_list_footer-dmbtr_sum = ls_list_footer-dmbtr_sum + ls_output-document_dmbtr.

CLEAR: ls_list.

ENDLOOP.

*" get Function Module
CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
EXPORTING
formname = lv_formname

  • VARIANT            = ' '
    
  • DIRECT_CALL        = ' '
    
    IMPORTING
    fm_name = lv_function_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.
    ls_output_option-tdimmed = ‘X’.
    ls_output_option-tdnewid = ‘X’.
    ls_output_option-tddelete = ‘X’.
    ls_output_option-tdfinal = ‘X’.
  • ls_output_option-tddest = ‘PRT0’.
    ls_output_option-tddest = ‘LP01’.
    ls_output_option-tdprinter = ‘CNSAPWIN’.

ls_control_param-no_open = abap_true.
ls_control_param-no_close = abap_true.
ls_control_param-langu = sy-langu.

CALL FUNCTION ‘SSF_OPEN’
EXPORTING

  • ARCHIVE_PARAMETERS =
    user_settings      = ''
    
  • MAIL_SENDER        =
    
  • MAIL_RECIPIENT     =
    
  • MAIL_APPL_OBJ      =
    output_options     = ls_output_option
    control_parameters = ls_control_param
    
  • IMPORTING

  • JOB_OUTPUT_OPTIONS =
    

    EXCEPTIONS
    formatting_error = 1
    internal_error = 2
    send_error = 3
    user_canceled = 4
    OTHERS = 5.
    IF sy-subrc <> 0.

  • Implement suitable error handling here
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    lv_open = abap_true.
    ENDIF.

    CALL FUNCTION lv_function_name
    EXPORTING

  • ARCHIVE_INDEX      =
    
  • ARCHIVE_INDEX_TAB  =
    
  • ARCHIVE_PARAMETERS =
    control_parameters = ls_control_param
    
  • MAIL_APPL_OBJ      =
    
  • MAIL_RECIPIENT     =
    
  • MAIL_SENDER        =
    output_options     = ls_output_option
    user_settings      = ''
    is_list_header     = ls_list_header
    it_bkpf_list       = lt_list
    is_list_footer     = ls_list_footer
    
  • importing

  • document_output_info =
    
  • job_output_info    =
    
  • job_output_options =
    

    EXCEPTIONS
    formatting_error = 1
    internal_error = 2
    send_error = 3
    user_canceled = 4
    OTHERS = 5.
    IF sy-subrc <> 0.

  • Implement suitable error handling here
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    IF lv_open EQ abap_true.
    CALL FUNCTION ‘SSF_CLOSE’
    IMPORTING
    job_output_info = ls_job_output_info
    EXCEPTIONS
    formatting_error = 1
    internal_error = 2
    send_error = 3
    OTHERS = 4.
    IF sy-subrc <> 0.

  • Implement suitable error handling here
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDIF.
    ENDFORM.

System fields of Smart Forms

&SFSY-DATE&
Displays the date. You determine the display format in the user master record.

&SFSY-TIME&
Displays the time of day in the form HH:MM:SS.

&SFSY-PAGE&
Inserts the number of the current print page into the text. You determine the format of the page number (for example, Arabic, numeric) in the page node.

&SFSY-FORMPAGES&
Displays the total number of pages for the currently processed form. This allows you to include texts such as’Page x of y’ into your output.

&SFSY-JOBPAGES&
Contains the total page number of all forms in the currently processed print request.

&SFSY-WINDOWNAME&
Contains the name of the current window (string in the Window field)

&SFSY-PAGENAME&
Contains the name of the current page (string in the Page field)

&SFSY-PAGEBREAK&
Is set to ‘X’ after a page break (either automatic [Page 7] or command-controlled [Page 46])

&SFSY-MAINEND&
Is set as soon as processing of the main window on the current page ends

&SFSY-EXCEPTION&
Contains the name of the raised exception. You must trigger your own exceptions, which you defined in the form interface, using the user_exception macro (syntax: user_exception ).

猜你喜欢

转载自blog.csdn.net/weixin_42921800/article/details/84024123