24381031 abap event driven programming
TRANSCRIPT
-
ABAP Chapter 4Event-driven ProgrammingSelection Screen
-
Event-driven Programming
-
Application Driven Programming
REPORT ztest.DATA: today TYPE D.today = 19991231.today = today + 1.WRITE: / today.
-
Event-Driven ProgrammingData tmp type i.Start-of-Selection. Write: / This is . Write: / Basic List.At line-selection. Write: / This is . Write: Detail List.
-
EventsSTART-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-SELECTIONStart-of-selection. Write : Basic List.At Line-selection. Write : Detail List.Basic listDoubleClick
-
Navigating Between ListsBasic list
Detail list 20
Exit
Detail list 1
Detail list 2
ABAP EditorBackCancel
-
Detail List and SY-LSINDStart-of-selection. write: Basic List.AT Line-selection. CASE sy-lsind. WHEN 1. write: Detail List #1. WHEN 2. write: Detail List #2. ENDCASE.
Detail list 2SY-LSIND = 2
Detail list 1SY-LSIND = 1
Basic list
-
At Line SelectionTables 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.Start-of-Selection. Select * from customers. write : / customers-name. Hide customers-name. Endselect.At line-selection. Write: You Choose : , customers-name.
HIDE area of list level 1
line Field name Value1 customers-name John 2 customers-name Peter3 customers-name David
JohnPeterDavidList Buffer
-
Hide Area in ListDialog WP TaskHandlerDYNPRO ProcessorABAP ProcessorDatabaseLocal MemoryMemory SpaceDB Interface List bufferResult Set MemoryDatabase ServerApplication ServerJohnPeterDavid Basic List
-
At Line Selection(Hide Statement)
HIDE area of list level 1
line Field name Value1 customers-name John 2 customers-name Peter3 customers-name David
JohnPeterDavidYou choose : Peter
Basic ListDetail ListSY-LILLI = 23 | Peter | .... Customers Structure1234At Line-selection5
-
At Line Selection(Hide Statement)Tables customers.Start-of-Selection. Select * from customers. write : / customers-id,customers-name. Hide: customers-id,customers-name. Endselect.At line-selection. Write: You Choose : , customers-id, customers-name.HIDE area of list level 1line Field name Value1 customers-id 00000001 1 customers-name John2 customers-id 000000022 customers-name Peter00000001 John00000002 Peter00000003 DavidList Buffer
-
At Line Selection(Hide Statement)
HIDE area of list level 1
line Field name Value 2 customers-id 00000002 2 customers-name Peter3 customers-id 00000003
00000001 John00000002 Peter00000003 DavidYou choose : 00000002 Peter
Basic ListDetail ListSY-LILLI = 22 | Peter | .... Customers Structure1234At Line-selection5
-
At Line SelectionTables: spfli,sflight.Start-of-selection. Select * from spfli. write : / spfli-carrid, spfli-connid, spfli-cityto. Hide : spfli-carrid, spfli-connid. Endselect.At Line-selection. select * from sflight where carrid = spfli-carrid and connid = spfli-connid. write: / spfli-carrid, spfli-connid,sflight-fldate. endselect.Basic List (SPFLI)Detail List (SFLIGHT)
-
ExercisezcustomerszsalesBasic ListDetail Listzcustomers-idzcustomers-namezsales-cust_idzsales-prod_idzsales-qty
-
Hide Statement (Report Heading)
Tables customers.Top-of-page. write: / Customers Name. uline.Start-of-Selection. Select * from customers. write : / customers-name. Hide customers-name. Endselect.At line-selection. Write: You Choose : , customers-name.
HIDE area of list level 1
line Field name Value3 customers-name John 4 customers-name Peter5 customers-name David
Customers Name-----------------------------JohnPeterDavidList Buffer
-
At Line Selection(Hide Statement)
HIDE area of list level 1
line Field name Value3 customers-name John 4 customers-name Peter5 customers-name David
Customers Name-----------------------------JohnPeterDavidYou choose : Peter
Basic ListDetail ListSY-LILLI = 43 | Peter | .... Customers Structure1234At Line-selection5
-
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 HeadingStart-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,sflight-fldate. endselect. ...
-
ExerciseBasic ListDetail Listzsaleszsalerepszproductszsales-cust_idzsales-prod_idzsales-qtyzsales-sale_idzsalereps-sale_idzsalereps-namezproducts-on_handzproducts-p_id
-
Drill-Down 2 Levels Example12Detail list level 1 (ZSALES)Detail list level 2 (ZPRODUCTS)Basic list (ZCUSTOMERS)
-
Program ExampleSTART-OF-SELECTION. SELECT * FROM zcustomers. WRITE: / zcustomers-id COLOR 4 HOTSPOT, 15 zcustomers-name. HIDE: zcustomers-id,zcustomers-name. ENDSELECT. CLEAR zcustomers-id.
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. HIDE: zsales-prod_id. ELSE. WRITE: /30 zsales-prod_id HOTSPOT, 45 zsales-qty. HIDE: zsales-prod_id. ENDIF. 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. IF sy-subrc = 0. WRITE: / zproducts-p_id,15 zproducts-prod_name,38 zproducts-on_hand. ENDIF. CLEAR zsales-prod_id. ENDIF. ENDCASE.
Hide Level 1Hide Level 2Drill Down Level 1Drill Down Level 2
-
ExerciseBasic ListDrill-down Level 1Drill-down Level 2Drill-down Level 3SCARRSPFLISFLIGHTSBOOK
-
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 FunctionSystem function do not trigger event AT USER-COMMAND%EX = Exit %PC = Save to file%SC = Find%SC+ = Find next%ST = Save in report treeBACK = BackRW = CancelPRI = PrintP- = Scroll to previous pageP-- = Scroll to first page P+ = Scroll to next pageP++ = Scroll to last page
-
Alternative with AT USER-COMMANDREPORT 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 CodeREPORT 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 CodeREPORT 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 ScreenPARAMETERS StatementSELECT-OPTIONS Statement
-
parameters
-
ParametersPARAMETERS: 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, tmp6(5) TYPE N.
-
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-TextBy default , the System displays the name of the selection as text on the Selection ScreenYou Should use the Text element/Selection texts function to store a text line for each Selection Criterion.
-
Check boxParameters tmp as checkbox default X.
-
Radio ButtonParameters: test1 Radiobutton group grp1, test2 Radiobutton group grp1.
-
Required field with ParametersParameters 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. . . .Endselect.
-
Select-Options customers ( name) M Smith A John SELECT Select * from customers where (name like M%) or (name = Smith) or (name between A and John).
-
Select-OptionsTables customers.Select-options sname for customers-name.START-OF-SELECTION.Select * from customers Where name in sname.
-
Internal Structure of Select-optionssname
-
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 NB = Not Between
-
Internal Structure of Select-options sname
-
SELECT-OPTIONSsnameSelect * from customers where name in sname.Select * from customers where (name like M%) or (name = Smith) or (name between A and John).
Transform
-
INITIALIZATION EventTables 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 OptionsSelect-options sname for customers-name obligatory. Select-options sname for customers-name no-extension.
Select-options sname for customers-name no intervals.
-
Designing Selection ScreenSelection-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 ScreenSelection-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 InputTables 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 = pcode.
-
ABAP Exercise
-
ABAP Program Processing StepsTABLES sflight.PARAMETERS nextday LIKE sy-datum.INITIALIZATION. nextday = sy-datum + 1.AT SELECTION-SCREEN. IF nextday < sy-datum. MESSAGE e000(38) WITH Please enter date >= today. ENDIF.START-OF-SELECTION. SELECT * FROM sflight WHERE ... fldate = nextday
-
ABAP Practice