2007 Aug 17 10:42 AM
2007 Aug 17 10:49 AM
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 .
2007 Aug 17 10:45 AM
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>
2007 Aug 17 10:47 AM
Hi,
Check this link,
https://forums.sdn.sap.com/click.jspa?searchID=4592049&messageID=1849597
Thanks,
Reward If Helpful.
2007 Aug 17 10:49 AM
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
2007 Aug 17 3:06 PM
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.
--
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.
2007 Aug 17 3:09 PM
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.
2007 Aug 17 3:11 PM
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>
2007 Aug 17 3:39 PM
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>