Skip to Content

using checkboxes in ALV_LIST

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.

 

Add comment
10|10000 characters needed characters exceeded

3 Answers

  • Best Answer
    Posted on Aug 04, 2006 at 06:02 AM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • Posted on Aug 04, 2006 at 06:01 AM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 04, 2006 at 06:35 AM

    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.

    Add comment
    10|10000 characters needed characters exceeded