Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Traffic lights on push button

Former Member
0 Likes
1,330

Hi all,

In my requirement i have a field as push button , now i require to put traffic lights on this push button.I am displaying alv grid through

class cl_gui_alv_grid

please help me with a sample code.

regards,

kushagra

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
845

Hi,

Observe the code:

REPORT ALV_LIGHTS.* Published at SAPTechnical.COMTYPES: BEGIN OF ty_alv,

lights(1) TYPE c, "Exception, Holding the value of the lights

text(20) TYPE c, "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.START-OF-SELECTION.

gs_alv-lights = '1'. "Color red

gs_alv-text = 'RED SIGNAL'.

APPEND gs_alv TO gt_alv. gs_alv-lights = '2'. "Color yellow

gs_alv-text = 'YELLOW SIGNAL'.

APPEND gs_alv TO gt_alv. gs_alv-lights = '3'. "Color green

gs_alv-text = 'GREEN SIGNAL'.

APPEND gs_alv TO gt_alv. CALL METHOD cl_salv_table=>factory

IMPORTING

r_salv_table = gr_alv

CHANGING

t_table = gt_alv. gr_columns = gr_alv->get_columns( ). gr_columns->set_exception_column( value = 'LIGHTS' ). CALL METHOD gr_alv->display.

Link:

http://www.saptechnical.com/Tutorials/ALV/Lights/ALV.htm

Regards,

Shiva.

Hi all,

In my requirement i have a field as push button , now i require to put traffic lights on this push button.I am displaying alv grid through

class cl_gui_alv_grid

please help me with a sample code.

regards,

kushagra

3 REPLIES 3
Read only

Former Member
0 Likes
846

Hi,

Observe the code:

REPORT ALV_LIGHTS.* Published at SAPTechnical.COMTYPES: BEGIN OF ty_alv,

lights(1) TYPE c, "Exception, Holding the value of the lights

text(20) TYPE c, "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.START-OF-SELECTION.

gs_alv-lights = '1'. "Color red

gs_alv-text = 'RED SIGNAL'.

APPEND gs_alv TO gt_alv. gs_alv-lights = '2'. "Color yellow

gs_alv-text = 'YELLOW SIGNAL'.

APPEND gs_alv TO gt_alv. gs_alv-lights = '3'. "Color green

gs_alv-text = 'GREEN SIGNAL'.

APPEND gs_alv TO gt_alv. CALL METHOD cl_salv_table=>factory

IMPORTING

r_salv_table = gr_alv

CHANGING

t_table = gt_alv. gr_columns = gr_alv->get_columns( ). gr_columns->set_exception_column( value = 'LIGHTS' ). CALL METHOD gr_alv->display.

Link:

http://www.saptechnical.com/Tutorials/ALV/Lights/ALV.htm

Regards,

Shiva.

Read only

0 Likes
845

I traffic lights on push-button only

and moreover I am using class cl_gui_alv_grid

Read only

0 Likes
845

Hi, Pass below codes as texts for the push buttons:

@0A@ - Red
@09@ - Orange
@08@ - Green
Below code can help you understanding handling normally without pushbuttons:
DATA: ok_code TYPE syucomm.

TYPES: BEGIN OF ty_data,
         num TYPE i,
         icon TYPE icon_d,
       END OF ty_data.

DATA: wa_data TYPE ty_data,
      i_data TYPE TABLE OF ty_data.

DATA: i_fieldcat TYPE lvc_t_fcat,
      wa_fieldcat TYPE lvc_s_fcat.

DATA: g_cust_cont   TYPE REF TO cl_gui_custom_container,

      g_container   TYPE scrfname VALUE 'GRID1',

      g_grid        TYPE REF TO cl_gui_alv_grid.

START-OF-SELECTION.

  DO 10 TIMES.
    wa_data-num = sy-index.
    IF sy-tabix < 4.
      wa_data-icon = '@0A@'.
    ELSEIF sy-tabix < 7.
      wa_data-icon = '@09@'.
    ELSE.
      wa_data-icon = '@08@'.
    ENDIF.
    APPEND wa_data TO i_data.
  ENDDO.

END-OF-SELECTION.

  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.

  SET PF-STATUS 'MAIN100'.
  SET TITLEBAR 'MAINTITLE'.

  IF g_grid IS INITIAL.
    PERFORM display_list.
  ENDIF.
  CALL METHOD cl_gui_cfw=>flush.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  DATA: l_event TYPE REF TO cl_gui_event.

  CASE ok_code.
    WHEN 'EXIT' OR 'BACK' OR 'CANC'.
      PERFORM exit_program.
  ENDCASE.
  CLEAR: ok_code.
  CALL METHOD cl_gui_cfw=>flush.


ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_list .


  IF g_cust_cont IS INITIAL.

* Create Custom Container
    CREATE OBJECT g_cust_cont
           EXPORTING container_name = g_container.

* Create Ojbect for Grid Display
    CREATE OBJECT g_grid
           EXPORTING i_parent = g_cust_cont.

* Build Field Catalog
    PERFORM build_catalog.

* Display Output in Grid Form
    CALL METHOD g_grid->set_table_for_first_display
      CHANGING
        it_fieldcatalog = i_fieldcat
        it_outtab       = i_data[].

  ELSE.

* Refresh Display
    CALL METHOD g_grid->refresh_table_display.

  ENDIF.

ENDFORM.                    " DISPLAY_LIST

*&---------------------------------------------------------------------*
*&      Form  BUILD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_catalog .

  PERFORM build_fld_catalog USING:
     1 'NUM'   'I_DATA'   space     'Number'   10,
     2 'ICON'   'I_DATA'   'X'     'Icon'      10.

ENDFORM.                    " BUILD_CATALOG

*&---------------------------------------------------------------------*
*&      Form  BUILD_FLD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_1      text
*      -->P_0182   text
*      -->P_0183   text
*      -->P_C_X  text
*      -->P_0185   text
*      -->P_12     text
*----------------------------------------------------------------------*
FORM build_fld_catalog  USING    p_col
                                 p_fld
                                 p_tab
                                 p_icon
                                 p_text
                                 p_len.

  CLEAR: wa_fieldcat.
  wa_fieldcat-col_pos = p_col.
  wa_fieldcat-fieldname = p_fld.
  wa_fieldcat-tabname = p_tab.
  wa_fieldcat-icon = p_icon.
  wa_fieldcat-scrtext_l = p_text.
  wa_fieldcat-outputlen = p_len.
  APPEND wa_fieldcat TO i_fieldcat.

ENDFORM.                    " BUILD_FLD_CATALOG

*&---------------------------------------------------------------------
*
*&      Form  EXIT_PROGRAM
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------
*
FORM exit_program .

  CALL METHOD g_grid->free.
  LEAVE TO SCREEN 0.

ENDFORM.                    " EXIT_PROGRAM