Vous êtes sur la page 1sur 10

AT LINE-SELECTION

AT USER-COMMAND
TOP-OF-PAGE DURING LINE-SELECTION

Lists are the output medium for structured, formatted data from ABAP programs.
Each program can produce up to 21 lists, one basic list and 20 secondary lists.
The basic list is the standard screen of an executable program (report).
In list processing, the event is intercepted by the list processor and processed
.
One of the following list events may be called, depending on the function code
triggered by the user.
AT LINE-SELECTION
AT USER-COMMAND

When the system processes event blocks that are not assigned to interactive list
events, and when processing dialog modules, the ABAP program writes its list ou
tput to the basic list.
The ABAP system field SY-LSIND contains the index of the list currently being cr
eated.
For the basic list SY-LSIND is zero.
The basic list has a standard list status and a standard page header
The TOP-OF-PAGE and END-OF-PAGE events can occur while the basic list is being c
reated

Each interactive list event creates a new detail list.


With one ABAP program, one basic list and up to 20 detail lists can be maintain
ed.
If the user creates a list on the next level , the system stores the previous l
ist and displays the new one. The user can interact with whichever list is curre
ntly displayed.
By default, the new list overlays the previous list completely. However, list ca
n be displayed in a dialog box
There is no standard page header for detail lists

Processing blocks cannot be nested


TOP-OF-PAGE event cannot be used in secondary lists but TOP-OF-PAGE DURING LINE
-SELECTION can be used
The system does process the event END-OF-PAGE in secondary lists.
The GET and GET LATE cannot be used to retrieve data for secondary lists

INTERACTIVE REPORTING USING AT LINE-SELECTION


**********************************************

REPORT ZINTERACTIVE9 NO STANDARD PAGE HEADING.


TABLES: KNA1, "CUSTOMER MASTER TABLE
VBAK, "PURCHASE ORDER HEADER DATA
VBAP, "PURCHASE ORDER ITEM DATA
MARA,
MAKT.

PARAMETERS: P_KUNNR LIKE KNA1-KUNNR.


DEFINE DT.

WRITE:/100 'DATE : ', SY-DATUM.


WRITE:/100 'TIME : ', SY-UZEIT.
ULINE.
FORMAT COLOR 1.
WRITE:/60 'CUSTOMER WISE SALES ORDER DETAILS ' .
ULINE.
FORMAT COLOR OFF.
END-OF-DEFINITION.

DT.
WRITE:/1 'CUSTOMER NUMBER ' COLOR 1,
20 SY-VLINE,
22 'CUSTOMER NAME ' COLOR 1,
60 SY-VLINE,
62 'CITY ' COLOR 1,
100 SY-VLINE,
102 'COUNTRY '.
ULINE.

SELECT * FROM KNA1 WHERE


KUNNR = P_KUNNR
ORDER BY KUNNR.
WRITE:/1 KNA1-KUNNR HOTSPOT ON COLOR 1,
20 SY-VLINE,
22 KNA1-NAME1,
60 SY-VLINE,
62 KNA1-ORT01,
100 SY-VLINE,
102 KNA1-LAND1.
HIDE KNA1-KUNNR.
CLEAR KNA1.
ENDSELECT.
ULINE.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN '1'.
DT.
WRITE:/1 'SALES ORDER ' color 3 ,
20 SY-VLINE,
22 'SALES ORDER DATE ' COLOR 3,
60 SY-VLINE,
62 'ENTRY TIME ' COLOR 3,
100 SY-VLINE,
102 'CREATED BY ' COLOR 3.
ULINE.
SELECT * FROM VBAK WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 VBAK-VBELN HOTSPOT ON COLOR 3,
20 SY-VLINE,
22 VBAK-ERDAT,
60 SY-VLINE,
62 VBAK-ERZET,
100 SY-VLINE,
102 VBAK-ERNAM.

HIDE VBAK-VBELN.
CLEAR VBAK.
ENDSELECT.
ULINE.
WHEN '2'.
DT.
WRITE:/1 'ITEM NUMBER ',
20 SY-VLINE,
22 'MATERIAL NUMBER ',
60 SY-VLINE,
62 'MATERIAL GROUP ',
100 SY-VLINE,
102 'PRICE '.
ULINE.

SELECT * FROM VBAP WHERE VBELN = VBAK-VBELN.

WRITE:/1 VBAP-POSNR,
20 SY-VLINE,
22 VBAP-MATNR HOTSPOT ON COLOR 5,
60 SY-VLINE,
62 VBAP-MATKL,
100 SY-VLINE,
102 VBAP-NETWR.
HIDE VBAP-MATNR.
CLEAR VBAP.
ENDSELECT.

ULINE.

WHEN '3'.
WRITE:/60 'MATERIAL DETAILS '.
ULINE.
WRITE:/1 'MATERIAL NUMBER ',
20 SY-VLINE,
22 'MATERIAL NAME ',
60 SY-VLINE.
ULINE.
SELECT * FROM MAKT WHERE MATNR = VBAP-MATNR
AND
SPRAS = 'E'.
WRITE:/1 MAKT-MATNR,
20 SY-VLINE,
22 MAKT-MAKTX,
60 SY-VLINE.
ENDSELECT.
ULINE.

ENDCASE.

INTERACTIVE LISTS USING AT-USER COMMAND


******************************************

REPORT ZINTERACTIVE11 NO STANDARD PAGE HEADING.

TABLES: KNA1,
LFA1,
MARA.

DEFINE DT.
WRITE:/100 'DATE : ', SY-DATUM.
WRITE:/100 'TIME : ', SY-UZEIT.
ULINE.
END-OF-DEFINITION.
DT.
SKIP 9.
WRITE:/60 'M A I N M E N U '.
ULINE /60(20).
WRITE:/60 '1. CUSTOMER REPORT '.
SKIP.
WRITE:/60 '2. VENDOR REPORT '.
SKIP.
WRITE:/60 '3. MATERIAL REPORT '.
SKIP.
WRITe:/60 '4. EXIT '.
SKIP.
WRITE:/60 'ENTER YOUR CHOICE BETWEEN 1 TO 4... IN COMMAND FIELD'.

AT USER-COMMAND.

CASE SY-UCOMM.
WHEN '1'.
DT.
WRITE:/60 'CUSTOMER REPORT ' COLOR 1.
WHEN '2'.
DT.
WRITE:/60 'VENDOR REPORT ' COLOR 3.
WHEN '3'.
DT.
WRITE:/60 'MATERIAL REPORT ' COLOR 5.
WHEN '4'.
LEAVE TO SCREEN 0.

WHEN OTHERS.
MESSAGE I888(SABAPDOCU) WITH 'ENTER CHOICE BETWEEN 1 TO 4'.
ENDCASE.

************** PROGRAM - 1

START-OF-SELECTION.
€€SET PF-STATUS 'TEST'.
€€WRITE:€€'Basic list, SY-LSIND =', sy-lsind.
AT LINE-SELECTION.
€€WRITE:€€'LINE-SELECTION, SY-LSIND =', sy-lsind.
AT USER-COMMAND.
€€CASE sy-ucomm.
€€€€WHEN 'TEST'.
€€€€€€WRITE:€€'TEST, SY-LSIND =', sy-lsind.
€€ENDCASE.

***************** PROGRAM - 2
REPORT€€DEMO_LIST€NO€STANDARD€PAGE€HEADING.
DATA€num€TYPE€i.
WRITE€:€/€'List€of€Square€Numbers€between€One€and€Hundred'.
WRITE€:€/€'List€of€Cubic€Numbers€between€One€and€Hundred'.
TOP-OF-PAGE.
€€ WRITE€'Choose€a€line!'.
€ULINE.
AT€LINE-SELECTION.
€€€€ CASE€sy-lilli.
€€€€€€WHEN€3.€€€€€€€€
DO€100€TIMES.
€€€€€€€€€€num€=€sy-index€**€2.
€€€€€€€€€€WRITE:€/€sy-index,€num.
€€€€€€€€ENDDO.€€€€€€
WHEN€4.
€€€€€€€€DO€100€TIMES.€€€€€€€€€
€num€=€sy-index€**€3.
€€€€€€€€€€WRITE:€/€sy-index,€num.
€€€€€€€€ENDDO.
€€€€ENDCASE.

************* PROGRAM - 3

REPORT€€DEMO_LIST€NO€STANDARD€PAGE€HEADING€LINE-SIZE€40€LINE-COUNT€5(1).
DATA:€lin€TYPE€i,€
pag€TYPE€i,
col€TYPE€i,
len€TYPE€i,
lin1€TYPE€i,
top€TYPE€i,
tit€TYPE€i,€
head€TYPE€i,
end€TYPE€i.
DO€4€TIMES.
€€WRITE€/€sy-index.
ENDDO.
TOP-OF-PAGE.
€€WRITE€'Demonstration€of€DESCRIBE€LIST€statement'.
€€ULINE.
END-OF-PAGE.
€ULINE.

AT€LINE-SELECTION.
€€NEW-PAGE€LINE-COUNT€0.
€€WINDOW€STARTING€AT€1€13€ENDING€AT€40€25.
€€DESCRIBE€LIST:€NUMBER€OF€LINES€lin€INDEX€0,
NUMBER€OF€PAGES€pag€INDEX€0.
€€WRITE:€'Results€of€DESCRIBE€LIST:€'.
€€ULINE€AT€/(25). €
WRITE:€/€'Lines:€',€lin,
/€'Pages:€',€pag. €€SKIP.
€€DESCRIBE€LIST€LINE€sy-lilli€PAGE€pag€INDEX€0.
€€WRITE:€/€'Line',€(1)€sy-lilli,€'is€on€page',€(1)€pag. €€SKIP.
€€DESCRIBE€LIST€PAGE€pag€INDEX€0€LINE-SIZE€col €LINE-COUNT€len LINES€lin FIRST-LINE€€lin1

€€€TOP-LINES€€€top TITLE-LINES€tit HEAD-LINES€€head END-LINES€€€end.


€€WRITE:€'Properties€of€Page',€(1)€pag,€':', €€
/€'Width:€€€€€€€',€€col, €
/€'Length:€€€€€€',€€len,
/€'Lines:€€€€€€€',€€lin,
/€'First€Line:€€',€€lin1, €
/€'Page€Header:€',€€top,
/€'Title€Lines:€',€€tit, €
/€'Header€Lines:',€€head,
/€'Footer€Lines:',€€end.

TOP-OF-PAGE DURING LINE-SELECTION


*********************************
WRITE€€'Basic List'.
AT LINE-SELECTION.
€€WRITE€€'Secondary List'.
TOP-OF-PAGE DURING LINE-SELECTION.
€€CASE sy-lsind.
€€€€ WHEN 1.
€€€€€€ WRITE 'First Secondary List'.
€€€€ WHEN 2.
€€€€€€ WRITE 'Second Secondary List'.
€€€€ WHEN OTHERS.
€€€€€€ WRITE: 'Secondary List, Level:', sy-lsind.€€
ENDCASE.
€€ULINE.

MENUPAINTER - SE41

REPORT ZSETPF NO STANDARD PAGE HEADING.


SET PF-STATUS 'ZMENU'.
WRITE:/ 'MENUS'.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'CUST'.
WRITE:/ 'CUSTOMER REPORT '.
WHEN 'VEND'.
WRITE:/ 'VENDOR REPORT '.
WHEN 'MAT'.
WRITE:/ 'MATERIAL REPORT '.
WHEN 'FLI'.
WRITE:/ 'FLIGHT DETAILS '.
WHEN 'XD03'.
CALL TRANSACTION 'XD03'.
WHEN 'XK03'.
CALL TRANSACTION 'XK03'.
WHEN 'MM03'.
CALL TRANSACTION 'MM03'.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.

ALV'S - ABAP LIST VIEWER


==========================

BASIC ALV
BLOCKED ALV
HIERARICHAL ALV
GRID ALV

*********
BASIC ALV
***********

TABLES: SFLIGHT.

DATA IT_SFLIGHT LIKE STANDARD TABLE OF SFLIGHT INITIAL SIZE 0 WITH HEADER LINE.

SELECT * FROM SFLIGHT INTO TABLE IT_SFLIGHT.


CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'SFLIGHT'
* IS_LAYOUT =
* IT_FIELDCAT =
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IR_SALV_LIST_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_SFLIGHT
* 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.

GRID ALV
***********

Vous aimerez peut-être aussi