‎2006 Aug 04 6:57 AM
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.
‎2006 Aug 04 7: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
‎2006 Aug 04 7: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
‎2006 Aug 04 7: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
‎2006 Aug 04 7: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.