目录
一、表格维护生成器插入事件
创建表格通用字段结构
新增行,插入事件:
事件05(建立新条目):FORM_CREATE_DATA;
事件21(填充隐藏字段) :FORM_UPDATE_DATA
二、代码维护![](https://img-blog.csdnimg.cn/1877da7d66194961893843d0e76fd2ab.png)
插入Include:lzmmt0037f01,新建
代码如下:
*&---------------------------------------------------------------------*
*& 包含 LZMMT0037F01
*&---------------------------------------------------------------------*
FORM set_timestamp USING iv_flag
CHANGING cs_tab TYPE any.
DATA: lv_ts TYPE comt_changed_at_usr.
FIELD-SYMBOLS: <lv_comp_fs> TYPE any.
CONVERT DATE sy-datum TIME sy-uzeit INTO TIME STAMP lv_ts TIME ZONE sy-zonlo.
CASE iv_flag.
WHEN abap_true. "创建
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = sy-uname.
ENDIF.
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = sy-datum.
ENDIF.
ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = lv_ts.
ENDIF.
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = sy-uname.
ENDIF.
ASSIGN COMPONENT 'CHANGED_DATE' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = sy-datum.
ENDIF.
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = lv_ts.
ENDIF.
WHEN abap_false.
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = sy-uname.
ENDIF.
ASSIGN COMPONENT 'CHANGED_DATE' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = sy-datum.
ENDIF.
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE cs_tab TO <lv_comp_fs>.
IF <lv_comp_fs> IS ASSIGNED.
<lv_comp_fs> = lv_ts.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDFORM.
FORM form_create_data.
FIELD-SYMBOLS: <fs_view_name> TYPE any.
ASSIGN (vim_view_name) TO <fs_view_name>.
PERFORM set_timestamp USING abap_true
CHANGING <fs_view_name>.
ENDFORM.
FORM form_update_data.
FIELD-SYMBOLS: <fs_view_name> TYPE any.
ASSIGN (vim_view_name) TO <fs_view_name>.
PERFORM set_timestamp USING abap_false
CHANGING <fs_view_name>.
ENDFORM.
三、设置屏幕属性
可通过屏幕属性设置不可编辑,自动带出创建人、创建时间 、上次更改人、上次更改时间等;
也可以通过将这些字段设为用一个组,新建一个例程,用于PBO的屏幕属性控制
*----------------------------------------------------------------------*
***INCLUDE LZFIT0021O01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module FRM_SCREEN_MODIFY OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE frm_screen_modify OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'NDS' .
screen-invisible = '1'.
WHEN 'PUB' .
screen-input = '0'.
WHEN OTHERS.
screen-invisible = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.