SAP调用smartform打印、批量打印示例

本文介绍了如何在SAP环境中使用ABAP代码调用Smartforms进行单次及批量打印操作,详细展示了相关示例代码,帮助读者掌握SAP系统中的报表打印技术。
摘要由CSDN通过智能技术生成
  • 代码
    DATA:GO_GRID   TYPE REF TO CL_GUI_ALV_GRID.
    DATA: GT_PRINT TYPE TABLE OF ZFICO008_HEAD,
          GS_PRINT TYPE ZFICO008_HEAD.
    
    FORM FRM_USER_COMMAND USING UCOMM LIKE SY-UCOMM   "ALV调用FROM
          RS_SELFIELD TYPE SLIS_SELFIELD.
    
      DATA LS_STABLE TYPE LVC_S_STBL.
    
      CASE UCOMM.
        WHEN '&PRT'.
          CLEAR: GT_PRINT.
          PERFORM FRM_PROCESS_DATA.
          PERFORM FRM_CHECK_DATA.     "
    
          PERFORM FRM_PRINT_DATA.
    
        WHEN OTHERS.
      ENDCASE.
    
      LS_STABLE-ROW = 'X'.
      LS_STABLE-COL = 'X'.
    
      CALL METHOD GO_GRID->REFRESH_TABLE_DISPLAY
        EXPORTING
          IS_STABLE = LS_STABLE.
    
    ENDFORM.
    *&---------------------------------------------------------------------*
    *& Form FRM_PRINT_DATA
    *&---------------------------------------------------------------------*
    *& text
    *&----------------------------
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先,在ALV的程序里面定义一个新的按钮,用于触发打印操作。 2. 在按钮的事件处理中,调用函数 module_name = 'SSF_FUNCTION_MODULE_NAME',获取Smartform的函数模块名。 3. 然后,通过函数 module_name = 'SSF_FUNCTION_MODULE_NAME' 获取的函数模块名,调用函数 module_name,传入需要打印的数据。 4. 最后,调用函数 'SSF_FUNCTION_MODULE_NAME',传入Smartform的函数模块名和需要打印的数据,即可完成打印操作。 以下是示例代码: 1. 定义按钮 DATA: ok_code TYPE sy-ucomm. CASE ok_code. WHEN 'PRINT'. lv_layout-info_fname = 'ZALV_SMARTFORM'. CALL METHOD cl_gui_alv_grid=>get_selected_rows RECEIVING value = lt_sel. LOOP AT lt_sel INTO ls_sel. READ TABLE gt_outtab INTO ls_outtab INDEX ls_sel-index. APPEND ls_outtab TO lt_print. ENDLOOP. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lv_layout-info_fname IMPORTING fm_name = lv_fm_name. CALL FUNCTION lv_fm_name EXPORTING control_parameters = gt_cparams output_options = gt_oparams user_settings = gt_usparams TABLES t_outtab = lt_print. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lv_layout-info_fname IMPORTING fm_name = lv_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. ELSE. CALL FUNCTION lv_fm_name EXPORTING control_parameters = gt_cparams output_options = gt_oparams user_settings = gt_usparams TABLES t_outtab = lt_print. ENDIF. ENDCASE.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值