表维护生成器屏幕字段属性设置
自动记录创建时间、创建人信息
表维护生成器界面=>环境=>修改=>事件=>设置事件对应子例程代码
程序代码:
FORM frm_create_entry.
FIELD-SYMBOLS: <fs_maintview> TYPE any,
<lv_field> TYPE any.
CHECK x_header-maintview IS NOT INITIAL.
ASSIGN (x_header-maintview) TO <fs_maintview>.
CHECK sy-subrc EQ 0 AND <fs_maintview> IS ASSIGNED.
UNASSIGN <lv_field>.
ASSIGN COMPONENT 'ERDAT' OF STRUCTURE <fs_maintview> TO <lv_field>.
IF sy-subrc EQ 0 AND <lv_field> IS ASSIGNED.
<lv_field> = sy-datum.
ENDIF.
UNASSIGN <lv_field>.
ASSIGN COMPONENT 'ERZET' OF STRUCTURE <fs_maintview> TO <lv_field>.
IF sy-subrc EQ 0 AND <lv_field> IS ASSIGNED.
<lv_field> = sy-uzeit.
ENDIF.
UNASSIGN <lv_field>.
ASSIGN COMPONENT 'ERNAM' OF STRUCTURE <fs_maintview> TO <lv_field>.
IF sy-subrc EQ 0 AND <lv_field> IS ASSIGNED.
<lv_field> = sy-uname.
ENDIF.
ENDFORM.
FORM frm_change_entry.
DATA:lo_data TYPE REF TO data,
lv_tabix TYPE sy-tabix.
FIELD-SYMBOLS:<fs_maintview> TYPE any,
<lv_field> TYPE any.
IF x_header-maintview IS NOT INITIAL.
CREATE DATA lo_data TYPE (x_header-maintview).
IF lo_data IS BOUND.
ASSIGN lo_data->* TO <fs_maintview>.
ENDIF.
IF <fs_maintview> IS ASSIGNED.
IF <action> = 'U'.
LOOP AT total.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc = 0.
lv_tabix = sy-tabix.
ELSE.
CONTINUE.
ENDIF.
IF <action> = 'U'.
CLEAR <fs_maintview>.
MOVE-CORRESPONDING <vim_total_struc> TO <fs_maintview>.
UNASSIGN <lv_field>.
ASSIGN COMPONENT 'AEDAT' OF STRUCTURE <fs_maintview> TO <lv_field>.
IF sy-subrc EQ 0 AND <lv_field> IS ASSIGNED.
<lv_field> = sy-datum.
ENDIF.
UNASSIGN <lv_field>.
ASSIGN COMPONENT 'AEZET' OF STRUCTURE <fs_maintview> TO <lv_field>.
IF sy-subrc EQ 0 AND <lv_field> IS ASSIGNED.
<lv_field> = sy-uzeit.
ENDIF.
UNASSIGN <lv_field>.
ASSIGN COMPONENT 'AENAM' OF STRUCTURE <fs_maintview> TO <lv_field>.
IF sy-subrc EQ 0 AND <lv_field> IS ASSIGNED.
<lv_field> = sy-uname.
ENDIF.
MOVE-CORRESPONDING <fs_maintview> TO <vim_total_struc>.
MODIFY total.
extract = total.
MODIFY extract INDEX lv_tabix.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
sy-subrc = 0.
ENDFORM.