‎2007 Oct 18 6:14 AM
Dear All,
I have one internal table suppose itab1 and all my required field is coming to that itab1. Now I want that Itab1 to be displayed in ALV Grid. How I will do that.
Please give me the required code or steps.
Thanks.
Ab.
‎2007 Oct 18 6:21 AM
Hi,
search for BCALVGRID you will get lot of demo programs.
Regards,
Raghavendra
‎2007 Oct 18 6:17 AM
Hi,
For displaying it as an ALV grid, u need to follow the following steps:
1. First define the field catalog for the ALV Grid. This u can do using function REUSE_ALV_FIELDCATALOG_MERGE. Or u can build field catalog by taking a table of type slis_t_fieldcat and tyhen building up the itab by appending entries into it
2. Once the Field catalog is prepared, u can display the data in ALV Grid using REUSE_ALV_GRID_DISPLAY.
Hope it helps.
Please reward points for useful answers.
Regards,
Himanshu.
‎2007 Oct 18 6:20 AM
Hi,
here when you call the module display ALV you can use the method as below
CALL METHOD grid_rr->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_outtab = it_all
it_fieldcatalog = gt_fieldcat.
here it_all is internal table and gt_fieldcat contains fields to be displayed from the list of fields in it_all
regards
Gururaj
<b>&----
*& Form display_alv
&----
subroutine to display the ALV for first and next displays.
----
FORM display_alv.
Conatiner Creation
IF grid_rr IS INITIAL.
Field catalogue and layout creation.
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo.
CREATE OBJECT container_r
EXPORTING
container_name = 'CONT_ROUTE'.
CREATE OBJECT grid_rr
EXPORTING
i_parent = container_r.
field catalogue preparation
PERFORM prepare_field_catalog CHANGING gt_fieldcat.
Change layout of editor
PERFORM prepare_layout CHANGING gs_layout.
Register event handlers
PERFORM register_handlers.
Set the Internal table to ALV
CALL METHOD grid_rr->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_outtab = it_all
it_fieldcatalog = gt_fieldcat.
ELSE.
Refresh ALV when its ready for second or later display
PERFORM refresh_alv.
ENDIF.
ENDFORM. " display_alv</b>
‎2007 Oct 18 6:21 AM
Hi,
search for BCALVGRID you will get lot of demo programs.
Regards,
Raghavendra
‎2007 Oct 18 6:23 AM
Hi,
Build the field catalog internal table for those fields in the internal table..
Then call the ALV function module with the field catalog internal table and data internal table..
Check this sample code..
TYPE-POOLS: slis.
DATA: BEGIN OF itab1 OCCURS 0,
vbeln TYPE vbeln,
bstnk TYPE vbak-bstnk,
erdat TYPE vbak-erdat,
kunnr TYPE vbak-kunnr,
END OF itab1.
DATA: BEGIN OF itab2 OCCURS 0,
vbeln TYPE vbeln,
matnr TYPE vbap-matnr,
netpr TYPE vbap-netpr,
kwmeng TYPE vbap-kwmeng,
END OF itab2.
DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.
DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.
DATA: v_repid TYPE syrepid.
v_repid = sy-repid.
* Get the fieldcatalog1
PERFORM get_fieldcat1.
* Get the fieldcatalog2
PERFORM get_fieldcat2.
SELECT vbeln bstnk erdat kunnr UP TO 10 ROWS
INTO TABLE itab1
FROM vbak.
IF NOT itab1[] IS INITIAL.
SELECT vbeln matnr netpr kwmeng UP TO 10 ROWS
INTO TABLE itab2
FROM vbap
FOR ALL ENTRIES IN itab1
WHERE vbeln = itab1-vbeln.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_user_command = 'DISPLAY_DETAIL'
it_fieldcat = t_fieldcatalog1
TABLES
t_outtab = itab1.
*---------------------------------------------------------------------*
* FORM display_detail *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> UCOMM *
* --> SELFIELD *
*---------------------------------------------------------------------*
FORM display_detail USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
DATA: itab2_temp LIKE itab2 OCCURS 0 WITH HEADER LINE.
IF ucomm = '&IC1'.
READ TABLE itab1 INDEX selfield-tabindex.
IF sy-subrc = 0.
LOOP AT itab2 WHERE vbeln = itab1-vbeln.
MOVE itab2 TO itab2_temp.
APPEND itab2_temp.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = t_fieldcatalog2
TABLES
t_outtab = itab2_temp.
ENDIF.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM GET_FIELDCAT1 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM get_fieldcat1.
DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
s_fieldcatalog-col_pos = '1'.
s_fieldcatalog-fieldname = 'VBELN'.
s_fieldcatalog-tabname = 'ITAB1'.
s_fieldcatalog-rollname = 'VBELN'.
s_fieldcatalog-hotspot = 'X'.
APPEND s_fieldcatalog TO t_fieldcatalog1.
CLEAR s_fieldcatalog.
s_fieldcatalog-col_pos = '2'.
s_fieldcatalog-fieldname = 'BSTNK'.
s_fieldcatalog-tabname = 'ITAB1'.
s_fieldcatalog-rollname = 'BSTNK'.
APPEND s_fieldcatalog TO t_fieldcatalog1.
CLEAR s_fieldcatalog.
s_fieldcatalog-col_pos = '3'.
s_fieldcatalog-fieldname = 'ERDAT'.
s_fieldcatalog-tabname = 'ITAB1'.
s_fieldcatalog-rollname = 'ERDAT'.
APPEND s_fieldcatalog TO t_fieldcatalog1.
CLEAR s_fieldcatalog.
s_fieldcatalog-col_pos = '4'.
s_fieldcatalog-fieldname = 'KUNNR'.
s_fieldcatalog-tabname = 'ITAB1'.
s_fieldcatalog-rollname = 'KUNNR'.
APPEND s_fieldcatalog TO t_fieldcatalog1.
CLEAR s_fieldcatalog.
ENDFORM.
*
*---------------------------------------------------------------------*
* FORM GET_FIELDCAT2 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM get_fieldcat2.
DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
s_fieldcatalog-col_pos = '1'.
s_fieldcatalog-fieldname = 'VBELN'.
s_fieldcatalog-tabname = 'ITAB2'.
s_fieldcatalog-rollname = 'VBELN'.
APPEND s_fieldcatalog TO t_fieldcatalog2.
CLEAR s_fieldcatalog.
s_fieldcatalog-col_pos = '2'.
s_fieldcatalog-fieldname = 'MATNR'.
s_fieldcatalog-tabname = 'ITAB2'.
s_fieldcatalog-rollname = 'MATNR'.
APPEND s_fieldcatalog TO t_fieldcatalog2.
CLEAR s_fieldcatalog.
s_fieldcatalog-col_pos = '3'.
s_fieldcatalog-fieldname = 'NETPR'.
s_fieldcatalog-tabname = 'ITAB2'.
s_fieldcatalog-rollname = 'NETPR'.
APPEND s_fieldcatalog TO t_fieldcatalog2.
CLEAR s_fieldcatalog.
s_fieldcatalog-col_pos = '4'.
s_fieldcatalog-fieldname = 'KWMENG'.
s_fieldcatalog-tabname = 'ITAB2'.
s_fieldcatalog-rollname = 'KWMENG'.
APPEND s_fieldcatalog TO t_fieldcatalog2.
CLEAR s_fieldcatalog.
ENDFORM.
Thanks
Naren
‎2007 Oct 18 6:23 AM
Hi
this is the simple way to use , after getting your data into itab1 prepare a fieldcatalog for that itab1
like that bold letter
prepare a filed calaog like below code
PERFORM ALV_DISPLAY.
&----
*& Form PERFORM_ALV
&----
DISPLAY THE RECORDS IN ALV GRID FORMAT.
----
FORM ALV_DISPLAY.
<b> PERFORM FIELD_CATALOG USING 'COUNT' 'Sr. No.'.
PERFORM FIELD_CATALOG USING 'OBJID' 'COURCE ID.'.
PERFORM FIELD_CATALOG USING 'STEXT' 'COURCE NAME'.
PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.
PERFORM FIELD_CATALOG USING 'BEGDA' 'BEGIN DATE '.
PERFORM FIELD_CATALOG USING 'ENDDA' 'END DATE '.
PERFORM FIELD_CATALOG USING 'CANCRT' 'REASON'.
PERFORM FIELD_CATALOG USING 'AEDTM' 'DATE Of CANCEL'.
PERFORM FIELD_CATALOG USING 'UNAME' 'WHO CANCELLED'.</b>
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'IT_OUTPUT'
I_GRID_TITLE = ' Cancelled courses with reason '
IT_FIELDCAT = IN_FCAT
TABLES
T_OUTTAB = IT_OUTPUT.
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. "PERFORM_ALV
&----
*& Form FIELD_CATALOG
&----
text
----
-->FIELD_NAME text
-->DIS_TEXT text
----
FORM FIELD_CATALOG USING FIELD_NAME DIS_TEXT.
CLEAR WS_FCAT.
WS_FCAT-TABNAME = 'IT_OUTPUT'.
WS_FCAT-FIELDNAME = FIELD_NAME.
WS_FCAT-SELTEXT_M = DIS_TEXT.
APPEND WS_FCAT TO IN_FCAT .
ENDFORM. "FIELD_CATALOG
<b>Reward if usefull</b>
‎2007 Oct 18 6:37 AM
Here is a complete code to display data in ALV grid.
&----
*& Report ZMMSTOCKREP04 *
*& *
&----
*& Report to print Stock & Valuated Stock for Plant in ALV Grid *
*& as well as sub-totals & totals of Total Valuated Stock & Value *
*& of Total valuated Stock. *
&----
report zmmstockrep04 .
----
Declaration for Tables
----
tables: mara, " General Material Data
mbew, " Material Valuation
makt, " Materials Description
mard, " Storage Location Data for Material
t001l. " Storage Locations
----
Type-pools
----
type-pools: slis.
----
Internal Table declarations
----
Declaration for Output Internal table
data:begin of t_stock_report occurs 0,
matnr type mara-matnr, " Material No
mtart type mara-mtart, " Material type
bklas type mbew-bklas, " Valuation Class
lgort type mard-lgort, " Storage Location
werks type mard-werks, " Plant
lbkum type mbew-lbkum, " Total Valuated Stock
lgobe type t001l-lgobe, " Storage Location-Description
maktx type makt-maktx, " Material Description
salk3 type mbew-salk3, " Value of Total Valuated Stock
vprsv type mbew-vprsv, " Price Control Indicator
stprs type mbew-stprs, " Standard Price
verpr type mbew-verpr, " Moving Average Price
price type mbew-verpr, " Price
end of t_stock_report.
data:t_report like standard table of t_stock_report with header line.
----
ALV Data Declarations
----
Internal table to hold Field-Catalog Data
data: t_fcat_grid1 type slis_t_fieldcat_alv with header line,
t_fcat_grid2 type slis_t_fieldcat_alv with header line.
data: s_fcat type slis_fieldcat_alv, " Structure for Field Catalog
s_events type slis_alv_event, " Structure for Events & Associated Forms
s_sort type slis_sortinfo_alv, " Structure for Sort Criteria
s_header type slis_listheader, " Structure for Header Data
s_layout type slis_layout_alv. " Layout Structure
Internal table to hold Sort/Subtotals criteria data
data: t_sort_grid1 type slis_t_sortinfo_alv,
t_sort_grid2 type slis_t_sortinfo_alv.
Internal table to hold Events & Associated Forms.
data: t_events type slis_t_event.
data: v_repid like sy-repid. " Variable for program name
Internal table to hold Header Data.
data: t_header type slis_t_listheader.
----
Selection Screen
----
selection-screen begin of block rad1 with frame title text-005.
select-options: o_matnr for mara-matnr, " Material No
o_mtart for mara-mtart, " Material Type
o_bklas for mbew-bklas, " Valuation Class
o_lgort for mard-lgort. " Storage Location
parameters:p_werks type mard-werks. " Plant
selection-screen end of block rad1.
----
Initialization
----
initialization.
v_repid = sy-repid.
start-of-selection.
perform read_data.
perform fieldcat_build_grid1.
perform layout_build.
perform sort_grid1.
perform events_init.
perform header_build.
perform report_display.
&----
*& Form: read_data *
*& *
*& Description:Read Data from the Tables based on the *
*& Selection-Criteria into the output internal Table *
&----
form read_data .
select mardlgort t001llgobe mardmatnr maktmaktx mbewlbkum mbewsalk3 mbewvprsv mbewverpr mbew~stprs
into corresponding fields of table t_stock_report
from mard
inner join t001l on mardlgort = t001llgort
inner join makt on maktmatnr = mardmatnr
inner join mbew on mbewmatnr = mardmatnr
inner join mara on maramatnr = maktmatnr
where mardmatnr in o_matnr and maramtart in o_mtart and mbew~bklas in o_bklas
and mardlgort in o_lgort and mardwerks = p_werks and mbew~lbkum gt 0.
loop at t_stock_report .
if t_stock_report-vprsv = 'S'.
t_stock_report-price = t_stock_report-stprs.
elseif t_stock_report-vprsv = 'V'.
t_stock_report-price = t_stock_report-verpr.
endif.
append t_stock_report to t_report.
endloop.
sort t_report by lgort matnr lgobe.
delete adjacent duplicates from t_report comparing lgort lgobe matnr maktx .
endform. " read_data
&----
*& Form: fieldcat_build_grid1
&----
*& Description:Build Field catalog for the 1st Grid *
*& *
&----
form fieldcat_build_grid1 .
clear s_fcat.
s_fcat-fieldname = 'LGORT'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-outputlen = '13'.
s_fcat-seltext_l = 'STORAGE LOC'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'LGOBE'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-outputlen = '15'.
s_fcat-seltext_l = 'STOR LOC DESC'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'MATNR'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-outputlen = '19'.
s_fcat-seltext_l = 'MAT NO'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'MAKTX'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-seltext_l = 'MAT DESC'.
s_fcat-outputlen = '25'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'LBKUM'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-do_sum = 'X'.
s_fcat-seltext_l = 'VALUATED STOCK'.
s_fcat-outputlen = '16'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'SALK3'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-seltext_l = 'VAL OF VALUATED STOCK'.
s_fcat-do_sum = 'X'.
s_fcat-outputlen = '23'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'PRICE'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-outputlen = '6'.
s_fcat-seltext_l = 'PRICE'.
append s_fcat to t_fcat_grid1.
clear s_fcat.
s_fcat-fieldname = 'VPRSV'.
s_fcat-tabname = 'T_REPORT'.
s_fcat-outputlen = '12'.
s_fcat-seltext_l = 'PR INDICATOR'.
append s_fcat to t_fcat_grid1.
endform. " fieldcat_build_grid1
&----
*& Form layout_build
&----
*& Description: Populate layout Structure for the Grid *
*& *
&----
form layout_build .
s_layout-no_input = 'X'.
s_layout-zebra = 'X'.
endform. " layout_build
&----
*& Form sort_grid1
&----
*& Description: Populate Sort criteria for the 1st Grid *
*& *
&----
form sort_grid1 .
clear s_sort.
s_sort-fieldname = 'LGORT'.
s_sort-spos = 1.
s_sort-up = 'X'.
s_sort-subtot = 'X'.
append s_sort to t_sort_grid1.
endform. " sort_grid1
&----
*& Form events_init
&----
*& Description: Form to capture the enevts and associated forms
&----
form events_init.
clear s_events.
s_events-name = 'TOP_OF_PAGE'.
s_events-form = 'FOR_TOP_OF_PAGE'.
append s_events to t_events.
endform. " events_init
&----
*& Form header_build
&----
*& Description : Form to Build Header Data
----
form header_build .
clear s_header.
s_header-typ = 'H'.
s_header-info = 'Report showing Stock & Valuated Stock'.
append s_header to t_header.
clear s_header.
s_header-typ = 'S'.
s_header-key = 'Grand Total'.
s_header-info = '-- Click on this button to see grand totals alone'.
append s_header to t_header.
clear s_header.
s_header-typ = 'A'.
s_header-info = 'Click the "BACK" icon to display output for diff. criteria'.
append s_header to t_header.
endform. " header_build
&----
*& Form report_display
&----
Description: Display Report output in ALV grid *
----
form report_display .
if t_report[] is initial.
message i000(zmm) with 'Please Choose Another Condition'.
exit.
endif.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = v_repid
i_callback_pf_status_set = 'PF_STATUS_GRID1'
i_callback_user_command = ' '
i_callback_top_of_page =
i_callback_html_top_of_page =
I_CALLBACK_HTML_END_OF_LIST = ' '
i_structure_name =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = s_layout
it_fieldcat = t_fcat_grid1[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = t_sort_grid1
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = t_events
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = t_report
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. " report_display
&----
*& Form pf_status_grid1
&----
Description: Set PF_STATUS for the 1st grid
----
form pf_status_grid1 using rt_extab type slis_t_extab.
set pf-status 'ZPF3'.
endform. "pf_status_grid1
&----
*& Form FOR_TOP_OF_PAGE
&----
Description: Form to Write Header Data on the Grid
----
form for_top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header
I_LOGO =
I_END_OF_LIST_GRID =
.
endform. "for_top_of_page
Reward if useful.
‎2007 Oct 18 6:40 AM
Hi Abhay,
Use the below code.
*----
AlV related data declarations
*----
Type Pools
TYPE-POOLS: slis.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv ,
gs_print TYPE slis_print_alv,
gt_sort TYPE slis_t_sortinfo_alv ,
gt_filter TYPE slis_t_filter_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_alv_graphics TYPE dtc_t_tc,
gt_excluding TYPE slis_t_extab ,
gt_events TYPE slis_t_event .
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',
p_f2code LIKE sy-ucomm VALUE '&ETA',
p_lignam TYPE slis_fieldname VALUE 'LIGHTS',
g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant,
g_repid LIKE sy-repid.
data: begin of itab1 occurs 0,
hno(20) type c,
total type i,
status(10) type c,
end of itab1.
start-of-selection.
itab1-hno = '17000001'.
itab1-total = 291.
itab1-status = 'Exit'.
append itab1.
clear itab1.
itab1-hno = '17000002'.
itab1-total = 291.
itab1-status = 'Exit'.
append itab1.
clear itab1.
itab1-hno = '17000003'.
itab1-total = 291.
itab1-status = 'deleted'.
append itab1.
clear itab1.
itab1-hno = '17000004'.
itab1-total = 291.
itab1-status = 'deleted'.
append itab1.
clear itab1.
itab1-hno = '17000005'.
itab1-total = 291.
itab1-status = 'exie'.
append itab1.
clear itab1.
itab1-hno = '17000006'.
itab1-total = 291.
itab1-status = 'deleted'.
append itab1.
clear itab1.
itab1-hno = '17000007'.
itab1-total = 291.
itab1-status = 'deleted'.
append itab1.
clear itab1.
if not itab1[] is initial.
sort itab1 by hno.
PERFORM display_data.
endif.
end-of-selection.
&----
*& Form display_data
&----
text
----
FORM display_data .
----
g_repid = sy-repid.
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build CHANGING gt_events.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM display_report.
----
ENDFORM. " display_data
&----
*& Form e01_fieldcat_init
&----
text
----
-->E01_LT_FIELtext
----
FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
----
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'HNO'.
ls_fieldcat-tabname = 'ITAB1'.
ls_fieldcat-outputlen = '20'.
ls_fieldcat-key = 'X'. "SUBTOTAL KEY
ls_fieldcat-col_pos = '1'.
ls_fieldcat-seltext_l = 'Acc No'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'TOTAL'.
ls_fieldcat-tabname = 'ITAB1'.
ls_fieldcat-outputlen = '20'.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-seltext_l = 'Total Amount'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STATUS'.
ls_fieldcat-tabname = 'ITAB1'.
ls_fieldcat-outputlen = '15'.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-seltext_l = 'Status'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
DATA: gs_sort TYPE slis_sortinfo_alv.
CLEAR gs_sort.
gs_sort-fieldname = 'HNO'.
gs_sort-spos = 1.
gs_sort-up = 'X'.
GS_SORT-SUBTOT = 'X'. "***CRUCIAL STATEMENT****
APPEND gs_sort TO gt_sort.
----
ENDFORM. " e01_fieldcat_init
&----
*& Form eventtab_build
&----
text
----
-->LT_EVENTS text
----
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
----
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
----
ENDFORM. " eventtab_build
&----
*& Form e04_comment_build
&----
text
----
-->E04_LT_TOP_textAGE
----
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
----
DATA : ls_line TYPE slis_listheader.
DATA : v_text(50) TYPE c.
CONCATENATE 'This is a test program' ' '
INTO v_text SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text.
APPEND ls_line TO e04_lt_top_of_page.
----
ENDFORM. " e04_comment_build
----
FORM top_of_page.
----
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = gt_list_top_of_page.
----
ENDFORM . "TOP_OF_PAGE
*----
FORM user_command USING g_ucomm TYPE sy-ucomm
g_field TYPE slis_selfield.
----
CASE g_ucomm.
WHEN '&IC1'.
ENDCASE.
----
ENDFORM. "USER_COMMAND
&----
*& Form display_report
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_report .
----
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'ALV_BACKGROUND'
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'ITAB1'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
it_filter = gt_filter[]
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
is_print = gs_print
it_alv_graphics = gt_alv_graphics[]
it_excluding = gt_excluding
TABLES
t_outtab = itab1.
----
ENDFORM. " display_report
&----
‎2007 Oct 18 6:54 AM
Use the following set of code for displaying the data of ITAB in the ALV Grid.
DATA : ITAB TYPE ZITP_GV_ITAB WITH HEADER LINE,
CONTNER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
ALV_GRID TYPE REF TO CL_GUI_ALV_GRID
START-OF-SELECTION.
CALL SCREEN 100.
double click on 100 > It wil take you to next screen on that screen click on the button Layout ( You wil see it on the App bar) and define a <b>Container</b> by using drag n drop function through the key tabcontrol ( it's there on the left of that screen)
THen double click on the conatiner and give it some name , here i have given it the name as 'CONT_AREA'.. then use the below mentioned code.
IN this container the data from ITAB wil lie.
IF FLAG = ' '.
FLAG = 'X'.
SET PF-STATUS 'ZITP_GV_ALV_GRID'.
CREATE OBJECT CONTNER
EXPORTING
CONTAINER_NAME = 'CONT_AREA'.
CREATE OBJECT ALV_GRID
EXPORTING
I_PARENT = CONTNER.
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'ZSTR_GV10383225'
CHANGING
IT_OUTTAB = ACC_TAB[].
ENDIF.
I_STRUCTURE_NAME = 'ZSTR_GV10383225' <--- this structure name wil conatin all the fields which you need to display in your grid.
Message was edited by:
Gaurav Verma
‎2007 Oct 18 6:55 AM
hi abhay,
here is the code for your reference.
for an internal table you have to create field catalog n then pass it to display alv function.
tables : vbak, vbap , lips, likp.
data : begin of i_tab occurs 0,
vbeln type vbak-vbeln,
vkorg type vbak-vkorg,
vbeln1 type lips-vbeln,
matnr type lips-matnr,
werks type lips-werks,
end of i_tab.
*data : i_tab type Standard table of tab .
*data : wa type tab.
data : ilips type standard table of lips.
TYPE-POOLS : slis.
DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,
lf_fieldcat TYPE slis_fieldcat_alv.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln OBLIGATORY. "sales order no:
SELECT-OPTIONS: s_auart FOR vbak-auart no intervals DEFAULT 'TA'. "order type
SELECT-OPTIONS: s_audat FOR vbak-audat. "order date
SELECTION-SCREEN END OF BLOCK a1.
*
*initialization.
*s_auart-sign = 'I'.
*s_auart-option = 'EQ'.
*s_auart-low = 'TA'.
*append s_auart.
start-of-selection.
perform get_data.
perform field_catalog.
perform display.
end-of-selection.
form get_data.
select vbakvbeln vbakvkorg lipsvbeln lipsmatnr lips~werks
into table i_tab
from vbak INNER JOIN lips
on vbakvbeln = lipsvgbel
where vbak~vbeln in s_vbeln AND
vbak~auart in s_auart AND
vbak~audat in s_audat.
*endselect.
*loop at i_tab into wa.
*append wa to i_tab.
*endloop.
endform.
form field_catalog.
CLEAR lf_fieldcat.
lf_fieldcat-fieldname = 'VBELN'.
lf_fieldcat-ref_tabname = 'VBAK'.
lf_fieldcat-ref_fieldname = 'VBELN'.
lf_fieldcat-fix_column = 'X'.
APPEND lf_fieldcat TO lt_fieldcat.
CLEAR lf_fieldcat.
lf_fieldcat-fieldname = 'VKORG'.
lf_fieldcat-ref_tabname = 'VBAK'.
lf_fieldcat-ref_fieldname = 'VKORG'.
lf_fieldcat-fix_column = 'X'.
APPEND lf_fieldcat TO lt_fieldcat.
CLEAR lf_fieldcat.
lf_fieldcat-fieldname = 'VBELN1'.
lf_fieldcat-ref_tabname = 'LIPS'.
lf_fieldcat-ref_fieldname = 'VBELN'.
lf_fieldcat-fix_column = 'X'.
APPEND lf_fieldcat TO lt_fieldcat.
CLEAR lf_fieldcat.
lf_fieldcat-fieldname = 'MATNR'.
lf_fieldcat-ref_tabname = 'LIPS'.
lf_fieldcat-ref_fieldname = 'MATNR'.
lf_fieldcat-fix_column = 'X'.
APPEND lf_fieldcat TO lt_fieldcat.
CLEAR lf_fieldcat.
lf_fieldcat-fieldname = 'WERKS'.
lf_fieldcat-ref_tabname = 'LIPS'.
lf_fieldcat-ref_fieldname = 'WERKS'.
lf_fieldcat-fix_column = 'X'.
APPEND lf_fieldcat TO lt_fieldcat.
endform.
form display.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZSALESDETAILS '
I_CALLBACK_USER_COMMAND = 'USER _COMMAND'
I_GRID_TITLE = 'Sales Order '
IT_FIELDCAT = lt_fieldcat
I_SAVE = ' '
TABLES
T_OUTTAB = i_tab
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.
hope this helps you.
regards,
sohi.