ABAP Chapter 4
 Event-driven Programming
 Selection Screen
Event-driven Programming
Application Driven Programming
 REPORT ztest.
 DATA: today TYPE D.
 today = ‘19991231’.
 today = today + 1.
 WRITE: / today.
Event-Driven Programming

 Data tmp type i.
 Start-of-Selection.
   Write: / ‘This is ’.
   Write: / ‘Basic List’.
 At line-selection.
   Write: / ‘This is ’.
     Write: ‘Detail List’.
Events
   START-OF-SELECTION.
   END-OF-SELECTION.
   TOP-OF-PAGE.
   TOP-OF-PAGE DURING LINE-
    SELECTION.
   END-OF-PAGE.
   AT LINE-SELECTION.
   AT USER-COMMAND.
   INITIALIZATION.
   AT SELECTION-SCREEN.
AT LINE-SELECTION Event
   (Drill-down Report)
AT LINE-SELECTION
Start-of-selection.
 Write : ‘Basic List’.
At Line-selection.
 Write : ‘Detail List’.
                    Double
                     Click

     Basic list
Navigating Between Lists

                   Exit                         Detail list 20

ABAP Editor



                              Detail list 2


                                                          Cancel
                   Detail list 1

      Basic list                              Back
Detail List and SY-LSIND
                                Detail list 2
Start-of-selection.             SY-LSIND = 2

 write: ‘Basic List’.
AT Line-selection.
  CASE sy-lsind.                Detail list 1
                                SY-LSIND = 1
   WHEN 1.
     write: ‘Detail List #1’.
   WHEN 2.
     write: ‘Detail List #2’.   Basic list
  ENDCASE.
At Line Selection
Tables customers.
Start-of-Selection.
  Select * from customers.
      write : / customers-name .
  Endselect.
At line-selection.
   Write: ‘You Choose :’ , customers-
  name.
At Line Selection(Hide Statement)
Tables customers.               List Buffer

Start-of-Selection.             John
                                Peter
  Select * from customers.      David
      write : / customers-name.
      Hide customers-name.
  Endselect.                HIDE area of list level 1
At line-selection.          line Field name       Value
   Write: ‘You Choose :’ ,  1
                            2
                                  customers-name
                                  customers-name
                                                   John
                                                   Peter

         customers-name. 3 customers-name David
Hide Area in List
Application Server   Dialog WP                  Local Memory
                                                  Memory Space
                        TaskHandler
                                                   Customers Structure

                                                   3    | David | ....
                      ABAP Processor

                                                  List buffer
                      DYNPRO Processor                 Basic List
                                                       John
                                                       Peter   HIDE area of list level 1
                                                               line  Field name            Value
                                                       David
                        DB Interface                           1
                                                               2
                                                                    customers-name
                                                                    customers-name
                                                                                           John
                                                                                           Peter
                            Result Set Memory                  3    customers-name         David




 Database Server
                      Database
At Line Selection(Hide Statement)
                                       Detail List
    Basic List
     John                                  You choose : Peter
     Peter                                                                5
     David
                                                                   At Line-selection
        1
SY-LILLI = 2
                                                                               4
                   HIDE area of list level 1            Customers Structure
               2
                   line   Field name         Value
                                                        3     | Peter | ....
                   1      customers-name      John
                   2      customers-name      Peter      3
                   3      customers-name      David
At Line Selection(Hide Statement)
Tables customers.                List Buffer

Start-of-Selection.               00000001 John
                                  00000002 Peter
  Select * from customers.        00000003 David

    write : / customers-id,customers-
  name.
    Hide: customers-id,customers-name. 1
                             HIDE area of list level
                             line Field name       Value
  Endselect.                 1    customers-id     00000001
                             1    customers-name    John
At line-selection.           2     customers-id    00000002
                             2    customers-name     Peter
   Write: ‘You Choose :’ , customers-id,
                             …
At Line Selection(Hide Statement)
    Basic List                              Detail List
                                            You choose : 00000002 Peter
     00000001 John
     00000002 Peter                                                                 5
     00000003 David

                                                                              At Line-selection
        1
SY-LILLI = 2
                                                                                          4
                      HIDE area of list level 1                   Customers Structure
               2
                      line   Field name           Value            2      | Peter | ....
                      …      …                     …
                      2
                      2
                             customers-id
                             customers-name
                                                  00000002
                                                   Peter
                                                                   3
                      3      customers-id          00000003
                      …
At Line Selection
Tables: spfli,sflight.               Basic List (SPFLI)

Start-of-selection.
  Select * from spfli.
    write : / spfli-carrid, spfli-
   connid, spfli-cityto.
    Hide : spfli-carrid, spfli-
   connid.
  Endselect.                         Detail List (SFLIGHT)
At Line-selection.
  select * from sflight where
   carrid = spfli-carrid
                      and connid =
Exercise
Basic List



                                      Detail List
zcustomers-id



                zcustomers

          zcustomers-name
                                  zsales-cust_id
                                                                    zsales-qty
                                                   zsales-prod_id




                                                   zsales
Hide Statement (Report Heading)
                                                      List Buffer
Tables customers.
                                            Customers Name
Top-of-page.                                -----------------------------
  write: / ‘Customers Name’.                John
                                            Peter
  uline.                                    David
Start-of-Selection.
  Select * from customers.
       write : / customers-name.
      Hide customers-name.
                                        HIDE area of list level 1
  Endselect.
At line-selection.                      line Field name               Value
                                        3      customers-name          John
   Write: ‘You Choose :’ , customers-name. customers-name
                                        4                              Peter
                                                  5    customers-name   David
At Line Selection(Hide Statement)
                                                   Detail List
    Basic List
     Customers Name
     -----------------------------
                                                       You choose : Peter
     John                                                                             5
     Peter
     David
                                                                               At Line-selection
          1
SY-LILLI = 4
                                                                                           4
                               HIDE area of list level 1            Customers Structure
                   2
                               line   Field name         Value
                                                                    3     | Peter | ....
                               3      customers-name      John
                               4      customers-name      Peter      3
                               5      customers-name      David
Invalid Line Selection
   …
TOP-OF-PAGE.
   …
Hide: spfli-carrid, spfli-connid.
…
Endselect.
Clear: spfli-carrid,spfli-connid.
At Line-selection.
 Select * From sflight
           Where carrid = spfli-carrid and
                  connid = spfli-connid.
     Write: / spfli-carrid, spfli-connid
   ,sflight-fldate.
 Endselect.
 Clear: spfli-carrid,spfli-connid.
Page Heading
Start-of-selection.
  Write: ‘Basic List’.
At Line-selection.
  Write: ‘Detail List’.
Top-of-page.
  Write: ‘Header-Basic List’.
Top-of-page During Line-selection.
  Write: ‘Header-Detail List’.
Detail List Page Heading
...
top-of-page during line-selection.
 case sy-lsind.
   when 1.
      write: / ‘Detail List Header #1’.
   when 2.
      write: / ‘Detail List Header #2’.
  endcase.
.....
.....
...
             Column Selection
data: fieldname(30).
...
start-of-selection.
 select * from spfli.
  write: / spfli-carrid,15 spfli-connid, 25 spfli-cityto.
  hide: spfli-carrid,spfli-connid.
 endselect.
at line-selection.
 case sy-lsind.
  when 1.
   get cursor field fieldname.
   case fieldname.
    when 'SPFLI-CARRID'.
     select single * from scarr where carrid = spfli-carrid.
     if sy-subrc = 0.
       write: / spfli-carrid,scarr-carrname.
     endif.
    when 'SPFLI-CONNID'.
     select * from sflight where carrid = spfli-carrid and
                                    connid = spfli-connid.
Column Selection : Value
...
data: fieldname(30),fieldvalue(30).
...
start-of-selection.
 select * from spfli.
  write: / spfli-carrid,15 spfli-connid, 25 spfli-cityto.
  hide: spfli-carrid,spfli-connid.
 endselect.
at line-selection.
case sy-lsind.
  when 1.
  get cursor field fieldname value fieldvalue.
  case fieldname.
   when 'SPFLI-CARRID'.
     select single * from scarr where carrid = spfli-carrid.
     if sy-subrc = 0.
       write: / spfli-carrid,scarr-carrname.
     endif.
   when 'SPFLI-CONNID'.
    ...
Creating List in Modal Dialog Box

    ...
    at line-selection.
     window starting at 10 10
             ending at 65 20.
     select * from sflight
         where carrid = spfli-carrid and
                connid = spfli-connid.
          write: / sflight-carrid,sflight-connid,sfligh
        fldate.
     endselect.
     ...
Exercise
                 Basic List
                             zsales
                                              zsales-qty
zsales-cust_id         zsales-prod_id
                                                            zsales-sale_id




                       zproducts
                                                    Detail List                    zsalereps

                                        zproducts-on_hand
                    zproducts-p_id
                                                               zsalereps-sale_id      zsalereps-name
Drill-Down 2 Levels Example



                               Detail list level 2 (ZPRODUCTS)


Basic list (ZCUSTOMERS)          2
            1



Detail list level 1 (ZSALES)
Program Example
                     START-OF-SELECTION.
                      SELECT * FROM zcustomers.
                       WRITE: / zcustomers-id COLOR 4 HOTSPOT, 15 zcustomers-name.
                       HIDE: zcustomers-id,zcustomers-name.
                      ENDSELECT.
                      CLEAR zcustomers-id.                          Hide Level 1
                     AT LINE-SELECTION.
                      CASE sy-lsind.
                       WHEN 1.
                        GET CURSOR FIELD fieldname.
                        IF fieldname = 'ZCUSTOMERS-ID'.
                         SELECT * FROM zsales WHERE cust_id = zcustomers-id.
                          IF sy-dbcnt = 1.
                            WRITE: / zcustomers-id,15 zcustomers-name,30 zsales-prod_id HOTSPOT, 45 zsales-qty.
Drill Down Level 1          HIDE: zsales-prod_id.
                          ELSE.
                            WRITE: /30 zsales-prod_id HOTSPOT, 45 zsales-qty.
                            HIDE: zsales-prod_id.
                          ENDIF.                              Hide Level 2
                         ENDSELECT.
                         CLEAR: zcustomers-id,zsales-prod_id.
                        ENDIF.
                       WHEN 2.
                        GET CURSOR FIELD fieldname.
                        IF fieldname = 'ZSALES-PROD_ID'.
                         SELECT SINGLE * FROM zproducts WHERE p_id = zsales-prod_id.
Drill Down Level 2       IF sy-subrc = 0.
                          WRITE: / zproducts-p_id,15 zproducts-prod_name,38 zproducts-on_hand.
                         ENDIF.
                         CLEAR zsales-prod_id.
                        ENDIF.
                      ENDCASE.
Basic List


             Exercise
     SCARR




             Drill-down Level 1
                         SPFLI




                                  Drill-down Level 2
                                     SFLIGHT




                                                Drill-down Level 3
                                                         SBOOK
GUI Interface (User Interface)
GUI Interface
  SET PF-STATUS …. => GUI
Status
    SET TITLEBAR …. => GUI
Title
AT USER-COMMAND Event

 SET PF-STATUS ‘TEST’.
 ...
 AT USER-COMMAND.
    CASE sy-ucomm.
     WHEN ‘CODE1’.
         .
    WHEN ‘CODE2’.
       .
    ENDCASE.
Standard Toolbar : System Function
   System function do not trigger event AT USER-COMMAND
       %EX = Exit
       %PC = Save to file
       %SC = Find
       %SC+ = Find next
       %ST = Save in report tree
       BACK = Back
       RW   = Cancel
       PRI  = Print
       P-   = Scroll to previous page
       P--  = Scroll to first page
       P+   = Scroll to next page
       P++ = Scroll to last page
Alternative with AT USER-COMMAND
REPORT ZRSDEM002.
     .
 START-OF-SELECTION
  SET PF-STATUS ‘BASE’.
          .
          .
  AT USER-COMMAND.
   CASE SY-UCOMM.
     WHEN ‘CARR’.
       SET PF_STATUS SPACE. “Set to standard
  GUI interface
            .
      WHEN ‘FLIG’.
        SET PF-STATUS ‘FLIG’.
          WRITE …
GUI Status Excluding Function Code
REPORT ztest.
   ...
   SET PF-STATUS ‘0100’.
   ...
    AT USER-COMMAND.
      CASE SY-UCOMM.
       WHEN ‘LIST’.
        SET PF-STATUS ‘0100’ excluding ‘LIST’.
              .
       WHEN ‘DISP’.
        SET PF-STATUS ‘0100’ excluding ‘DISP’.
        WRITE …
.       ....
GUI Status Excluding Function Code

 REPORT ztest.
 DATA exctab(10) occurs 0 with header line.
   ....
 START-OF-SELECTION.
  SET PF-STATUS ‘0100’.
   ...
  exctab = ‘LIST’. APPEND exctab.
  exctab = ‘TEST’. APPEND exctab.
   ...
 AT USER-COMMAND.
  CASE SY-UCOMM.
    WHEN ‘LIST’.
      SET PF-STATUS ‘0100’ excluding exctab.
GUI TITLE
...
SET TITLEBAR ‘0100’.
ABAP Practice
Selection Screen
Selection Screen
   PARAMETERS Statement
   SELECT-OPTIONS Statement
parameters
Parameters
PARAMETERS: tmp1(10) TYPE C,
             tmp2(10) TYPE C lower
 case,
             tmp3 LIKE sy-datum
 default sy-datum,
             tmp4 TYPE D default
 ‘19991231’,
             tmp5 TYPE i,
Parameters Example
Tables customers.
Parameters pid like customers-id.
START-OF-SELECTION.
select single * from customers where id =
                       pid.
if sy-subrc = 0.
  write: / customers-name.
else.
  write: / ‘No data found’.
endif.
Selection-Text
   By default , the System displays the
    name of the selection as text on the
    Selection Screen
   You Should use the Text
    element/Selection texts function to store
    a text line for each Selection Criterion.
Check box

Parameters tmp as checkbox
        default ‘X’.
Radio Button
Parameters: test1 Radiobutton
               group grp1,
        test2 Radiobutton
               group grp1.
Required field with Parameters

Parameters tmp like sy-
             datum
             obligatory.
ABAP Exercise
select-options
Complex Selection (Select-options)
Tables spfli.
Select-options carrid for spfli-
              carrid.
START-OF-SELECTION.
Select * From spfli
   Where carrid in carrid.
         .
         .
         .
Select-Options

“ต้องการให้แสดงข้อมูล customers ของ
ลูกค้าที่มีชื่อ(คอลัมน์ name) ขึ้นต้นด้วย
ตัว ‘M’ และลูกค้าที่ชื่อ ‘Smith’ และลูกค้า
ที่ชื่ออยู่ระหว่าง ‘A’ กับ ‘John’ โดยใช้คำา
สั่ง SELECT”
Select * from customers
  where (name like ‘M%’) or
       (name = ‘Smith’) or
       (name between ‘A’ and
Select-Options

Tables customers.
Select-options sname for
customers-name.
START-OF-SELECTION.
Select *
  from customers
    Where name in sname.
Internal Structure of Select-options

    sname
     Sign   Option   Low   High
Internal Structure of Select-options
  Field    Value                          .

  Sign     I =    Include
           E =     Exclude
  Option   BT =    Between
           CP =    Contains Pattern
           EQ =    Equal
           GT =    Greater Than
           LT =    Less Than
           GE =    Grater Than or Equal
           LE =     Less Than or Equal
           NE =    Not Equal
Internal Structure of Select-options

   sname
     Sn
     ig    Ot n
            pio   Lw
                  o      Hh
                         ig

      I    CP      M*
      I    EQ     S it
                   mh
      I    BT      A     John
SELECT-OPTIONS
sname
 Sign   O tion
         p       Low      Hh
                          ig      Select * from customers
                                Transform
                                       where (name like ‘M%’) or
  I      CP       M*                       (name = ‘Smith’) or
  I      EQ      Smith                     (name between ‘A’ and ‘Jo
  I      BT       A      John




        Select * from
        customers
             where name
        in sname.
INITIALIZATION Event
Tables Customers.
Select-options sname for customers-name.
Initialization.
 sname-sign = ‘I’.
 sname-option = ‘EQ’.
 sname-low       = ‘Smith’.
 append sname.
Start-of-Selection.
  Select * from customers
             Where name in sname.
Select-options Options
Select-options sname for customers-
name obligatory.
Select-options sname for customers-
name no-extension.


Select-options sname for customers-
name no intervals.
Designing Selection Screen

Selection-screen begin of block test
with frame Title text-001.
          .
    Selection-screen uline.
    Selection-screen skip 3.
    Selection-screen comment 3(10)
text-001.
    Parameters month(2) type n.
          .
Selection-screen end of block test.
Designing Selection Screen




selection-screen begin of line.
 selection-screen comment 1(7) text-001.
 selection-screen position 9.
 parameters month(2) type n.
 selection-screen comment 16(6) text-002.
 parameters year(4) type n.
selection-screen end of line.
Designing Selection Screen
Selection-screen begin of block name1 with frame title text-001.
    Selection-screen begin of line.
        Parameters test1 radiobutton group test default ‘X’.
        Selection-screen comment 4(10) text-002.
        Selection-screen position 35.
        Parameters tcheck as checkbox.
        Selection-screen comment 37(15) text-003.
    Selection-screen end of line.
    Selection-screen begin of line.
        Parameters test2 radiobutton group test.
        Selection-screen comment 4(10) text-004.
    Selection-screen end of line.
Selection-screen end of block name1.
ABAP Exercise
Checking User Input
Tables customers.
Data pcode_len type i.
Parameters pcode like customers-postcode.
At selection-screen.
     pcode_len = strlen( pcode ).
     if pcode_len <> 5.
        message e000(38) with ‘Please enter
postcode 5 characters’.
     endif.
Start-of-Selection.
    select * from customers where postcode =
ABAP Exercise
ABAP Program Processing Steps
 TABLES sflight.
 PARAMETERS nextday LIKE sy-datum.
 INITIALIZATION.
  nextday = sy-datum + 1.
 AT SELECTION-SCREEN.
    IF nextday < sy-datum.
       MESSAGE e000(38) WITH ‘Please enter da
 >= today’.
    ENDIF.
 START-OF-SELECTION.
    SELECT * FROM sflight WHERE ... fldate =
 nextday…
     …
ABAP Practice

ABAP Event-driven Programming &Selection Screen

  • 1.
    ABAP Chapter 4 Event-driven Programming  Selection Screen
  • 2.
  • 3.
    Application Driven Programming REPORT ztest. DATA: today TYPE D. today = ‘19991231’. today = today + 1. WRITE: / today.
  • 4.
    Event-Driven Programming Datatmp type i. Start-of-Selection. Write: / ‘This is ’. Write: / ‘Basic List’. At line-selection. Write: / ‘This is ’. Write: ‘Detail List’.
  • 5.
    Events  START-OF-SELECTION.  END-OF-SELECTION.  TOP-OF-PAGE.  TOP-OF-PAGE DURING LINE- SELECTION.  END-OF-PAGE.  AT LINE-SELECTION.  AT USER-COMMAND.  INITIALIZATION.  AT SELECTION-SCREEN.
  • 6.
    AT LINE-SELECTION Event (Drill-down Report)
  • 7.
    AT LINE-SELECTION Start-of-selection. Write: ‘Basic List’. At Line-selection. Write : ‘Detail List’. Double Click Basic list
  • 8.
    Navigating Between Lists Exit Detail list 20 ABAP Editor Detail list 2 Cancel Detail list 1 Basic list Back
  • 9.
    Detail List andSY-LSIND Detail list 2 Start-of-selection. SY-LSIND = 2 write: ‘Basic List’. AT Line-selection. CASE sy-lsind. Detail list 1 SY-LSIND = 1 WHEN 1. write: ‘Detail List #1’. WHEN 2. write: ‘Detail List #2’. Basic list ENDCASE.
  • 10.
    At Line Selection Tablescustomers. Start-of-Selection. Select * from customers. write : / customers-name . Endselect. At line-selection. Write: ‘You Choose :’ , customers- name.
  • 11.
    At Line Selection(HideStatement) Tables customers. List Buffer Start-of-Selection. John Peter Select * from customers. David write : / customers-name. Hide customers-name. Endselect. HIDE area of list level 1 At line-selection. line Field name Value Write: ‘You Choose :’ , 1 2 customers-name customers-name John Peter customers-name. 3 customers-name David
  • 12.
    Hide Area inList Application Server Dialog WP Local Memory Memory Space TaskHandler Customers Structure 3 | David | .... ABAP Processor List buffer DYNPRO Processor Basic List John Peter HIDE area of list level 1 line Field name Value David DB Interface 1 2 customers-name customers-name John Peter Result Set Memory 3 customers-name David Database Server Database
  • 13.
    At Line Selection(HideStatement) Detail List Basic List John You choose : Peter Peter 5 David At Line-selection 1 SY-LILLI = 2 4 HIDE area of list level 1 Customers Structure 2 line Field name Value 3 | Peter | .... 1 customers-name John 2 customers-name Peter 3 3 customers-name David
  • 14.
    At Line Selection(HideStatement) Tables customers. List Buffer Start-of-Selection. 00000001 John 00000002 Peter Select * from customers. 00000003 David write : / customers-id,customers- name. Hide: customers-id,customers-name. 1 HIDE area of list level line Field name Value Endselect. 1 customers-id 00000001 1 customers-name John At line-selection. 2 customers-id 00000002 2 customers-name Peter Write: ‘You Choose :’ , customers-id, …
  • 15.
    At Line Selection(HideStatement) Basic List Detail List You choose : 00000002 Peter 00000001 John 00000002 Peter 5 00000003 David At Line-selection 1 SY-LILLI = 2 4 HIDE area of list level 1 Customers Structure 2 line Field name Value 2 | Peter | .... … … … 2 2 customers-id customers-name 00000002 Peter 3 3 customers-id 00000003 …
  • 16.
    At Line Selection Tables:spfli,sflight. Basic List (SPFLI) Start-of-selection. Select * from spfli. write : / spfli-carrid, spfli- connid, spfli-cityto. Hide : spfli-carrid, spfli- connid. Endselect. Detail List (SFLIGHT) At Line-selection. select * from sflight where carrid = spfli-carrid and connid =
  • 17.
    Exercise Basic List Detail List zcustomers-id zcustomers zcustomers-name zsales-cust_id zsales-qty zsales-prod_id zsales
  • 18.
    Hide Statement (ReportHeading) List Buffer Tables customers. Customers Name Top-of-page. ----------------------------- write: / ‘Customers Name’. John Peter uline. David Start-of-Selection. Select * from customers. write : / customers-name. Hide customers-name. HIDE area of list level 1 Endselect. At line-selection. line Field name Value 3 customers-name John Write: ‘You Choose :’ , customers-name. customers-name 4 Peter 5 customers-name David
  • 19.
    At Line Selection(HideStatement) Detail List Basic List Customers Name ----------------------------- You choose : Peter John 5 Peter David At Line-selection 1 SY-LILLI = 4 4 HIDE area of list level 1 Customers Structure 2 line Field name Value 3 | Peter | .... 3 customers-name John 4 customers-name Peter 3 5 customers-name David
  • 20.
    Invalid Line Selection … TOP-OF-PAGE. … Hide: spfli-carrid, spfli-connid. … Endselect. Clear: spfli-carrid,spfli-connid. At Line-selection. Select * From sflight Where carrid = spfli-carrid and connid = spfli-connid. Write: / spfli-carrid, spfli-connid ,sflight-fldate. Endselect. Clear: spfli-carrid,spfli-connid.
  • 21.
    Page Heading Start-of-selection. Write: ‘Basic List’. At Line-selection. Write: ‘Detail List’. Top-of-page. Write: ‘Header-Basic List’. Top-of-page During Line-selection. Write: ‘Header-Detail List’.
  • 22.
    Detail List PageHeading ... top-of-page during line-selection. case sy-lsind. when 1. write: / ‘Detail List Header #1’. when 2. write: / ‘Detail List Header #2’. endcase. ..... .....
  • 23.
    ... Column Selection data: fieldname(30). ... start-of-selection. select * from spfli. write: / spfli-carrid,15 spfli-connid, 25 spfli-cityto. hide: spfli-carrid,spfli-connid. endselect. at line-selection. case sy-lsind. when 1. get cursor field fieldname. case fieldname. when 'SPFLI-CARRID'. select single * from scarr where carrid = spfli-carrid. if sy-subrc = 0. write: / spfli-carrid,scarr-carrname. endif. when 'SPFLI-CONNID'. select * from sflight where carrid = spfli-carrid and connid = spfli-connid.
  • 24.
    Column Selection :Value ... data: fieldname(30),fieldvalue(30). ... start-of-selection. select * from spfli. write: / spfli-carrid,15 spfli-connid, 25 spfli-cityto. hide: spfli-carrid,spfli-connid. endselect. at line-selection. case sy-lsind. when 1. get cursor field fieldname value fieldvalue. case fieldname. when 'SPFLI-CARRID'. select single * from scarr where carrid = spfli-carrid. if sy-subrc = 0. write: / spfli-carrid,scarr-carrname. endif. when 'SPFLI-CONNID'. ...
  • 25.
    Creating List inModal Dialog Box ... at line-selection. window starting at 10 10 ending at 65 20. select * from sflight where carrid = spfli-carrid and connid = spfli-connid. write: / sflight-carrid,sflight-connid,sfligh fldate. endselect. ...
  • 26.
    Exercise Basic List zsales zsales-qty zsales-cust_id zsales-prod_id zsales-sale_id zproducts Detail List zsalereps zproducts-on_hand zproducts-p_id zsalereps-sale_id zsalereps-name
  • 27.
    Drill-Down 2 LevelsExample Detail list level 2 (ZPRODUCTS) Basic list (ZCUSTOMERS) 2 1 Detail list level 1 (ZSALES)
  • 28.
    Program Example START-OF-SELECTION. SELECT * FROM zcustomers. WRITE: / zcustomers-id COLOR 4 HOTSPOT, 15 zcustomers-name. HIDE: zcustomers-id,zcustomers-name. ENDSELECT. CLEAR zcustomers-id. Hide Level 1 AT LINE-SELECTION. CASE sy-lsind. WHEN 1. GET CURSOR FIELD fieldname. IF fieldname = 'ZCUSTOMERS-ID'. SELECT * FROM zsales WHERE cust_id = zcustomers-id. IF sy-dbcnt = 1. WRITE: / zcustomers-id,15 zcustomers-name,30 zsales-prod_id HOTSPOT, 45 zsales-qty. Drill Down Level 1 HIDE: zsales-prod_id. ELSE. WRITE: /30 zsales-prod_id HOTSPOT, 45 zsales-qty. HIDE: zsales-prod_id. ENDIF. Hide Level 2 ENDSELECT. CLEAR: zcustomers-id,zsales-prod_id. ENDIF. WHEN 2. GET CURSOR FIELD fieldname. IF fieldname = 'ZSALES-PROD_ID'. SELECT SINGLE * FROM zproducts WHERE p_id = zsales-prod_id. Drill Down Level 2 IF sy-subrc = 0. WRITE: / zproducts-p_id,15 zproducts-prod_name,38 zproducts-on_hand. ENDIF. CLEAR zsales-prod_id. ENDIF. ENDCASE.
  • 29.
    Basic List Exercise SCARR Drill-down Level 1 SPFLI Drill-down Level 2 SFLIGHT Drill-down Level 3 SBOOK
  • 30.
  • 31.
    GUI Interface SET PF-STATUS …. => GUI Status SET TITLEBAR …. => GUI Title
  • 32.
    AT USER-COMMAND Event SET PF-STATUS ‘TEST’. ... AT USER-COMMAND. CASE sy-ucomm. WHEN ‘CODE1’. . WHEN ‘CODE2’. . ENDCASE.
  • 33.
    Standard Toolbar :System Function  System function do not trigger event AT USER-COMMAND  %EX = Exit  %PC = Save to file  %SC = Find  %SC+ = Find next  %ST = Save in report tree  BACK = Back  RW = Cancel  PRI = Print  P- = Scroll to previous page  P-- = Scroll to first page  P+ = Scroll to next page  P++ = Scroll to last page
  • 34.
    Alternative with ATUSER-COMMAND REPORT ZRSDEM002. . START-OF-SELECTION SET PF-STATUS ‘BASE’. . . AT USER-COMMAND. CASE SY-UCOMM. WHEN ‘CARR’. SET PF_STATUS SPACE. “Set to standard GUI interface . WHEN ‘FLIG’. SET PF-STATUS ‘FLIG’. WRITE …
  • 35.
    GUI Status ExcludingFunction Code REPORT ztest. ... SET PF-STATUS ‘0100’. ... AT USER-COMMAND. CASE SY-UCOMM. WHEN ‘LIST’. SET PF-STATUS ‘0100’ excluding ‘LIST’. . WHEN ‘DISP’. SET PF-STATUS ‘0100’ excluding ‘DISP’. WRITE … . ....
  • 36.
    GUI Status ExcludingFunction Code REPORT ztest. DATA exctab(10) occurs 0 with header line. .... START-OF-SELECTION. SET PF-STATUS ‘0100’. ... exctab = ‘LIST’. APPEND exctab. exctab = ‘TEST’. APPEND exctab. ... AT USER-COMMAND. CASE SY-UCOMM. WHEN ‘LIST’. SET PF-STATUS ‘0100’ excluding exctab.
  • 37.
  • 38.
  • 39.
  • 40.
    Selection Screen  PARAMETERS Statement  SELECT-OPTIONS Statement
  • 41.
  • 42.
    Parameters PARAMETERS: tmp1(10) TYPEC, tmp2(10) TYPE C lower case, tmp3 LIKE sy-datum default sy-datum, tmp4 TYPE D default ‘19991231’, tmp5 TYPE i,
  • 43.
    Parameters Example Tables customers. Parameterspid like customers-id. START-OF-SELECTION. select single * from customers where id = pid. if sy-subrc = 0. write: / customers-name. else. write: / ‘No data found’. endif.
  • 44.
    Selection-Text  By default , the System displays the name of the selection as text on the Selection Screen  You Should use the Text element/Selection texts function to store a text line for each Selection Criterion.
  • 45.
    Check box Parameters tmpas checkbox default ‘X’.
  • 46.
    Radio Button Parameters: test1Radiobutton group grp1, test2 Radiobutton group grp1.
  • 47.
    Required field withParameters Parameters tmp like sy- datum obligatory.
  • 48.
  • 49.
  • 50.
    Complex Selection (Select-options) Tablesspfli. Select-options carrid for spfli- carrid. START-OF-SELECTION. Select * From spfli Where carrid in carrid. . . .
  • 51.
    Select-Options “ต้องการให้แสดงข้อมูล customers ของ ลูกค้าที่มีชื่อ(คอลัมน์name) ขึ้นต้นด้วย ตัว ‘M’ และลูกค้าที่ชื่อ ‘Smith’ และลูกค้า ที่ชื่ออยู่ระหว่าง ‘A’ กับ ‘John’ โดยใช้คำา สั่ง SELECT” Select * from customers where (name like ‘M%’) or (name = ‘Smith’) or (name between ‘A’ and
  • 52.
    Select-Options Tables customers. Select-options snamefor customers-name. START-OF-SELECTION. Select * from customers Where name in sname.
  • 53.
    Internal Structure ofSelect-options sname Sign Option Low High
  • 54.
    Internal Structure ofSelect-options Field Value . Sign I = Include E = Exclude Option BT = Between CP = Contains Pattern EQ = Equal GT = Greater Than LT = Less Than GE = Grater Than or Equal LE = Less Than or Equal NE = Not Equal
  • 55.
    Internal Structure ofSelect-options sname Sn ig Ot n pio Lw o Hh ig I CP M* I EQ S it mh I BT A John
  • 56.
    SELECT-OPTIONS sname Sign O tion p Low Hh ig Select * from customers Transform where (name like ‘M%’) or I CP M* (name = ‘Smith’) or I EQ Smith (name between ‘A’ and ‘Jo I BT A John Select * from customers where name in sname.
  • 57.
    INITIALIZATION Event Tables Customers. Select-optionssname for customers-name. Initialization. sname-sign = ‘I’. sname-option = ‘EQ’. sname-low = ‘Smith’. append sname. Start-of-Selection. Select * from customers Where name in sname.
  • 58.
    Select-options Options Select-options snamefor customers- name obligatory. Select-options sname for customers- name no-extension. Select-options sname for customers- name no intervals.
  • 59.
    Designing Selection Screen Selection-screenbegin of block test with frame Title text-001. . Selection-screen uline. Selection-screen skip 3. Selection-screen comment 3(10) text-001. Parameters month(2) type n. . Selection-screen end of block test.
  • 60.
    Designing Selection Screen selection-screenbegin of line. selection-screen comment 1(7) text-001. selection-screen position 9. parameters month(2) type n. selection-screen comment 16(6) text-002. parameters year(4) type n. selection-screen end of line.
  • 61.
    Designing Selection Screen Selection-screenbegin of block name1 with frame title text-001. Selection-screen begin of line. Parameters test1 radiobutton group test default ‘X’. Selection-screen comment 4(10) text-002. Selection-screen position 35. Parameters tcheck as checkbox. Selection-screen comment 37(15) text-003. Selection-screen end of line. Selection-screen begin of line. Parameters test2 radiobutton group test. Selection-screen comment 4(10) text-004. Selection-screen end of line. Selection-screen end of block name1.
  • 62.
  • 63.
    Checking User Input Tablescustomers. Data pcode_len type i. Parameters pcode like customers-postcode. At selection-screen. pcode_len = strlen( pcode ). if pcode_len <> 5. message e000(38) with ‘Please enter postcode 5 characters’. endif. Start-of-Selection. select * from customers where postcode =
  • 64.
  • 65.
    ABAP Program ProcessingSteps TABLES sflight. PARAMETERS nextday LIKE sy-datum. INITIALIZATION. nextday = sy-datum + 1. AT SELECTION-SCREEN. IF nextday < sy-datum. MESSAGE e000(38) WITH ‘Please enter da >= today’. ENDIF. START-OF-SELECTION. SELECT * FROM sflight WHERE ... fldate = nextday… …
  • 66.