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

using checkboxes in ALV_LIST

govind_parmar
Participant
0 Likes
478

hi,

i'm trying to checkbox in a ALV_LIST funtion module.

Also i have added the following code:

data : begin of i_list occurs 0,

Box(1) ,

......

form f_layout_data .

clear p_gs_layout.

p_gs_layout-box_fieldname = 'MATNR'.

p_gs_layout-box_tabname = 'I_LIST'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

IS_LAYOUT = gs_layout

IT_FIELDCAT = gt_fieldcat[]

but the list shows the checkboxes, but when clicking the boxes it is not marked as checked.

1 ACCEPTED SOLUTION
Read only

dani_mn
Active Contributor
0 Likes
440

HI Govind,

check this report it contains checkboxes in alv.

<b>REPORT ZWA_FI_ANNUAL_REPORT .
TYPE-POOLS: slis.
TABLES: BKPF, BSIS, PAYR.

TYPES: begin of itab_post_type,

           bukrs type bkpf-bukrs,
           belnr type bkpf-belnr,
           gjahr type bkpf-gjahr,

           blart type bkpf-blart,
           bstat type bkpf-bstat,

           hkont type bsis-hkont,
           shkzg type bsis-shkzg,
           wrbtr type bsis-wrbtr,



       end of itab_post_type.

DATA: begin of itab_post occurs 0,

           bukrs like bkpf-bukrs,
           belnr like bkpf-belnr,
           gjahr like bkpf-gjahr,

           blart like bkpf-blart,
           bstat like bkpf-bstat,

           hkont like bsis-hkont,
           shkzg like bsis-shkzg,
           wrbtr like bsis-wrbtr,
           flag(1),



       end of itab_post.
*DATA: itab_post type standard table of itab_post_type INITIAL SIZE 0
*with header line.
data: fm_name TYPE rs38l_fnam.

data v_repid like sy-repid.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      heading  TYPE slis_t_listheader,
      gs_layout  TYPE slis_layout_alv,
      gx_variant LIKE disvariant,
      g_variant  LIKE disvariant,
      g_exit(1) TYPE c,
      g_save(1) TYPE c,
      gt_list_top_of_page TYPE slis_t_listheader,
      gt_events   TYPE slis_t_event,
      olen TYPE i,
      pageno TYPE n,
      filename LIKE sy-repid.
DATA: IT_EXCL_BUTT type SLIS_T_EXTAB.
data: wa_excl_buttons type SLIS_EXTAB.
data: header type slis_keyinfo_alv.
data: wa_header type slis_keyinfo_alv.

v_repid = sy-repid.

"-----------------------------------------------"
" Selection screen for entering search criteria "
"-----------------------------------------------"
select-options:bukrs for bsis-bukrs,
               gjahr for bkpf-gjahr,
               prctr for bsis-prctr,
               kostl for bsis-kostl,
               belnr for bsis-belnr,
               budat for bsis-budat,
               bldat for bkpf-bldat,
               hkont for bsis-hkont,
               blart for bkpf-blart,
               uname for bkpf-usnam.

SELECT bk~bukrs bk~belnr
       bk~gjahr bk~blart
       bk~bstat bs~hkont
       bs~shkzg bs~wrbtr
*INTO TABLE itab_post
INTO    (itab_post-bukrs, itab_post-belnr,
         itab_post-gjahr, itab_post-blart,
         itab_post-bstat, itab_post-hkont,
         itab_post-shkzg, itab_post-wrbtr )

FROM bkpf as bk
JOIN bsis as bs
ON  ( bk~belnr = bs~belnr AND
      bk~bukrs = bs~bukrs AND
      bk~gjahr = bs~gjahr )
WHERE bk~belnr IN belnr AND
      bk~gjahr IN gjahr AND
      bk~bukrs IN bukrs AND
      bk~blart IN blart AND
      bk~bldat IN bldat AND
      bk~usnam IN uname AND
      bs~hkont IN hkont AND
      bs~kostl IN kostl.

  append itab_post.
ENDSELECT.


PERFORM field_catalog.


gs_layout-box_fieldname = 'FLAG'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
            i_callback_program = sy-repid
            i_callback_user_command = 'ITAB_USER_COMMAND'
            is_layout          = gs_layout
            i_background_id    ='CGA'
            i_grid_title       ='Employee Cheque Advice'

            it_fieldcat        = it_fieldcat[]
            i_save             = g_save
            is_variant         = g_variant
            it_events          = gt_events[]
       TABLES
            t_outtab           = itab_post
       EXCEPTIONS
            program_error      = 1
            OTHERS             = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

**
**ENDLOOP.
*&---------------------------------------------------------------------*
*&      Form  field_catalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM field_catalog.


*There are other fields in this structure and can be used accordingly
*for different purposes like no_zero, round, no_sign etc.
  DATA: wa_fieldcat TYPE slis_fieldcat_alv.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
  exporting
  i_program_name = v_repid
  i_internal_tabname = 'ITAB_POST'
* I_STRUCTURE_NAME =
* I_CLIENT_NEVER_DISPLAY = 'X'
  i_inclname = v_repid
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
  changing
  ct_fieldcat = it_fieldcat[] .



  ENDFORM.                    " field_catalog



*---------------------------------------------------------------------*
*       FORM itab_user_command                                        *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  WHATCOMM                                                      *
*  -->  WHATROW                                                       *
*---------------------------------------------------------------------*
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.


  LOOP AT itab_post.
    itab_post-flag = 'X'.
    MODIFY itab_post.
  ENDLOOP.


*--------- IMPORTANT.
  WHATROW-REFRESH = 'X'.


ENDFORM. "ITAB_user_command</b>

Regards,

Wasim Ahmed

3 REPLIES 3
Read only

naimesh_patel
Active Contributor
0 Likes
440

Hello,

Just change,

p_gs_layout-box_fieldname = 'BOX'.

and remove

p_gs_layout-box_tabname = 'I_LIST'.

And in fieldcatalog,

IF P_FIELDNAME = 'BOX'.

ST_FIELDCAT-CHECKBOX = 'X'.

ENDIF.

Regards,

Naimesh

Read only

dani_mn
Active Contributor
0 Likes
441

HI Govind,

check this report it contains checkboxes in alv.

<b>REPORT ZWA_FI_ANNUAL_REPORT .
TYPE-POOLS: slis.
TABLES: BKPF, BSIS, PAYR.

TYPES: begin of itab_post_type,

           bukrs type bkpf-bukrs,
           belnr type bkpf-belnr,
           gjahr type bkpf-gjahr,

           blart type bkpf-blart,
           bstat type bkpf-bstat,

           hkont type bsis-hkont,
           shkzg type bsis-shkzg,
           wrbtr type bsis-wrbtr,



       end of itab_post_type.

DATA: begin of itab_post occurs 0,

           bukrs like bkpf-bukrs,
           belnr like bkpf-belnr,
           gjahr like bkpf-gjahr,

           blart like bkpf-blart,
           bstat like bkpf-bstat,

           hkont like bsis-hkont,
           shkzg like bsis-shkzg,
           wrbtr like bsis-wrbtr,
           flag(1),



       end of itab_post.
*DATA: itab_post type standard table of itab_post_type INITIAL SIZE 0
*with header line.
data: fm_name TYPE rs38l_fnam.

data v_repid like sy-repid.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      heading  TYPE slis_t_listheader,
      gs_layout  TYPE slis_layout_alv,
      gx_variant LIKE disvariant,
      g_variant  LIKE disvariant,
      g_exit(1) TYPE c,
      g_save(1) TYPE c,
      gt_list_top_of_page TYPE slis_t_listheader,
      gt_events   TYPE slis_t_event,
      olen TYPE i,
      pageno TYPE n,
      filename LIKE sy-repid.
DATA: IT_EXCL_BUTT type SLIS_T_EXTAB.
data: wa_excl_buttons type SLIS_EXTAB.
data: header type slis_keyinfo_alv.
data: wa_header type slis_keyinfo_alv.

v_repid = sy-repid.

"-----------------------------------------------"
" Selection screen for entering search criteria "
"-----------------------------------------------"
select-options:bukrs for bsis-bukrs,
               gjahr for bkpf-gjahr,
               prctr for bsis-prctr,
               kostl for bsis-kostl,
               belnr for bsis-belnr,
               budat for bsis-budat,
               bldat for bkpf-bldat,
               hkont for bsis-hkont,
               blart for bkpf-blart,
               uname for bkpf-usnam.

SELECT bk~bukrs bk~belnr
       bk~gjahr bk~blart
       bk~bstat bs~hkont
       bs~shkzg bs~wrbtr
*INTO TABLE itab_post
INTO    (itab_post-bukrs, itab_post-belnr,
         itab_post-gjahr, itab_post-blart,
         itab_post-bstat, itab_post-hkont,
         itab_post-shkzg, itab_post-wrbtr )

FROM bkpf as bk
JOIN bsis as bs
ON  ( bk~belnr = bs~belnr AND
      bk~bukrs = bs~bukrs AND
      bk~gjahr = bs~gjahr )
WHERE bk~belnr IN belnr AND
      bk~gjahr IN gjahr AND
      bk~bukrs IN bukrs AND
      bk~blart IN blart AND
      bk~bldat IN bldat AND
      bk~usnam IN uname AND
      bs~hkont IN hkont AND
      bs~kostl IN kostl.

  append itab_post.
ENDSELECT.


PERFORM field_catalog.


gs_layout-box_fieldname = 'FLAG'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
            i_callback_program = sy-repid
            i_callback_user_command = 'ITAB_USER_COMMAND'
            is_layout          = gs_layout
            i_background_id    ='CGA'
            i_grid_title       ='Employee Cheque Advice'

            it_fieldcat        = it_fieldcat[]
            i_save             = g_save
            is_variant         = g_variant
            it_events          = gt_events[]
       TABLES
            t_outtab           = itab_post
       EXCEPTIONS
            program_error      = 1
            OTHERS             = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

**
**ENDLOOP.
*&---------------------------------------------------------------------*
*&      Form  field_catalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM field_catalog.


*There are other fields in this structure and can be used accordingly
*for different purposes like no_zero, round, no_sign etc.
  DATA: wa_fieldcat TYPE slis_fieldcat_alv.

  call function 'REUSE_ALV_FIELDCATALOG_MERGE'
  exporting
  i_program_name = v_repid
  i_internal_tabname = 'ITAB_POST'
* I_STRUCTURE_NAME =
* I_CLIENT_NEVER_DISPLAY = 'X'
  i_inclname = v_repid
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
  changing
  ct_fieldcat = it_fieldcat[] .



  ENDFORM.                    " field_catalog



*---------------------------------------------------------------------*
*       FORM itab_user_command                                        *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  WHATCOMM                                                      *
*  -->  WHATROW                                                       *
*---------------------------------------------------------------------*
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.


  LOOP AT itab_post.
    itab_post-flag = 'X'.
    MODIFY itab_post.
  ENDLOOP.


*--------- IMPORTANT.
  WHATROW-REFRESH = 'X'.


ENDFORM. "ITAB_user_command</b>

Regards,

Wasim Ahmed

Read only

Former Member
0 Likes
440

Hi govind,

1. Minor Mistake

2. it should be

p_gs_layout-box_fieldname = <b> 'BOX'.</b>

and not

p_gs_layout-box_fieldname = 'MATNR'.

BCOS the extra field for checkbox is BOX

3. But since u had passed it as MATNR,

it was not allowing to select the checkbox

bcos the MATNR value was something

which corresponded to DISABLED CHECKBOX

regards,

amit m.