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

Need help!

Former Member
0 Likes
1,091

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,055

Hi,

search for BCALVGRID you will get lot of demo programs.

Regards,

Raghavendra

9 REPLIES 9
Read only

Former Member
0 Likes
1,055

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.

Read only

Former Member
0 Likes
1,055

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>

Read only

Former Member
0 Likes
1,056

Hi,

search for BCALVGRID you will get lot of demo programs.

Regards,

Raghavendra

Read only

Former Member
0 Likes
1,055

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

Read only

Former Member
0 Likes
1,055

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>

Read only

Former Member
0 Likes
1,055

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.

Read only

Former Member
0 Likes
1,055

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

&----


Read only

Former Member
0 Likes
1,055

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

Read only

Former Member
0 Likes
1,055

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.