Download - Drill Down
-
8/11/2019 Drill Down
1/27
A Drill Down Screen
First the user double-clickson a record.
Then a drill down list is
created showing datarelevant to the record initiallyselected by the user.
-
8/11/2019 Drill Down
2/27
The Challenges
First Challenge:
How did the ABAP/4 code know whichrecord the user has double-clicked?
Second Challenge:
How is this record sent back as criteriato an ABAP/4 SELECT statement?
-
8/11/2019 Drill Down
3/27
Illustration
(The AT LINE-SELECTION Event)
A NEWABAP/4
ReservedWord
SYNTAX: AT LINE-SELECTION
When the user double-clicks aline in the report, the AT LINE-SELECTION event occurs.
Determining Whenthe User Is RequestingAdditional Information
-
8/11/2019 Drill Down
4/27
The SY-LISEL System Field
A NEWABAP/4
System Field
SYSTEM FIELD: SY-LISEL
When the user selects a line in thereport, SY-LISEL is updated withthe text from that line.
The Contents of SY-LISEL:
VEND012 QUALITY FABRICATION HOMESTEAD
Determining WhichRecords the User IsRequesting Additional Information Upon
-
8/11/2019 Drill Down
5/27
Coding Example
AT LINE-SELECTION and SY-LISEL
This code is continued on the next page.
REPORT Y190XX02.
TABLES: LFA1.
SELECT * FROM LFA1.WRITE: / LFA1-LIFNR, LFA1-NAME1, LFA1-ORT01.ENDSELECT.
-
8/11/2019 Drill Down
6/27
Coding Example
AT LINE-SELECTION and SY-LISEL
*--------BEGIN OF AT LINE-SELECTION EVENT-----------------------------------*
AT LINE-SELECTION.CHECK SY-LSIND = 1.WINDOW STARTING AT 10 4
ENDING AT 77 12.WRITE: / THE USER DOUBLE-CLICKED A LINE IN THE REPORT.WRITE: / SY-LISEL.
*---------END OF AT LINE-SELECTION EVENT-------------------------------------*
-
8/11/2019 Drill Down
7/27
AT LINE-SELECTION and SY-
LISELFirst double-click ona record.
Then a second drill down list
is created showing data relevantto the record you had initiallyselected.
If you double-click here, willanother drill windowappear? Why or why not?
-
8/11/2019 Drill Down
8/27
Limitations of the SY-LISEL
System Field
The contents of SY-LISEL:
VEND012 QUALITY FABRICATION HOMESTEAD
We cant send an entire string to an ABAP/4 SELECT statement.
SELECT * FROM BSIK WHERE LIFNR =VEND012
However, if we could somehow send onlyindiv idual f ields from the selected record, wewould then process that data with an ABAP/4
SELECT statement.
VEND012
-
8/11/2019 Drill Down
9/27
The HIDE ABAP/4 Reserved
Word
SYNTAX: HIDE[:] ,.
SELECT * FROM LFA1.WRITE: / LFA1-LIFNR, LFA1-NAME1, LFA1-ORT01.HIDE: LFA1-LIFNR.
ENDSELECT.
A NEWABAP/4
ReservedWord
Extracting IndividualFieldsfrom the Record Chosen bythe User
-
8/11/2019 Drill Down
10/27
The HIDE Memory Area
LFA1 WORK AREA
RECORD # 2WRITE: / HIDE
SCREEN MEMORY
SELECT * FROM LFA1.WRITE: / LFA1-LIFNR, LFA1-NAME1, LFA1-ORT01.HIDE: LFA1-LIFNR.
ENDSELECT.
-
8/11/2019 Drill Down
11/27
SELECT * FROM LFA1.WRITE: / LFA1-LIFNR, LFHIDE: LFA1-LIFNR.
ENDSELECT.
The HIDE Memory Area
(Showing the Index)
MEMORY
LFA1-LIFNR
no valueno valueVEND011VEND012VEND013
INDEX
12345
This is what the HIDE memoryarea and LFA1 work arealook like after the SELECTstatement on above hasfinished processing.
LFA1 WORK AREA
RECORD # 3
-
8/11/2019 Drill Down
12/27
SELECT * FROM LFA1.WRITE: / LFA1-LIFNR, LFA1-NAME1, LFA1-ORT01.HIDE: LFA1-LIFNR, LFA1-TELF1.
ENDSELECT. HIDE MEMORY
LFA1-LIFNRno valueno valueVEND011VEND012
VEND013
INDEX1234
5
LFA1-NAME1no valueno value555-1111555-2222
555-3333
The HIDE Memory Area
(with More than One Field Stored)
If we used the HIDEcommand to hide bothLIFNR and TELF1, ourHIDE memory areawould look like this.
-
8/11/2019 Drill Down
13/27
The HIDE Index Numbers
VEND012
INDEX1234
MEMORY
LFA1 WORK AREA
LINE 4 from the screen corresponds
with INDEX 4 from the HIDE memory area.
The Correlation between the HIDE Memory Area andLine Numbers
LFA1-LIFNRno valueno value
VEND011VEND012VEND013
INDEX12
345
-
8/11/2019 Drill Down
14/27
Coding Example
Using the HIDE ABAP/4 Reserved Word
REPORT Y190XX02.TABLES: LFA1, BSIK.
SELECT * FROM LFA1.WRITE: / LFA1-LIFNR, LFA1-NAME1, LFA1-ORT01.HIDE: LFA1-LIFNR, LFA1-TELF1.
ENDSELECT.
-
8/11/2019 Drill Down
15/27
What Happens When the System
Hides Values?DATASOURCE
field string
TABLEWORK AREA
HIDE MEMORY
LFA1-IFNR
no valueno valueVEND011VEND012VEND013
INDEX
12345
SCREENlist 0
1 (header)2 (uline)3 VEND011 Star Craft Metal
4 VEND012 Quality Fabr.5 VEND013 Euro Output SA
LFA1-TELF1
no valueno value555-1111555-2222555-3333
-
8/11/2019 Drill Down
16/27
Coding Example
Using the HIDE ABAP/4 Reserved Word
LFA1 WORK AREA
?
*-------BEGIN OF AT LINE-SELECTION EVENT-----------------*AT LINE-SELECTION.CHECK SY-LSIND = 1.
WINDOW STARTING AT 10 4ENDING AT 77 12.
SELECT * FROM BSIK WHERE LIFNR = LFA1-LIFNR.WRITE: / LFA1-LIFNR, BSIK-BELNR.ENDSELECT.*-------END OF AT LINE-SELECTION EVENT--------------------*
Remember... This isreferencing the workarea! The contents ofthe work area are
dependent uponwhich line youdouble-clicked in theon-screen report.
-
8/11/2019 Drill Down
17/27
What Happens When the User
Selects a Valid Line?
data available for further processing
TABLE WORK AREA(Field String)
HIDE MEMORY
LFA1-IFNRno valueno valueVEND011VEND012VEND013
INDEX12345
SCREENlist 0
LFA1-TELF1no valueno value555-1111555-2222555-3333
VEND011
555-1111
OldData
OldData
OldData
OldData
OldData
OldData
OldData
OldData
OldData
1 (header)2 (uline)3 VEND011 Star Craft Metal
4 VEND012 Quality Fabr.5 VEND013 Euro Output SA
-
8/11/2019 Drill Down
18/27
Challenges Revisited
Second Challenge:
How is this record sent back as criteria toan ABAP/4 SELECT statement?
METHOD: HIDE memory area.
First Challenge:
How did the ABAP/4 code know which
record the user has double-clicked?
METHOD: Combination AT LINE-SELECTION and HIDE memory area.
-
8/11/2019 Drill Down
19/27
Is the User Selecting a Valid
Line in the Report?Restart the program anddouble-click the header.
-
8/11/2019 Drill Down
20/27
Is the User Selecting a Valid
Line in the Report?Restart the program and double-clickon the header. What happens?
Where does this data come from?
-
8/11/2019 Drill Down
21/27
What Happens When the User
Clicks on an Invalid Line First?
no data written from hide into work area.
last record read by select statement is still in work area:still available for further processing.
HIDE MEMORY
LFA1-IFNRno valueno value
VEND011VEND012VEND013
INDEX12
345
SCREENlist 0
LFA1-TELF1no valueno value
555-1111555-2222555-3333
VEND-OR2
999-9999 PA USA 19103
Mr.Jones $100
NET30Phila.
123Main
BaconInc.
1 (header)2 (uline)3 VEND011 Star Craft Metal
4 VEND012 Quality Fabr.5 VEND013 Euro Output SA
-
8/11/2019 Drill Down
22/27
Illustration
The END-OF-SELECTION Event
SYNTAX: END-OF-SELECTION.
A NEWABAP/4
ReservedWord
After all of the otherevents have been
executed END-OF-SELECTION
occurs here
But before the data isactually painted to
the screen
-
8/11/2019 Drill Down
23/27
Coding Example
Using the END-OF-SELECTIONEvent to Clear the Work AreaHIDE LFA1-LIFNR.
ENDSELECT.
*---------BEGIN OF END-OF-SELECTION EVENT---------------*END-OF-SELECTION.CLEAR LFA1-LIFNR.*---------END OF END-OF-SELECTION EVENT------------------*
*---------BEGIN OF AT-LINE SELECTION EVENT---------------*AT LINE-SELECTION.CHECK SY-LSIND = 1.CHECK NOT LFA1-LIFNR IS INITIAL.
Enter this code.1
2
-
8/11/2019 Drill Down
24/27
Click on a Valid Line First
data available for further processing
TABLE WORK AREA(Field String)
HIDE MEMORY
LFA1-IFNRno valueno valueVEND011VEND012VEND013
INDEX12345
SCREENlist 0
LFA1-TELF1no valueno value555-1111555-2222555-3333
VEND011
555-1111
1 (header)2 (uline)3 VEND011 Star Craft Metal4 VEND012 Quality Fabr.
5 VEND013 Euro Output SA
-
8/11/2019 Drill Down
25/27
Then Click on an Invalid Line
TABLE WORK AREA(Field String)
HIDE MEMORY
LFA1-IFNRno valueno valueVEND011VEND012VEND013
INDEX12345
SCREENlist 0
LFA1-TELF1no valueno value555-1111555-2222555-3333
VEND011
555-1111
1 (header)2 (uline)3 VEND011 Star Craft Metal4 VEND012 Quality Fabr.
5 VEND013 Euro Output SA
nothing moved from hide memory area;data hidden on the last line selected by the user
is still in the work area
-
8/11/2019 Drill Down
26/27
Coding Example
Clearing the Work Area after Each UseHIDE LFA1-LIFNR.ENDSELECT.
*---------BEGIN OF END-OF-SELECTION EVENT---------------*END-OF-SELECTION.
CLEAR LFA1-LIFNR.*---------END OF END-OF-SELECTION EVENT------------------*
*---------BEGIN OF AT-LINE SELECTION EVENT---------------*AT LINE-SELECTION.CHECK SY-LSIND = 1.CHECK NOT LFA1-LIFNR IS INITIAL.
WINDOW STARTING AT 10 4ENDING AT 77 12.
SELECT * FROM BSIK WHERE LIFNR = LFA1-LIFNR.WRITE: / LFA1-LIFNR, BSIK-BELNR.CLEAR LFA1-LIFNR.*---------END OF AT LINE-SELECTION EVENT------------------*
1
2
Enter this code.
-
8/11/2019 Drill Down
27/27
Flow of Data
DATASOURCE
SCREEN#1
HIDEMEMORY
WORK AREA