Application Development 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: 

plz send code for alv grid display

Former Member
0 Kudos

hi,

plz send code for alv grid display

i need expalnation of grid control

9 REPLIES 9

former_member186746
Active Contributor
0 Kudos

Se37.

REUSE_ALV_GRID_DISPLAY

CTRLSHIFTF3

ENTER

double click right half

presto, examples a plenty

Former Member
0 Kudos

Program list

http://www.sap-img.com/abap-function.htm

There is a ALV GRID document on SDN, you can get that.

Regards,

Ravi

Note : Please mark all the helpful answers

Former Member
0 Kudos

Hi,

many examples into se38:

just look for BCALV_GRID*

Carles

Former Member
0 Kudos

HI

GOOD

FOR EXAMPLE

http://www.sap-img.com/abap/display-secondary-list-using-alv-grid.htm

You can use ALV Grid to display and edit table data. A main feature of ALV Grid is that it contains a standard set of functions. These functions extend beyond the functions of a table control.

Use->

The cells in ALV Grid can be editable or read-only. You can switch to the cell editing mode by pressing [F2] only if the grid is editable.

THANKS

MRUTYUN

Former Member
0 Kudos

hi narendra,

TABLES: LFA1,LFB1,LFM1.

TYPE-POOLS: SLIS.

TYPE-POOLS: ICON.

***DATA DECLN.

DATA: V_LIFNR LIKE LFA1-LIFNR,

V_BUKRS LIKE LFB1-BUKRS,

V_EKORG LIKE LFM1-EKORG,

V_KTOKK LIKE LFA1-KTOKK.

DATA: ITAB_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

***SORTING

DATA: GS_SORT TYPE SLIS_SORTINFO_ALV,

GT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.

    • FOR LAYOUT

DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA : V_REPID TYPE SY-REPID.

*INTERNAL TABLE DECLN

DATA: BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

BUKRS LIKE LFB1-BUKRS,

EKORG LIKE LFM1-EKORG,

KTOKK LIKE LFA1-KTOKK,

NAME1 LIKE LFA1-NAME1,

STRAS LIKE LFA1-STRAS,

ORT01 LIKE LFA1-ORT01,

REGIO LIKE LFA1-REGIO,

PFORT LIKE LFA1-PFORT,

PSTLZ LIKE LFA1-PSTLZ,

PSTL2 LIKE LFA1-PSTL2,

TELF1 LIKE LFA1-TELF1,

COLOR(3) TYPE C,

*CELLCOLOR TYPE LVC_T_SCOL,

END OF ITAB.

*SELECTION-SCREEN.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.

SELECT-OPTIONS: S_LIFNR FOR LFA1-LIFNR.

SELECT-OPTIONS: S_BUKRS FOR LFB1-BUKRS.

SELECT-OPTIONS: S_EKORG FOR LFM1-EKORG.

SELECT-OPTIONS: S_KTOKK FOR LFA1-KTOKK.

SELECTION-SCREEN: END OF BLOCK B1.

PARAMETERS: R_LIST RADIOBUTTON GROUP G1,

R_GRID RADIOBUTTON GROUP G1.

**AT SELECTION-SCREEN.

AT SELECTION-SCREEN.

IF NOT S_LIFNR IS INITIAL.

SELECT SINGLE LIFNR

INTO V_LIFNR

FROM LFA1

WHERE LIFNR IN S_LIFNR.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ1).

ENDIF.

ELSE.

MESSAGE E005(ZZ1).

ENDIF.

IF NOT S_BUKRS IS INITIAL.

SELECT SINGLE BUKRS

FROM T001

INTO V_BUKRS

WHERE BUKRS IN S_BUKRS.

IF SY-SUBRC <> 0.

MESSAGE E002(ZZ1).

ENDIF.

ELSE.

MESSAGE E006(ZZ1).

ENDIF.

IF NOT S_EKORG IS INITIAL.

SELECT SINGLE EKORG

FROM T024E

INTO V_EKORG

WHERE EKORG IN S_EKORG.

IF SY-SUBRC <> 0.

MESSAGE E003(ZZ1).

ENDIF.

ELSE.

MESSAGE E007(ZZ1).

ENDIF.

IF NOT S_KTOKK IS INITIAL.

SELECT SINGLE KTOKK

FROM T077K

INTO V_KTOKK

WHERE KTOKK IN S_KTOKK.

IF SY-SUBRC <> 0.

MESSAGE E008(ZZ1).

ENDIF.

ELSE.

MESSAGE E008(ZZ1).

ENDIF.

***start of selection.

START-OF-SELECTION.

V_REPID = SY-REPID.

PERFORM GET_DATA.

****END OF SELECTION.

END-OF-SELECTION.

PERFORM GET_FIELD_CATALOG.

*PERFORM BUILD_FIELDCAT.

IF R_LIST = 'X'.

PERFORM LIST_DISPLAY.

ELSE.

PERFORM GRID_DISPLAY.

ENDIF.

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

SELECT LFA1~LIFNR

LFB1~BUKRS

LFM1~EKORG

LFA1~KTOKK

LFA1~NAME1

LFA1~STRAS

LFA1~ORT01

LFA1~REGIO

LFA1~PFORT

LFA1~PSTLZ

LFA1~PSTL2

LFA1~TELF1

FROM LFA1 INNER JOIN LFB1 ON LFA1LIFNR = LFB1LIFNR

INNER JOIN LFM1 ON LFA1LIFNR = LFM1LIFNR

INTO CORRESPONDING FIELDS OF TABLE ITAB

WHERE LFA1~LIFNR IN S_LIFNR.

ENDFORM. " GET_DATA

&----


*& Form GET_FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_FIELD_CATALOG .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = V_REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = V_REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = ITAB_FIELDCAT[]

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3.

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. " GET_FIELD_CATALOG

&----


*& Form LIST_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LIST_DISPLAY .

WA_LAYOUT-INFO_FIELDNAME = 'COLOR'.

WA_LAYOUT-ZEBRA = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = ITAB_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = 'U'

  • IS_VARIANT =

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

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = 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. " LIST_DISPLAY

&----


*& Form BUILD_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELDCAT .

ITAB_FIELDCAT-COL_POS = 0.

ITAB_FIELDCAT-FIELDNAME = 'LIFNR'.

ITAB_FIELDCAT-KEY = 'X'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-OUTPUTLEN = '10'.

ITAB_FIELDCAT-SELTEXT_L = 'VENDOR'(009).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 1.

ITAB_FIELDCAT-FIELDNAME = 'BUKRS'.

ITAB_FIELDCAT-KEY = 'X'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-OUTPUTLEN = '4'.

ITAB_FIELDCAT-SELTEXT_L = 'COMPANY CODE'(010).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 2.

ITAB_FIELDCAT-FIELDNAME = 'EKORG'.

ITAB_FIELDCAT-KEY = 'X'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-OUTPUTLEN = '4'.

ITAB_FIELDCAT-SELTEXT_L = 'PURCHASING ORG'(011).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 3.

ITAB_FIELDCAT-FIELDNAME = 'KTOKK'.

ITAB_FIELDCAT-OUTPUTLEN = '4'.

ITAB_FIELDCAT-SELTEXT_L = 'ACCOUNT GRP'(012).

ITAB_FIELDCAT-EMPHASIZE = 'X'.

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 4.

ITAB_FIELDCAT-FIELDNAME = 'NAME1'.

ITAB_FIELDCAT-OUTPUTLEN = '12'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-SELTEXT_L = 'VENDOR NAME'(013).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 5.

ITAB_FIELDCAT-FIELDNAME = 'STRAS'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-OUTPUTLEN = '12'.

ITAB_FIELDCAT-SELTEXT_L = 'STREET'(014).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 6.

ITAB_FIELDCAT-FIELDNAME = 'ORT01'.

ITAB_FIELDCAT-OUTPUTLEN = '12'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-SELTEXT_L = 'CITY'(015).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 7.

ITAB_FIELDCAT-FIELDNAME = 'REGIO'.

ITAB_FIELDCAT-OUTPUTLEN = '2'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-SELTEXT_L = 'REGION'(016).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 8.

ITAB_FIELDCAT-FIELDNAME = 'PFORT'.

ITAB_FIELDCAT-OUTPUTLEN = '10'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-SELTEXT_L = 'PO BOX'(017).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 9.

ITAB_FIELDCAT-FIELDNAME = 'PFTLZ'.

ITAB_FIELDCAT-EMPHASIZE = 'X'.

ITAB_FIELDCAT-OUTPUTLEN = '10'.

ITAB_FIELDCAT-SELTEXT_L = 'POST CODE'(018).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 10.

ITAB_FIELDCAT-FIELDNAME = 'PSTL2'.

ITAB_FIELDCAT-OUTPUTLEN = '10'.

ITAB_FIELDCAT-SELTEXT_L = 'PO ZIP'(019).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

ITAB_FIELDCAT-COL_POS = 11.

ITAB_FIELDCAT-FIELDNAME = 'TELF1'.

ITAB_FIELDCAT-OUTPUTLEN = '16'.

ITAB_FIELDCAT-SELTEXT_L = 'TELEPHONE'(020).

APPEND ITAB_FIELDCAT.

CLEAR ITAB_FIELDCAT.

CLEAR GS_SORT.

GS_SORT-FIELDNAME = 'LIFNR'.

GS_SORT-SPOS = 1.

GS_SORT-UP = 'X'.

GS_SORT-SUBTOT = 'X'.

APPEND GS_SORT TO GT_SORT.

*L_POS = L_POS + 1.

*DATA: LS_CELLCOLOR TYPE LVC_S_SCOL.

*DATA: L_INDEX TYPE SY-TABIX.

*

*LOOP AT ITAB.

  • L_INDEX = SY-TABIX.

  • if l_index = 1 or l_index = 10.

  • LS_CELLCOLOR-FNAME = 'VBELN'.

  • LS_CELLCOLOR-COLOR-COL = '6'.

  • LS_CELLCOLOR-COLOR-INT = '1'.

  • APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.

  • MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.

  • endif.

  • if l_index = 5 or l_index = 20.

  • LS_CELLCOLOR-FNAME = 'VBELN'.

  • LS_CELLCOLOR-COLOR-COL = '4'.

  • LS_CELLCOLOR-COLOR-INT = '1'.

  • APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.

  • MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.

  • endif.

*ENDLOOP.

ENDFORM. " BUILD_FIELDCAT

&----


*& Form GRID_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GRID_DISPLAY .

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 = ' '

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

IT_FIELDCAT = ITAB_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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 = 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. " GRID_DISPLAY

check this link..

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid.htm

http://www.sap-img.com/abap/sample-programs-on-alv-grid.htm

hope this helps,

do reward if it helps,

priya.

Message was edited by: Priya

Former Member
0 Kudos

Former Member
0 Kudos

If you just want to fetch data from a table and display it then i have written a small sample program below.

DATA:

dock TYPE REF TO cl_gui_docking_container,

alv TYPE REF TO cl_gui_alv_grid,

it_spfli LIKE TABLE OF spfli.

<u><b>Creating an object For container in which the alv grid control has to be kept.Here I'm using docking container.

A check is written as only once that container should be created:</b></u>

IF dock IS INITIAL.

CREATE OBJECT dock

EXPORTING

extension = 670.

ENDIF.

<u><b>Creating an object fro alv grid:</b></u>

CREATE OBJECT alv

EXPORTING

i_parent = dock.

<u><b>Selecting data from table spfli:</b></u>

SELECT * FROM spfli INTO TABLE it_spfli.

<u><b>"ToDisplay:</b></u>

CALL METHOD alv->set_table_for_first_display

EXPORTING

i_structure_name = 'SPFLI'

CHANGING

it_outtab = it_spfli.

Former Member
0 Kudos

Hi,

TABLES: ekko.

type-pools: slis. "ALV Declarations

*Data Declaration

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

statu TYPE ekpo-statu,

aedat TYPE ekpo-aedat,

matnr TYPE ekpo-matnr,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

peinh TYPE ekpo-peinh,

END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.

*ALV data declarations

data: fieldcatalog type slis_t_fieldcat_alv with header line,

gd_tab_group type slis_t_sp_group_alv,

gd_layout type slis_layout_alv,

gd_repid like sy-repid,

gt_events type slis_t_event,

gd_prntparams type slis_print_alv.

************************************************************************

*Start-of-selection.

START-OF-SELECTION.

perform data_retrieval.

perform build_fieldcatalog.

perform build_layout.

perform build_events.

perform build_print_params.

perform display_alv_report.

&----


*& Form BUILD_FIELDCATALOG

&----


  • Build Fieldcatalog for ALV Report

----


form build_fieldcatalog.

  • There are a number of ways to create a fieldcat.

  • For the purpose of this example i will build the fieldcatalog manualy

  • by populating the internal table fields individually and then

  • appending the rows. This method can be the most time consuming but can

  • also allow you more control of the final product.

  • Beware though, you need to ensure that all fields required are

  • populated. When using some of functionality available via ALV, such as

  • total. You may need to provide more information than if you were

  • simply displaying the result

  • I.e. Field type may be required in-order for

  • the 'TOTAL' function to work.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'Purchase Order'.

fieldcatalog-col_pos = 0.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

  • fieldcatalog-do_sum = 'X'.

  • fieldcatalog-no_zero = 'X'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.

fieldcatalog-seltext_m = 'PO Item'.

fieldcatalog-col_pos = 1.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'STATU'.

fieldcatalog-seltext_m = 'Status'.

fieldcatalog-col_pos = 2.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.

fieldcatalog-seltext_m = 'Item change date'.

fieldcatalog-col_pos = 3.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'Material Number'.

fieldcatalog-col_pos = 4.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'PO quantity'.

fieldcatalog-col_pos = 5.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'Order Unit'.

fieldcatalog-col_pos = 6.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'NETPR'.

fieldcatalog-seltext_m = 'Net Price'.

fieldcatalog-col_pos = 7.

fieldcatalog-outputlen = 15.

fieldcatalog-do_sum = 'X'.

fieldcatalog-datatype = 'CURR'.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

fieldcatalog-fieldname = 'PEINH'.

fieldcatalog-seltext_m = 'Price Unit'.

fieldcatalog-col_pos = 8.

append fieldcatalog to fieldcatalog.

clear fieldcatalog.

endform. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


  • Build layout for ALV grid report

----


form build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(201).

  • gd_layout-totals_only = 'X'.

  • gd_layout-f2code = 'DISP'. "Sets fcode for when double

  • "click(press f2)

  • gd_layout-zebra = 'X'.

  • gd_layout-group_change_edit = 'X'.

  • gd_layout-header_text = 'helllllo'.

endform. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


form display_alv_report.

gd_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM

i_callback_user_command = 'USER_COMMAND'

  • i_grid_title = outtext

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

  • it_special_groups = gd_tabgroup

it_events = gt_events

is_print = gd_prntparams

i_save = 'X'

  • is_variant = z_template

tables

t_outtab = it_ekko

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_ALV_REPORT

&----


*& Form DATA_RETRIEVAL

&----


  • Retrieve data form EKPO table and populate itab it_ekko

----


form data_retrieval.

select ebeln ebelp statu aedat matnr menge meins netpr peinh

up to 10 rows

from ekpo

into table it_ekko.

endform. " DATA_RETRIEVAL

----


  • Form TOP-OF-PAGE *

----


  • ALV Report Header *

----


Form top-of-page.

*ALV Header declarations

data: t_header type slis_t_listheader,

wa_header type slis_listheader,

t_line like wa_header-info,

ld_lines type i,

ld_linesc(10) type c.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'EKKO Table Report'.

append wa_header to t_header.

clear wa_header.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'Date: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info. "todays date

append wa_header to t_header.

clear: wa_header.

  • Total No. of Records Selected

describe table it_ekko lines ld_lines.

ld_linesc = ld_lines.

concatenate 'Total No. of Records Selected: ' ld_linesc

into t_line separated by space.

wa_header-typ = 'A'.

wa_header-info = t_line.

append wa_header to t_header.

clear: wa_header, t_line.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = t_header.

  • i_logo = 'Z_LOGO'.

endform.

----


  • FORM USER_COMMAND *

----


  • --> R_UCOMM *

  • --> RS_SELFIELD *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

  • Check function code

CASE r_ucomm.

WHEN '&IC1'.

  • Check field clicked on within ALVgrid report

IF rs_selfield-fieldname = 'EBELN'.

  • Read data table, using index of row user clicked on

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

  • Set parameter ID for transaction screen field

SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.

  • Sxecute transaction ME23N, and skip initial data entry screen

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDFORM.

&----


*& Form BUILD_EVENTS

&----


  • Build events table

----


form build_events.

data: ls_event type slis_alv_event.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = gt_events[].

read table gt_events with key name = slis_ev_end_of_page

into ls_event.

if sy-subrc = 0.

move 'END_OF_PAGE' to ls_event-form.

append ls_event to gt_events.

endif.

read table gt_events with key name = slis_ev_end_of_list

into ls_event.

if sy-subrc = 0.

move 'END_OF_LIST' to ls_event-form.

append ls_event to gt_events.

endif.

endform. " BUILD_EVENTS

&----


*& Form BUILD_PRINT_PARAMS

&----


  • Setup print parameters

----


form build_print_params.

gd_prntparams-reserve_lines = '3'. "Lines reserved for footer

gd_prntparams-no_coverpage = 'X'.

endform. " BUILD_PRINT_PARAMS

&----


*& Form END_OF_PAGE

&----


form END_OF_PAGE.

data: listwidth type i,

ld_pagepos(10) type c,

ld_page(10) type c.

write: sy-uline(50).

skip.

write:/40 'Page:', sy-pagno .

endform.

&----


*& Form END_OF_LIST

&----


form END_OF_LIST.

data: listwidth type i,

ld_pagepos(10) type c,

ld_page(10) type c.

skip.

write:/40 'Page:', sy-pagno .

endform.

Regards,

Shalini

Former Member
0 Kudos

See in se38

BCALV_FULLSCREEN_DEMO

Regards