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-checkbox

Former Member
0 Likes
993

hi ,

How to import checkbox using ALV .

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
941

Hi Ankush,

chk this blog if it can help u

/people/community.user/blog/2007/01/10/displaychange-mode-of-editable-fields-in-alv-using-function-modules-but-not-custom-containers

hi ,

How to import checkbox using ALV .

7 REPLIES 7
Read only

Former Member
0 Likes
941

hi

check the following program

REPORT Z_REPORT .

TYPE-POOLS: slis.

TYPE-POOLS: icon.

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 bkbukrs bkbelnr

bkgjahr bkblart

bkbstat bshkont

bsshkzg bswrbtr

*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 ( bkbelnr = bsbelnr AND

bkbukrs = bsbukrs AND

bkgjahr = bsgjahr )

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 = v_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.

data: msg(100).

LOOP AT itab_post.

if itab_post-flag = 'X'.

msg = sy-tabix.

condense msg.

concatenate 'Row Number ' msg ' ' into msg

separated by space.

message i000(su) with msg.

endif.

ENDLOOP.

ENDFORM. "ITAB_user_command

<b>reward points for useful ans</b>

<i>Regards

Vivek</i>

Read only

Former Member
0 Likes
941
Read only

Former Member
0 Likes
942

Hi Ankush,

chk this blog if it can help u

/people/community.user/blog/2007/01/10/displaychange-mode-of-editable-fields-in-alv-using-function-modules-but-not-custom-containers

Read only

Former Member
0 Likes
941

hi,

just build afieldcatalogue for that checkbox in your program.

NOTE: before building a fieldcatalogue for the checkbox <b>"declare a variable for the</b> <b>checkbox of type c and length as one</b>" in your internal table...

the sample code is shown below....

say suppose it_mix is your internal table with which you are going to build fieldcatalogue...

TYPES: BEGIN OF t_mix,

b(1) TYPE c, "variable declared for checkbox....

vbeln TYPE vbeln,

erdat TYPE erdat,

vtweg TYPE vtweg,

vkorg TYPE vkorg,

spart TYPE spart,

posnr TYPE posnr_va,

matnr TYPE matnr,

kwmeng TYPE kwmeng,

vrkme TYPE vrkme,

arktx TYPE arktx,

werks TYPE werks_ext,

netpr TYPE netpr,

netwr TYPE netwr_ap,

END OF t_mix.

DATA: wa_mix TYPE t_mix.

DATA: it_mix TYPE STANDARD TABLE OF t_mix.

in fieldcatalogue....

&----


*& Form field_catalogue

&----


  • text

----


  • -->P_I_FIELDCAT text

----


FORM field_catalogue USING p_i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: wa_fieldcat TYPE slis_fieldcat_alv.

--


FOR CHECKBOX--

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = '1'.

wa_fieldcat-fieldname = 'B'.

wa_fieldcat-tabname = 'IT_MIX'.

wa_fieldcat-checkbox = 'X'.

wa_fieldcat-just = 'C'.

wa_fieldcat-seltext_l = 'CHECK_BOX'.

wa_fieldcat-seltext_m = 'BOX'.

wa_fieldcat-seltext_s = 'C'.

wa_fieldcat-edit = 'X'.

wa_fieldcat-input = 'X'.

wa_fieldcat-outputlen = 3.

APPEND wa_fieldcat TO p_i_fieldcat.

Read only

Former Member
0 Likes
941

Hello Ankush,

Its just simple.

layout is having a field called box_fieldname.

while setting attributes for layout... type the following...

<b>* Field having the check box

g_r_layout-box_fieldname = 'SEL'.</b>

SEL must and should present in your internal table which u r passing to the FM.

Reward If Helpful.

Regards

--

Sasidhar Reddy Matli.

Read only

Former Member
0 Likes
941

Check this code

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

it_fieldcat = pt_grpfcat[]

it_excluding = p_grpexcltab2[]

is_layout = pt_grplayout2

i_callback_program = sy-repid

i_callback_html_top_of_page = p_header

i_callback_pf_status_set = v_status_set1

i_callback_user_command = f_user_command1

i_screen_start_column = 25

i_screen_start_line = 5

i_screen_end_column = 80

i_screen_end_line = 20

it_events = i_events[]

tables

t_outtab = i_grpoutput.

The user command code

&----


  • Form f_user_command1 *

&----


  • This form will handle the user command from fm REUSE *

----


form f_user_command1 using p_ucomm type sy-ucomm

rs_selfield type slis_selfield.

data p_ref1 type ref to cl_gui_alv_grid.

call function 'GET_GLOBALS_FROM_SLVC_FULLSCR'

importing

e_grid = p_ref1.

call method p_ref1->check_changed_data.

case p_ucomm.

when 'YCNC'.

leave to screen 0.

when 'YNTR'.

loop at i_grpoutput where ybox eq c_x.

" <<<< Filling all values for REUSE HIERSEQ_LIST ie header and details

endloop.

" <<<< call your REUSE HIERSEQ_LIST here after filling all values

leave to screen 0.

when 'YSEL'.

perform f_select_deselect_all using c_x.

when 'YDEL'.

perform f_select_deselect_all using space.

endcase.

rs_selfield-refresh = c_x. " Grid refresh

endform. " F_user_command1

TABLES : STKO,STPO,MAKT,MAST.

TYPE-POOLS : SLIS.

DATA : BEGIN OF ISTKO OCCURS 0,

STLNR LIKE STKO-STLNR,

DATUV LIKE STKO-DATUV,

MATNR LIKE MAST-MATNR,

BMENG LIKE STKO-BMENG,

BMEIN LIKE STKO-BMEIN,

END OF ISTKO.

DATA : BEGIN OF ISTPO OCCURS 0,

STLNR LIKE STPO-STLNR,

IDNRK LIKE STPO-IDNRK,

MENGE LIKE STPO-MENGE,

MEINS LIKE STPO-MEINS,

MAKTX LIKE MAKT-MAKTX,

END OF ISTPO.

DATA : BEGIN OF IMAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

END OF IMAKT.

DATA : BEGIN OF IMAST OCCURS 0,

MATNR LIKE MAST-MATNR,

STLNR LIKE MAST-STLNR,

END OF IMAST.

DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WFIELDCAT TYPE SLIS_FIELDCAT_ALV,

ILAYOUT TYPE SLIS_LAYOUT_ALV,

IKEYINFO TYPE SLIS_KEYINFO_ALV,

IEVENT TYPE SLIS_T_EVENT,

WEVENT TYPE SLIS_ALV_EVENT,

ISORT TYPE SLIS_T_SORTINFO_ALV,

WSORT TYPE SLIS_SORTINFO_ALV.

PARAMETERS : P_NUM TYPE I DEFAULT 10.

START-OF-SELECTION.

PERFORM GETDATA.

PERFORM GETHEADERMAT.

PERFORM GET_MAT_DESC.

PERFORM BUILD_FCAT_HEAD.

PERFORM BUILD_FCAT_ITEM.

PERFORM BUILD_KEYINFO.

PERFORM BUILD_EVENT_TAB.

PERFORM BUILD_SORT_TAB.

PERFORM BUILD_LAYOUT.

PERFORM DISPLAY_DATA.

&----


*& Form GETDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETDATA .

SELECT STLNR DATUV BMENG BMEIN INTO CORRESPONDING FIELDS OF TABLE ISTKO

FROM STKO UP TO P_NUM ROWS.

IF NOT ISTKO[] IS INITIAL.

SELECT STLNR IDNRK MENGE MEINS INTO TABLE ISTPO FROM STPO FOR ALL ENTRIES IN ISTKO

WHERE STLNR = ISTKO-STLNR AND POSTP = 'L'.

ENDIF.

ENDFORM. " GETDATA

&----


*& Form BUILD_FCAT_HEAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FCAT_HEAD .

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'STLNR'.

WFIELDCAT-SELTEXT_L = 'BOM no'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'DATUV'.

WFIELDCAT-SELTEXT_L = 'BOM date'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'MATNR'.

WFIELDCAT-SELTEXT_L = 'Header mat no'.

WFIELDCAT-OUTPUTLEN = 18.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'BMENG'.

WFIELDCAT-SELTEXT_L = 'Base qty'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'BMEIN'.

WFIELDCAT-SELTEXT_L = 'UOM'.

WFIELDCAT-OUTPUTLEN = 3.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FCAT_HEAD

&----


*& Form BUILD_FCAT_ITEM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FCAT_ITEM .

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'STLNR'.

WFIELDCAT-SELTEXT_L = 'BOM no'.

WFIELDCAT-NO_OUT = 'X'.

*WFIELDCAT-HOTSPOT = 'X'.

WFIELDCAT-OUTPUTLEN = 10.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'IDNRK'.

WFIELDCAT-SELTEXT_L = 'Material no'.

*WFIELDCAT-HOTSPOT = 'X'.

WFIELDCAT-OUTPUTLEN = 18.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MAKTX'.

WFIELDCAT-SELTEXT_L = 'Material desc'.

WFIELDCAT-JUST = 'C'.

WFIELDCAT-OUTPUTLEN = 30.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MENGE'.

WFIELDCAT-SELTEXT_L = 'Item qty'.

WFIELDCAT-OUTPUTLEN = 15.

WFIELDCAT-DO_SUM = 'X'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MEINS'.

WFIELDCAT-SELTEXT_L = 'UOM'.

WFIELDCAT-OUTPUTLEN = 3.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FCAT_ITEM

&----


*& Form BUILD_KEYINFO

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_KEYINFO .

IKEYINFO-HEADER01 = 'STLNR'.

IKEYINFO-ITEM01 = 'STLNR'.

ENDFORM. " BUILD_KEYINFO

&----


*& Form DISPLAY_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DATA .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COM'

IS_LAYOUT = ILAYOUT

IT_FIELDCAT = IFIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = ISORT

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IEVENT[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = 'ISTKO'

I_TABNAME_ITEM = 'ISTPO'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = IKEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB_HEADER = ISTKO

T_OUTTAB_ITEM = ISTPO

  • 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 GET_MAT_DESC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_MAT_DESC .

IF NOT ISTPO[] IS INITIAL.

SELECT MATNR MAKTX INTO TABLE IMAKT FROM MAKT FOR ALL ENTRIES IN ISTPO

WHERE MATNR = ISTPO-IDNRK.

ENDIF.

LOOP AT ISTPO.

READ TABLE IMAKT WITH KEY MATNR = ISTPO-IDNRK.

IF SY-SUBRC = 0.

ISTPO-MAKTX = IMAKT-MAKTX.

ENDIF.

MODIFY ISTPO.

ENDLOOP.

ENDFORM. " GET_MAT_DESC

&----


*& Form BUILD_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_LAYOUT .

ILAYOUT-ZEBRA = 'X'.

ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.

ENDFORM. " BUILD_LAYOUT

*FORM USER_COM USING PUCOM LIKE SY-UCOMM PSELFIELD TYPE SLIS_SELFIELD.

*

*CASE PUCOM.

*WHEN '&IC1'.

  • SET PARAMETER ID 'MAT' FIELD PSELFIELD-VALUE.

  • CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

*ENDCASE.

*

*ENDFORM.

&----


*& Form BUILD_EVENT_TAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_EVENT_TAB .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IEVENT

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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.

READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC = 0.

WEVENT-FORM = 'TOPOFPAGE'.

MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.

ENDIF.

ENDFORM. " BUILD_EVENT_TAB

&----


*& Form TOPOFPAGE

&----


  • text

----


FORM TOPOFPAGE.

DATA : ILISTHEAD TYPE SLIS_T_LISTHEADER,

WLISTHEAD TYPE SLIS_LISTHEADER.

WLISTHEAD-INFO = 'Its a test hierarchical sequential alv dispaly'.

WLISTHEAD-TYP = 'H'.

APPEND WLISTHEAD TO ILISTHEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ILISTHEAD

  • I_LOGO = ''

  • I_END_OF_LIST_GRID =

.

ENDFORM.

&----


*& Form GETHEADERMAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETHEADERMAT .

IF NOT ISTKO[] IS INITIAL.

SELECT MATNR STLNR INTO TABLE IMAST FROM MAST FOR ALL ENTRIES IN ISTKO

WHERE STLNR = ISTKO-STLNR.

ENDIF.

LOOP AT ISTKO.

READ TABLE IMAST WITH KEY STLNR = ISTKO-STLNR.

IF SY-SUBRC = 0.

ISTKO-MATNR = IMAST-MATNR.

ENDIF.

MODIFY ISTKO.

ENDLOOP.

ENDFORM. " GETHEADERMAT

&----


*& Form BUILD_SORT_TAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_SORT_TAB .

WSORT-FIELDNAME = 'STLNR'.

WSORT-TABNAME = 'ISTPO'.

WSORT-UP = 'X'.

WSORT-SUBTOT = 'X'.

WSORT-GROUP = 'UL'.

APPEND WSORT TO ISORT.

ENDFORM. " BUILD_SORT_TAB

regards,

srinivas

<b>*reward for useful answers*</b>

Read only

Former Member
0 Likes
941

hi

first add a field of length 1 in the table that is to b output.

then populate the layout.

layout-box_fieldname = '<name of the field added in table>'.

layout-box_tabname = '<table name>'.

check boxes will b displayed in the output.<add the field at first of table>