Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos


TYPES: BEGIN OF ty_alv,
        lights_1 TYPE icon_d, "Exception, Holding the value of the lights
        lights_2 TYPE icon_d,  "some text
        lights_3 TYPE icon_d,  "some text
*        lights_4 TYPE icon_d,  "some text
       END OF ty_alv.

DATA: gs_alv TYPE ty_alv,
      gt_alv TYPE TABLE OF ty_alv,
      gr_alv TYPE REF TO cl_salv_table,
      gr_columns TYPE REF TO cl_salv_columns_table.

*-----------------------------------------------*
* CLASS lcl_receiver DEFINITION
*-----------------------------------------------*
*
*-----------------------------------------------*
CLASS lcl_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:
    handle_finished FOR EVENT finished OF cl_gui_timer.
ENDCLASS.                    "

DATA:
i_data TYPE TABLE OF spfli,
o_grid TYPE REF TO cl_gui_alv_grid,
receiver TYPE REF TO lcl_receiver,
timer TYPE REF TO cl_gui_timer.

DATA : lv_temp TYPE i.

CONSTANTS:
c_interval TYPE i VALUE 1.


CREATE OBJECT timer.
CREATE OBJECT receiver.
SET HANDLER receiver->handle_finished FOR timer.
timer->interval = c_interval.
CALL METHOD timer->run.


START-OF-SELECTION.

  DATA : v_index TYPE index.

  DO 33 TIMES.

    v_index = sy-index.

    IF v_index LE 11.
      MOVE : '@5B@' TO gs_alv-lights_1,
       '@5B@' TO gs_alv-lights_2,
       '@5B@' TO gs_alv-lights_3.
*       '@BZ@'  TO gs_alv-lights_4.
      APPEND gs_alv TO gt_alv.

    ELSEIF v_index GT 11 AND v_index LE 22.
      MOVE : '@5D@' TO gs_alv-lights_2,
       '@5D@' TO gs_alv-lights_3,
       '@5D@' TO gs_alv-lights_1.
*       '@BZ@'  TO gs_alv-lights_3.
      APPEND gs_alv TO gt_alv.

    ELSEIF v_index GT 22 AND v_index LE 33.
      MOVE : '@5C@' TO gs_alv-lights_3,
       '@5C@' TO gs_alv-lights_1,
       '@5C@' TO gs_alv-lights_2.
*       '@BZ@'  TO gs_alv-lights_2.
      APPEND gs_alv TO gt_alv.
    ENDIF.
  ENDDO.

  CALL METHOD cl_salv_table=>factory
*    EXPORTING
*      list_display = 'X'
    IMPORTING
      r_salv_table = gr_alv
    CHANGING
      t_table      = gt_alv.

  CALL METHOD gr_alv->refresh.

  gr_columns = gr_alv->get_columns( ).

*  gr_columns->set_exception_column( value = 'ICON' ).


  CALL METHOD gr_alv->display.

*------------------------------------------------*
* CLASS lcl_receiver IMPLEMENTATION
*------------------------------------------------*
*
*------------------------------------------------*
CLASS lcl_receiver IMPLEMENTATION.
  METHOD handle_finished.
    PERFORM refresh_view.
    CALL METHOD timer->run.
  ENDMETHOD.                    "handle_finished
ENDCLASS.                    "lcl_receiver IMPLEMENTATION

*&-----------------------------------------------*
*& Form refresh_view
*&-----------------------------------------------*
* Refresh logic
*------------------------------------------------*
FORM refresh_view.

  FIELD-SYMBOLS : <lfs_alv> TYPE ty_alv.

  DATA : lv_index TYPE sytabix.
  UNASSIGN <lfs_alv>.

  DO 11 TIMES.
*    CLEAR lv_index.
*    lv_index = sy-index.
    UNASSIGN <lfs_alv>.
    READ TABLE gt_alv ASSIGNING <lfs_alv> INDEX 1.
    CHECK <lfs_alv> IS ASSIGNED.
    APPEND <lfs_alv> TO gt_alv.
    DELETE gt_alv INDEX 1.
  ENDDO.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = o_grid.

  IF o_grid IS NOT INITIAL.
    CALL METHOD o_grid->refresh_table_display.
  ENDIF.
ENDFORM.                    "refresh_view