2006 Aug 08 10:56 AM
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 |