1. 程式人生 > >表維護視圖 中變更日誌寫入自定義日誌表

表維護視圖 中變更日誌寫入自定義日誌表

com 寫入 動作 blog 數據 loop nts 發的 pen

SE54 輸入維護視圖: 菜單-》環境-》事件 添加事件1和2編輯器中寫入代碼:

事件1 點擊保存,會觸發,但是保存還沒有commit ,

total 內表中存有視圖每行的數據

<ACTION>的值有N -新增、U -更新、I -插入(新增)、D - 刪除的動作

<VIM_TOTAL_STRUC> loop total 每行的記錄

  FORM before_save.
   CONSTANTS: cn_zfit005(14
) TYPE c VALUE ZFIT005. DATA ln_zfit005 TYPE zfit005. IF x_header-viewname = cn_zfit005. LOOP AT total. IF <action> = I OR <action> = U OR <action> = N OR <action> = D. gs_nzfit005 = <vim_total_struc>. gs_nzfit005
-chngind = <action>. IF gs_nzfit005-chngind = N. gs_nzfit005-chngind = I. ENDIF. APPEND gs_nzfit005 TO gt_nzfit005. ENDIF. ENDLOOP. ENDIF. ENDFORM.

事件2 點擊保存按鈕後的觸發的事件,此時也沒有更新,需要手動提交commit

  FORM after_save.
      CONSTANTS: cn_zfit005(14
) TYPE c VALUE ZFIT005. DATA: lt_zfit005_log TYPE TABLE OF zfit005_log, ls_zfit005_log TYPE zfit005_log. IF x_header-viewname = cn_zfit005. LOOP AT gt_nzfit005 INTO gs_nzfit005. ls_zfit005_log-bukrs = gs_nzfit005-bukrs. ls_zfit005_log-lifnr = gs_nzfit005-lifnr. ls_zfit005_log-djdte = gs_nzfit005-djdte. ls_zfit005_log-chngind = gs_nzfit005-chngind. ls_zfit005_log-uname = sy-uname. ls_zfit005_log-datum = sy-datum. ls_zfit005_log-uzeit = sy-uzeit. APPEND ls_zfit005_log TO lt_zfit005_log. CLEAR ls_zfit005_log. ENDLOOP. INSERT zfit005_log FROM TABLE lt_zfit005_log. IF sy-subrc NE 0. ROLLBACK WORK. ELSE. COMMIT WORK AND WAIT. ENDIF. ENDIF.

表維護視圖 中變更日誌寫入自定義日誌表