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

Former Member
0 Likes
512

Hi all,

<b>I am developing a report an need to add Checkbox and icon in Grid.

Can you help me to do that pls????</b>

Thanks in advance,

Rakesh

Hi all,

<b>I am developing a report an need to add Checkbox and icon in Grid.

Can you help me to do that pls????</b>

Thanks in advance,

Rakesh

3 REPLIES 3
Read only

Former Member
0 Likes
489

hi,

i know how to add push button is it ok?

Here is code.

*----


  • TYPE-POOLS

*----


TYPE-POOLS: slis. " Type pool for ALV

*----


  • Tables

*----


TABLES: vbak, vbap.

*----


  • INTERNAL TABLES

*----


DATA: BEGIN OF g_t_itab OCCURS 0,

sel TYPE c,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

vbtyp LIKE vbak-vbtyp,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

spart LIKE vbak-spart,

netwr LIKE vbak-netwr,

kunnr LIKE vbak-kunnr,

END OF g_t_itab.

DATA: BEGIN OF g_t_item OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

arktx LIKE vbap-arktx,

END OF g_t_item.

  • Data fields used for ALV call - simple list

DATA : g_f_repid LIKE sy-repid.

DATA : g_t_fieldcat TYPE slis_t_fieldcat_alv.

DATA : g_r_fieldcat TYPE slis_fieldcat_alv.

DATA : g_t_events TYPE slis_t_event.

DATA : g_r_events TYPE slis_alv_event.

DATA : g_r_layout TYPE slis_layout_alv.

DATA : g_r_x_variant LIKE disvariant.

DATA : g_r_variant LIKE disvariant.

DATA : g_f_exit(1) TYPE c.

DATA : g_f_save(1) TYPE c.

*----


  • SELECTION SCREEN

*----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.

SELECTION-SCREEN END OF BLOCK b1.

*----


  • START OF SELECTION

*----


START-OF-SELECTION.

PERFORM get_data.

*----


  • END OF SELECTION

*----


END-OF-SELECTION.

PERFORM set_alv_parameters.

PERFORM display_list.

&----


*& Form get_data

&----


  • Get data from DB tables

----


FORM get_data.

CLEAR: g_t_itab.

REFRESH: g_t_itab.

SELECT vbeln erdat vbtyp vkorg vtweg spart netwr kunnr

FROM vbak

INTO CORRESPONDING FIELDS OF TABLE g_t_itab

WHERE

vbeln IN s_vbeln.

ENDFORM. " get_data

&----


*& Form set_alv_parameters

&----


  • Set alv parameters , layout, events, fieldcatlog

----


FORM set_alv_parameters.

PERFORM set_filedcatlog.

  • Events

REFRESH : g_t_events.

CLEAR : g_r_events.

  • Top of Page event for standard header

g_r_events-name = 'TOP_OF_PAGE'.

g_r_events-form = 'TOP_OF_PAGE'.

APPEND g_r_events TO g_t_events.

  • Attributes for layout

g_r_layout-zebra = 'X'.

g_r_layout-min_linesize = 119.

g_r_layout-colwidth_optimize = 'X'.

  • g_r_layout-detail_initial_lines = 'X'.

  • g_r_layout-get_selinfos = 'X'.

  • g_r_layout-group_change_edit = 'X'.

  • Field having the check box

<b> g_r_layout-box_fieldname = 'SEL'.</b>* Field having the checkbox internal table name

<b>g_r_layout-box_tabname = 'G_T_ITAB'.</b>

ENDFORM. " set_alv_parameters

&----


*& Form display_list

&----


  • text

----


FORM display_list.

g_f_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_f_repid

<b>is_layout = g_r_layout</b>

it_fieldcat = g_t_fieldcat[]

it_events = g_t_events[]

TABLES

t_outtab = g_t_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.

ENDFORM. " display_list

&----


*& Form set_filedcatlog

&----


  • text

----


FORM set_filedcatlog.

DATA: l_r_fieldcat TYPE slis_fieldcat_alv. " For column heading

CLEAR : g_t_fieldcat,

g_t_fieldcat[].

  • Sales Order

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VBELN'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VBELN'.

l_r_fieldcat-no_out = ' '.

l_r_fieldcat-input = ' '.

l_r_fieldcat-key = 'X'.

l_r_fieldcat-col_pos = 2.

  • l_r_fieldcat-seltext_m = 'Sales Order'.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Creation date

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'ERDAT'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'ERDAT'.

l_r_fieldcat-col_pos = 3.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • document category

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VBTYP'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VBTYP'.

l_r_fieldcat-col_pos = 4.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Sales organization

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VKORG'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VKORG'.

l_r_fieldcat-col_pos = 5.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Distribution channel

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VTWEG'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VTWEG'.

l_r_fieldcat-col_pos = 6.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Division

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'SPART'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'SPART'.

l_r_fieldcat-col_pos = 7.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Net Value

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'NETWR'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'NETWR'.

l_r_fieldcat-do_sum = 'X'.

l_r_fieldcat-col_pos = 8.

l_r_fieldcat-emphasize = 'C500'.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Distribution channel

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'KUNNR'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'KUNNR'.

l_r_fieldcat-col_pos = 9.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

ENDFORM. " set_filedcatlog

----


  • FORM top_of_page *

----


FORM top_of_page.

DATA : l_r_listheader TYPE slis_t_listheader,

l_r_line TYPE slis_listheader.

CLEAR l_r_line.

l_r_line-typ = 'H'.

l_r_line-info = 'Sales details'.

APPEND l_r_line TO l_r_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = l_r_listheader

  • I_LOGO =

  • I_END_OF_LIST_GRID =.

.

ENDFORM. "top_of_page

Read only

Former Member
0 Likes
489

hi,

this is code for displaying first column as checkbox.

*----


  • TYPE-POOLS

*----


TYPE-POOLS: slis. " Type pool for ALV

*----


  • Tables

*----


TABLES: vbak, vbap.

*----


  • INTERNAL TABLES

*----


DATA: BEGIN OF g_t_itab OCCURS 0,

sel TYPE c,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

vbtyp LIKE vbak-vbtyp,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

spart LIKE vbak-spart,

netwr LIKE vbak-netwr,

kunnr LIKE vbak-kunnr,

END OF g_t_itab.

DATA: BEGIN OF g_t_item OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

arktx LIKE vbap-arktx,

END OF g_t_item.

  • Data fields used for ALV call - simple list

DATA : g_f_repid LIKE sy-repid.

DATA : g_t_fieldcat TYPE slis_t_fieldcat_alv.

DATA : g_r_fieldcat TYPE slis_fieldcat_alv.

DATA : g_t_events TYPE slis_t_event.

DATA : g_r_events TYPE slis_alv_event.

DATA : g_r_layout TYPE slis_layout_alv.

DATA : g_r_x_variant LIKE disvariant.

DATA : g_r_variant LIKE disvariant.

DATA : g_f_exit(1) TYPE c.

DATA : g_f_save(1) TYPE c.

*----


  • SELECTION SCREEN

*----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.

SELECTION-SCREEN END OF BLOCK b1.

*----


  • START OF SELECTION

*----


START-OF-SELECTION.

PERFORM get_data.

*----


  • END OF SELECTION

*----


END-OF-SELECTION.

PERFORM set_alv_parameters.

PERFORM display_list.

&----


*& Form get_data

&----


  • Get data from DB tables

----


FORM get_data.

CLEAR: g_t_itab.

REFRESH: g_t_itab.

SELECT vbeln erdat vbtyp vkorg vtweg spart netwr kunnr

FROM vbak

INTO CORRESPONDING FIELDS OF TABLE g_t_itab

WHERE

vbeln IN s_vbeln.

ENDFORM. " get_data

&----


*& Form set_alv_parameters

&----


  • Set alv parameters , layout, events, fieldcatlog

----


FORM set_alv_parameters.

PERFORM set_filedcatlog.

  • Events

REFRESH : g_t_events.

CLEAR : g_r_events.

  • Top of Page event for standard header

g_r_events-name = 'TOP_OF_PAGE'.

g_r_events-form = 'TOP_OF_PAGE'.

APPEND g_r_events TO g_t_events.

ENDFORM. " set_alv_parameters

&----


*& Form display_list

&----


  • text

----


FORM display_list.

g_f_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_f_repid

  • is_layout = g_r_layout

it_fieldcat = g_t_fieldcat[]

it_events = g_t_events[]

TABLES

t_outtab = g_t_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.

ENDFORM. " display_list

&----


*& Form set_filedcatlog

&----


  • text

----


FORM set_filedcatlog.

DATA: l_r_fieldcat TYPE slis_fieldcat_alv. " For column heading

CLEAR : g_t_fieldcat,

g_t_fieldcat[].

<b>l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'SEL'.

l_r_fieldcat-checkbox = 'X'.

  • l_r_fieldcat-no_out = ' '.

l_r_fieldcat-input = ' '.

l_r_fieldcat-edit = 'X'.

l_r_fieldcat-outputlen = 2.

l_r_fieldcat-col_pos = 1.

  • l_r_fieldcat-seltext_m = 'Sales Order'.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.</b>

  • Sales Order

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VBELN'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VBELN'.

l_r_fieldcat-no_out = ' '.

l_r_fieldcat-input = 'X'.

l_r_fieldcat-edit = 'X'.

l_r_fieldcat-key = 'X'.

l_r_fieldcat-col_pos = 2.

  • l_r_fieldcat-seltext_m = 'Sales Order'.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Creation date

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'ERDAT'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'ERDAT'.

l_r_fieldcat-col_pos = 3.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • document category

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VBTYP'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VBTYP'.

l_r_fieldcat-col_pos = 4.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Sales organization

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VKORG'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VKORG'.

l_r_fieldcat-col_pos = 5.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Distribution channel

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'VTWEG'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'VTWEG'.

l_r_fieldcat-col_pos = 6.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Division

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'SPART'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'SPART'.

l_r_fieldcat-col_pos = 7.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Net Value

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'NETWR'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'NETWR'.

l_r_fieldcat-do_sum = 'X'.

l_r_fieldcat-col_pos = 8.

l_r_fieldcat-emphasize = 'C500'.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

  • Distribution channel

l_r_fieldcat-tabname = 'G_T_ITAB'.

l_r_fieldcat-fieldname = 'KUNNR'.

l_r_fieldcat-ref_tabname = 'VBAK'.

l_r_fieldcat-ref_fieldname = 'KUNNR'.

l_r_fieldcat-col_pos = 9.

APPEND l_r_fieldcat TO g_t_fieldcat.

CLEAR l_r_fieldcat.

ENDFORM. " set_filedcatlog

----


  • FORM top_of_page *

----


FORM top_of_page.

DATA : l_r_listheader TYPE slis_t_listheader,

l_r_line TYPE slis_listheader.

CLEAR l_r_line.

l_r_line-typ = 'H'.

l_r_line-info = 'Sales details'.

APPEND l_r_line TO l_r_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = l_r_listheader

  • I_LOGO =

  • I_END_OF_LIST_GRID =.

.

ENDFORM. "top_of_page

Read only

Former Member
0 Likes
489

Hi Rakesh,

Hope yhis will solve your problem:

For check box

At declaring field catalog using structure LVC_S_FCAT

mark CHECKBOX = 'X' and also EDIT = 'X'.

For reference check below subroutine in program BCALV_EDIT_05.

form build_fieldcat changing pt_fieldcat type lvc_t_fcat.

data ls_fcat type lvc_s_fcat.

call function 'LVC_FIELDCATALOG_MERGE'

exporting

i_structure_name = 'SFLIGHT'

changing

ct_fieldcat = pt_fieldcat.

*§A2.Add an entry for the checkbox in the fieldcatalog

clear ls_fcat.

ls_fcat-fieldname = 'CHECKBOX'.

  • Essential: declare field as checkbox and

  • mark it as editable field:

ls_fcat-checkbox = 'X'.

ls_fcat-edit = 'X'.

  • do not forget to provide texts for this extra field

ls_fcat-coltext = text-f01.

ls_fcat-tooltip = text-f02.

ls_fcat-seltext = text-f03.

  • optional: set column width

ls_fcat-outputlen = 10.

*

append ls_fcat to pt_fieldcat.

endform.

For Icon:




CONSTANTS:
icon_id_failure LIKE icon-id VALUE ' ((Content component not found.)) @',
icon_id_okay LIKE icon-id VALUE ' ((Content component not found.)) @'.


TYPES: BEGIN OF ls_tab,
matnr LIKE equi-matnr,
maktx LIKE makt-maktx,
b_werk LIKE equi-werk,
b_lager LIKE equi-lager,
lgobe LIKE t001l-lgobe,
sernr LIKE equi-sernr,
icon LIKE icon-id,
objnr LIKE equi-objnr,
END OF ls_tab.

*Table that display the data for the ALV.
DATA: itab TYPE ls_tab OCCURS 0 WITH HEADER LINE.

PERFORM get_h_date .

IF h_date => sy-datum .

itab-icon = icon_id_okay.

ELSE .

itab-icon = icon_id_failure.

ENDIF.