04-16-2008 6:39 AM
Hi all!
I have developed an ALV with a checkbox in each record as one more field.I have given the following in the fieldcatalog using type-pools : SLIS.
fieldcat-fieldname = 'STATUS'.
fieldcat-checkbox = 'X'.
fieldcat-hotspot = 'X'
fieldcat-input = 'X'.
append fieldcat.
I am able to see the checkbox in output but I am not able to select it eventhough it's in edit mode. One more thing is, this check box is coming in edit mode only if I mention fieldcat-hotspot = 'X'.I have to print a formatted letter for the selected lines in my ALV output. How to make the checkbox as input field?Please help.
04-16-2008 11:44 AM
04-16-2008 7:01 AM
Hi Jayasri, Just remove fieldcat-hotspot = 'X' as part of the fieldcatalog internal table building. Regards, Venkat.O
04-16-2008 7:09 AM
Hi Jayasri,
Have a look at the sample code as well.
Regards,
Venkat.O
REPORT zvenkat_alv_checkbox.
DATA:
BEGIN OF w_emp ,
checkbox TYPE c , "declare one variable for Checkbox
status TYPE char3,
pernr TYPE pa0001-pernr,
endda TYPE pa0001-endda,
begda TYPE pa0001-begda,
ename TYPE pa0001-ename,
END OF w_emp,
i_emp LIKE w_emp OCCURS 0 WITH HEADER LINE.
*&---------------------------------------------------------------------*
* ALV Declarations
*----------------------------------------------------------------------*
* Types Pools
TYPE-POOLS:
slis.
* Types
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.
* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.
* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
START-OF-SELECTION.
PERFORM get_data.
PERFORM build_field.
PERFORM build_events.
PERFORM build_layout.
PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
SELECT pernr
endda
begda
ename
FROM pa0001
INTO CORRESPONDING FIELDS OF TABLE i_emp
UP TO 20 ROWS.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form build_field
*&---------------------------------------------------------------------*
FORM build_field .
CLEAR w_fieldcat.
CLEAR i_fieldcat.
PERFORM build_fcat USING:
'CHECKBOX' 'I_EMP' ' ',
'STATUS' 'I_EMP' 'STATUS',
'PERNR' 'I_EMP' 'PERNR',
'ENDDA' 'I_EMP' 'ENDDA',
'BEGDA' 'I_EMP' 'BEGDA',
'ENAME' 'I_EMP' 'ENAME'.
ENDFORM. "BUILD_FIELD
*&---------------------------------------------------------------------*
*& Form BUILD_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->L_FIELD text
* -->L_TAB text
* -->L_TEXT text
*----------------------------------------------------------------------*
FORM build_fcat USING l_field l_tab l_text.
w_fieldcat-fieldname = l_field.
w_fieldcat-tabname = l_tab.
w_fieldcat-seltext_m = l_text.
IF l_field = 'CHECKBOX'.
w_fieldcat-checkbox = 'X'. "Setting Check box
w_fieldcat-edit = 'X'.
ENDIF.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " build_field
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
FORM display_data .
DATA:l_program TYPE sy-repid.
l_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_program
is_layout = w_layout
it_fieldcat = i_fieldcat
it_events = i_events
TABLES
t_outtab = i_emp
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.
ENDFORM. " display_data
*&---------------------------------------------------------------------*
*& Form build_events
*&---------------------------------------------------------------------*
FORM build_events .
CLEAR i_events.
CLEAR i_events.
w_events-form = 'TOP_OF_PAGE'.
w_events-name = 'TOP_OF_PAGE'.
APPEND w_events TO i_events.
CLEAR w_events.
ENDFORM. " build_events
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_layout .
w_layout-info_fieldname = 'STATUS'.
ENDFORM. " build_layout
**********************************************************************
* FORM : top_of_page
* Created : 20.03.2008 16:20:15
**********************************************************************
FORM top_of_page.
DATA :
i_header TYPE slis_t_listheader,
w_header LIKE LINE OF i_header.
DATA:l_date1 TYPE datum,
l_date2 TYPE datum.
w_header-typ = 'S'.
w_header-info = sy-title.
APPEND w_header TO i_header.
CLEAR w_header.
w_header-typ = 'A'.
w_header-info = 'GRID Display TOP OF PAGE'.
APPEND w_header TO i_header.
CLEAR w_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_header
i_logo = 'ENJOYSAP_LOGO'.
ENDFORM. "top_of_page
04-16-2008 7:20 AM
hi,,,
Check these links. Will get ur solution.
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
Check Uwes reply to this
Reward points if this helps.
regards,
rekha
04-16-2008 11:44 AM
04-16-2008 11:49 AM
hi,
check the standard program BCALV_EDIT_05 for check boxes
Reward points if usefull to u,
Regards
Fareedas
04-25-2008 8:43 AM
Thank u all.Above example are very useful for check boxes in alv's.