Abap - SMARTFROMS实现套打功能

  •  在调入函数的传入参数 control_parameters 结构的字段(no_open,no_close)做控制就可以了 
  LOOP AT gt_head INTO gs_head WHERE sel EQ abap_true.
    REFRESH gt_item[].
    LOOP AT lt_lips INTO DATA(lw_lips) WHERE vbeln = gs_head-vbeln.
      READ TABLE lt_makt INTO DATA(lw_makt) WITH KEY matnr = lw_lips-matnr BINARY SEARCH.
      READ TABLE lt_t006 INTO DATA(lw_t006) WITH KEY msehi = lw_lips-vrkme BINARY SEARCH.
      READ TABLE lt_mara INTO DATA(lw_mara) WITH KEY matnr = lw_lips-matnr BINARY SEARCH.
      gw_item = VALUE #( vbeln = lw_lips-vbeln
                         posnr = lw_lips-posnr
                         matnr = lw_lips-matnr
                         lfimg = lw_lips-lfimg
                         maktx = lw_makt-maktx
                         meins = lw_t006-mseht
                         ean11 = lw_mara-ean11
                       ).
      IF lw_lips-uecha NE space.
        gw_item-posnr = lw_lips-uecha.
      ENDIF.
      IF gw_item-lfimg NE 0.
        APPEND gw_item TO gt_item.
      ENDIF.
      CLEAR:gw_item,lw_makt,lw_t006,lw_mara.
    ENDLOOP.

    AT FIRST.
      ls_control_param-no_close = abap_true.
    ENDAT.

    AT LAST.
      ls_control_param-no_close = abap_false.
    ENDAT.
    CALL FUNCTION lv_fmname
      EXPORTING
        control_parameters = ls_control_param
        output_options     = ls_output_option
        user_setting       = space
        is_head            = gs_head
      TABLES
        it_item            = gt_item
      EXCEPTIONS
        formatting_error   = 1
        internal_error     = 2
        send_error         = 3
        user_canceled      = 4
        OTHERS             = 5.
    ls_control_param-no_open = abap_true.
  ENDLOOP.

你可能感兴趣的:(ABAP)