2007 Jul 09 10:58 PM
2007 Jul 09 11:08 PM
I am using the ALV OM. Do you have a code sample for that?
2007 Jul 09 11:02 PM
In the field catalog, move 'X' to the attribute 'checkbox'. In your internal table you need to add a single character column and in the field catalog for this field, set that attribute 'checkbox' to 'X'.
2007 Jul 09 11:03 PM
Check with below program and bold one are important
TYPE-POOLS slis.
DATA: BEGIN OF itab OCCURS 0,
check,
matnr TYPE matnr,
END OF itab.
DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
s_fieldcat TYPE LINE OF slis_t_fieldcat_alv,
s_layout TYPE slis_layout_alv.
Fill up the internal table.
itab-check = 'X'. " Check box checked
itab-matnr = 'TEST MATERIAL'.
APPEND itab.
itab-check = 'X'. " Check box checked
itab-matnr = 'TEST 123456'.
APPEND itab.
Fill up the field catalog.
s_fieldcat-fieldname = 'MATNR'.
s_fieldcat-tabname = 'ITAB'.
s_fieldcat-ref_tabname = 'MARA'.
s_fieldcat-ref_fieldname = 'MATNR'.
APPEND s_fieldcat TO t_fieldcat.
Fill up layout.
<b>s_layout-box_fieldname = 'CHECK'</b>.
call the ALV
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
is_layout = s_layout
it_fieldcat = t_fieldcat
TABLES
t_outtab = itab
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.
Thanks
Seshu
2007 Jul 09 11:06 PM
REPORT ZTESTALV.
TYPE-POOLS: SLIS.
*- Fieldcatalog
DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV..
*- For Events
DATA:IT_EVENTS TYPE SLIS_T_EVENT.
DATA: X_FIELDCAT TYPE LVC_S_FCAT,
X_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA:X_LAYOUT TYPE LVC_S_LAYO.
"{ FOR DISABLE
DATA: LS_EDIT TYPE LVC_S_STYL,
LT_EDIT TYPE LVC_T_STYL.
"} FOR DISABLE
DATA: BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
HANDLE_STYLE TYPE LVC_T_STYL, "FOR DISABLE
CHECK(1),
END OF IT_VBAP.
DATA: LS_OUTTAB LIKE LINE OF IT_VBAP.
SELECT VBELN
POSNR
UP TO 10 ROWS
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
FROM VBAP.
DATA:L_POS TYPE I VALUE 1.
CLEAR: L_POS.
L_POS = L_POS + 1.
X_FIELDCAT-SELTEXT = 'VBELN'.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = L_POS.
*X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-OUTPUTLEN = '10'.
x_fieldcat-ref_field = 'VBELN'.
x_fieldcat-ref_table = 'VBAK'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
X_FIELDCAT-SELTEXT = 'POSNR'.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = L_POS.
*X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-OUTPUTLEN = '5'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
X_FIELDCAT-SELTEXT = 'CHECK'.
X_FIELDCAT-FIELDNAME = 'CHECK'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-CHECKBOX = 'X'.
X_FIELDCAT-OUTPUTLEN = '5'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
L_POS = L_POS + 1.
"{FOR DISABLE HERE 6ROW IS DISABLED
SY-TABIX = 6.
LS_EDIT-FIELDNAME = 'CHECK'.
LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
LS_EDIT-STYLE2 = SPACE.
LS_EDIT-STYLE3 = SPACE.
LS_EDIT-STYLE4 = SPACE.
LS_EDIT-MAXLEN = 5.
INSERT LS_EDIT INTO TABLE LT_EDIT.
INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.
MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB TRANSPORTING
HANDLE_STYLE .
X_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.
"} UP TO HERE
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = X_LAYOUT
IT_FIELDCAT_LVC = IT_FIELDCAT
TABLES
T_OUTTAB = IT_VBAP[]
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.
Thanks
Seshu
2007 Jul 09 11:08 PM
2007 Jul 09 11:16 PM
Check with below program :
REPORT zvijaytest MESSAGE-ID zz .
DATA: BEGIN OF it_vbap OCCURS 0,
vbeln LIKE vbak-vbeln,
posnr like vbap-posnr,
handle_style TYPE lvc_t_styl, "FOR DISABLE
check(1),
END OF it_vbap.
DATA: ok_code LIKE sy-ucomm,
save_ok LIKE sy-ucomm.
DATA: g_container TYPE scrfname VALUE 'CONTROL'.
DATA: g_custom_container TYPE REF TO cl_gui_custom_container.
*- Fieldcatalog
DATA: it_fieldcat TYPE lvc_t_fcat.
DATA: x_fieldcat TYPE lvc_s_fcat.
DATA:x_layout TYPE lvc_s_layo.
"{ FOR DISABLE
DATA: ls_edit TYPE lvc_s_styl,
lt_edit TYPE lvc_t_styl.
"} FOR DISABLE
DATA: ls_outtab LIKE LINE OF it_vbap.
START-OF-SELECTION.
SELECT vbeln posnr
FROM vbap
UP TO 20 ROWS
INTO CORRESPONDING FIELDS OF TABLE it_vbap.
DATA:l_pos TYPE i VALUE 1.
CLEAR: l_pos.
l_pos = l_pos + 1.
x_fieldcat-seltext = 'VBELN'.
x_fieldcat-fieldname = 'VBELN'.
x_fieldcat-tabname = 'IT_VBAP'.
x_fieldcat-col_pos = l_pos.
x_fieldcat-outputlen = '10'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
l_pos = l_pos + 1.
x_fieldcat-seltext = 'POSNR'.
x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-tabname = 'IT_VBAP'.
x_fieldcat-col_pos = l_pos.
x_fieldcat-outputlen = '6'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
l_pos = l_pos + 1.
x_fieldcat-seltext = 'CHECK'.
x_fieldcat-fieldname = 'CHECK'.
x_fieldcat-tabname = 'IT_MARA'.
x_fieldcat-col_pos = l_pos.
x_fieldcat-edit = 'X'.
x_fieldcat-checkbox = 'X'.
x_fieldcat-outputlen = '5'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
l_pos = l_pos + 1.
"{FOR DISABLE HERE 6ROW IS DISABLED
sy-tabix = 6.
ls_edit-fieldname = 'CHECK'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
ls_edit-style2 = space.
ls_edit-style3 = space.
ls_edit-style4 = space.
ls_edit-maxlen = 5.
INSERT ls_edit INTO TABLE lt_edit.
INSERT LINES OF lt_edit INTO TABLE ls_outtab-handle_style.
MODIFY it_vbap INDEX sy-tabix FROM ls_outtab TRANSPORTING
handle_style .
x_layout-stylefname = 'HANDLE_STYLE'.
"} UP TO HERE
END-OF-SELECTION.
IF NOT it_vbap[] IS INITIAL.
CALL SCREEN 100.
ELSE.
MESSAGE i002 WITH 'NO DATA FOR THE SELECTION'(004).
ENDIF.
----
MODULE STATUS_0100 OUTPUT
----
*
----
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'.
IF g_custom_container IS INITIAL.
PERFORM create_and_init_alv.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
----
MODULE USER_COMMAND_0100 INPUT
----
*
----
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Form CREATE_AND_INIT_ALV
&----
text
----
FORM create_and_init_alv .
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
CREATE OBJECT g_grid
EXPORTING i_parent = g_custom_container.
*Calling the Method for ALV output
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
is_layout = x_layout
CHANGING
it_outtab = it_vbap[]
IT_FIELDCATALOG = it_fieldcat.
ENDFORM. "CREATE_AND_INIT_ALV
Thanks
Seshu
2007 Jul 09 11:18 PM
Even if it the object model, you do the same thing when calling the method SET_TABLE_FOR_FIRST_DISPLAY of the CL_GUI_ALV_GRID class. The parameter IT_FIELDCATALOG of this method has a field CHECKBOX. Set that to 'X'.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |