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

ALV Report

Former Member
0 Likes
1,942

hi,

iam new to ALV reports. could any body send documents on ALV and sample programs.

chandu

hi,

iam new to ALV reports. could any body send documents on ALV and sample programs.

chandu

16 REPLIES 16
Read only

Shivaji16
Active Participant
0 Likes
1,823

Go through the BALV* programs in SE80

Read only

Former Member
0 Likes
1,823

hi check these links :

http://www.geocities.com/mpioud/Abap_programs.html

Give me ur id i will send good document.

Sample program is ::

*&---------------------------------------------------------------------*
*& Report  Z_PO_QUANTITY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_PO_QUANTITY.

TYPE-POOLS : SLIS.

************************************************************************
* T A B L E S
************************************************************************
TABLES : EKKO.  " Purchasing Document Header

************************************************************************
* D A T A - D E C L A R A T I O N
************************************************************************

TYPES: BEGIN OF X_EKKO ,
        EBELN LIKE EKKO-EBELN,
       END OF X_EKKO.

TYPES: BEGIN OF X_EKPO ,
        EBELN LIKE EKPO-EBELN,
        EBELP LIKE EKPO-EBELP,
        MATNR LIKE EKPO-MATNR,
        MENGE LIKE EKPO-MENGE,
       END OF X_EKPO.

TYPES: BEGIN OF X_EKET,
        EBELN LIKE EKPO-EBELN,
        EBELP LIKE EKPO-EBELP,
        CHARG LIKE EKET-CHARG,
       END OF X_EKET.

TYPES: BEGIN OF X_FINAL ,
        EBELN LIKE EKPO-EBELN,
        MATNR LIKE EKPO-MATNR,
        CHARG LIKE EKET-CHARG,
        EBELP LIKE EKPO-EBELP,
        MENGE LIKE EKPO-MENGE,
       END OF X_FINAL.

DATA: IT_EKKO TYPE STANDARD TABLE OF X_EKKO WITH HEADER LINE.
DATA: IT_EKPO TYPE STANDARD TABLE OF X_EKPO WITH HEADER LINE.
DATA: IT_EKET TYPE STANDARD TABLE OF X_EKET WITH HEADER LINE.
DATA: IT_FINAL TYPE STANDARD TABLE OF X_FINAL WITH HEADER LINE.

***ALV Field catalog
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.


***ALV Events
DATA : IT_EVENT TYPE SLIS_ALV_EVENT.
DATA : IT_EVENT1 TYPE SLIS_T_EVENT.
DATA : GT_SORT   TYPE SLIS_T_SORTINFO_ALV,
       GT_SORT1  TYPE SLIS_SORTINFO_ALV,
       IT_LAYOUT TYPE SLIS_LAYOUT_ALV.

***ALV TOP-OF-PAGE
DATA : IT_HEADER1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE .
DATA : IT_HEADER TYPE SLIS_LISTHEADER.

DATA : V_REPID LIKE SY-REPID.

************************************************************************
* S E L E C T I O N - S C R E E N
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 .
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.
SELECTION-SCREEN END OF BLOCK B1.

************************************************************************
* S T A R T - O F - S E L E C T I O N
************************************************************************
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM FIELDCATALOG USING IT_FIELDCAT[].
PERFORM SUB_SORT.
PERFORM SUB_LAYOUT.
************************************************************************
* END - O F - S E L E C T I O N
************************************************************************
END-OF-SELECTION.

 IF NOT IT_FINAL[] IS INITIAL.
    PERFORM DISPDATA.
  ELSE.
    MESSAGE I000(Z1).
 ENDIF.



*&---------------------------------------------------------------------*
*&      Form  GETDATA
*&---------------------------------------------------------------------*
*       PERFORM TO GET DATA FROM EKPO TABLE
*----------------------------------------------------------------------*

FORM GETDATA .

   SELECT EBELN
          INTO TABLE IT_EKKO
          FROM EKKO
          WHERE EBELN IN S_EBELN.


  IF SY-SUBRC = 0.
    SORT IT_EKKO BY EBELN.
  ENDIF.

  IF NOT IT_EKKO[] IS INITIAL.

     SELECT EBELN
            EBELP
            MATNR
            MENGE
            INTO TABLE IT_EKPO
            FROM EKPO
            FOR ALL ENTRIES IN IT_EKKO
            WHERE EBELN = IT_EKKO-EBELN.

   IF SY-SUBRC = 0.
     SELECT EBELN
            EBELP
            CHARG
            INTO TABLE IT_EKET
            FROM EKET
            FOR ALL ENTRIES IN IT_EKPO
            WHERE EBELN = IT_EKPO-EBELN AND
                  EBELP = IT_EKPO-EBELP.
   ENDIF.
  ENDIF.

  LOOP AT IT_EKPO.

      IT_FINAL-EBELN = IT_EKPO-EBELN.
      IT_FINAL-EBELP = IT_EKPO-EBELP.
      IT_FINAL-MATNR = IT_EKPO-MATNR.
      IT_FINAL-MENGE = IT_EKPO-MENGE.

      READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN
                                  EBELP = IT_EKPO-EBELP.

        IF SY-SUBRC = 0.
         IT_FINAL-CHARG = IT_EKET-CHARG.
         CLEAR IT_EKET.
        ENDIF.

      APPEND IT_FINAL.
      CLEAR IT_FINAL.

  ENDLOOP.

ENDFORM.                    " GETDATA
*&---------------------------------------------------------------------*
*&      Form  DISPDATA
*&---------------------------------------------------------------------*
*       PERFORM TO DISPLAY DATA
*----------------------------------------------------------------------*

FORM DISPDATA .


    V_REPID = SY-REPID.

**DISPLAY OUTPUT
   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING

      I_CALLBACK_PROGRAM                = V_REPID
      I_GRID_TITLE                      = ''
*      I_GRID_SETTINGS                   =
      IS_LAYOUT                         = IT_LAYOUT
      IT_FIELDCAT                       = IT_FIELDCAT[]
*      IT_EXCLUDING                      =
*      IT_SPECIAL_GROUPS                 =
      IT_SORT                           = GT_SORT
*      IT_FILTER                         =
*      IS_SEL_HIDE                       =
*      I_DEFAULT                         = 'X'
*      I_SAVE                            = 'U'
*      IS_VARIANT                        =
*      IT_EVENTS                         =
*      IT_EVENT_EXIT                     =

     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.

*   CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
*    EXPORTING
*
*      I_CALLBACK_PROGRAM             = V_REPID
**      I_CALLBACK_PF_STATUS_SET       = ' '
**      I_CALLBACK_USER_COMMAND        = ' '
**      I_STRUCTURE_NAME               =
*      IS_LAYOUT                      = IT_LAYOUT
*      IT_FIELDCAT                    = IT_FIELDCAT[]
**      IT_EXCLUDING                   =
**      IT_SPECIAL_GROUPS              =
*      IT_SORT                        = GT_SORT
**      IT_FILTER                      =
**      IS_SEL_HIDE                    =
**      I_DEFAULT                      = 'X'
**      I_SAVE                         = ' '
**      IS_VARIANT                     =
**      IT_EVENTS                      =
**      IT_EVENT_EXIT                  =
**      IS_PRINT                       =
*     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.                    " DISPDATA
*&---------------------------------------------------------------------*
*&      Form  FIELDCATALOG
*&---------------------------------------------------------------------*
*    PEROFRM TO POPULATE FIELD CATALOG
*----------------------------------------------------------------------*

FORM FIELDCATALOG USING  P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  DATA : T_FIELD_CAT TYPE SLIS_FIELDCAT_ALV.
  DATA : V_CNT TYPE I.


  V_CNT = V_CNT + 1.
  T_FIELD_CAT-COL_POS = V_CNT.
  T_FIELD_CAT-FIELDNAME = 'EBELN'.
  T_FIELD_CAT-OUTPUTLEN = 18.
  T_FIELD_CAT-SELTEXT_L   = 'PO DOC NUMBER'.
  APPEND T_FIELD_CAT TO IT_FIELDCAT.
  CLEAR T_FIELD_CAT.

  V_CNT = V_CNT + 1.
  T_FIELD_CAT-COL_POS = V_CNT.
  T_FIELD_CAT-FIELDNAME = 'MATNR'.
  T_FIELD_CAT-OUTPUTLEN = 18.
  T_FIELD_CAT-SELTEXT_L   = 'MATERIAL NUMBER'.
  APPEND T_FIELD_CAT TO IT_FIELDCAT.
  CLEAR T_FIELD_CAT.

    V_CNT = V_CNT + 1.
  T_FIELD_CAT-COL_POS = V_CNT.
  T_FIELD_CAT-FIELDNAME = 'CHARG'.
  T_FIELD_CAT-OUTPUTLEN = 10.
  T_FIELD_CAT-SELTEXT_L   = 'BATCH'.
  APPEND T_FIELD_CAT TO IT_FIELDCAT.
  CLEAR T_FIELD_CAT.

  V_CNT = V_CNT + 1.
  T_FIELD_CAT-COL_POS = V_CNT.
  T_FIELD_CAT-FIELDNAME = 'EBELP'.
  T_FIELD_CAT-OUTPUTLEN = 14.
  T_FIELD_CAT-SELTEXT_L   = 'LINE ITEM NO'.
  APPEND T_FIELD_CAT TO IT_FIELDCAT.
  CLEAR T_FIELD_CAT.



  V_CNT = V_CNT + 1.
  T_FIELD_CAT-COL_POS = V_CNT.
  T_FIELD_CAT-FIELDNAME = 'MENGE'.
  T_FIELD_CAT-DO_SUM = 'X'.
  T_FIELD_CAT-OUTPUTLEN = 18.
  T_FIELD_CAT-SELTEXT_L   = 'PO QUANTITY'.
  APPEND T_FIELD_CAT TO IT_FIELDCAT.
  CLEAR T_FIELD_CAT.



ENDFORM.                    " FIELDCATALOG
*&---------------------------------------------------------------------*
*&      Form  SUB_SORT
*&---------------------------------------------------------------------*
*    PERFORM TO SORT
*----------------------------------------------------------------------*

FORM SUB_SORT .
DATA L_CNT TYPE I.

  L_CNT = L_CNT + 1.
  GT_SORT1-FIELDNAME = 'EBELN'.
  GT_SORT1-SPOS      = L_CNT.
  GT_SORT1-UP       = 'X'.
  GT_SORT1-SUBTOT   = 'X'.
  APPEND GT_SORT1 TO GT_SORT.
  CLEAR GT_SORT1.

  L_CNT = L_CNT + 1.
  GT_SORT1-FIELDNAME = 'MATNR'.
  GT_SORT1-SPOS      = L_CNT.
  GT_SORT1-UP       = 'X'.
  GT_SORT1-SUBTOT   = 'X'.
  APPEND GT_SORT1 TO GT_SORT.
  CLEAR GT_SORT1.

  L_CNT = L_CNT + 1.
  GT_SORT1-FIELDNAME = 'CHARG'.
  GT_SORT1-SPOS      = L_CNT.
  GT_SORT1-UP       = 'X'.
  GT_SORT1-SUBTOT   = 'X'.
  APPEND GT_SORT1 TO GT_SORT.
  CLEAR GT_SORT1.


ENDFORM.                    " SUB_SORT
*&---------------------------------------------------------------------*
*&      Form  SUB_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM SUB_LAYOUT .

    IT_LAYOUT-NO_TOTALLINE = ''.
    IT_LAYOUT-SUBTOTALS_TEXT = 'SUB TOTAL'.
    IT_LAYOUT-TOTALS_TEXT = 'GRAND TOTAL'.

ENDFORM. " SUB_LAYOUT

Regards

Ashok P

Message was edited by: Ashok Parupalli

Read only

Former Member
0 Likes
1,823

Hi Chandra,

Copy and paste this piece of code.It will give you basic idea about the ALV Program

REPORT ZALV .

Type-pools : slis.

types : begin of ty_tab,

matnr type mseg-matnr,

werks type mseg-werks,

charg type mseg-charg,

end of ty_tab.

data : it_fieldcat type slis_t_fieldcat_alv,

ls_fieldcat type slis_fieldcat_alv,

wa_tab type ty_tab,

itab type standard table of ty_tab with header line,

i_layout type slis_layout_alv,

gs_layout TYPE lvc_s_layo,

g_repid TYPE sy-repid,

g_hyperlink type LVC_T_HYPE.

parameters : p_mblnr like mseg-mblnr.

start-of-selection.

select matnr werks charg

into table itab

from mseg

where mblnr = p_mblnr.

CLEAR ls_fieldcat.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-seltext_l = 'MATERIAL NUMBER'.

ls_fieldcat-outputlen = 25.

ls_fieldcat-hotspot = 'X'.

APPEND ls_fieldcat TO it_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'WERKS'.

ls_fieldcat-seltext_l = 'PLANT'.

ls_fieldcat-outputlen = 15.

ls_fieldcat-just = 'C'.

APPEND ls_fieldcat TO it_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-tabname = 'ITAB'.

ls_fieldcat-fieldname = 'CHARG'.

ls_fieldcat-seltext_l = 'BATCH NUMBER'.

ls_fieldcat-outputlen = 15.

APPEND ls_fieldcat TO it_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = g_repid

IS_LAYOUT = i_layout

IT_FIELDCAT = it_fieldcat

TABLES

t_outtab = itab

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

Read only

Former Member
0 Likes
1,823

hi chandra,

chk this link

http://www.geocities.com/mpioud/Abap_programs.html

give ur mail id , one good doc is there on ALV OO

Message was edited by: Chandrasekhar Jagarlamudi

Read only

Read only

Former Member
0 Likes
1,823

hi Chandra,

Go to SE38 and give <b>BCALALV</b>

BCALV_EDIT_01 Switch on and off the re

BCALV_EDIT_02 Define ready-for-input s

BCALV_EDIT_03 Verification of modified

Read only

Former Member
0 Likes
1,823

HI Chandra Babu,

Send me ur mail id so that i can send the notes.

&----


*& Report ZLAXMI_ALVEXER1 *

*& *

&----


*& NAME : VENKATA LAXMI *

*& DATE : 24-02-2006 *

*& PROGRAM TO PRINT THE REPORT IN ALV LIST FORMAT AND GRID FORMAT *

&----


REPORT ZLAXMI_ALVEXER1 MESSAGE-ID ZZ .

&----


*& TABLES DECLARATION *

&----


TABLES:LFA1, LFB1, LFM1.

&----


*& TYPE POOLS DECLARATION *

&----


TYPE-POOLS: SLIS.

&----


*& INTERNAL TABLE DECLARATION *

&----


DATA: BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR, " VENDOR

BUKRS LIKE LFB1-BUKRS, " COMPANY CODE

EKORG LIKE LFM1-EKORG, " PURCHASING ORG

KTOKK LIKE LFA1-KTOKK, " ACCOUNT GROUP

NAME1 LIKE LFA1-NAME1, " VENDOR NAME

STRAS LIKE LFA1-STRAS, " STREET

ORT01 LIKE LFA1-ORT01, " CITY

REGIO LIKE LFA1-REGIO, " REGION

PFORT LIKE LFA1-PFORT, " PO BOX

PSTLZ LIKE LFA1-PSTLZ, " PO CODE

PSTL2 LIKE LFA1-PSTL2, " PO ZIP

TELF1 LIKE LFA1-TELF1, " TELEPHONE

END OF ITAB.

*INTERNAL TABLE FOR FIELD CATALOG

DATA: IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV

WITH HEADER LINE,

*INTERNAL TABLE FOR EVENTS

IT_EVENT TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT,

*INTERNAL TABLE FOR SORTING

IT_SORT TYPE SLIS_T_SORTINFO_ALV,

WA_SORT TYPE SLIS_SORTINFO_ALV,

*INTERNAL TABLE FOR LAYOUT

WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

&----


*& VARIABLE DECLARATION *

&----


DATA : V_REPID TYPE SY-REPID,

V_PAGNO(4) TYPE N,

V_DATE(8) TYPE C.

&----


*& CONSTANTS *

&----


CONSTANTS: C_X TYPE C VALUE 'X'.

&----


*& SELECTION SCREEN *

&----


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

SELECT-OPTIONS: S_LIFNR FOR LFA1-LIFNR,

S_BUKRS FOR LFB1-BUKRS,

S_EKORG FOR LFM1-EKORG,

S_KTOKK FOR LFA1-KTOKK.

SELECTION-SCREEN: END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN : BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-003.

PARAMETERS: P_LIST RADIOBUTTON GROUP RAD1 DEFAULT 'X'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-004.

PARAMETERS: P_GRID RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN: END OF BLOCK B2.

&----


*& AT SELECTION SCREEN *

&----


AT SELECTION-SCREEN.

PERFORM VALIDATE_SCREEN.

&----


*& START OF SELECTION *

&----


START-OF-SELECTION.

CLEAR: ITAB, ITAB[].

V_REPID = SY-REPID.

PERFORM GET_DATA.

&----


*& END OF SELECTION *

&----


END-OF-SELECTION.

*--DO ALV Process

V_REPID = SY-REPID.

*--Sort the Output Fields

PERFORM SORT_FIELDS.

*--Build Field catalog for the Output fields

PERFORM BUILD_FIELDCAT.

*--Set the Layout for ALV

PERFORM SET_LAYOUT.

&----


*& Form GET_DATA

&----


  • text

----


  • TO GET THE DATA FROM TABLES INTO ITAB

----


FORM GET_DATA .

SELECT

A~LIFNR

B~BUKRS

C~EKORG

A~KTOKK

A~NAME1

A~STRAS

A~ORT01

A~REGIO

A~PFORT

A~PSTLZ

A~PSTL2

A~TELF1

INTO TABLE ITAB

FROM LFA1 AS A JOIN LFB1 AS B

ON ALIFNR = BLIFNR

JOIN LFM1 AS C

ON ALIFNR = CLIFNR

WHERE A~LIFNR IN S_LIFNR AND

B~BUKRS IN S_BUKRS AND

C~EKORG IN S_EKORG AND

A~KTOKK IN S_KTOKK.

ENDFORM. " GET_DATA

&----


*& Form validate_screen

&----


FORM VALIDATE_SCREEN .

DATA: LV_LIFNR LIKE LFA1-LIFNR,

LV_BUKRS LIKE LFB1-BUKRS,

LV_EKORG LIKE LFM1-EKORG,

LV_KTOKK LIKE LFA1-KTOKK.

IF NOT S_LIFNR[] IS INITIAL.

SELECT LIFNR

UP TO 1 ROWS

INTO LV_LIFNR

FROM LFA1

WHERE LIFNR IN S_LIFNR.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'Invalid vendor'(005).

ENDIF.

ENDIF.

IF NOT S_BUKRS IS INITIAL.

SELECT BUKRS

UP TO 1 ROWS

INTO LV_BUKRS

FROM T001

WHERE BUKRS IN S_BUKRS.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'Invalid company code'(006).

ENDIF.

ENDIF.

IF NOT S_EKORG IS INITIAL.

SELECT EKORG

UP TO 1 ROWS

INTO LV_EKORG

FROM T024E

WHERE EKORG IN S_EKORG.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'Invalid purchasing org'(007).

ENDIF.

ENDIF.

IF NOT S_KTOKK IS INITIAL.

SELECT KTOKK

UP TO 1 ROWS

INTO LV_KTOKK

FROM T077K

WHERE KTOKK IN S_KTOKK.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'Invalid acct group'(008).

ENDIF.

ENDIF.

ENDFORM. " validate_screen

&----


*& Form sort_fields

&----


FORM SORT_FIELDS .

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'LIFNR'.

WA_SORT-SPOS = '1'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'BUKRS'.

WA_SORT-SPOS = '2'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'EKORG'.

WA_SORT-SPOS = '3'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

ENDFORM. " sort_fields

&----


*& Form build_fieldcat

&----


FORM BUILD_FIELDCAT .

IT_FIELDCAT-COL_POS = '1'.

IT_FIELDCAT-FIELDNAME = 'LIFNR'.

IT_FIELDCAT-KEY = 'X'.

IT_FIELDCAT-OUTPUTLEN = '10'.

IT_FIELDCAT-SELTEXT_L = 'VENDOR'(009).

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '2'.

IT_FIELDCAT-FIELDNAME = 'BUKRS'.

IT_FIELDCAT-KEY = 'X'.

IT_FIELDCAT-OUTPUTLEN = '4'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '3'.

IT_FIELDCAT-FIELDNAME = 'EKORG'.

IT_FIELDCAT-KEY = 'X'.

IT_FIELDCAT-OUTPUTLEN = '4'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '4'.

IT_FIELDCAT-FIELDNAME = 'KTOKK'.

IT_FIELDCAT-OUTPUTLEN = '4'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '5'.

IT_FIELDCAT-FIELDNAME = 'NAME1'.

IT_FIELDCAT-OUTPUTLEN = '12'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '6'.

IT_FIELDCAT-FIELDNAME = 'STRAS'.

IT_FIELDCAT-OUTPUTLEN = '12'.

IT_FIELDCAT-SELTEXT_L = 'STREET'(014).

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '7'.

IT_FIELDCAT-FIELDNAME = 'ORT01'.

IT_FIELDCAT-OUTPUTLEN = '12'.

IT_FIELDCAT-SELTEXT_L = 'CITY'(015).

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '8'.

IT_FIELDCAT-FIELDNAME = 'REGIO'.

IT_FIELDCAT-OUTPUTLEN = '2'.

IT_FIELDCAT-SELTEXT_L = 'REGION'(016).

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '9'.

IT_FIELDCAT-FIELDNAME = 'PFORT'.

IT_FIELDCAT-OUTPUTLEN = '10'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '10'.

IT_FIELDCAT-FIELDNAME = 'PFTLZ'.

IT_FIELDCAT-OUTPUTLEN = '10'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '11'.

IT_FIELDCAT-FIELDNAME = 'PSTL2'.

IT_FIELDCAT-OUTPUTLEN = '10'.

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

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

IT_FIELDCAT-COL_POS = '12'.

IT_FIELDCAT-FIELDNAME = 'TELF1'.

IT_FIELDCAT-OUTPUTLEN = '16'.

IT_FIELDCAT-SELTEXT_L = 'TELEPHONE'(020).

APPEND IT_FIELDCAT.

CLEAR IT_FIELDCAT.

ENDFORM. " build_fieldcat

&----


*& Form set_layout

&----


FORM SET_LAYOUT .

IF P_LIST = C_X .

WA_LAYOUT-WINDOW_TITLEBAR = 'LIST DISPLAY'(021).

*-- ALV LIST DISPLAY

PERFORM LIST_DISPLAY TABLES ITAB.

*-- ALV GRID DISPLAY

ELSEIF P_GRID = C_X.

WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'(022).

PERFORM GRID_DISPLAY TABLES ITAB.

ENDIF.

ENDFORM. " set_layout

&----


*& Form list_display

&----


FORM LIST_DISPLAY TABLES P_ITAB .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

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 GRID_DISPLAY

&----


FORM GRID_DISPLAY TABLES P_ITAB .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

IT_EVENTS = IT_EVENT

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

program 2:

&----


*& Report ZLAXMI_ALVEXER2 *

*& *

&----


*& NAME : VENKATA LAXMI *

*& DATE : 24-02-2006 *

*& PROGRAM TO PRINT THE REPORT IN ALV LIST FORMAT AND GRID FORMAT *

*& WITH TRAFFIC LIGHTS *

&----


REPORT ZLAXMI_ALVEXER2 MESSAGE-ID ZZ .

&----


*& TABLES DECLARATION *

&----


TABLES: VBAK.

&----


*& TYPE POOLS DECLARATION *

&----


TYPE-POOLS: SLIS.

&----


*& INTERNAL TABLE DECLARATION *

&----


DATA: BEGIN OF ITAB OCCURS 0,

ICON TYPE ICON-ID,

VBELN LIKE VBAK-VBELN,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

AUART LIKE VBAK-AUART,

AUGRU LIKE VBAK-AUGRU,

NETWR LIKE VBAK-NETWR,

WAERK LIKE VBAK-WAERK,

END OF ITAB.

*INTERNAL TABLE FOR FIELD CATALOG

DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  • IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV

  • WITH HEADER LINE,

*INTERNAL TABLE FOR EVENTS

DATA: IT_EVENT TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT,

*INTERNAL TABLE FOR SORTING

IT_SORT TYPE SLIS_T_SORTINFO_ALV,

WA_SORT TYPE SLIS_SORTINFO_ALV,

*INTERNAL TABLE FOR LAYOUT

WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

&----


*& VARIABLE DECLARATION *

&----


DATA : V_REPID TYPE SY-REPID,

V_PAGNO(4) TYPE N,

V_DATE(8) TYPE C.

&----


*& CONSTANTS *

&----


CONSTANTS: C_X TYPE C VALUE 'X'.

&----


*& SELECTION SCREEN *

&----


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

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,

S_VBTYP FOR VBAK-VBTYP DEFAULT 'C'.

SELECTION-SCREEN: END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN : BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-003.

PARAMETERS: P_LIST RADIOBUTTON GROUP RAD1 DEFAULT 'X'.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN : BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-004.

PARAMETERS: P_GRID RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN : END OF LINE.

SELECTION-SCREEN: END OF BLOCK B2.

AT SELECTION-SCREEN.

PERFORM VALIDATE_SCREEN.

&----


*& START OF SELECTION *

&----


START-OF-SELECTION.

CLEAR: ITAB, ITAB[].

  • V_REPID = SY-REPID.

PERFORM GET_DATA.

PERFORM DISPLAY_DATA.

&----


*& END OF SELECTION *

&----


END-OF-SELECTION.

*--DO ALV Process

V_REPID = SY-REPID.

*--Sort the Output Fields

PERFORM SORT_FIELDS.

*--Build Field catalog for the Output fields

  • PERFORM BUILD_FIELDCAT.

*--Set the Layout for ALV

PERFORM SET_LAYOUT.

&----


*& Form GET_DATA

&----


  • text

----


  • TO GET THE DATA FROM TABLES INTO ITAB

----


FORM GET_DATA .

SELECT VBELN

AUDAT

VBTYP

AUART

AUGRU

NETWR

WAERK

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM VBAK

WHERE VBELN IN S_VBELN AND

AUDAT > '04.04.2005'

AND NETWR > 0.

LOOP AT ITAB.

IF ITAB-NETWR < 10000.

ITAB-ICON = '@08@'.

ELSEIF ITAB-NETWR > 10000 AND ITAB-NETWR < 100000.

ITAB-ICON = '@09@'.

ELSEIF ITAB-NETWR > 100000.

ITAB-ICON = '@0A@'.

ENDIF.

MODIFY ITAB INDEX SY-TABIX.

ENDLOOP.

ENDFORM. " GET_DATA

&----


*& Form sort_fields

&----


FORM SORT_FIELDS .

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'VBTYP'.

WA_SORT-SPOS = '1'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'NETWR'.

WA_SORT-SPOS = '2'.

WA_SORT-UP = 'X'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

ENDFORM. " sort_fields

&----


*& Form build_fieldcat

&----


*FORM BUILD_FIELDCAT .

*

  • IT_FIELDCAT-COL_POS = '1'.

  • IT_FIELDCAT-FIELDNAME = 'ICON'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '10'.

  • IT_FIELDCAT-SELTEXT_L = 'LIGHT'.

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

*

  • IT_FIELDCAT-COL_POS = '2'.

  • IT_FIELDCAT-FIELDNAME = 'VBELN'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '10'.

  • IT_FIELDCAT-SELTEXT_L = 'SALES DOC NUMBER'(009).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '3'.

  • IT_FIELDCAT-FIELDNAME = 'AUDAT'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '4'.

  • IT_FIELDCAT-SELTEXT_L = 'DOCUMENT DATE'(010).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '4'.

  • IT_FIELDCAT-FIELDNAME = 'VBTYP'.

  • IT_FIELDCAT-KEY = 'X'.

  • IT_FIELDCAT-OUTPUTLEN = '4'.

  • IT_FIELDCAT-SELTEXT_L = 'CATEGORY'(011).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '5'.

  • IT_FIELDCAT-FIELDNAME = 'AUART'.

  • IT_FIELDCAT-OUTPUTLEN = '4'.

  • IT_FIELDCAT-SELTEXT_L = 'DOCUMENT TYPE'(012).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '6'.

  • IT_FIELDCAT-FIELDNAME = 'AUGRU'.

  • IT_FIELDCAT-OUTPUTLEN = '12'.

  • IT_FIELDCAT-SELTEXT_L = 'Order reason'(013).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '7'.

  • IT_FIELDCAT-FIELDNAME = 'NETWR'.

  • IT_FIELDCAT-OUTPUTLEN = '12'.

  • IT_FIELDCAT-SELTEXT_L = 'NET VALUE'(014).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

  • IT_FIELDCAT-COL_POS = '8'.

  • IT_FIELDCAT-FIELDNAME = 'WAERK'.

  • IT_FIELDCAT-OUTPUTLEN = '12'.

  • IT_FIELDCAT-SELTEXT_L = 'SD DOC CURR'(015).

  • APPEND IT_FIELDCAT.

  • CLEAR IT_FIELDCAT.

*

*

*ENDFORM. " build_fieldcat

*

&----


*& Form set_layout

&----


FORM SET_LAYOUT .

IF P_LIST = C_X .

WA_LAYOUT-WINDOW_TITLEBAR = 'LIST DISPLAY'(016).

WA_LAYOUT-ZEBRA = 'X'.

*-- ALV LIST DISPLAY

PERFORM LIST_DISPLAY TABLES ITAB.

*-- ALV GRID DISPLAY

ELSEIF P_GRID = C_X.

WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'(017).

WA_LAYOUT-ZEBRA = 'X'.

PERFORM GRID_DISPLAY TABLES ITAB.

ENDIF.

ENDFORM. " set_layout

&----


*& Form list_display

&----


FORM LIST_DISPLAY TABLES P_ITAB .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

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 GRID_DISPLAY

&----


FORM GRID_DISPLAY TABLES P_ITAB .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

IT_SORT = IT_SORT[]

IT_EVENTS = IT_EVENT

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

&----


*& Form VALIDATE_SCREEN

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_SCREEN .

DATA: LV_VBELN LIKE VBAK-VBELN.

IF NOT S_VBELN IS INITIAL.

SELECT VBELN

INTO LV_VBELN

UP TO 1 ROWS

FROM VBAK

WHERE VBELN IN S_VBELN.

ENDSELECT.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID SALES DOC'.

ENDIF.

ENDIF.

ENDFORM. " VALIDATE_SCREEN

&----


*& Form display_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DATA .

DEFINE M_FIELDCAT.

ADD 1 TO WA_FIELDCAT-COL_POS.

WA_FIELDCAT-FIELDNAME = &1.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

WA_FIELDCAT-DO_SUM = &2.

WA_FIELDCAT-CFIELDNAME = &3.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

END-OF-DEFINITION.

DATA:

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv.

m_fieldcat 'ICON' '' ''.

m_fieldcat 'VBELN' '' ''.

m_fieldcat 'AUDAT' '' ''.

m_fieldcat 'VBTYP' '' ''.

m_fieldcat 'AUART' '' ''.

m_fieldcat 'AUGRU' '' ''.

m_fieldcat 'NETWR' 'C' 'WAERK'.

m_fieldcat 'WAERK' '' ''.

ENDFORM. " display_data

Regards

Laxmi.

Read only

0 Likes
1,823

hi laxmi,

this is mallikarjuna. i want material on smartforms and alv's

my mail id :

[email protected]

Read only

Former Member
0 Likes
1,823

Hi Chandra.

Just give 'ALV Reports' in Forum search and you will find lot of discussions around that.

Rgds,

HR

Read only

Clemenss
Active Contributor
0 Likes
1,823

Hi,

at SAP they have the pdfs as print files on

http://help.sap.com/printdocu/core/Print46c/en/Data/htm/english.htm

See

SAP List Viewer (ALV) Classic:

data/pdf/CAGTFLV/CAGTFLV.pdf

if you like OO better, try

ALV Gird Control (BC-SRV-ALE):

data/pdf/BCSRVALV/BCSRVALV.pdf

Also see reports like BALV.

Write your report an questions will come...

Regards,

Clemens

Read only

Shivaji16
Active Participant
0 Likes
1,823

ALV's are the follwing types,

List,

Grid,

Hierarchial,

Blocked.

ALV's can be implemented in 2 ways,

Using Function Modules,

Object oriented Methodology.( using Classes )

The common function modules for ALV's are,

For Blocked ALV's:

REUSE_ALV_BLOCK_LIST_APPEND

REUSE_ALV_BLOCK_LIST_DATA_GET

REUSE_ALV_BLOCK_LIST_DATA_SET

REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_BLOCK_LIST_INIT

REUSE_ALV_BLOCK_LIST_REFRESH

REUSE_ALV_BLOCK_STATUS_GET

REUSE_ALV_COMMENTARY_WRITE - For writing on to the list and displaying the Logo

REUSE_ALV_EVENTS_GET - For handling the events

REUSE_ALV_FIELDCATALOG_MERGE - For generating the field Catalog..

REUSE_ALV_LIST_DISPLAY

REUSE_ALV_GRID_DISPLAY - For Grid Display

REUSE_ALV_HIERSEQ_LIST_DISPLAY - For Hierarchial List

Class for displaying the ALV Grid is

CL_GUI_ALV_GRID

The method used in that class is

SET_TABLE_FOR_FIRST_DISPLAY

Read only

Former Member
0 Likes
1,823

Hi

check out the following links for ALV programming.

http://www.geocities.com/mpioud/Abap_programs.html

http://www.sapbrain.com/TUTORIALS/TECHNICAL/ALV_tutorial.html

Reward points if helpful.

Regards,

Swathi.

Read only

Former Member
0 Likes
1,823

Hi Chandra,

Along with what others mentioned ,

make use of the Forum, Just Press the Option "Serach Forum" , Here you can Give ALV , and search you will end up with so many Solved Threads. Just check out them. that will solve your problem.

Regards

vijay D T T.

Read only

Former Member
0 Likes
1,823

hi every one,

thanks to every one. i got good material. now i start doing program. thanks lot to every one.

chandu

Read only

0 Likes
1,823

HI,

Plz reward points and close the thread

If you got solution.

Regards,

Laxmi.