abap SMARTFORMS打印

事务码SMARTFORMS,做好表单和样式,没难度,花点时间慢慢调格式就是了。

注意的点:参考的字段如果包含数量和货币,需再货币/数量这里定义参考字段,同时引用数量和货币字段时,后面需加(C),防止上下位置不一致。

 

 

 

 

回到报表,定义

DATA: lv_fname TYPE rs38l_fnam.
  DATA: gs_head   LIKE zmm064e1h,
        gt_output LIKE TABLE OF zmm064e1d,
        gs_output LIKE zmm064e1d,
        lv_loop   LIKE sy-tabix.

DATA: gw_options TYPE ssfcompop,
      gw_control TYPE ssfctrlop.

DATA: lv_fname TYPE rs38l_fnam.
  DATA: gs_head   LIKE zmm064e1h,
        gt_output LIKE TABLE OF zmm064e1d, "se11定义的结构,作为表,在SMARTFORMS中在表格接口填入,
        gs_output LIKE zmm064e1d, "SE11定义的结构,作为抬头,在SMARTFORMS中在表格接口填入,
        lv_loop   LIKE sy-tabix.

 

 得到表单程序名

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           'ZMM064E1'
*     VARIANT            = ' '
*     DIRECT_CALL        = ' '
    IMPORTING
      fm_name            = lv_fname
    EXCEPTIONS
      no_form            1
      no_function_module 2
      OTHERS             3.

设置并打开打印窗口

    gw_options-tdnewid 'X'.    "New Spool
    gw_options-tdimmed 'X'.
    gw_options-tddelete 'X'.    "Delete Spool After Print
    gw_options-tdfinal 'X'.
    gw_options-tdiexit 'X'.    "Exit after printing in print preview
    gw_options-tddest 'LP01'.

    gw_control-no_dialog ''.
    gw_control-preview   'X'.
    gw_control-no_open   'X'.
    gw_control-no_close  'X'.
    CALL FUNCTION 'SSF_OPEN'    "打开打印窗口
      EXPORTING
        control_parameters = gw_control
        output_options     = gw_options
        user_settings      ''
      EXCEPTIONS
        formatting_error   1
        internal_error     2
        send_error         3
        user_canceled      4
        OTHERS             5.

给传入的值赋值后,调用表单对应的程序名

CALL FUNCTION lv_fname
        EXPORTING
          control_parameters = gw_control
          output_options     = gw_options
          gs_head            = gs_head
*    IMPORTING
*         job_output_info    = l_end
*         job_output_options = l_start
        TABLES
          gt_output          = gt_output
*         it_bkpf            = lt_bkpf
        EXCEPTIONS
          formatting_error   1
          internal_error     2
          send_error         3
          user_canceled      4
          OTHERS             5.

最后关闭打印

CALL FUNCTION 'SSF_CLOSE'
      EXCEPTIONS
        formatting_error 1
        internal_error   2
        send_error       3
        OTHERS           4.

posted @ 2020-11-19 16:47  蛀牙首领  阅读(859)  评论(0编辑  收藏  举报