*&---------------------------------------------------------------------*
*& Report ZDAVID_REPORT_01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zdavid_report_01.
DATA:wa_bsis TYPE bsis,
it_bsis TYPE TABLE OF bsis,
it_bsis_mod TYPE TABLE OF bsis.
START-OF-SELECTION.
SELECT *
INTO TABLE it_bsis
FROM bsis
UP TO 20 ROWS
WHERE sgtxt <> space.
END-OF-SELECTION.
SET PF-STATUS 'STATUS01'.
LOOP AT it_bsis INTO wa_bsis.
WRITE :/ wa_bsis-bukrs,
wa_bsis-hkont,
wa_bsis-gjahr,
wa_bsis-belnr,
wa_bsis-sgtxt INPUT ON.
ENDLOOP.
AT USER-COMMAND.
BREAK-POINT.
CASE sy-ucomm.
WHEN '&USR01'.
PERFORM frm_get_report_data.
WHEN OTHERS.
ENDCASE.
AT LINE-SELECTION.
WRITE: / sy-lisel.
*&---------------------------------------------------------------------*
*& Form frm_get_report_data
*&---------------------------------------------------------------------*
* Get revised report data
*----------------------------------------------------------------------*
FORM frm_get_report_data .
DATA: lc_lines TYPE i,
lc_index TYPE i.
DESCRIBE LIST NUMBER OF LINES lc_lines.
lc_lines = lc_lines - 2.
DO lc_lines TIMES.
IF sy-listi = 0.
lc_index = sy-index + 2.
READ LINE lc_index INDEX sy-listi FIELD VALUE wa_bsis-sgtxt .
MODIFY it_bsis FROM wa_bsis INDEX sy-index TRANSPORTING sgtxt.
ELSE.
READ LINE sy-index INDEX sy-listi FIELD VALUE wa_bsis-sgtxt .
MODIFY it_bsis FROM wa_bsis INDEX sy-index TRANSPORTING sgtxt.
ENDIF.
ENDDO.
LOOP AT it_bsis INTO wa_bsis.
WRITE :/ wa_bsis-bukrs,
wa_bsis-hkont,
wa_bsis-gjahr,
wa_bsis-belnr,
wa_bsis-sgtxt INPUT ON.
ENDLOOP.
ENDFORM. " frm_get_report_data