<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: looking for method for alv in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032042#M717170</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Joanna&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no method for your specific requirement available. However, have a look at my sample report &amp;lt;b&amp;gt;ZUS_SDN_ALV_WITH_RADIOBUTTONS2&amp;lt;/b&amp;gt; which may give you an idea how to solve the problem. Simply replace the radiobuttons with your checkboxes and you have your solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The report is based on my previous posting:&lt;/P&gt;&lt;P&gt;&amp;lt;a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a02535ce-9eaf-2910-ae8c-f2f2afc1c8e7"&amp;gt;ALV List with Radio Buttons&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALV_WITH_RADIOBUTTONS2
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; This program shows how to realize radiobuttons in ALV grid lists
*&amp;amp; using event HOTSPOT_CLICK.
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Screen 100:
*&amp;amp; - Flow logic
*&amp;amp;
*&amp;amp;      PROCESS BEFORE OUTPUT.
*&amp;amp;        MODULE PBO.
*&amp;amp;*
*&amp;amp;      PROCESS AFTER INPUT.
*&amp;amp;        MODULE PAI.
*&amp;amp;
*&amp;amp; - Screen elements: none
*&amp;amp; - ok-code field -&amp;gt; gd_okcode
*&amp;amp;
*&amp;amp; GUI Status MAIN100:
*&amp;amp; - F3 = 'BACK', Shift+F3 = 'EXIT', F12 = 'CANC'
*&amp;amp;---------------------------------------------------------------------*
PROGRAM zus_sdn_alv_with_radiobuttons2.



TYPE-POOLS: abap, icon.  " INCLUDE &amp;lt;icon&amp;gt;. for releases &amp;lt; 6.20


TYPES: BEGIN OF ty_s_sflight.
INCLUDE TYPE sflight.
TYPES: button1    TYPE iconname.
TYPES: button2    TYPE iconname.
TYPES: button3    TYPE iconname.
TYPES: button4    TYPE iconname.
TYPES: END OF ty_s_sflight.


DATA:
  gt_sflight    TYPE STANDARD TABLE OF ty_s_sflight,
*
  gs_layout     TYPE lvc_s_layo,
  gt_fcat       TYPE lvc_t_fcat.


DATA:
  gd_okcode    TYPE ui_func,
  go_docking   TYPE REF TO cl_gui_docking_container,
  go_grid      TYPE REF TO cl_gui_alv_grid.





*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
          e_row_id
          e_column_id
          es_row_no
          sender.

ENDCLASS.                    "lcl_eventhandler DEFINITION


*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_hotspot_click.
* define local data
    DATA:
      ld_count(3)   TYPE n,
      ld_msg        TYPE bapi_msg.

    FIELD-SYMBOLS:
      &amp;lt;ls_entry&amp;gt;    TYPE ty_s_sflight,
      &amp;lt;ld_fld&amp;gt;      TYPE ANY.

    READ TABLE gt_sflight ASSIGNING &amp;lt;ls_entry&amp;gt; INDEX es_row_no-row_id.
    CHECK ( &amp;lt;ls_entry&amp;gt; IS ASSIGNED ).

*   Set all radio buttons "unselected"
    &amp;lt;ls_entry&amp;gt;-button1 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button2 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button3 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button4 =  icon_wd_radio_button_empty.

    ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE &amp;lt;ls_entry&amp;gt;
                                              TO &amp;lt;ld_fld&amp;gt;.
    IF ( &amp;lt;ld_fld&amp;gt; IS ASSIGNED ).
*     Set selected radio button "selected".
      &amp;lt;ld_fld&amp;gt; = icon_wd_radio_button.
    ENDIF.

    ld_count = 0.
    LOOP AT gt_sflight ASSIGNING &amp;lt;ls_entry&amp;gt;.
      ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE &amp;lt;ls_entry&amp;gt;
                                                TO &amp;lt;ld_fld&amp;gt;.
      "     Note: here you could count your marked checkboxes within
      "           the column, e.g.: IF ( '&amp;lt;checkbox1&amp;gt;' = 'X' ).
      IF ( &amp;lt;ld_fld&amp;gt; = icon_wd_radio_button ).
        ADD 1 TO ld_count.
      ENDIF.

    ENDLOOP.

    CONCATENATE 'Column' e_column_id-fieldname
      INTO ld_msg SEPARATED BY space.
    CONCATENATE ld_msg ':' ld_count 'times marked'
      INTO ld_msg SEPARATED BY space.
    MESSAGE ld_msg TYPE 'I'.



*   Force PAI followed by refresh of table display in PBO
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code
      EXPORTING
        new_code = 'REFRESH'
*      IMPORTING
*        RC       =
        .

  ENDMETHOD.                    "handle_hotspot_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION



*---------------------------------------------------------------------*
*       MAIN                                                          *
*---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM select_data.

  PERFORM init_controls.
  PERFORM build_fieldcatalog.
  PERFORM set_layout.

  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
   EXPORTING
*     i_structure_name = 'SFLIGHT'
      is_layout        = gs_layout
    CHANGING
      it_fieldcatalog  = gt_fcat
      it_outtab        = gt_sflight.

* Link docking container to dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      lifetime_dynpro_dynpro_link = 3
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL SCREEN 100.


END-OF-SELECTION.






*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'MAIN100'.
ENDMODULE.                    "PBO OUTPUT

*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.

* Leave report
  CASE gd_okcode.
    WHEN 'BACK'  OR
         'EXIT'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   Refresh table display
    WHEN 'REFRESH'.
      PERFORM refresh_display.


    WHEN OTHERS.
*     do nothing
  ENDCASE.
  CLEAR gd_okcode.
ENDMODULE.                    "PAI INPUT



*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat.


  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'ICON'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  DELETE gt_fcat WHERE ( fieldname &amp;lt;&amp;gt; 'NAME' ).
* NOTE: field ICON-NAME has data element ICONNAME.


  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'SFLIGHT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  READ TABLE gt_fcat INTO ls_fcat
       WITH KEY fieldname = 'NAME'.
  IF ( syst-subrc = 0 ).
    DELETE gt_fcat INDEX syst-tabix.
  ENDIF.

  ls_fcat-fieldname = 'BUTTON4'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  ls_fcat-icon    = 'X'.
  ls_fcat-hotspot = 'X'.
  INSERT ls_fcat INTO gt_fcat INDEX 5.
*
  ls_fcat-fieldname = 'BUTTON3'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  INSERT ls_fcat INTO gt_fcat INDEX 5.
*
  ls_fcat-fieldname = 'BUTTON2'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  INSERT ls_fcat INTO gt_fcat INDEX 5.
*
  ls_fcat-fieldname = 'BUTTON1'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  INSERT ls_fcat INTO gt_fcat INDEX 5.


* Renumbering of the columns
  LOOP AT gt_fcat INTO ls_fcat.
    ls_fcat-col_pos = syst-tabix.
    MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
  ENDLOOP.






ENDFORM.                    " BUILD_FIELDCATALOG


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SELECT_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM select_data .
* define local data
  DATA:
    ls_sflight    TYPE ty_s_sflight.


  SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.

  ls_sflight-button1 = icon_wd_radio_button. " selected radiobutton
  ls_sflight-button2 = icon_wd_radio_button_empty.
  ls_sflight-button3 = icon_wd_radio_button_empty.
  ls_sflight-button4 = icon_wd_radio_button_empty.
* Alternatively: create icons using function module 'ICON_CREATE'



  MODIFY gt_sflight FROM ls_sflight
      TRANSPORTING button1 button2 button3 button4
    WHERE ( carrid IS NOT INITIAL ).

ENDFORM.                    " SELECT_DATA


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INIT_CONTROLS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

  CHECK ( go_docking IS NOT BOUND ).

* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
*      REPID                       =
*      DYNNR                       =
*      SIDE                        = DOCK_AT_LEFT
*      EXTENSION                   = 50
*      STYLE                       =
*      LIFETIME                    = lifetime_default
*      CAPTION                     =
*      METRIC                      = 0
      ratio                       = 90
*      NO_AUTODEF_PROGID_DYNNR     =
*      NAME                        =
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Size of container = full screen size
  CALL METHOD go_docking-&amp;gt;set_extension
    EXPORTING
      extension  = 99999
    EXCEPTIONS
      cntl_error = 1
      OTHERS     = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Create ALV grid instance
  CREATE OBJECT go_grid
    EXPORTING
*      I_SHELLSTYLE      = 0
*      I_LIFETIME        =
      i_parent          = go_docking
*      I_APPL_EVENTS     = space
*      I_PARENTDBG       =
*      I_APPLOGPARENT    =
*      I_GRAPHICSPARENT  =
*      I_NAME            =
*      I_FCAT_COMPLETE   = SPACE
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


*   Set event handler for event HOTSPOT_CLICK
  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_hotspot_click FOR go_grid.

ENDFORM.                    " INIT_CONTROLS


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  REFRESH_DISPLAY
*&amp;amp;---------------------------------------------------------------------*
*       Refresh table display after switching the radiobuttons
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM refresh_display .
* define local data
  DATA:
    ls_stable    TYPE lvc_s_stbl.

  ls_stable-row = abap_true.
  ls_stable-col = abap_true.

  CALL METHOD go_grid-&amp;gt;refresh_table_display
    EXPORTING
      is_stable      = ls_stable
*        I_SOFT_REFRESH =
    EXCEPTIONS
      finished       = 1
      OTHERS         = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " REFRESH_DISPLAY

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*       Set layout for ALV list
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout .

  CLEAR: gs_layout.

  gs_layout-cwidth_opt = abap_true.  " optimize column width
  gs_layout-zebra      = abap_true.

ENDFORM.                    " SET_LAYOUT
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 03 Nov 2007 22:25:47 GMT</pubDate>
    <dc:creator>uwe_schieferstein</dc:creator>
    <dc:date>2007-11-03T22:25:47Z</dc:date>
    <item>
      <title>looking for method for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032041#M717169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi i created alv grid with columns as checkboxes. i use methods event_handler_on_change, modify_cell but now i looking for method which allows me to check after click on checkbox if in this column is any cell checked already.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could someone tell me which method I can use?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;Joanna&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Nov 2007 13:18:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032041#M717169</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-02T13:18:10Z</dc:date>
    </item>
    <item>
      <title>Re: looking for method for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032042#M717170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Joanna&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no method for your specific requirement available. However, have a look at my sample report &amp;lt;b&amp;gt;ZUS_SDN_ALV_WITH_RADIOBUTTONS2&amp;lt;/b&amp;gt; which may give you an idea how to solve the problem. Simply replace the radiobuttons with your checkboxes and you have your solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The report is based on my previous posting:&lt;/P&gt;&lt;P&gt;&amp;lt;a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a02535ce-9eaf-2910-ae8c-f2f2afc1c8e7"&amp;gt;ALV List with Radio Buttons&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_ALV_WITH_RADIOBUTTONS2
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; This program shows how to realize radiobuttons in ALV grid lists
*&amp;amp; using event HOTSPOT_CLICK.
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Screen 100:
*&amp;amp; - Flow logic
*&amp;amp;
*&amp;amp;      PROCESS BEFORE OUTPUT.
*&amp;amp;        MODULE PBO.
*&amp;amp;*
*&amp;amp;      PROCESS AFTER INPUT.
*&amp;amp;        MODULE PAI.
*&amp;amp;
*&amp;amp; - Screen elements: none
*&amp;amp; - ok-code field -&amp;gt; gd_okcode
*&amp;amp;
*&amp;amp; GUI Status MAIN100:
*&amp;amp; - F3 = 'BACK', Shift+F3 = 'EXIT', F12 = 'CANC'
*&amp;amp;---------------------------------------------------------------------*
PROGRAM zus_sdn_alv_with_radiobuttons2.



TYPE-POOLS: abap, icon.  " INCLUDE &amp;lt;icon&amp;gt;. for releases &amp;lt; 6.20


TYPES: BEGIN OF ty_s_sflight.
INCLUDE TYPE sflight.
TYPES: button1    TYPE iconname.
TYPES: button2    TYPE iconname.
TYPES: button3    TYPE iconname.
TYPES: button4    TYPE iconname.
TYPES: END OF ty_s_sflight.


DATA:
  gt_sflight    TYPE STANDARD TABLE OF ty_s_sflight,
*
  gs_layout     TYPE lvc_s_layo,
  gt_fcat       TYPE lvc_t_fcat.


DATA:
  gd_okcode    TYPE ui_func,
  go_docking   TYPE REF TO cl_gui_docking_container,
  go_grid      TYPE REF TO cl_gui_alv_grid.





*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:
      handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
          e_row_id
          e_column_id
          es_row_no
          sender.

ENDCLASS.                    "lcl_eventhandler DEFINITION


*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_hotspot_click.
* define local data
    DATA:
      ld_count(3)   TYPE n,
      ld_msg        TYPE bapi_msg.

    FIELD-SYMBOLS:
      &amp;lt;ls_entry&amp;gt;    TYPE ty_s_sflight,
      &amp;lt;ld_fld&amp;gt;      TYPE ANY.

    READ TABLE gt_sflight ASSIGNING &amp;lt;ls_entry&amp;gt; INDEX es_row_no-row_id.
    CHECK ( &amp;lt;ls_entry&amp;gt; IS ASSIGNED ).

*   Set all radio buttons "unselected"
    &amp;lt;ls_entry&amp;gt;-button1 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button2 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button3 =  icon_wd_radio_button_empty.
    &amp;lt;ls_entry&amp;gt;-button4 =  icon_wd_radio_button_empty.

    ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE &amp;lt;ls_entry&amp;gt;
                                              TO &amp;lt;ld_fld&amp;gt;.
    IF ( &amp;lt;ld_fld&amp;gt; IS ASSIGNED ).
*     Set selected radio button "selected".
      &amp;lt;ld_fld&amp;gt; = icon_wd_radio_button.
    ENDIF.

    ld_count = 0.
    LOOP AT gt_sflight ASSIGNING &amp;lt;ls_entry&amp;gt;.
      ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE &amp;lt;ls_entry&amp;gt;
                                                TO &amp;lt;ld_fld&amp;gt;.
      "     Note: here you could count your marked checkboxes within
      "           the column, e.g.: IF ( '&amp;lt;checkbox1&amp;gt;' = 'X' ).
      IF ( &amp;lt;ld_fld&amp;gt; = icon_wd_radio_button ).
        ADD 1 TO ld_count.
      ENDIF.

    ENDLOOP.

    CONCATENATE 'Column' e_column_id-fieldname
      INTO ld_msg SEPARATED BY space.
    CONCATENATE ld_msg ':' ld_count 'times marked'
      INTO ld_msg SEPARATED BY space.
    MESSAGE ld_msg TYPE 'I'.



*   Force PAI followed by refresh of table display in PBO
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code
      EXPORTING
        new_code = 'REFRESH'
*      IMPORTING
*        RC       =
        .

  ENDMETHOD.                    "handle_hotspot_click

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION



*---------------------------------------------------------------------*
*       MAIN                                                          *
*---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM select_data.

  PERFORM init_controls.
  PERFORM build_fieldcatalog.
  PERFORM set_layout.

  CALL METHOD go_grid-&amp;gt;set_table_for_first_display
   EXPORTING
*     i_structure_name = 'SFLIGHT'
      is_layout        = gs_layout
    CHANGING
      it_fieldcatalog  = gt_fcat
      it_outtab        = gt_sflight.

* Link docking container to dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      lifetime_dynpro_dynpro_link = 3
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL SCREEN 100.


END-OF-SELECTION.






*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'MAIN100'.
ENDMODULE.                    "PBO OUTPUT

*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.

* Leave report
  CASE gd_okcode.
    WHEN 'BACK'  OR
         'EXIT'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   Refresh table display
    WHEN 'REFRESH'.
      PERFORM refresh_display.


    WHEN OTHERS.
*     do nothing
  ENDCASE.
  CLEAR gd_okcode.
ENDMODULE.                    "PAI INPUT



*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_FIELDCATALOG
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
* define local data
  DATA:
    ls_fcat        TYPE lvc_s_fcat.


  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'ICON'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  DELETE gt_fcat WHERE ( fieldname &amp;lt;&amp;gt; 'NAME' ).
* NOTE: field ICON-NAME has data element ICONNAME.


  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
*     I_BUFFER_ACTIVE              =
      i_structure_name             = 'SFLIGHT'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      ct_fieldcat                  = gt_fcat
    EXCEPTIONS
      inconsistent_interface       = 1
      program_error                = 2
      OTHERS                       = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  READ TABLE gt_fcat INTO ls_fcat
       WITH KEY fieldname = 'NAME'.
  IF ( syst-subrc = 0 ).
    DELETE gt_fcat INDEX syst-tabix.
  ENDIF.

  ls_fcat-fieldname = 'BUTTON4'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  ls_fcat-icon    = 'X'.
  ls_fcat-hotspot = 'X'.
  INSERT ls_fcat INTO gt_fcat INDEX 5.
*
  ls_fcat-fieldname = 'BUTTON3'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  INSERT ls_fcat INTO gt_fcat INDEX 5.
*
  ls_fcat-fieldname = 'BUTTON2'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  INSERT ls_fcat INTO gt_fcat INDEX 5.
*
  ls_fcat-fieldname = 'BUTTON1'.
  ls_fcat-coltext   = ls_fcat-fieldname.
  INSERT ls_fcat INTO gt_fcat INDEX 5.


* Renumbering of the columns
  LOOP AT gt_fcat INTO ls_fcat.
    ls_fcat-col_pos = syst-tabix.
    MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
  ENDLOOP.






ENDFORM.                    " BUILD_FIELDCATALOG


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SELECT_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM select_data .
* define local data
  DATA:
    ls_sflight    TYPE ty_s_sflight.


  SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.

  ls_sflight-button1 = icon_wd_radio_button. " selected radiobutton
  ls_sflight-button2 = icon_wd_radio_button_empty.
  ls_sflight-button3 = icon_wd_radio_button_empty.
  ls_sflight-button4 = icon_wd_radio_button_empty.
* Alternatively: create icons using function module 'ICON_CREATE'



  MODIFY gt_sflight FROM ls_sflight
      TRANSPORTING button1 button2 button3 button4
    WHERE ( carrid IS NOT INITIAL ).

ENDFORM.                    " SELECT_DATA


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INIT_CONTROLS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_controls .

  CHECK ( go_docking IS NOT BOUND ).

* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
*      REPID                       =
*      DYNNR                       =
*      SIDE                        = DOCK_AT_LEFT
*      EXTENSION                   = 50
*      STYLE                       =
*      LIFETIME                    = lifetime_default
*      CAPTION                     =
*      METRIC                      = 0
      ratio                       = 90
*      NO_AUTODEF_PROGID_DYNNR     =
*      NAME                        =
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Size of container = full screen size
  CALL METHOD go_docking-&amp;gt;set_extension
    EXPORTING
      extension  = 99999
    EXCEPTIONS
      cntl_error = 1
      OTHERS     = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Create ALV grid instance
  CREATE OBJECT go_grid
    EXPORTING
*      I_SHELLSTYLE      = 0
*      I_LIFETIME        =
      i_parent          = go_docking
*      I_APPL_EVENTS     = space
*      I_PARENTDBG       =
*      I_APPLOGPARENT    =
*      I_GRAPHICSPARENT  =
*      I_NAME            =
*      I_FCAT_COMPLETE   = SPACE
    EXCEPTIONS
      error_cntl_create = 1
      error_cntl_init   = 2
      error_cntl_link   = 3
      error_dp_create   = 4
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


*   Set event handler for event HOTSPOT_CLICK
  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_hotspot_click FOR go_grid.

ENDFORM.                    " INIT_CONTROLS


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  REFRESH_DISPLAY
*&amp;amp;---------------------------------------------------------------------*
*       Refresh table display after switching the radiobuttons
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM refresh_display .
* define local data
  DATA:
    ls_stable    TYPE lvc_s_stbl.

  ls_stable-row = abap_true.
  ls_stable-col = abap_true.

  CALL METHOD go_grid-&amp;gt;refresh_table_display
    EXPORTING
      is_stable      = ls_stable
*        I_SOFT_REFRESH =
    EXCEPTIONS
      finished       = 1
      OTHERS         = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " REFRESH_DISPLAY

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SET_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*       Set layout for ALV list
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM set_layout .

  CLEAR: gs_layout.

  gs_layout-cwidth_opt = abap_true.  " optimize column width
  gs_layout-zebra      = abap_true.

ENDFORM.                    " SET_LAYOUT
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Nov 2007 22:25:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032042#M717170</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-11-03T22:25:47Z</dc:date>
    </item>
    <item>
      <title>Re: looking for method for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032043#M717171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joanna,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See this standard program in your system which clearly explains the following scenarios.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;BCALV_EDIT_05&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;This example shows how to use checkboxes within an ALV Grid Control. You learn:&lt;/P&gt;&lt;P&gt;	(1) how to define a column for editable checkboxes for an attribute of your list&lt;/P&gt;&lt;P&gt;	(2) how to evaluate the checked checkboxes&lt;/P&gt;&lt;P&gt;	(3) how to switch between editable and non-editable checkboxes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once you understand this program, you can find many other sample programs in similar lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Aleem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Nov 2007 05:46:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/looking-for-method-for-alv/m-p/3032043#M717171</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-05T05:46:43Z</dc:date>
    </item>
  </channel>
</rss>

