2006 Aug 08 10:56 AM
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
2006 Aug 08 10:58 AM
2006 Aug 08 10:58 AM
2006 Aug 08 10:58 AM
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
2006 Aug 08 10:58 AM
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.
2006 Aug 08 10:59 AM
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
2006 Aug 08 10:59 AM
http://www.sap-basis-abap.com/sapabap01.htm
BCALV* in se38 would help U
http://www.sapdevelopment.co.uk
http://www.sapgenie.com/abap/controls/alvgrid.htm
http://www.sappoint.com/ppt/alv.ppt
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_basic.htm
check this URL :
http://help.sap.com/docuprint/print46b/en/data/en/htm/Index_en.htm
You can find documentation on ALV in this group :
http://groups.yahoo.com/group/ABAP/files/
http://www.google.co.in/search?q=cache:7XzuJS1PIaAJ:www.sappoint.com/ppt/alv.pptFunctionModuleforchangelayoutin+alv&hl=en&ie=UTF-8
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sap-img.com/abap/an-interactive-alv-report.htm
ALVGRID with refresh
http://www.geocities.com/mpioud/Z_DEMO_ALV_REFRESH_BUTTON.html
ALV Group Heading
http://www.sap-img.com/fu037.htm
http://www.sap-img.com/abap/test-alv-display-with-header-footer.htm
http://www.sap-img.com/abap/sample-alv-heading-in-alv.htm
ALV all Imp
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sap-img.com/fu002.htm
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_events.htm
ALV Documentation for Field
Check in
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
http://www.geocities.com/mpioud/Abap_programs.html
b
2006 Aug 08 11:00 AM
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
2006 Aug 08 11:00 AM
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.
2006 Dec 27 9:36 AM
2006 Aug 08 11:02 AM
Hi Chandra.
Just give 'ALV Reports' in Forum search and you will find lot of discussions around that.
Rgds,
HR
2006 Aug 08 11:03 AM
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
2006 Aug 08 11:17 AM
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
2006 Aug 08 11:20 AM
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.
2006 Aug 08 11:26 AM
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.
2006 Aug 08 11:54 AM
hi every one,
thanks to every one. i got good material. now i start doing program. thanks lot to every one.
chandu
2006 Aug 08 11:57 AM
HI,
Plz reward points and close the thread
If you got solution.
Regards,
Laxmi.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |