Maint view event 관련 coding
*----------------------------------------------------------------------*
***INCLUDE LZSD40800F02.
*----------------------------------------------------------------------*
* ** https://help.sap.com/saphelp_erp60_sp/helpdata/en/91/ca9f0ea9d111d1a5690000e82deaaa/content.htm
https://help.sap.com/saphelp_nw70/helpdata/en/af/4a3837a92cbe10e10000009b38f889/frameset.htm
FORM zset_datetime_0007. "event 01 - Before saving the data in the database
* FIELD-SYMBOLS: <fs_view_data_lo>,
* <fs_field>.
*
* IF <fs_view_data_lo> IS ASSIGNED.
* UNASSIGN <fs_view_data_lo>.
* ENDIF.
*
* ASSIGN (vim_view_name) TO <fs_view_data_lo>.
* CHECK sy-subrc = 0.
*
* ASSIGN COMPONENT c_zcrname OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* IF sy-subrc = 0.
* IF <fs_field> IS INITIAL.
* ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uname.
* ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datum.
* ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uzeit.
* ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datlo.
* ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-timlo.
* ELSE.
*
* ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uname.
* ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datum.
* ASSIGN COMPONENT 'zudstime' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-uzeit.
* ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-datlo.
* ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <fs_view_data_lo> TO <fs_field>.
* <fs_field> = sy-timlo.
* ENDIF.
* ENDIF.
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_datuv TYPE zsdt41180-datuv,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_werks> TYPE any,
<l_matnr> TYPE any,
<l_datuv> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'WERKS' OF STRUCTURE <vim_total_struc> TO <l_werks>.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <vim_total_struc> TO <l_matnr>.
ASSIGN COMPONENT 'DATUV' OF STRUCTURE <vim_total_struc> TO <l_datuv>.
IF <l_werks> IS INITIAL OR
<l_matnr> IS INITIAL OR
<l_datuv> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_datuv.
SELECT datuv
INTO lw_datuv
FROM zsdt41180
UP TO 1 ROWS
WHERE werks = <l_werks>
AND matnr = <l_matnr>
ORDER BY datuv DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_datuv> < lw_datuv.
MESSAGE s000(zsd01) WITH 'check valid date !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
FORM zset_datetime_0008. "event 01 - Before saving the data in the database
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_datuv TYPE zsdt41190-datuv,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_ztype> TYPE any,
<l_datuv> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'ZTYPE' OF STRUCTURE <vim_total_struc> TO <l_ztype>.
ASSIGN COMPONENT 'DATUV' OF STRUCTURE <vim_total_struc> TO <l_datuv>.
IF <l_ztype> IS INITIAL OR
<l_datuv> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_datuv.
SELECT datuv
INTO lw_datuv
FROM zsdt41190
UP TO 1 ROWS
WHERE ztype = <l_ztype>
ORDER BY datuv DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_datuv> < lw_datuv.
MESSAGE s000(zsd01) WITH 'check valid date !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
FORM zset_datetime_0009. "event 01 - Before saving the data in the database
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_datuv TYPE zsdt41250-kursd,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_kurst> TYPE any,
<l_fcurr> TYPE any,
<l_tcurr> TYPE any,
<l_kursd> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'KURST' OF STRUCTURE <vim_total_struc> TO <l_kurst>.
ASSIGN COMPONENT 'FCURR' OF STRUCTURE <vim_total_struc> TO <l_fcurr>.
ASSIGN COMPONENT 'TCURR' OF STRUCTURE <vim_total_struc> TO <l_tcurr>.
ASSIGN COMPONENT 'KURSD' OF STRUCTURE <vim_total_struc> TO <l_kursd>.
IF <l_kurst> IS INITIAL OR
<l_fcurr> IS INITIAL OR
<l_tcurr> IS INITIAL OR
<l_kursd> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_datuv.
SELECT kursd
INTO lw_datuv
FROM zsdt41250
UP TO 1 ROWS
WHERE kurst = <l_kurst>
AND fcurr = <l_fcurr>
AND tcurr = <l_tcurr>
ORDER BY kursd DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_kursd> < lw_datuv.
MESSAGE s000(zsd01) WITH 'check valid date !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
FORM zset_datetime_0005. "event 01 - Before saving the data in the database
DATA : l_index LIKE sy-tabix, "Index to note the lines found
lw_spmon TYPE zsdt41171-spmon,
lw_subrc TYPE sy-subrc.
FIELD-SYMBOLS : <l_structure> TYPE any,
<l_field> TYPE any,
<l_spmon> TYPE any,
<l_werks> TYPE any,
<l_vtweg> TYPE any,
<l_idnrk> TYPE any.
lw_subrc = 0.
LOOP AT total.
IF <action> = neuer_eintrag OR <action> = aendern.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc EQ 0.
l_index = sy-tabix.
ELSE.
CLEAR l_index.
ENDIF.
CHECK l_index GT 0.
ASSIGN COMPONENT 'SPMON' OF STRUCTURE <vim_total_struc> TO <l_spmon>.
ASSIGN COMPONENT 'WERKS' OF STRUCTURE <vim_total_struc> TO <l_werks>.
ASSIGN COMPONENT 'VTWEG' OF STRUCTURE <vim_total_struc> TO <l_vtweg>.
ASSIGN COMPONENT 'IDNRK' OF STRUCTURE <vim_total_struc> TO <l_idnrk>.
IF <l_spmon> IS INITIAL OR
<l_werks> IS INITIAL OR
<l_vtweg> IS INITIAL OR
<l_idnrk> IS INITIAL.
MESSAGE s000(zsd01) WITH 'Key field is missing !' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
CASE <action>.
WHEN aendern. "/Change/Update
ASSIGN COMPONENT 'ZUDNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZUDSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZUDSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZUDLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZUDLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
WHEN neuer_eintrag. "/New Entries
CLEAR lw_spmon.
SELECT spmon
INTO lw_spmon
FROM zsdt41171
UP TO 1 ROWS
WHERE werks = <l_werks>
AND vtweg = <l_vtweg>
AND idnrk = <l_idnrk>
ORDER BY spmon DESCENDING.
IF sy-subrc = 0.
"현재 등록하는 유효일자보다 미래일자가 이미 존재하면 Error
IF <l_spmon> < lw_spmon.
MESSAGE s000(zsd01) WITH 'check month !!' DISPLAY LIKE 'E'.
lw_subrc = 4.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ASSIGN COMPONENT 'ZCRNAME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uname. ENDIF.
ASSIGN COMPONENT 'ZCRSDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datum. ENDIF.
ASSIGN COMPONENT 'ZCRSTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-uzeit. ENDIF.
ASSIGN COMPONENT 'ZCRLDATE' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-datlo. ENDIF.
ASSIGN COMPONENT 'ZCRLTIME' OF STRUCTURE <vim_total_struc> TO <l_field>.
IF sy-subrc = 0. <l_field> = sy-timlo. ENDIF.
ENDCASE.
MOVE <vim_ctotal> TO total.
MODIFY total.
extract = total.
MODIFY extract INDEX l_index.
ENDIF.
ENDLOOP.
sy-subrc = lw_subrc.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module ZGET_IDNRK_NAME INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE zget_idnrk_name INPUT. "event 01 - Before saving the data in the database
FIELD-SYMBOLS : <l_ktext> TYPE any.
* <VIM_TOTAL_STRUC>
* <VIM_EXTRACT_STRUC>
ASSIGN COMPONENT 'KTEXT' OF STRUCTURE <VIM_TOTAL_STRUC> TO <l_ktext>.
IF zsdt41171-idnrk IS INITIAL.
CLEAR zsdt41171-ktext.
ELSE.
SELECT SINGLE maktx
INTO zsdt41171-ktext
FROM makt
WHERE spras = sy-langu
AND matnr = zsdt41171-idnrk.
if sy-subrc = 0.
<l_ktext> = zsdt41171-ktext.
endif.
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form EVENT_01_ZMMV1390
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM event_01_zmmv1390 .
DATA : ls_zmmv1390 TYPE zmmv1390.
DATA : lv_perfect TYPE f.
LOOP AT total.
CHECK <action> = neuer_eintrag.
CLEAR : ls_zmmv1390.
MOVE <vim_total_struc> TO ls_zmmv1390.
lv_perfect = ls_zmmv1390-delivery +
ls_zmmv1390-quantity +
ls_zmmv1390-quality +
ls_zmmv1390-other.
IF lv_perfect <> 100.
MESSAGE s043(zmm01) DISPLAY LIKE 'E'.
vim_abort_saving = 'X'.
EXIT.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Include event 01 공통 적용
*&---------------------------------------------------------------------*
*& *& 데이터 생성 및 수정시 로그데이터(작업자, 일자, 시간) 업데이트.
*&---------------------------------------------------------------------*
*GELOESCHT : flagged for deletion
*NEUER_EINTRAG : New entry
*AENDERN : changed entry
*UPDATE_GELOESCHT : entry first changed and then flagged for deletion
*NEUER_GELOESCHT : entry first newly created, not yet saved, and then flagged for deletion
*ORIGINAL : the same as the database status
CONSTANTS : LC_NAME TYPE STRING VALUE 'N_____'. "Dummy Component Name for Type Flag
DATA : LV_INDEX LIKE SY-TABIX. "Index to note the lines found
DATA : LS_COMPONENT TYPE ABAP_COMPONENTDESCR,
LT_COMPONENT TYPE ABAP_COMPONENT_TAB,
LR_STRUCTURE TYPE REF TO CL_ABAP_STRUCTDESCR,
LR_HANDLE TYPE REF TO DATA.
FIELD-SYMBOLS : <LV_STRUCTURE> TYPE ANY,
<LV_FIELD> TYPE ANY.
LR_STRUCTURE ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( X_HEADER-VIEWNAME ).
LT_COMPONENT = LR_STRUCTURE->GET_COMPONENTS( ).
LS_COMPONENT-TYPE ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <ACTION> ).
LS_COMPONENT-NAME = LC_NAME.
APPEND LS_COMPONENT TO LT_COMPONENT.
LR_STRUCTURE = CL_ABAP_STRUCTDESCR=>CREATE( LT_COMPONENT ).
CREATE DATA LR_HANDLE TYPE HANDLE LR_STRUCTURE.
ASSIGN LR_HANDLE->* TO <LV_STRUCTURE>.
LOOP AT TOTAL.
IF <ACTION> = NEUER_EINTRAG OR <ACTION> = AENDERN.
READ TABLE EXTRACT WITH KEY <VIM_XTOTAL_KEY>.
IF SY-SUBRC EQ 0.
LV_INDEX = SY-TABIX.
ELSE.
CLEAR LV_INDEX.
ENDIF.
CHECK LV_INDEX GT 0.
MOVE TOTAL TO <LV_STRUCTURE>.
CASE <ACTION>.
WHEN AENDERN. "/Change/Update
ASSIGN COMPONENT 'AENAM' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-UNAME TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEDAT' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-DATLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEZET' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-TIMLO TO <LV_FIELD>.
ENDIF.
WHEN NEUER_EINTRAG. "/New Entries
ASSIGN COMPONENT 'ERNAM' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-UNAME TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'ERDAT' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-DATLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'ERZET' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-TIMLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AENAM' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-UNAME TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEDAT' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-DATLO TO <LV_FIELD>.
ENDIF.
ASSIGN COMPONENT 'AEZET' OF STRUCTURE <LV_STRUCTURE> TO <LV_FIELD>.
IF SY-SUBRC = 0.
MOVE SY-TIMLO TO <LV_FIELD>.
ENDIF.
ENDCASE.
MOVE <LV_STRUCTURE> TO TOTAL.
MODIFY TOTAL.
EXTRACT = TOTAL.
MODIFY EXTRACT INDEX LV_INDEX.
ENDIF.
ENDLOOP.
SY-SUBRC = 0.