ALV自動(dòng)刷新,字段搜索幫助


*&---------------------------------------------------------------------*
*& Report  ZMM006
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zmm213.
TYPE-POOLS: slis.

TABLES:resb,rkpf,makt,t001l,cskt,mara.
*一、數(shù)據(jù)聲明
DATA: BEGIN OF item OCCURS 0,
        mark(1),                                "選擇記錄
        ztt(10),
        zt(2),
        rsnum     LIKE rkpf-rsnum,              "預(yù)留單號(hào)
        lgort     LIKE resb-lgort,              "發(fā)料倉(cāng)庫(kù)
        lgobe     LIKE t001l-lgobe,             "發(fā)料倉(cāng)庫(kù)描述
        lgpbe     LIKE mard-lgpbe,              "倉(cāng)管員
        kostl     LIKE rkpf-kostl,              "成本中心
        ktext     LIKE cskt-ktext,
        matnr     LIKE resb-matnr,              "物料編碼
        maktx     LIKE makt-maktx,              "物料描述
        meins     LIKE resb-meins,              "單位
        bdmng     LIKE resb-bdmng,              "需求數(shù)量
        bdter     LIKE resb-bdter,              "需求日期
        bwart     LIKE rkpf-bwart,              "移動(dòng)類型
        werks     LIKE resb-werks,              "工廠
        rspos     LIKE resb-rspos,              "行項(xiàng)目
        ebelx(3),                               "序號(hào)
        enmng     LIKE resb-enmng,              "提貨數(shù)量
        zbdmng    LIKE resb-enmng,              "實(shí)際需求數(shù)量
        zdbls     LIKE zsjlst-zdbls,             "流水號(hào)
        usnam     LIKE rkpf-usnam,
        sjdlb(12),
        name      LIKE usrefus-useralias,
        name1     LIKE usrefus-useralias,
        ztbdmng   LIKE resb-bdmng,
        lifnr     LIKE mkol-lifnr,
        name2     LIKE lfa1-name1,
        lgfsb     LIKE marc-lgfsb,              "接收倉(cāng)庫(kù)
        slabs     LIKE mkol-slabs,
      END OF item.

DATA: gd_repid LIKE sy-repid.
DATA: i_grid_settings TYPE lvc_s_glay .
DATA: lt_h LIKE TABLE OF item WITH HEADER LINE.
DATA: wa_lt LIKE TABLE OF item WITH HEADER LINE.
DATA: wb_lt LIKE TABLE OF item WITH HEADER LINE.
DATA: wa_item LIKE item.
DATA: lft_h LIKE TABLE OF item WITH HEADER LINE.               "輸出到sf 的抬頭數(shù)據(jù)
DATA: lft_i LIKE TABLE OF item WITH HEADER LINE.               "輸出到sf 的項(xiàng)目數(shù)據(jù)
DATA: is_i LIKE TABLE OF item  WITH HEADER LINE.
DATA: l_zdbls   LIKE zjlst-zdbls,l_con(30),l_num TYPE numc4.
DATA: p_zjlst LIKE TABLE OF zjlst  WITH HEADER LINE.
DATA: p_ztlsdh LIKE TABLE OF ztlsdh WITH HEADER LINE.
DATA: s_zzscdj LIKE TABLE OF zzscdj  WITH HEADER LINE.
DATA: lt_mkol LIKE TABLE OF mkol WITH HEADER LINE.

DATA: afield TYPE slis_fieldcat_alv.
DATA: fieldcat TYPE TABLE OF slis_fieldcat_alv WITH HEADER LINE.
DATA: layout TYPE slis_layout_alv.
DATA: gt_events TYPE slis_t_event.
DATA: l_pos TYPE i VALUE 1.
DATA: s_i          TYPE i ,
      wl_answer(1) TYPE c.
DATA: BEGIN OF it_save OCCURS 0.
        INCLUDE STRUCTURE zrmm204t1.
DATA:   color(4) TYPE c,
        makts    LIKE makt-maktx,
        name1    LIKE lfa1-name1,
        dispo    LIKE zrmm204t2-dispo,
        chck.
DATA: END OF it_save.
DATA: BEGIN OF it_header OCCURS 0,
        lifnr LIKE it_save-lifnr,
        werks LIKE it_save-werks,
        umlgo LIKE it_save-umlgo,
        lgpbe LIKE it_save-lgpbe,
      END OF it_header.

DATA tem_grid TYPE REF TO cl_gui_alv_grid.
*----------------------------------------------------------------------*
*       CLASS LCL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:
      update_delta_tables
                    FOR EVENT data_changed_finished OF cl_gui_alv_grid
        IMPORTING e_modified et_good_cells.
ENDCLASS.                    "LCL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
*       CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD update_delta_tables.
    LOOP AT item INTO wa_item." WHERE lifnr IS NOT INITIAL.
      CLEAR:wa_item-name2,wa_item-slabs.
      SELECT SINGLE name1 INTO wa_item-name2
        FROM lfa1 WHERE lifnr = wa_item-lifnr.
      SELECT SINGLE slabs INTO wa_item-slabs
      FROM mkol WHERE matnr = wa_item-matnr AND werks = wa_item-werks
                                            AND lgort = wa_item-lgort
                                            AND sobkz = 'K'
                                            AND lifnr = wa_item-lifnr.

      MODIFY item FROM wa_item TRANSPORTING name2 slabs.
    ENDLOOP.
    DATA stbl TYPE lvc_s_stbl.
*   穩(wěn)定刷新
    stbl-row = 'X'." 基于行的穩(wěn)定刷新
    stbl-col = 'X'." 基于列穩(wěn)定刷新
    CALL METHOD tem_grid->refresh_table_display
      EXPORTING
        is_stable = stbl.
  ENDMETHOD.                  "update_delta_tables

ENDCLASS.              "LCL_EVENT_RECEIVER IMPLEMENTATION
DATA gt_event_receiver TYPE REF TO lcl_event_receiver .

*宏的定義
DEFINE fill.
  afield-col_pos = l_pos.
  afield-fieldname = &1.
  afield-seltext_l = &2.
  afield-no_zero   = &3.
  afield-key       = &4.
  afield-edit      = &5.

  append afield to fieldcat.
  clear afield.
  l_pos = l_pos + 1.
END-OF-DEFINITION.

*二、聲明查詢屏幕

SELECTION-SCREEN BEGIN OF BLOCK blc WITH FRAME TITLE text-001.
PARAMETERS:      p_werks  LIKE resb-werks OBLIGATORY DEFAULT '6000'.
SELECT-OPTIONS : p_lgort  FOR resb-lgort .
SELECT-OPTIONS : p_rsnum FOR rkpf-rsnum.
SELECT-OPTIONS : p_kostl FOR rkpf-kostl.
SELECT-OPTIONS : p_bdter  FOR resb-bdter.
SELECTION-SCREEN END OF BLOCK blc.

*五、取數(shù)
START-OF-SELECTION.
  PERFORM frm_get_event.
  PERFORM frm_get_data.                 "獲取數(shù)據(jù)
  IF item[] IS NOT INITIAL.
    PERFORM frm_show_data.
  ELSE.
    MESSAGE s001(00) WITH '沒有查詢到數(shù)據(jù)'.
  ENDIF.

FORM frm_get_data .
*SQL取數(shù)
  SELECT  rkpf~rsnum resb~lgort rkpf~kostl  resb~matnr
          resb~meins resb~bdmng resb~bdter resb~werks rkpf~bwart
          resb~enmng resb~rspos rkpf~usnam
    INTO CORRESPONDING FIELDS OF TABLE item
    FROM rkpf
    INNER JOIN resb ON ( rkpf~rsnum = resb~rsnum AND resb~xloek = '' AND resb~kzear = '' )
    WHERE rkpf~bwart IN ('201','Z35')  AND rkpf~rsnum IN p_rsnum
    AND rkpf~kostl IN p_kostl AND resb~bdter IN p_bdter AND resb~lgort IN p_lgort  AND resb~werks = p_werks.
  SORT item BY rsnum lgort kostl rspos matnr DESCENDING.
*獲取其他字段
  LOOP AT item.
    item-lgfsb = item-lgort.                   "接收庫(kù)存地
    CASE item-lgort.
      WHEN '4002'.
        item-lgort = '4020'.                   "發(fā)出庫(kù)存地
      WHEN '4015'.
        item-lgort = '4019'.                   "發(fā)出庫(kù)存地
    ENDCASE.

*獲取倉(cāng)庫(kù)描述
*    SELECT SINGLE lgobe INTO item-lgobe FROM t001l WHERE lgort = item-lgort AND werks = p_werks.
    "獲取倉(cāng)管員
    SELECT SINGLE lgpbe INTO item-lgpbe FROM mard WHERE lgort = item-lgort  AND werks = p_werks AND matnr = item-matnr.
*物料描述
    SELECT SINGLE maktx INTO item-maktx
      FROM makt WHERE matnr = item-matnr.
*實(shí)際需求數(shù)量
    item-zbdmng = item-bdmng - item-enmng.
*領(lǐng)用部門 KTEXT
    SELECT SINGLE ktext INTO item-ktext FROM cskt WHERE kostl = item-kostl AND spras = '1' AND kokrs = 'BVAC'.
    SELECT SINGLE useralias INTO item-name FROM usrefus WHERE bname = sy-uname.
    SELECT SINGLE useralias INTO item-name1 FROM usrefus WHERE bname = item-usnam.
**更新內(nèi)表!
**供應(yīng)商庫(kù)存
    CLEAR lt_mkol[].
    SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_mkol
    FROM mkol WHERE matnr = item-matnr AND werks = p_werks
                                       AND lgort = item-lgort
                                       AND sobkz = 'K'.
    SORT lt_mkol BY slabs DESCENDING.
    READ TABLE lt_mkol INDEX 1.
    IF sy-subrc = 0.
      item-lifnr = lt_mkol-lifnr.
      SELECT SINGLE name1 INTO item-name2
        FROM lfa1 WHERE lifnr = item-lifnr.
      item-slabs = lt_mkol-slabs.
    ENDIF.

    MODIFY item .
  ENDLOOP.
  SORT item BY rsnum lgort lgpbe kostl rspos matnr DESCENDING.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_SHOW_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_show_data .
  i_grid_settings-edt_cll_cb  = 'X' .            "顯示界面可編輯字段上修改了數(shù)據(jù),回車后就會(huì)立即將內(nèi)表的數(shù)據(jù)也修改
  layout-colwidth_optimize    = 'X'.                "設(shè)置字段列寬自適應(yīng)
  layout-zebra             = 'X'.

  CLEAR afield.
  REFRESH fieldcat.

  fill  'MARK'       '選擇'          '' 'X' 'X'.
  fieldcat-checkbox = 'X'.
  fieldcat-hotspot = ''.
  MODIFY fieldcat INDEX 1 TRANSPORTING checkbox hotspot.
  fill  'RSNUM'      '預(yù)留單號(hào)'         '' '' ''.
  fill  'NAME1'      '預(yù)留創(chuàng)建人'        '' '' ''.
  fill  'RSPOS'      '行項(xiàng)目'           '' '' ''.
  fill  'BWART'      '移動(dòng)類型'         '' '' ''.
  fill  'KOSTL'      '成本中心'         '' '' ''.
  fill  'KTEXT '     '部門'         '' '' ''.
  fill  'BDTER'      '需求日期'         '' '' ''.

  fill  'MATNR'      '物料編碼'         '' '' ''.
  fill  'MAKTX'      '物料描述'         '' '' ''.
  fill  'MEINS'      '單位'             '' '' ''.
  fill  'LGORT'      '發(fā)出倉(cāng)庫(kù)'         '' '' 'X'.
  fill  'LGFSB'      '接收倉(cāng)庫(kù)'         '' '' 'X'.
  fill  'ZBDMNG'     '數(shù)量'         '' '' ''.
  fill  'ZTBDMNG'    '實(shí)發(fā)數(shù)量'     'X' '' 'X'.
  fill  'LGPBE'      '倉(cāng)管員'     '' '' ''.
  fill  'LIFNR'      '供應(yīng)商'     '' '' 'X'.
  fill  'NAME2'      '供應(yīng)商名稱'     '' '' ''.
  fill  'SLABS'      '寄售庫(kù)存'     '' '' ''.
  fieldcat-inttype = 'C'.
  fieldcat-datatype = 'QUAN'.
  MODIFY fieldcat INDEX 15 TRANSPORTING inttype datatype.
  fieldcat-ref_tabname  = 'LFA1'.
  fieldcat-ref_fieldname  = 'LIFNR'.
  MODIFY fieldcat INDEX 17 TRANSPORTING ref_tabname ref_fieldname.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_grid_settings          = i_grid_settings                 "顯示界面可編輯字段上修改了數(shù)據(jù),回車后就會(huì)立即將內(nèi)表的數(shù)據(jù)也修改
      i_callback_program       = sy-cprog "sy-repid                        "標(biāo)記當(dāng)前程序
      it_fieldcat              = fieldcat[]
      is_layout                = layout
      i_callback_user_command  = 'USER_COMMAND'
      i_callback_pf_status_set = 'SET_STATUS'
      it_events                = gt_events
    TABLES
      t_outtab                 = item.
ENDFORM.                    " FRM_SHOW_DATA
*
FORM set_status USING rt_extab TYPE slis_t_extab.
  SET PF-STATUS 'ZMMZT'.
ENDFORM.
FORM user_command USING rf_ucomm  LIKE sy-ucomm
                        rs        TYPE slis_selfield .
  rs-refresh = 'X'.

  CASE rf_ucomm.

    WHEN '&IC1'.
      READ TABLE item  INDEX rs-tabindex.
*      IF rs-fieldname = 'ZDYCS'.
*        PERFORM frm_show_dymx.                                    "顯示打印明細(xì)
**        SET PARAMETER ID 'BES' FIELD lt_h-ebeln .
**        CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
*      ENDIF.

    WHEN '&ZZPT'.
      READ TABLE item WITH KEY mark = 'X'.

      IF sy-subrc <> 0.
        MESSAGE s001(00) WITH '請(qǐng)選擇記錄' DISPLAY LIKE 'E'.
        EXIT.
      ENDIF.
      LOOP AT item WHERE mark IS NOT INITIAL.

        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            input  = item-matnr
          IMPORTING
            output = item-matnr.
        IF item-ztbdmng = 0 OR item-ztbdmng = ''.
          MESSAGE s001(00) WITH '行' sy-tabix  '未輸入數(shù)據(jù),不能打??!' DISPLAY LIKE 'E'.
          RETURN.
        ENDIF.
        IF item-ztbdmng > item-zbdmng .
          MESSAGE s001(00) WITH '行' sy-tabix  '數(shù)據(jù)小于可領(lǐng)料數(shù)量' DISPLAY LIKE 'E'.
          item-ztbdmng = ''.
          MODIFY item.
          RETURN.
        ENDIF.
        IF item-lifnr IS INITIAL.
          MESSAGE s001(00) WITH '行' sy-tabix  '供應(yīng)商為空,不能打?。? DISPLAY LIKE 'E'.
          RETURN.
        ENDIF.
        IF item-slabs = 0.
          MESSAGE s001(00) WITH '行' sy-tabix  '供應(yīng)商寄售庫(kù)存為0,不能打?。? DISPLAY LIKE 'E'.
          RETURN.
        ENDIF.
        IF item-lgort IS INITIAL OR item-lgfsb IS INITIAL.
          MESSAGE s001(00) WITH '行' sy-tabix  '倉(cāng)庫(kù)為空,不能打?。? DISPLAY LIKE 'E'.
          RETURN.
        ENDIF.

        CLEAR:mara.
        SELECT  SINGLE *  FROM  mara WHERE matnr = item-matnr.
        IF  mara-mtart = 'ZR02' OR mara-mtart = 'ZR03' OR mara-mtart = 'ZR05'.

          CALL FUNCTION 'POPUP_TO_CONFIRM'
            EXPORTING
              text_question         = '將打印數(shù)據(jù)中存在標(biāo)準(zhǔn)件或輔料,是否打?。?
              text_button_1         = '確定'
              text_button_2         = '退出'
              default_button        = '2'
              display_cancel_button = 'X'
              start_column          = 25
              start_row             = 6
            IMPORTING
              answer                = wl_answer
            EXCEPTIONS
              text_not_found        = 1
              OTHERS                = 2.
          EXIT.
        ENDIF.
      ENDLOOP.
      IF  wl_answer = '1' OR wl_answer IS INITIAL.
        PERFORM savedata.
        PERFORM printdata.
        LEAVE PROGRAM.
      ENDIF.
    WHEN '&ZALL'.
      LOOP AT item WHERE mark IS INITIAL .
        item-mark = 'X'.
        MODIFY item TRANSPORTING mark.
      ENDLOOP.
    WHEN '&ZSAL'.
      LOOP AT item WHERE mark IS NOT INITIAL .
        item-mark = ''.
        MODIFY item TRANSPORTING mark.
      ENDLOOP.
  ENDCASE.

ENDFORM.                    "user_command
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_EVENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_event .
  DATA l_events TYPE LINE OF slis_t_event.
  CLEAR l_events.
  l_events-name = 'CALLER_EXIT'.
  l_events-form = 'FM_BUTTON'.
  APPEND l_events TO gt_events.
ENDFORM.                    " FRM_GET_EVENT
*&---------------------------------------------------------------------*
*&      Form  fm_button
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->E_GRID     text
*----------------------------------------------------------------------*
FORM fm_button USING e_grid TYPE slis_data_caller_exit.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = tem_grid.

* 設(shè)置enter事件
  CALL METHOD tem_grid->register_edit_event
    EXPORTING
      i_event_id = cl_gui_alv_grid=>mc_evt_enter
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.

  DATA: gt_event_receiver TYPE REF TO lcl_event_receiver .
  CREATE OBJECT gt_event_receiver.
  SET HANDLER gt_event_receiver->update_delta_tables FOR tem_grid.                          "更新內(nèi)表itab
ENDFORM.                    "FM_BUTTON
*&---------------------------------------------------------------------*
*&      Form  SAVEDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM savedata .
  DATA: numc(4) TYPE n.

*將item數(shù)據(jù)對(duì)應(yīng)到it_save
  CLEAR:it_save,it_save[].
  LOOP AT item WHERE mark IS NOT INITIAL.
    it_save-lifnr = item-lifnr.
    it_save-werks = item-werks.
    it_save-umlgo = item-lgfsb.
    it_save-lgpbe = item-lgpbe.
    it_save-matnr = item-matnr.
    it_save-bdmng = item-ztbdmng.
    it_save-meins = item-meins.
    it_save-lgort = item-lgort.
    it_save-makts = item-maktx.
    it_save-name1 = item-name2.
    APPEND it_save.
  ENDLOOP.

  SORT it_save .
  LOOP AT it_save WHERE lifnr <> ''.
    AT NEW lgpbe.
      CALL FUNCTION 'ZNUMC4_GET_NEXT'
        EXPORTING
          subobject = '02'
        IMPORTING
          number    = numc
        EXCEPTIONS
          OTHERS    = 9.
      it_save-zdydh = 'ZC' && sy-datum+2(6) && numc.
      MODIFY it_save TRANSPORTING zdydh
                     WHERE lifnr = it_save-lifnr AND
                           werks = it_save-werks AND
                           umlgo = it_save-umlgo AND
                           lgpbe = it_save-lgpbe.
    ENDAT.

    MOVE-CORRESPONDING it_save TO it_header.
    COLLECT it_header.
  ENDLOOP.

  CALL FUNCTION 'ZNUMC4_GET_NEXT'
    EXPORTING
      subobject = '02'
    IMPORTING
      number    = numc
    EXCEPTIONS
      OTHERS    = 9.

  it_save-zjsdh = sy-datum && numc.
  MODIFY it_save TRANSPORTING zjsdh WHERE zjsdh = ''.
  LOOP AT it_save.
    it_save-zjsdi = sy-tabix.
    it_save-erdat = sy-datum.
    it_save-erzet = sy-uzeit.
    it_save-ernam = sy-uname.
    it_save-wllyc = '05'.
    MODIFY it_save.
  ENDLOOP.

  INSERT zrmm204t1 FROM TABLE it_save.
  COMMIT WORK.
ENDFORM.                    " SAVEDATA
*&---------------------------------------------------------------------*
*&      Form  PRINTDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM printdata .
  DATA: fmname TYPE rs38l_fnam.
  DATA: ctlpara TYPE ssfctrlop.
  DATA: outopt TYPE ssfcresop.
  DATA: jobinfo TYPE ssfcrescl.
  DATA: itab LIKE it_save[] WITH HEADER LINE.
  DATA: ls_composer_param TYPE ssfcompop.

  ctlpara-langu     = '1'.
  ctlpara-no_open   = 'X'.
  ctlpara-no_close  = 'X'.
  ls_composer_param-tdimmed  = 'X'.
  ls_composer_param-tddelete = 'X'.
  ls_composer_param-tdiexit = 'X'.
  CALL FUNCTION 'SSF_OPEN'
    EXPORTING
      control_parameters = ctlpara
      output_options     = ls_composer_param
    IMPORTING
      job_output_options = outopt
    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.
    EXIT.
  ENDIF.

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = 'ZRMM213'
    IMPORTING
      fm_name            = fmname
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.
  IF sy-subrc <> 0.
    MESSAGE 'Call SSF_FUNCTION_MODULE_NAME Error' TYPE 'E'.
  ENDIF.

  LOOP AT it_header.
    CLEAR itab[].
    LOOP AT it_save WHERE lifnr = it_header-lifnr AND
                          werks = it_header-werks AND
                          umlgo = it_header-umlgo AND
                          lgpbe = it_header-lgpbe.
      itab = it_save.
      APPEND itab.
    ENDLOOP.

    CALL FUNCTION fmname
      EXPORTING
        control_parameters = ctlpara
        user_settings      = ' '
      TABLES
        intab              = itab
      EXCEPTIONS
        formatting_error   = 1
        internal_error     = 2
        send_error         = 3
        user_canceled      = 4
        OTHERS             = 5.
    IF sy-subrc <> 0.
      MESSAGE 'Call SmartForms Error' TYPE 'E'.
    ENDIF.
  ENDLOOP.
  IF sy-subrc <> 0. "單獨(dú)重新打印某個(gè)打印單號(hào)
    CALL FUNCTION fmname
      EXPORTING
        control_parameters = ctlpara
        user_settings      = ' '
      TABLES
        intab              = it_save
      EXCEPTIONS
        formatting_error   = 1
        internal_error     = 2
        send_error         = 3
        user_canceled      = 4
        OTHERS             = 5.
    IF sy-subrc <> 0.
      MESSAGE 'Call SmartForms Error' TYPE 'E'.
    ENDIF.
  ENDIF.

  CALL FUNCTION 'SSF_CLOSE'
    IMPORTING
      job_output_info  = jobinfo
    EXCEPTIONS
      formatting_error = 1
      internal_error   = 2
      send_error       = 3
      OTHERS           = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF jobinfo-outputdone = 'X'. "打印了
    LOOP AT it_save.
      UPDATE zrmm204t1 SET druck = 'X'
        WHERE zdydh = it_save-zdydh.
    ENDLOOP.
    COMMIT WORK.
  ENDIF.
ENDFORM.                    " PRINTDATA
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容