Download
select options n.
Skip this Video
Loading SlideShow in 5 Seconds..
SELECT-OPTIONS PowerPoint Presentation
Download Presentation
SELECT-OPTIONS

SELECT-OPTIONS

132 Vues Download Presentation
Télécharger la présentation

SELECT-OPTIONS

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. SELECT-OPTIONS

  2. SELECT-OPTIONS Syntax TABLEScustomers. SELECT-OPTIONSidFORcustomers-id. START-OF-SELECTION.

  3. 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’).

  4. SELECT-OPTIONS TABLES customers. SELECT-OPTIONS sname FOR customers-name. START-OF-SELECTION. SELECT * FROM customers WHERE name IN sname.

  5. Internal Structure of Select-options sname Internal Table Header Line

  6. 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

  7. Internal Structure of SELECT-OPTIONS sname

  8. SELECT-OPTIONS sname SELECT * FROM customers WHERE (name LIKE ‘M%’) OR (name = ‘Smith’) OR (name BETWEEN ‘A’ AND ‘John’). Transform SELECT * FROM customers WHERE name IN sname.

  9. SELECT-OPTIONS Options SELECT-OPTIONS sname FOR customers-name OBLIGATORY.

  10. INITIALIZATION Event PARAMETERS: nextday LIKE sy-datum. INITIALIZATION. nextday = sy-datum + 1. START-OF-SELECTION. WRITE nextday.

  11. Checking User Input TABLES customers. DATApcode_len TYPEi. PARAMETERS pcode LIKE customers-postcode. AT SELECTION-SCREEN. pcode_len = STRLEN(pcode). IF pcode_len <> 5. “ IF STRLEN( pcode ) <> 5. MESSAGE e000(38)WITH ‘Please enter postcode 5 characters’. ENDIF. START-OF-SELECTION. SELECT * FROM customers WHERE postcode = pcode. …

  12. ABAP Program Processing Steps TABLES sflight. PARAMETERSnextdayLIKEsy-datum. INITIALIZATION. nextday = sy-datum + 1. ATSELECTION-SCREEN. IFnextday<sy-datum. MESSAGE e000(38)WITH ‘Please enter date >= today’. ENDIF. START-OF-SELECTION. SELECT * FROM sflight WHERE ... fldate = nextday… … 1 2 4 3 5

  13. ABAP Exercise

  14. Modularization

  15. Modularization • Subroutine • Function Module

  16. Subroutine START-OF-SELECTION. PERFORM routine1. PERFORM routine2. PERFORM routine2. FORM routine1. SELECT * FROM customers INTO TABLE tab. ENDFORM. FORM routine2. LOOP AT tab. WRITE: / tab-id,tab-name. ENDLOOP. ENDFORM. START-OF-SELECTION. SELECT * FROM customers INTO TABLE tab. LOOP AT tab. WRITE: / tab-id,tab-name. ENDLOOP. LOOP AT tab. WRITE: / tab-id,tab-name. ENDLOOP.

  17. Modularization • Avoid redundancy • Make your program easy to read & improve their structure • Re-use Program components

  18. Subrountine (Program Structure) REPORT ZSR2. *Data declaration TYPES: BEGIN OF strucbkpf, belnr TYPE bkpf-belnr, gjahr TYPE bkpf-gjahr , END OF strucbkpf. DATA tab TYPE TABLE OF strucbkpf with header line. *Processing block START-OF-SELECTION. PERFORM read_data. PERFORM display_data. PERFORM display_data. *&---------------------------------------------------------------------* FORM read_data. SELECT belnr gjahr INTO TABLE tab FROM bkpf WHERE blart = 'SA'. ENDFORM. *&---------------------------------------------------------------------* FORM display_data. LOOP AT tab. WRITE: / tab-belnr,tab-gjahr. ENDLOOP. ENDFORM. REPORT ZSR1. *Data declaration TYPES: BEGIN OF strucbkpf, belnr TYPE bkpf-belnr, gjahr TYPE bkpf-gjahr , END OF strucbkpf. DATA tab TYPE TABLE OF strucbkpf with header line. *Processing block START-OF-SELECTION. SELECT belnr gjahr INTO TABLE tab FROM bkpf WHERE blart = 'SA'. LOOP AT tab. WRITE: / tab-belnr,tab-gjahr. ENDLOOP. LOOP AT tab. WRITE: / tab-belnr,tab-gjahr. ENDLOOP.

  19. Calling and Defining Subroutines REPORT ztest. * Global Data TABLES customers. DATA tmp TYPE i. * Subroutine Calls PERFORM routine1. PERFORM routine2. * Subroutine FORM routine1. DATA tmp1 TYPE p.“Local data WRITE tmp. ENDFORM. FORM routine2. DATA tmp2(10).“Local data ….. ENDFORM.

  20. Call by Value a1 Copy f1 Memory Space(Subroutine)

  21. Call by Value DATA: a1,a2. a1 = ‘A’. a2 = ‘A’. PERFORM routine1 USING a1 a2. .…... FORM routine1 USING VALUE(f1) VALUE(f2). f1 = ‘X’. f2 = ‘X’. ENDFORM.

  22. Call by Reference a3 Address Passing f3 Memory Space(Subroutine)

  23. Call by Reference DATA: a3. a3 = ‘A’. PERFORM routine2 USING a3. .…... FORM routine2 USING f3. f3 = ‘X’. ENDFORM.

  24. Call by Value and Result a4 Copy Copy f4 Memory Space(Subroutine)

  25. Call by Value and Result DATA: a4,a5. a4 = ‘A’. a5 = ‘A’. PERFORM routine3 USING a4 a5. .…... FORM routine3 CHANGING VALUE(f4) VALUE(f5). f4 = ‘X’. f5 = ‘X’. ENDFORM.

  26. Passing Structure as Parameters TABLES sflight. SELECT * FROM sflight. PERFORM subproc USING sflight. ENDSELECT. FORM subproc USING rec LIKE sflight. WRITE: / rec-carrid. ENDFORM.

  27. Passing Internal Table as Parameters DATA: tab LIKE sflight OCCURS 0 WITH HEADER LINE. … PERFORM sub TABLES tab.

  28. Passing Internal Table as Parameters FORM sub TABLES tab1 STRUCTURE tab. LOOP AT tab1. WRITE: / tab1-carrid. ENDLOOP. ENDFORM.

  29. Function Module

  30. Function Module : SE37 • Function Group • Function Library - Admin - Import/Export Parameter - Source Code - Main Program - Documentation

  31. Creating Function Module

  32. Function Group • When you create a function module, you must assign it to function group • The function group is the main program in which a function module is embedded • The function group is a program type F,and not executable • The entire function group is loaded in a program the first time that you call a function module that belongs to it

  33. Function Group • is a container for function modules • When a function module is called,the entire function group is loaded into the session of the program • Function group is used to define global data for function modules • A DATA statement in the global memory of a function group is shared by all the function modules that belong to that function group

  34. Function Group : SE37

  35. Function Group: SE80

  36. Function Module • is a code that can be called from any ABAP program,therefore making it a globally accessible object • ABAP program pass data to function module from import parameters or internal tables • Function module receives data from a program,process the information in its own code, and then sends back information in the export parameters or internal tables

  37. Function Module : SE37

  38. Function Module

  39. Function Module : Import

  40. Function Module : Export

  41. Function Module : Source Code (Logic) FUNCTION z_fmtest. result = number1 ** number2. ENDFUNCTION.

  42. Program Example I REPORT ztest. PARAMETERS: no1 TYPE i, no2 TYPE i. DATA result TYPE i. START-OF-SELECTION. CALL FUNCTION ‘Z_FMTEST’ EXPORTING number1 = no1 number2= no2 IMPORTING result = result. WRITE: / result.

  43. Exercise : Function Module ABAP Program Function Module ?

  44. EXCEPTIONS

  45. Function Module FUNCTION z_fmtest. IF number1 > 9 AND number2 > 9. RAISE invalidnumber. ELSE. result = number1 ** number2. ENDIF. ENDFUNCTION.

  46. Example II : Exceptions Handler REPORT ztest. PARAMETERS: no1 TYPE i, no2 TYPE i. DATA result TYPE i. START-OF-SELECTION. CALL FUNCTION ‘Z_FMTEST’ EXPORTING number1 = no1 number2= no2 IMPORTING result = result EXCEPTIONS invalidnumber = 1. IF sy-subrc = 1. write: / ‘Please enter number < 10’. ELSEIF sy-subrc = 0. write: / result. ENDIF.

  47. Exercise : Exceptions ABAP Program Function Module ?

  48. EXCEPTIONS VS AT SELECTION-SCREEN REPORT ztest. PARAMETERS: no1 TYPE i, no2 TYPE i. AT SELECTION-SCREEN. IF no1 > 9 AND no2 > 9. MESSAGE e000(38) WITH ‘Please enter no < 10’. ENDIF. START-OF-SELECTION. CALL FUNCTION ‘Z_FMTEST’. ….. FUNCTION Z_FMTEST. IF number1 > 9 AND number2 > 9. RAISE invalidnumber. ELSE. result = number1 ** number2. ENDIF. ENDFUNCTION. VS

  49. Optional Function Module ABAP Program

  50. Structure in Function Module