Sie sind auf Seite 1von 5

REPORT zrr_table_control .

CONTROLS table_control TYPE TABLEVIEW USING SCREEN 100.


TABLES sdyn_sdw4.
DATA sdyn_itab LIKE STANDARD TABLE OF sdyn_sdw4.
DATA init.
DATA ok_code LIKE sy-ucomm.
DATA save_ok LIKE sy-ucomm.
DATA mark.
DATA col TYPE cxtab_column.
DATA sdyn_conn LIKE LINE OF sdyn_itab.

CALL SCREEN 100.

*&--------------------------------------------------------------------
-*
*& Module STATUS_0100 OUTPUT
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'GRUND'.
SET TITLEBAR '100'.

IF init IS INITIAL.
* Datenbeschaffung
SELECT carrid connid cityfrom airpfrom cityto airpto deptime arrti
me
distance distid
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE sdyn_itab.

APPEND INITIAL LINE TO sdyn_itab.

init = 'X'.
ENDIF.

DESCRIBE TABLE sdyn_itab LINES table_control-lines.

ENDMODULE. " STATUS_0100 OUTPUT

*&--------------------------------------------------------------------
-*
*& Module FILL_TABLE_CONTROL OUTPUT
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
MODULE change_sdyn_conn OUTPUT.

READ TABLE sdyn_itab INTO sdyn_conn INDEX table_control-


current_line.

IF sy-subrc EQ 0.

IF table_control-current_line < 5 OR table_control-


current_line > 12 OR sdyn_conn IS INITIAL.

LOOP AT SCREEN.

IF sdyn_conn IS INITIAL.

screen-input = 1.

ELSE.

screen-input = 0.

ENDIF.

MODIFY SCREEN .

ENDLOOP.

ENDIF.

ENDIF.

ENDMODULE. " FILL_TABLE_CONTROL OUTPUT


*&--------------------------------------------------------------------
-*
*& Module READ_TABLE_CONTROL INPUT
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
MODULE read_table_control INPUT.
* Check input values
IF mark = 'X' AND save_ok = 'DELETE'.
DELETE TABLE sdyn_itab FROM sdyn_sdw4.
DESCRIBE TABLE sdyn_itab LINES table_control-lines.
ENDIF.
ENDMODULE. " READ_TABLE_CONTROL INPUT

*&--------------------------------------------------------------------
-*
*& Module USER_COMMAND_0100 INPUT
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'SORT'.
DATA: fldname(100),help(100).

READ TABLE table_control-cols INTO col WITH KEY selected = 'X'.


SPLIT col-screen-name AT '-' INTO help fldname.
SORT sdyn_itab BY (fldname).

WHEN 'ADD'.

APPEND INITIAL LINE TO sdyn_itab.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

*&--------------------------------------------------------------------
-*
*& Module EXIT INPUT
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
MODULE exit INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP at sdyn_itab into sdyn_sdw4 WITH CONTROL TABLE_CONTROL.
MODULE CHANGE_SDYN_CONN.
ENDLOOP.

*
PROCESS AFTER INPUT.
module exit at exit-command.
MODULE USER_COMMAND_0100.

LOOP at sdyn_itab.
MODULE READ_TABLE_CONTROL.
ENDLOOP.

Das könnte Ihnen auch gefallen