smartforms 范例 - 海边星
【原创】 smartforms 范例
栏目:ABAP  作者:在海边看星星  阅读:(1125)
DATA: g_bin_filesize        TYPE i,
      git_lines             TYPE STANDARD TABLE OF tline,
      gs_control            TYPE ssfctrlop,
      gs_output_options     TYPE ssfcompop,
      gs_job_output_info    TYPE ssfcrescl,
      gv_job_output_options TYPE ssfcresop.
      
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = 'ZMM_027'
    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.

  PERFORM frm_open_ssf.
  
  LOOP AT lt_alv.
    ls_alv = lt_alv.
    AT NEW mblnr.
      CLEAR: ls_head,lt_item[],lt_item.

      ls_head = VALUE #( mblnr = ls_alv-mblnr
                         lifnr = ls_alv-lifnr
                         name1 = ls_alv-name1
                         ekorg = ls_alv-ekorg
                         budat = ls_alv-budat
                         kostl = ls_alv-kostl
                         ernam = ls_alv-ernam
                         usnam = ls_alv-usnam
                         ename = ls_alv-ename
                         uname = ls_alv-uname
                         ktext = ls_alv-ktext
                         ekotx = ls_alv-ekotx ).
    ENDAT.

    lt_item = VALUE #( ebeln = lt_alv-ebeln
                       zeile = lt_alv-zeile
                       matnr = lt_alv-matnr
                       maktx = lt_alv-txz01
                       zspec = lt_alv-zspec
                       meins = lt_alv-meins
                       zsssl = lt_alv-zshsl
                       lgort = lt_alv-lgort
                       lgobe = lt_alv-lgobe
                      ).
    CONDENSE lt_item-zsssl NO-GAPS.

    IF lt_alv-bsart = 'Z005'.
      lt_item-matnr = lt_alv-anln1.
    ENDIF.

    APPEND lt_item.
    CLEAR lt_item.

    AT END OF mblnr.
**SMARTFORMS 开启
      CALL FUNCTION l_fm_name
        EXPORTING
          control_parameters = gs_control
          gs_output_options  = gs_output_options
          is_head            = ls_head   "SMARTFORMS抬头与脚标数据读取
        IMPORTING
          job_output_info    = gs_job_output_info
        TABLES
          it_item            = lt_item[] "表主体区域数据读取
        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.
    ENDAT.
  ENDLOOP.

  "关闭smartforms打印框
  PERFORM frm_close_ssf. ""
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_open_ssf .
*  gs_output_options-tddest = 'LP01'.
  gs_control-preview   = 'X'.  "打印预览
*  gs_control-no_dialog = 'X'.  "没有对话窗口打开
*  gs_control-getotf    = 'X'.  "取得OTF数据
  gs_control-no_open = 'X'.    "没有新的假脱机请求
  gs_control-no_close = 'X'.    "关闭假脱机请求

  CALL FUNCTION 'SSF_OPEN'
    EXPORTING
      user_settings      = 'X'
      control_parameters = gs_control
      output_options     = gs_output_options
    IMPORTING
      job_output_options = gv_job_output_options
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_close_ssf
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_close_ssf .
  CALL FUNCTION 'SSF_CLOSE'
    IMPORTING
      job_output_info  = gs_job_output_info
    EXCEPTIONS
      formatting_error = 1
      internal_error   = 2
      send_error       = 3
      OTHERS           = 4.
ENDFORM.




我的评论
昵称
邮箱
域名
  记住 通知博主
验证码

  联系我们

微信扫一扫

 登录  打赏

  随机文章