Drill Down

download Drill Down

of 27

Transcript of 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