24381031 abap event driven programming

Upload: ajit-keshari-pradhan

Post on 16-Oct-2015

42 views

Category:

Documents


0 download

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