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: 

ALV REPORTING

Former Member
0 Kudos

plz guide me how to develop ALV reports step by step...

i know only normal reporting.

plz help me

mahesh

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi mahesh,

please c the sample code for ALV...

type-pools : slis.

tables : vbap, vbak, vbep.

********DATA DECLARATIONS

data : diff type i.

data : date1 like sy-datum,

date2 like sy-datum.

*******

types : begin of t_vbak,

vbeln type vbak-vbeln,

kunnr type vbak-kunnr,

end of t_vbak.

data : it_vbak type standard table of t_vbak with header line.

types : begin of t_vbap,

vbeln type vbap-vbeln,

posnr type vbap-posnr,

matnr type vbap-matnr,

netpr type vbap-netpr,

arktx type vbap-arktx,

end of t_vbap.

data : it_vbap type standard table of t_vbap with header line.

types : begin of t_vbep,

vbeln type vbep-vbeln,

posnr type vbep-posnr,

edatu type vbep-edatu,

bmeng type vbep-bmeng,

end of t_vbep.

data : it_vbep type standard table of t_vbep with header line.

types : begin of t_final,

num type i,

kunnr type vbak-kunnr,

vbeln type vbep-vbeln,

posnr type vbap-posnr,

matnr type vbap-matnr,

arktx type vbap-arktx,

netpr type vbap-netpr,

bmeng type vbep-bmeng,

end of t_final.

data : it_final type standard table of t_final with header line.

******

data : it_fieldcat type slis_t_fieldcat_alv with header line .

data : it_layout type slis_t_layout with header line .

data : r_repid like sy-repid.

*****SELECTION SCREEN

selection-screen : begin of block aa with frame title text-001.

parameter : p_date type vbep-edatu default sy-datum obligatory.

parameter : p_day(2) type c default '30' obligatory.

selection-screen : end of block aa.

*****

at selection-screen.

date1 = p_date+0(2).

  • date2 = s_date-high.

diff = date1 + p_day.

*CONDENSE DIFF.

  • IF diff >= 30.

  • MESSAGE 'DATE RANGE SHOULD NOT BE GREATER THAN 30 DAYS' TYPE 'E'.

  • ENDIF.

start-of-selection.

perform data_selection.

perform fieldcat.

perform display.

&----


*& Form DATA_SELECTION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form data_selection .

select vbeln posnr edatu bmeng from vbep into table it_vbep

where edatu = diff and

bmeng ne 0.

describe table it_vbep.

if sy-tfill > 0.

select vbeln kunnr from vbak into table it_vbak for all entries in it_vbep where

vbeln = it_vbep-vbeln.

select vbeln posnr matnr netpr arktx from vbap into table it_vbap for all entries in it_vbep

where vbeln = it_vbep-vbeln and

posnr = it_vbep-posnr.

endif.

sort it_vbak by vbeln.

sort it_vbap by vbeln posnr.

loop at it_vbep.

clear it_final-num.

*IT_FINAL-NUM = 0.

it_final-num = sy-tabix .

it_final-vbeln = it_vbep-vbeln.

it_final-bmeng = it_vbep-bmeng.

read table it_vbak with key vbeln = it_vbep-vbeln binary search.

if sy-subrc = 0.

it_final-kunnr = it_vbak-kunnr.

endif.

read table it_vbap with key vbeln = it_vbep-vbeln

posnr = it_vbep-posnr binary search.

if sy-subrc = 0.

it_final-matnr = it_vbap-matnr.

it_final-arktx = it_vbap-arktx.

it_final-netpr = it_vbap-netpr.

endif.

append it_final.

clear it_final.

endloop.

endform. " DATA_SELECTION

&----


*& Form FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fieldcat .

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'NUM'.

it_fieldcat-seltext_m = 'SERIAL NUMBER'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'KUNNR'.

it_fieldcat-seltext_m = 'ACCOUNT NUMBER'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'VBELN'.

it_fieldcat-seltext_m = 'ORDER NUMBER'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'MATNR'.

it_fieldcat-seltext_m = 'ITEM'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'ARKTX'.

it_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'NETPR'.

it_fieldcat-seltext_m = 'DESCRIPTION'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'BMENG'.

it_fieldcat-seltext_m = 'QUANTITY'.

it_fieldcat-do_sum = 'X'.

append it_fieldcat.

endform. " FIELDCAT

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display .

r_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = r_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_callback_top_of_page = 'X'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

i_grid_title = 'Report to display Autoship shipments due within N no. of days'

  • I_GRID_SETTINGS =

  • IS_LAYOUT = IT_LAYOUT

it_fieldcat = it_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 = it_final

  • 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

hope this will help u out...

Please reward points in case usefull...

Regards,

Prashant

12 REPLIES 12

Former Member
0 Kudos

Hi,.

have this code,

this includes interactive part also

check for user_command subroutine

REPORT ZFII_COSTING_REPORT_DISPLAY NO STANDARD PAGE HEADING

MESSAGE-ID ZFI.

TYPE-POOLS: FTIS.

  • FOR THE ALV DISPLAY.

TYPE-POOLS: SLIS.

DATA:

G_REPID LIKE SY-REPID,

GWA_SORT TYPE SLIS_SORTINFO_ALV,

GIT_SORT TYPE SLIS_T_SORTINFO_ALV,

  • GIT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

  • GIT_EVENTS TYPE SLIS_T_EVENT,

GFL_LAYOUT TYPE SLIS_LAYOUT_ALV,

GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,

GWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

  • GIT_XS_EVENT TYPE SLIS_ALV_EVENT,

G_POS TYPE I VALUE 1.

DATA:

  • G_REPID LIKE SY-REPID,

  • GWA_SORT TYPE SLIS_SORTINFO_ALV,

  • GIT_SORT TYPE SLIS_T_SORTINFO_ALV,

  • GIT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

  • GIT_EVENTS TYPE SLIS_T_EVENT,

GFL_ITEMSLAYOUT TYPE SLIS_LAYOUT_ALV,

GIT_ITEMSFIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,

  • GWA_ITEMSFIELDCAT TYPE SLIS_FIELDCAT_ALV,

  • GIT_XS_EVENT TYPE SLIS_ALV_EVENT,

G_ITEMSPOS TYPE I VALUE 1.

  • DECLARING THE VARIABLES.

DATA:

G_BUKRS TYPE T001-BUKRS.

  • TABLE FOR THE INITIAL FETCHING

TYPES: BEGIN OF T_COST.

INCLUDE STRUCTURE ZFII_COST.

TYPES: CNSTDGLACC TYPE ZFII_COSTING-CNSTDGLACC.

TYPES: END OF T_COST.

TYPES: T_IT_COST TYPE STANDARD TABLE OF T_COST.

DATA: GIT_COST TYPE T_IT_COST.

DATA: GWA_COST TYPE T_COST.

TYPES: BEGIN OF T_CONSOL.

INCLUDE STRUCTURE ZFII_COSTING.

TYPES: END OF T_CONSOL.

TYPES: T_IT_CONSOL TYPE STANDARD TABLE OF T_CONSOL.

DATA: GWA_CONSOL TYPE T_CONSOL.

DATA: GIT_CONSOL TYPE T_IT_CONSOL.

*TYPES: BEGIN OF T_SENDDATA.

  • INCLUDE STRUCTURE ZFII_COSTINGDETAILS.

*TYPES: END OF T_SENDDATA.

*TYPES: T_IT_SENDDATA TYPE STANDARD TABLE OF T_SENDDATA.

*DATA: GIT_SENDDATA TYPE T_IT_SENDDATA.

*DATA: GWA_SENDDATA TYPE T_SENDDATA.

TYPES: BEGIN OF T_BSIS,

HKONT TYPE BSIS-HKONT,

SHKZG TYPE BSIS-SHKZG,

DMBTR TYPE BSIS-DMBTR,

KOSTL TYPE BSIS-KOSTL,

END OF T_BSIS.

TYPES: T_IT_BSIS TYPE STANDARD TABLE OF T_BSIS.

DATA: GIT_BSIS TYPE T_IT_BSIS.

DATA: GWA_BSIS TYPE T_BSIS.

DATA: GIT_TOTALBSIS TYPE T_IT_BSIS.

DATA: GWA_TOTALBSIS TYPE T_BSIS.

DATA: G_FTIS_DATUM TYPE FTIS_DATUM.

DATA: G_FTIS_GJAHR TYPE FTIS_GJAHR.

DATA: G_FTIS_MONAT TYPE FTIS_MONAT.

  • ranges

RANGES: R_HKONT FOR BSIS-HKONT.

data: g_KOSTL type BSIS-KOSTL.

  • DESIGNING OF THE SELECTION SCREEN STARTS.

DATA: G_YEARMONTH TYPE ZFII_COST-YEARMONTH.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME. " TITLE TEXT-001.

PARAMETERS: P_COCODE TYPE T001-BUKRS DEFAULT 'H901'.

SELECT-OPTIONS: S_MONYR FOR G_YEARMONTH OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

  • DESIGN OF THE SELECTION SCREEN ENDS.

  • INITIALIZATION.

  • clearing and refreshing all the variables

  • and the tables used in the programme.

INITIALIZATION.

PERFORM CLEAR_REFRESH.

  • AT SELECTION-SCREEN.

  • event to validate the values entered

  • and fetching the data

  • if no data found error message will be shown

AT SELECTION-SCREEN.

PERFORM VALIDATE_VALUES.

*start of selection.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM CHANGE_DATA.

PERFORM DISPLAY_ALV.

&----


*& Form CLEAR_REFRESH

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CLEAR_REFRESH .

CLEAR: G_REPID.

G_REPID = SY-REPID.

CLEAR:

GWA_COST, G_POS,

G_BUKRS, GWA_TOTALBSIS,

R_HKONT, G_FTIS_DATUM.

REFRESH:

GIT_BSIS, GIT_COST.

ENDFORM. " CLEAR_REFRESH

&----


*& Form VALIDATE_VALUES

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_VALUES .

SELECT SINGLE

BUKRS FROM

T001 INTO G_BUKRS

WHERE BUKRS = P_COCODE.

IF SY-SUBRC NE 0.

MESSAGE E000 WITH TEXT-000.

ENDIF.

ENDFORM. " VALIDATE_VALUES

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

SELECT

MANDT

COMPCODE

YEARMONTH

DEPARTMENT

  • CNSTDGLACC

GLCODEFROM

GLCODETO

AMOUNT

FLAG

TYPE

FROM ZFII_COST

INTO TABLE GIT_COST

WHERE COMPCODE = P_COCODE

and YEARMONTH in S_MONYR.

IF SY-SUBRC NE 0.

MESSAGE I000 WITH TEXT-001.

STOP.

ELSE.

SELECT

MANDT

CNSTDGLACC

GLCODEFROM

GLCODETO

FLAG

FROM ZFII_COSTING

INTO TABLE GIT_CONSOL.

IF SY-SUBRC NE 0.

MESSAGE I000 WITH TEXT-003.

STOP.

ENDIF.

ENDIF.

ENDFORM. " GET_DATA

&----


*& Form Change_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CHANGE_DATA .

IF GIT_CONSOL IS NOT INITIAL.

IF GIT_COST IS NOT INITIAL.

sort GIT_CONSOL.

LOOP AT GIT_COST INTO GWA_COST.

READ TABLE GIT_CONSOL INTO GWA_CONSOL

WITH KEY GLCODEFROM = GWA_COST-GLCODEFROM

GLCODETO = GWA_COST-GLCODETO

BINARY SEARCH.

IF SY-SUBRC EQ 0.

GWA_COST-CNSTDGLACC = GWA_CONSOL-CNSTDGLACC.

MODIFY GIT_COST FROM GWA_COST.

ENDIF.

CLEAR: GWA_CONSOL, GWA_COST.

ENDLOOP.

ENDIF.

ENDIF.

ENDFORM. " Change_data

&----


*& Form DISPLAY_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_ALV .

GFL_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GFL_LAYOUT-ZEBRA = 'X'.

PERFORM FILL_FIELDCAT.

PERFORM SORT_FIELDS.

PERFORM CALL_GRID.

ENDFORM. " DISPLAY_ALV

&----


*& Form FILL_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_FIELDCAT .

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'COMPCODE' " InTab Field Name

'GIT_COST' " InTab Name

'5' " Output Length

'Company code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'YEARMONTH' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'Year & Month' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

  • G_POS = G_POS + 1.

  • PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

  • G_POS " Column Position

  • 'CNSTDGLACC' " InTab Field Name

  • 'GIT_COST' " InTab Name

  • '8' " Output Length

  • 'G/L Account code' " Column Name Text

  • ' ' " Datatype

  • ' ' " Key?

  • ' ' " Row Position

  • ' ' " Hotspot

  • ' ' " Emphasize

  • ' ' " Do_sum field?

  • ' ' " checkbox

  • ' ' " EDIT

  • ' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'CNSTDGLACC' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'Cnsl GL' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'DEPARTMENT' " InTab Field Name

'GIT_COST' " InTab Name

'4' " Output Length

'Department' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'GLCODEFROM' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'From GL' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'GLCODETO' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'To GL' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'FLAG' " InTab Field Name

'GIT_COST' " InTab Name

'2' " Output Length

'Flag' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'TYPE' " InTab Field Name

'GIT_COST' " InTab Name

'2' " Output Length

'Type' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'AMOUNT' " InTab Field Name

'GIT_COST' " InTab Name

'18' " Output Length

'Amount' " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " FILL_FIELDCAT

&----


*& Form init_field_catalog

&----


  • text

----


  • -->P_GIT_FIELDCAT text

  • -->PV_POS text

  • -->PV_FIELDNAME text

  • -->PV_TABNAME text

  • -->PV_OUTPUT text

  • -->PV_SELTEXT text

  • -->PV_DATATYPE text

  • -->PV_KEY text

  • -->PV_ROW text

  • -->PV_HOTSPOT text

  • -->PV_EMPHASIZE text

  • -->PV_SUM text

  • -->PV_CHECKBOX text

  • -->PV_INPUT text

----


FORM INIT_FIELD_CATALOG USING P_GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV

PV_POS LIKE GWA_FIELDCAT-COL_POS

PV_FIELDNAME LIKE GWA_FIELDCAT-FIELDNAME

PV_TABNAME LIKE GWA_FIELDCAT-TABNAME

PV_OUTPUT LIKE GWA_FIELDCAT-OUTPUTLEN

PV_SELTEXT LIKE GWA_FIELDCAT-SELTEXT_M

PV_DATATYPE LIKE GWA_FIELDCAT-DATATYPE

PV_KEY LIKE GWA_FIELDCAT-KEY

PV_ROW LIKE GWA_FIELDCAT-ROW_POS

PV_HOTSPOT LIKE GWA_FIELDCAT-HOTSPOT

PV_EMPHASIZE LIKE GWA_FIELDCAT-EMPHASIZE

PV_SUM LIKE GWA_FIELDCAT-DO_SUM

PV_CHECKBOX LIKE GWA_FIELDCAT-CHECKBOX

PV_EDIT LIKE GWA_FIELDCAT-EDIT

PV_INPUT LIKE GWA_FIELDCAT-INPUT.

DATA: LT_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

LT_FIELDCAT-OUTPUTLEN = PV_OUTPUT.

LT_FIELDCAT-COL_POS = PV_POS.

LT_FIELDCAT-FIELDNAME = PV_FIELDNAME.

LT_FIELDCAT-TABNAME = PV_TABNAME.

LT_FIELDCAT-SELTEXT_L = PV_SELTEXT.

LT_FIELDCAT-KEY = PV_KEY.

LT_FIELDCAT-ROW_POS = PV_ROW.

LT_FIELDCAT-HOTSPOT = PV_HOTSPOT.

LT_FIELDCAT-EMPHASIZE = PV_EMPHASIZE.

LT_FIELDCAT-DO_SUM = PV_SUM.

LT_FIELDCAT-CHECKBOX = PV_CHECKBOX.

LT_FIELDCAT-INPUT = PV_INPUT.

LT_FIELDCAT-EDIT = PV_EDIT.

LT_FIELDCAT-DATATYPE = PV_DATATYPE.

APPEND LT_FIELDCAT TO P_GIT_FIELDCAT.

CLEAR LT_FIELDCAT.

ENDFORM. " init_field_catalog

&----


*& Form SORT_FIELDS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS .

GWA_SORT-SPOS = 1. " Sort order

GWA_SORT-FIELDNAME = 'COMPCODE'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

GWA_SORT-SPOS = 2. " Sort order

GWA_SORT-FIELDNAME = 'YEARMONTH'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

GWA_SORT-SPOS = 3. " Sort order

GWA_SORT-FIELDNAME = 'CNSTDGLACC'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

GWA_SORT-SPOS = 4. " Sort order

GWA_SORT-FIELDNAME = 'DEPARTMENT'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

ENDFORM. " SORT_FIELDS

&----


*& Form CALL_GRID

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_GRID .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

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

IT_FIELDCAT = GIT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = GIT_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

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = GIT_COST

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

----


*& Form SET_PF_STATUS

&----


  • text

----


  • -->EXTAB text

----


FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB. "#EC CALLED

SET PF-STATUS 'ZFII_PF_STATUS'. " OF PROGRAM 'SAPLKKBL'.

ENDFORM. "set_pf_status

&----


*& Form USER_COMMAND

&----


  • Called from within the ALV processes.

&----


  • PV_UCOMM contains the sy-ucomm from ALV

  • SELFIELD is a structure that contains all the data required to

  • process a user selection. The following is an example

  • of the SELFIELD structure and sample values:

*

*

&----


  • TRIGGERS WHEN THE USER CLICK THE

FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM "#EC NEEDED

SELFIELD TYPE SLIS_SELFIELD. "#EC NEEDED

CASE PV_UCOMM.

WHEN '&IC1'.

  • when the user double clicks on any record this will show the

READ TABLE GIT_COST INTO GWA_COST INDEX SELFIELD-TABINDEX.

  • entire list of g/l accounts for which we calculated the sum.

IF SY-SUBRC EQ 0.

CLEAR: g_KOSTL.

  • g_KOSTL = GWA_COST-DEPARTMENT.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = GWA_COST-DEPARTMENT

IMPORTING

OUTPUT = g_KOSTL.

CLEAR: R_HKONT.

REFRESH: R_HKONT.

R_HKONT-SIGN = 'I'.

R_HKONT-OPTION = 'BT'.

R_HKONT-LOW = GWA_COST-GLCODEFROM.

R_HKONT-HIGH = GWA_COST-GLCODETO.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = R_HKONT-LOW

IMPORTING

OUTPUT = R_HKONT-LOW.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = R_HKONT-HIGH

IMPORTING

OUTPUT = R_HKONT-HIGH.

append r_hkont.

PERFORM DISPLAY_DETAILS.

ENDIF.

when OTHERS.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form display_details

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DETAILS .

PERFORM GET_VALUES_BSIS.

PERFORM FILL_FIELDCAT_ITEMS.

PERFORM DISPALY_ITEMS.

ENDFORM. " display_details

&----


*& Form FILL_FIELDCAT_items

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_FIELDCAT_ITEMS .

CLEAR: GIT_ITEMSFIELDCAT. ", GWA_ITEMSFIELDCAT.

REFRESH: GIT_ITEMSFIELDCAT.

GFL_ITEMSLAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GFL_ITEMSLAYOUT-ZEBRA = 'X'.

CLEAR: G_ITEMSPOS.

G_ITEMSPOS = G_ITEMSPOS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog

G_ITEMSPOS " Column Position

'HKONT' " InTab Field Name

'GIT_TOTALBSIS' " InTab Name

'10' " Output Length

'G/L Account' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_ITEMSPOS = G_ITEMSPOS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog

G_ITEMSPOS " Column Position

'KOSTL' " InTab Field Name

'GIT_TOTALBSIS' " InTab Name

'10' " Output Length

'Cost Center' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_ITEMSPOS = G_ITEMSPOS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog

G_ITEMSPOS " Column Position

'DMBTR' " InTab Field Name

'GIT_TOTALBSIS' " InTab Name

'18' " Output Length

'Amount' " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " FILL_FIELDCAT_items

&----


*& Form get_values_bsis

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_VALUES_BSIS .

clear: " G_FTIS_DATUM,

G_FTIS_GJAHR, G_FTIS_MONAT.

G_FTIS_DATUM+0(6) = gwa_cost-YEARMONTH.

G_FTIS_DATUM+6(2) = '01'.

CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'

EXPORTING

I_BUKRS = 'H901'

I_BUDAT = G_FTIS_DATUM

I_DZTERM = FTIS_DATUM-INITIAL

I_GJAHR = FTIS_GJAHR-INITIAL

IMPORTING

E_GJAHR = G_FTIS_GJAHR

E_MONAT = G_FTIS_MONAT.

IF NOT GIT_COST IS INITIAL.

CLEAR: GWA_BSIS, GWA_TOTALBSIS.

REFRESH: GIT_BSIS, GIT_TOTALBSIS.

SELECT

HKONT

SHKZG

DMBTR

KOSTL

FROM BSIS

INTO TABLE GIT_BSIS

WHERE BUKRS = P_COCODE

AND HKONT in R_HKONT

AND GJAHR = G_FTIS_GJAHR

AND MONAT = G_FTIS_MONAT

AND KOSTL eq g_KOSTL.

IF SY-SUBRC EQ 0.

LOOP AT GIT_BSIS INTO GWA_BSIS.

SHIFT GWA_BSIS-HKONT LEFT DELETING LEADING '0'.

GWA_TOTALBSIS-HKONT = GWA_BSIS-HKONT.

GWA_TOTALBSIS-KOSTL = GWA_BSIS-KOSTL.

IF GWA_BSIS-SHKZG = 'H'.

GWA_TOTALBSIS-DMBTR = GWA_BSIS-DMBTR * -1.

ELSE.

GWA_TOTALBSIS-DMBTR = GWA_BSIS-DMBTR.

ENDIF.

APPEND GWA_TOTALBSIS TO GIT_TOTALBSIS.

CLEAR: GWA_TOTALBSIS, GWA_BSIS.

ENDLOOP.

SORT GIT_TOTALBSIS ASCENDING BY HKONT KOSTL.

ENDIF.

ENDIF.

ENDFORM. " get_values_bsis

&----


*& Form dispaly_items

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPALY_ITEMS .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

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

IT_FIELDCAT = GIT_ITEMSFIELDCAT

  • 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

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = GIT_TOTALBSIS

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

reward points if helpful.

regards,

venkatesh

former_member673464
Active Contributor
0 Kudos

hi,...

Try these links

Simple ALV report

http://www.sapgenie.com/abap/controls/alvgrid.htm

http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox

ALV

1. Please give me general info on ALV.

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

reagrds,

veeresh

Former Member
0 Kudos

hi,

type-pools : slis.

tables : mara.

data : it_mara like table of mara,

wa_mara like line of it_mara,

it_fieldcat type slis_t_fieldcat_alv,

wa_fieldcat like line of it_fieldcat.

select *

from mara

into table it_mara up to 30 rows.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_STRUCTURE_NAME = 'MARA'

CHANGING

ct_fieldcat = it_fieldcat

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

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

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = 'Material Master Display'

  • I_GRID_SETTINGS = I_GRID_SETTINGS

  • IS_LAYOUT = IS_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING = IT_EXCLUDING

  • IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS

  • IT_SORT = IT_SORT

  • IT_FILTER = IT_FILTER

  • IS_SEL_HIDE = IS_SEL_HIDE

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = IS_VARIANT

  • IT_EVENTS = IT_EVENTS

  • IT_EVENT_EXIT = IT_EVENT_EXIT

  • IS_PRINT = IS_PRINT

  • IS_REPREP_ID = IS_REPREP_ID

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS = IT_ALV_GRAPHICS

  • IT_HYPERLINK = IT_HYPERLINK

  • IT_ADD_FIELDCAT = IT_ADD_FIELDCAT

  • IT_EXCEPT_QINFO = IT_EXCEPT_QINFO

  • IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER

  • ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER

TABLES

t_outtab = it_mara

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

<b>

Reward useful points</b>

Siva

Former Member
0 Kudos

Hi mahesh

I'm having a good document on alv grid creation give me ur mail id i'll provide u that material

Reward all helpfull answers

Regards

Pavan

0 Kudos

<email removed by moderator>

Message was edited by: Manish Kumar

0 Kudos

Hi mahesh

I had forwarded the material check ur inbox

reward all helpfull answers

Regards

Pavan

Former Member
0 Kudos

Hi,

Goto SE38 transaction, and in the menu options navigate to..

Environment->Examples->Control Examples

There you will get everything related to ALV and Control framework.

Reward points if helpful.

Regards,

Basu.

Former Member
0 Kudos

Hi mahesh,

please c the sample code for ALV...

type-pools : slis.

tables : vbap, vbak, vbep.

********DATA DECLARATIONS

data : diff type i.

data : date1 like sy-datum,

date2 like sy-datum.

*******

types : begin of t_vbak,

vbeln type vbak-vbeln,

kunnr type vbak-kunnr,

end of t_vbak.

data : it_vbak type standard table of t_vbak with header line.

types : begin of t_vbap,

vbeln type vbap-vbeln,

posnr type vbap-posnr,

matnr type vbap-matnr,

netpr type vbap-netpr,

arktx type vbap-arktx,

end of t_vbap.

data : it_vbap type standard table of t_vbap with header line.

types : begin of t_vbep,

vbeln type vbep-vbeln,

posnr type vbep-posnr,

edatu type vbep-edatu,

bmeng type vbep-bmeng,

end of t_vbep.

data : it_vbep type standard table of t_vbep with header line.

types : begin of t_final,

num type i,

kunnr type vbak-kunnr,

vbeln type vbep-vbeln,

posnr type vbap-posnr,

matnr type vbap-matnr,

arktx type vbap-arktx,

netpr type vbap-netpr,

bmeng type vbep-bmeng,

end of t_final.

data : it_final type standard table of t_final with header line.

******

data : it_fieldcat type slis_t_fieldcat_alv with header line .

data : it_layout type slis_t_layout with header line .

data : r_repid like sy-repid.

*****SELECTION SCREEN

selection-screen : begin of block aa with frame title text-001.

parameter : p_date type vbep-edatu default sy-datum obligatory.

parameter : p_day(2) type c default '30' obligatory.

selection-screen : end of block aa.

*****

at selection-screen.

date1 = p_date+0(2).

  • date2 = s_date-high.

diff = date1 + p_day.

*CONDENSE DIFF.

  • IF diff >= 30.

  • MESSAGE 'DATE RANGE SHOULD NOT BE GREATER THAN 30 DAYS' TYPE 'E'.

  • ENDIF.

start-of-selection.

perform data_selection.

perform fieldcat.

perform display.

&----


*& Form DATA_SELECTION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form data_selection .

select vbeln posnr edatu bmeng from vbep into table it_vbep

where edatu = diff and

bmeng ne 0.

describe table it_vbep.

if sy-tfill > 0.

select vbeln kunnr from vbak into table it_vbak for all entries in it_vbep where

vbeln = it_vbep-vbeln.

select vbeln posnr matnr netpr arktx from vbap into table it_vbap for all entries in it_vbep

where vbeln = it_vbep-vbeln and

posnr = it_vbep-posnr.

endif.

sort it_vbak by vbeln.

sort it_vbap by vbeln posnr.

loop at it_vbep.

clear it_final-num.

*IT_FINAL-NUM = 0.

it_final-num = sy-tabix .

it_final-vbeln = it_vbep-vbeln.

it_final-bmeng = it_vbep-bmeng.

read table it_vbak with key vbeln = it_vbep-vbeln binary search.

if sy-subrc = 0.

it_final-kunnr = it_vbak-kunnr.

endif.

read table it_vbap with key vbeln = it_vbep-vbeln

posnr = it_vbep-posnr binary search.

if sy-subrc = 0.

it_final-matnr = it_vbap-matnr.

it_final-arktx = it_vbap-arktx.

it_final-netpr = it_vbap-netpr.

endif.

append it_final.

clear it_final.

endloop.

endform. " DATA_SELECTION

&----


*& Form FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fieldcat .

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'NUM'.

it_fieldcat-seltext_m = 'SERIAL NUMBER'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'KUNNR'.

it_fieldcat-seltext_m = 'ACCOUNT NUMBER'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'VBELN'.

it_fieldcat-seltext_m = 'ORDER NUMBER'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'MATNR'.

it_fieldcat-seltext_m = 'ITEM'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'ARKTX'.

it_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'NETPR'.

it_fieldcat-seltext_m = 'DESCRIPTION'.

append it_fieldcat.

clear it_fieldcat.

it_fieldcat-tabname = 'IT_FINAL'.

it_fieldcat-fieldname = 'BMENG'.

it_fieldcat-seltext_m = 'QUANTITY'.

it_fieldcat-do_sum = 'X'.

append it_fieldcat.

endform. " FIELDCAT

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display .

r_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = r_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_callback_top_of_page = 'X'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

i_grid_title = 'Report to display Autoship shipments due within N no. of days'

  • I_GRID_SETTINGS =

  • IS_LAYOUT = IT_LAYOUT

it_fieldcat = it_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 = it_final

  • 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

hope this will help u out...

Please reward points in case usefull...

Regards,

Prashant

Former Member
0 Kudos

Hi,

check this links.these links guide u all type of alv reports.

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

example:

REPORT ZBHALV_LIST1.

TABLES:MARA.

SELECT-OPTIONS: MATNR FOR MARA-MATNR.

DATA:BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF ITAB.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR

IN MATNR.

TYPE-POOLS SLIS.

DATA:FCAT TYPE slis_t_fieldcat_alv.

DATA:LAYOUT TYPE slis_layout_alv.

DATA:EVE TYPE slis_t_event WITH HEADER LINE.

DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.

DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.

SORT-UP = 'X'.

SORT-SPOS = 1.

SORT-FIELDNAME = 'ERSDA'.

SORT-tabname = 'MARA'.

APPEND SORT.

SORT-SPOS = 2.

SORT-FIELDNAME = 'MTART'.

SORT-tabname = 'MARA'.

APPEND SORT.

EVE-NAME = 'TOP_OF_PAGE'.

EVE-FORM = 'TOPOFPAGE'.

APPEND EVE.

EVE-NAME = 'TOP_OF_LIST'.

EVE-FORM = 'TOPOFLIST'.

APPEND EVE.

EVE-NAME = 'END_OF_LIST'.

EVE-FORM = 'ENDOFLIST'.

APPEND EVE.

LAYOUT-ZEBRA = 'X'.

LAYOUT-no_hline = 'X'.

LAYOUT-NO_VLINE = 'X'.

LAYOUT-window_titlebar = 'MATERIAL DETAILS'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = FCAT

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

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'UCOMM'

  • I_STRUCTURE_NAME =

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = SORT[]

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = EVE[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 5

  • I_SCREEN_START_LINE = 5

  • I_SCREEN_END_COLUMN = 120

  • I_SCREEN_END_LINE = 25

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

FORM TOPOFPAGE.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM TOPOFLIST.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS-LISTTOP'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM ENDOFLIST.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS-LISTEND'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM STATUS USING MYMENU.

SET PF-STATUS 'MENU'.

ENDFORM.

FORM UCOMM USING CODE STEXT.

CASE CODE.

WHEN 'ABC'.

WRITE:/ 'YOU HAVE CLICKED ON ABC'.

WHEN 'XYZ'.

WRITE:/ 'YOU HAVE CLICKED ON XYZ'.

ENDCASE.

ENDFORM.

rgds,

bharat.

Former Member
0 Kudos

Hi,

The steps to be followed for ALV reporting are,

1. Populate the internal table you have to display.

2.Build field catalog if structure of your internal table is not the same as a standard table.

3.Building field catalog helps you to develop a structure for your internal table with

all details like position of the fields, from table name, hotspot etc.

4.Call function Reuse_Alv_Grid_Display to display the ALV layout.

5. Interactive lists can be done using User_command option.

Refer to the code below.

----


START-OF-SELECTION.

PERFORM f_read_data_kna1.

PERFORM f_display_data_kna1.

----


  • Form f_read_data_kna1

----


FORM f_read_data_kna1.

  • Read customer data with a least one order

SELECT matnr ernam INTO CORRESPONDING FIELDS OF TABLE gt_kna1

FROM kna1 AS k.

ENDFORM. " F_READ_DATA_KNA1

----


  • Form f_display_data_kna1

----


FORM f_display_data_kna1.

DATA:

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv.

  • Build the field catalog

PERFORM endofsel_build_fieldcatalog.

  • Display the list

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND_KNA1'

it_fieldcat = lt_fieldcat

TABLES

t_outtab = gt_kna1.

----


  • FORM USER_COMMAND_KNA1 *

----


FORM user_command_kna1 USING u_ucomm LIKE sy-ucomm

us_selfield TYPE slis_selfield."#EC CALLED

CASE u_ucomm.

WHEN '&IC1'. " Pick

READ TABLE gt_kna1 INDEX us_selfield-tabindex.

CHECK sy-subrc EQ 0.

PERFORM f_read_data_vbak. " Read data from VBAK

PERFORM f_display_data_vbak. " Display orders

ENDCASE.

ENDFORM. " USER_COMMAND_KNA1

FORM endofsel_build_fieldcatalog.

**

    • CLEAR : it_fieldcat.

    • REFRESH: it_fieldcat.

**

    • PERFORM build_cat USING 'MATNR'

    • 'CHAR'

    • 'GT_FINAL'

    • gl_pos

    • text-001

    • 18

    • 'X'

    • 'X'

    • space.

**

    • PERFORM build_cat USING 'ERSDA'

    • 'DATS'

    • 'GT_FINAL'

    • gl_pos

    • text-002

    • 8

    • space

    • space

    • space.

**

    • PERFORM build_cat USING 'ERNAM'

    • 'CHAR'

    • 'GT_FINAL'

    • gl_pos

    • text-003

    • 12

    • space

    • space

    • space.

FORM build_cat USING l_fieldname TYPE slis_fieldcat_alv-fieldname

    • l_datatype TYPE slis_fieldcat_alv-datatype

    • l_tabname TYPE slis_fieldcat_alv-tabname

    • l_pos TYPE i

    • l_seltext_m TYPE

    • slis_fieldcat_alv-reptext_ddic

    • l_outputlen TYPE slis_fieldcat_alv-outputlen

    • l_hotspot TYPE slis_fieldcat_alv-hotspot

    • l_key TYPE slis_fieldcat_alv-key

    • l_do_sum TYPE slis_fieldcat_alv-do_sum.

**

    • DATA : lw_fieldcat TYPE slis_fieldcat_alv.

**

    • CLEAR lw_fieldcat.

**

    • lw_fieldcat-fieldname = l_fieldname.

    • lw_fieldcat-datatype = l_datatype.

    • lw_fieldcat-tabname = l_tabname.

    • lw_fieldcat-col_pos = l_pos.

    • lw_fieldcat-reptext_ddic = l_seltext_m.

    • lw_fieldcat-outputlen = l_outputlen.

    • lw_fieldcat-hotspot = l_hotspot.

    • lw_fieldcat-key = l_key.

    • lw_fieldcat-do_sum = l_do_sum.

**

    • APPEND lw_fieldcat TO it_fieldcat.

    • l_pos = l_pos + 1.

**

**ENDFORM. "build_cat

Reward points if it was useful.

Regards,

Hema.