ALV's: - : Sap - Abap From 4.6 List - LIST Introduced in 4.6 Viewer - Viewer
ALV's: - : Sap - Abap From 4.6 List - LIST Introduced in 4.6 Viewer - Viewer
ALV's: - : Sap - Abap From 4.6 List - LIST Introduced in 4.6 Viewer - Viewer
SAP -- A -- ABAP
VIEWER – V –VIEWER
NOTE: -- To View The Output List In SAP In Better Way Than The Traditional Way I.e.
Both Classical And Interactive Reports.
NOTE: -- ALV Is To Display The Output List With pre-defined functions such as select
ALL, Deselect, Sort, ASC Sort, DESC Sort, Download, Filter, Change Layout etc ….. if
Required new functions (BUTTOUNS) can be added and existing buttons can be
enhanced.
NOTE: -- ALV is initially via function module and now it is through methods (oo).
1) Normal/simple ALV – can display the data from ONLY ONE ITAB.
FM ‘REUSE_ALV_GRID_DISPLAY’.
*&---------------------------------------------------------------------*
*& Report ZDEMO_SIMPLE_ALV_REPORT
*&---------------------------------------------------------------------*
REPORT ZDEMO_FM_ALV_NML.
TABLES: LFA1.
SELECT LIFNR LAND1 NAME1 ORT01 INTO TABLE IT_LFA1 FROM LFA1 UP TO 30 ROWS.
2) Hierarchical ALV – Always display the data from TWO ITAB’s I.e. HEADER &
ITEM data with ATLEAST One Field common to Built Hierarchical .
FM ‘REUSE_ALV_HIERSEQ_LIST_DISPLAY’
*&---------------------------------------------------------------------*
*& Report ZDEMO_HIERSEQ_ALV
*&---------------------------------------------------------------------*
REPORT ZDEMO_HIERSEQ_ALV.
TYPE-POOLS: SLIS.
TABLES:EKKO,EKPO.
START-OF-SELECTION.
TABLES
T_OUTTAB_HEADER = IT_EKKO
T_OUTTAB_ITEM = IT_EKPO
.
3) Blocked ALV_DISPLAY data from any no. of ITAB’s as a single an ALV block
sequentially with no relation.
FM1: REUSE_ALV_BLOCK_LIST_INIT.
FM2: REUSE_ALV_BLOCK_LIST_APPEND.
Input ITAB1
NOTE: - Repeat this FM call for each ITAB to be displayed via the same ALV block.
FM3: ‘REUSE_ALV_LIST_DISPLAY’.
Display the all the ITAB’s that are already APPEND to the ALV block.
*&---------------------------------------------------------------------*
*& Report ZDEMO_BLOCK_ALV
*&---------------------------------------------------------------------*
REPORT ZDEMO_BLOCK_ALV.
TYPE-POOLS: SLIS.
COL POSITION
MANDITORY
COL HEADING
CALLED AS
FIELD CATALOG
COLOR
HOT SPOT OPTIONAL
JUSTIFY
EDIT
ETC….
Tables
T_out_tab = IT_LFA1
Add one record to IT_FIELDCAT for each column to be displayed with the respective
display characteristics.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_NAME = ‘EBELN’
WA_FIELDCAT-COL_POS = ‘1’
WA_FIELDCAT-COL_HEADER = ‘PO NUMBER’
WA_FIELDCAT-COLOR = C6
WA_FIELDCAT-HOTSPOT = ‘X’ YES
WA_FIELDCAT-KEY = X KEY COLOR
NOTE: -- All the data types referred in ALV FM’s are from type GROUP/POOL : SLIS
and which has to be included in a program to access the same I.e. via TYPE-POOL :
SLIS.
SEMI-AUTOMATIC IN DETAIL: --
*&---------------------------------------------------------------------*
*& Report ZDEMO_FILEDCATALOG_MANUAL
*&---------------------------------------------------------------------*
REPORT ZDEMO_FILEDCATALOG_MANUAL.
TYPE-POOLS: SLIS.
SELECT LIFNR LAND1 NAME1 ORT01 INTO TABLE IT_LFA1 FROM LFA1 UP TO 20 ROWS.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-SELTEXT_L = 'VENDOR NO'.
WA_FIELDCAT-HOTSPOT = 'X'.
WA_FIELDCAT-KEY = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LAND1'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-SELTEXT_L = 'COUNTRY KEY'.
WA_FIELDCAT-HOTSPOT = 'X'.
WA_FIELDCAT-JUST = 'C'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ORT01'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-SELTEXT_M = 'CITY NAME'.
WA_FIELDCAT-EMPHASIZE = 'C41'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'NAME1'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-SELTEXT_L = 'NAME OF VENDOR'.
WA_FIELDCAT-EMPHASIZE = 'C621'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
IN REPORTS: --
START-OF-SELECTION.
"BUSINESS LOGIC
NOTE: -- THE BUSINESS LOGIC TO BE EXECUTED FOR FM ALV EVENTS SHOULD ALWAYS
VIA SUBROUTINE CALL I.E BUSINEE LOGIC SHOULD KEPT WITH IN FORM -- ENDFORM
ONLY.
INITIALIZATION .
START-OF-SELECTION.
AT SELECTION -SCREEN
TOP OF PAGE
END OF PAGE
SINCE ONLY TOP-OF-PAGE ,END-OF-PAGE ARE THE LIST PROCESSING
EVENTS AND AS PART OF CLASSICAL ALV ONLY THESE EVENTS CAN BE
HANDELED IN FM ALV'S.
EXPORTING
NOTE: MAKE SURE THAT EVENT HANDLER SUBTOUTINE (FORM) SHOULD BE PART OF ONLY
ONE PROGARM AND PREFERBLY THE CURRENT PROGARAM & IT CAN BE ANY ALSO.
NOTE: -- IN THE FM ALV, ONE PERFORM IS THERE FOR EACH EVENTS I.E.
PERFORM (I_CALLBACK-TOP_PAGE) IN PROGARM (I_CALLBACK_PROGARM) IF FOUND.
DOUBLE CLICK ON SCREEN & PROVIDE THE IMAGE PATH THEN ENTER.
INTERACTIVE REPORTS --EVENTS:--
NOTE: -- THE SAME EVENT 'USER_COMMAND' TRIGGER FOR BOTH THE BUTTON AND THE
LINE SELECTION.
NOTE: -- THE FCODE (FCT.CODE) FOR DOUBLE CLICK IS '&IC1' AND NON-ALV IT IS 'PICK' .
SINCE THE EVENT HANDLER SUBROUTINES ARE PERFORMED (CALLED) FORM ALV FM
SO THAT FORM -- ENDFORM SHOULD HAVE THE SAME SET OF, NO.OF, TYPE OF
ARGUMENTS AND CHECK THE SAME I.E. FOR THE STRUCTURE OF EVENT HANDLER
FROM -- ENDFORM, GO THROUGH THE LONG TEXT OF RESPECTIVE
I_CALLBACK_EVENTNAME =FROM THE FM ALV.
IS VIA GUI-STATUS BUT MAKE SURE THAT NEW (OUR OWN) BUTTONS ARE
ALWAYS ALONG WITH THE EXISTING (Std) BUTTONS SO THAT COPY, THE (Std)
GUI STATUS OF THE ALV AND CHANGE IT TO ADD OUR OWN BUTTONS.
NOTE: -- EVENT 'PF-STATUS-SET' TRIGGER BEFORE DISPLAY ALV TOOL BA R & GUI STATUS
HAS TO BE SET IN THE EVENT HANDLER FORM --ENDFORM
OF THE EVENT.
NOTE: -- TO FINDOUT THE STANDARD GUI-STATUS --> GOTO ANY ALV OUTPUT LIST.
PF-STATUS-SET.
PROGRAM = SAPLKKBL
GUI-STATUS = STANDARD_FULLSCREEN
EXECUTE SE41.
FROM
FORM NAME
STATUS
TO
FORMNAME
STATUS
*&---------------------------------------------------------------------*
*& Report ZDEMO_FM_ALV_EVENTS
*&---------------------------------------------------------------------*
REPORT ZDEMO_FM_ALV_EVENTS.
TYPE-POOLS: SLIS.
FORM PRINT_HEADER.
DATA:IT_LIST TYPE SLIS_T_LISTHEADER,
WA_LIST TYPE LINE OF SLIS_T_LISTHEADER.
CLEAR WA_LIST.
**************************************************************************************
CASE r_ucomm.
WHEN '&IC1'.
TABLES
T_OUTTAB = IT_EKPO.
* -----------------------------------------------------------------------------------
WHEN 'GETI'.
SELECT * INTO TABLE IT_EKPO FROM EKPO FOR ALL ENTRIES IN IT_EKKO
WHERE EBELN = IT_EKKO-EBELN.
TABLES
T_OUTTAB = IT_EKPO.
ULINE.
ENDCASE.
ENDFORM.
*---------------------------------------------------------------------------------------------------------
WA-FCODE = '&INFO'.
ENDFORM.
1) Declare an Additional Field in the output ITAB type CHAR,4 (CXYZ) for coloring the
entire row.
'C' Constant
'X' Range of colors(1 to 7)
'Y' Intensify ON/OFF
'Z' Inverse ON/OFF forground/background.
2).MODIFY the ITAB to fill the color details into the additional field for the required
row(s).
WA_EKKO-ROW_CLR = 'C71'.
3).Pass this additional field name to ALV layout i.e. to inform ALV from which field the
color of the ROW is coming.
IN OO ALV.
IS_LAYOUT_INFO-FNAME ='<Additional fieldname>'.
PASS IS_LAYOUT FOR ALV DISPLAY FM 'REUSE_ALV_GRID_DISPLAY'
REPORT: ZDEMO_COLORING_ROWS_IN_ALV.
*&---------------------------------------------------------------------*
*& Report ZDEMO_COLORING_ROWS_IN_ALV
*&---------------------------------------------------------------------*
REPORT ZDEMO_COLORING_ROWS_IN_ALV.
TYPE-POOLS:SLIS.
SELECT BUKRS BUTXT ORT01 LAND1 SPRAS INTO TABLE IT_T001 FROM T001 UP TO 20 ROWS.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-SELTEXT_L ='COMPANY CODE'.
WA_FIELDCAT-EMPHASIZE ='C611'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUTXT'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-SELTEXT_L ='COMPANY NAME'.
WA_FIELDCAT-EMPHASIZE ='C501'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ORT01'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-SELTEXT_L ='CITY NAME'.
WA_FIELDCAT-KEY = 'X'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'SPRAS'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-SELTEXT_L ='LANGUAGE KEY'.
WA_FIELDCAT-HOTSPOT = 'X'.
WA_T001-ROW_CLR = 'C511'.
IT_LAYOUT-INFO_FIELDNAME = 'ROW_CLR'.
2).MODIFY the out tab to fill Except/Traffic light details for the additional field.
3).PASS the Additional field to the ALV layout through which the light details are
coming to ALV.
PROGRAM:-- ZDEMO_TRAFFIC-LIGHTS_IN-ALV
*&---------------------------------------------------------------------*
*& Report ZDEMO_COLORING_ROWS_IN_ALV
*&---------------------------------------------------------------------*
REPORT ZDEMO_TRAFFIC_LIGHTS_IN_ALV.
TYPE-POOLS:SLIS.
TYPES: BEGIN OF TY_T001,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
ORT01 TYPE T001-ORT01,
LAND1 TYPE T001-LAND1,
SPRAS TYPE T001-SPRAS,
LIGHTS TYPE I,
END OF TY_T001.
SELECT BUKRS BUTXT ORT01 LAND1 SPRAS INTO TABLE IT_T001 FROM T001 UP TO 20 ROWS.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-SELTEXT_L ='COMPANY CODE'.
WA_FIELDCAT-EMPHASIZE ='C611'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUTXT'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-SELTEXT_L ='COMPANY NAME'.
WA_FIELDCAT-EMPHASIZE ='C501'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ORT01'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-SELTEXT_L ='CITY NAME'.
WA_FIELDCAT-KEY = 'X'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LAND1'.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-SELTEXT_L ='COMPANY CODE'.
WA_FIELDCAT-HOTSPOT = 'X'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'SPRAS'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-SELTEXT_L ='LANGUAGE KEY'.
WA_FIELDCAT-HOTSPOT = 'X'.
WA_T001-LIGHTS = 1."RED
MODIFY IT_T001 FROM WA_T001 TRANSPORTING LIGHTS WHERE BUKRS < '1000'.
WA_T001-LIGHTS = 3."GREEN
MODIFY IT_T001 FROM WA_T001 TRANSPORTING LIGHTS WHERE BUKRS > '1000'.
FNAM COLOR(CXYZ)
IN FM ALV -->
IN OO ALV -->
Step3).MODIFY the output ITAB to fill the cell color details for the required cells of the
required records.
So that Additional Field has to filled as
CLEAR WA
WA_FIELDNAME = 'LIFNR'.
WA_COLOR-COL = 5 "X.
WA_COLOR-INT = 1 "Y .
WA_COLOR-INV =1 "Z.
APPEND WA TO ITAB.
WA_EKKO-CTAB = ITAB.
REPORT: - ZDEMO_CELL_COLORING_IN_ALV.
REPORT ZDEMO_CELL_COLORING_IN_ALV.
TYPE-POOLS:SLIS.
TYPES:BEGIN OF TY_TEMP_T001,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
ORT01 TYPE T001-ORT01,
LAND1 TYPE T001-LAND1,
SPRAS TYPE T001-SPRAS,
END OF TY_TEMP_T001.
WA_T001-BUKRS = WA_TEMP_T001-BUKRS.
WA_T001-BUTXT = WA_TEMP_T001-BUTXT.
WA_T001-ORT01 = WA_TEMP_T001-ORT01.
WA_T001-LAND1 = WA_TEMP_T001-LAND1.
WA_T001-SPRAS = WA_TEMP_T001-SPRAS.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-SELTEXT_L ='COMPANY CODE'.
WA_FIELDCAT-EMPHASIZE =''.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUTXT'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-SELTEXT_L ='COMPANY NAME'.
WA_FIELDCAT-EMPHASIZE =''.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ORT01'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-SELTEXT_L ='CITY NAME'.
WA_FIELDCAT-KEY = 'X'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LAND1'.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-SELTEXT_L ='COMPANY CODE'.
WA_FIELDCAT-HOTSPOT = 'X'.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'SPRAS'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-SELTEXT_L ='LANGUAGE KEY'.
WA_FIELDCAT-HOTSPOT = 'X'.
IS_LAYOUT-COLTAB_FIELDNAME = 'CTAB'.
APPEND WA TO ITAB.
WA_T001-CTAB = ITAB.
CLEAR WA.
WA-FIELDNAME = 'BUKRS'.
WA-COLOR-COL = '6'.
WA-COLOR-INT = '1'.
WA-COLOR-INV = '1'.
APPEND WA TO ITAB.
WA_T001-CTAB = ITAB.
REFRESH ITAB.
CLEAR WA.
WA-FIELDNAME = 'ORT01'.
WA-COLOR-COL = '3'.
WA-COLOR-INT = '1'.
WA-COLOR-INV = '1'.
APPEND WA TO ITAB.
WA_T001-CTAB = ITAB.
REFRESH ITAB.
CLEAR WA.
WA-FIELDNAME = 'LAND1'.
WA-COLOR-COL = '1'.
WA-COLOR-INT = '1'.
WA-COLOR-INV = '1'.
APPEND WA TO ITAB.
WA_T001-CTAB = ITAB.
REFRESH ITAB.