Hallo Iridium,
solange du im "oberen" Bereich keine Eingabefelder hast, könntest du evtl. etwas probieren wie im folgenden Demoprogramm.
Einfach mal ausprobieren und den Cursor in eine Zeile stellen. Mit 1-2 sekündiger Verzögerung wird dann im unteren Fenster angezeigt auf welcher Zeile der Cursor steht. ( Es ginge auch mit noch kürzeren Abständen (etwa Zehntelsekunden) - aber dann nicht mehr mit dem einfachen Timercontrol )
ACHTUNG - es muss ein Dynpro 9000 angelegt werden mit einem Customcontrol namens "CONTAINER_9000" ( ohne Ablauflogik aber mit Folgescreen 0 )
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
DATA: gcl_grid
TYPE REF TO cl_gui_alv_grid
, gcl_text TYPE REF TO cl_gui_textedit,
gcl_timer TYPE REF TO cl_gui_timer.
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver
DEFINITION. PUBLIC SECTION.
CLASS-METHODS: handle_timer_tick
FOR EVENT finished
OF cl_gui_timer
. ENDCLASS. "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver
IMPLEMENTATION. * BREAK-POINT.
text_c TYPE text10,
text_s TYPE string.
* Get selected row of grid
gcl_grid->get_current_cell(
IMPORTING
e_row = row ).
* Write row to text
gcl_text->set_textstream( text_s ).
gcl_timer->run( ). " Restart timer
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
gcl_timer->run( ). " Start timer
CALL SCREEN 9000.
*&---------------------------------------------------------------------*
*& Form build_objects
*&---------------------------------------------------------------------*
DATA: repid
TYPE syrepid
, dynnr TYPE sydynnr.
DATA: cl_custom
TYPE REF TO cl_gui_custom_container
, cl_splitter TYPE REF TO cl_gui_easy_splitter_container,
t_t000 TYPE STANDARD TABLE OF t000 WITH NON-UNIQUE DEFAULT KEY.
* Customcontainer on screen 9000
repid = sy-repid.
dynnr = '9000'.
CREATE OBJECT cl_custom
EXPORTING
container_name = 'CONTAINER_9000'
repid = repid
dynnr = dynnr.
* Fill with easy splitter ( 50% - 50% split horizontally )
CREATE OBJECT cl_splitter
EXPORTING
parent = cl_custom.
* Grid in top_container
CREATE OBJECT gcl_grid
EXPORTING
i_parent = cl_splitter->top_left_container.
* and fill with some data
INTO TABLE t_t000
FROM t000.
* Some more lines
while lines( t_t000
) < 100. append LINES OF t_t000
to t_t000
. gcl_grid->set_table_for_first_display(
EXPORTING
i_structure_name = 'T000'
CHANGING
it_outtab = t_t000 ).
* Text in bottom container
CREATE OBJECT gcl_text
EXPORTING
parent = cl_splitter->bottom_right_container.
* no input for this
gcl_text->set_readonly_mode( cl_gui_textedit=>true ).
* Timer
CREATE OBJECT gcl_timer.
* 1 second delay
gcl_timer->interval = 1.
* set handler
SET HANDLER lcl_event_receiver=>handle_timer_tick FOR gcl_timer.
- GeSHi ©