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

ALV Grid

Former Member
0 Likes
840

How do I define a column in a simple table as type checkbox?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
815

I am using the ALV OM. Do you have a code sample for that?

I am using the ALV OM. Do you have a code sample for that?

6 REPLIES 6
Read only

Former Member
0 Likes
815

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'.

Read only

Former Member
0 Likes
815

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

Read only

Former Member
0 Likes
815

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

Read only

Former Member
0 Likes
816

I am using the ALV OM. Do you have a code sample for that?

Read only

0 Likes
815

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

Read only

0 Likes
815

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'.