330 likes | 479 Views
MINS298c ABAP/4 Programming. Introduction to Data Types Chapter 4 Fall 1998. Overview. Introduction Declaration Data Types elementary complex Working with Data Types. Data Objects. Data Object. Fixed. Variable. ?. ?. Data Objects. Data Object. Fixed. Variable. Literals.
E N D
MINS298cABAP/4 Programming Introduction to Data Types Chapter 4 Fall 1998
Overview • Introduction • Declaration • Data Types • elementary • complex • Working with Data Types
Data Objects Data Object Fixed Variable ? ?
Data Objects Data Object Fixed Variable Literals Constants
Fixed Data Objects (Constants and Literals) CONSTANTS: company_name(3) type c value ‘SAP’. Literals are inside quotes WRITE: ‘Happiness is SAP’.
HierarchyVariable Data Objects Table Record Field Table is made up of Records(s) is made up of have a structure Field(s) is made up of characters have a type
Fields are Variables • may be declared at any point within the program • may use up to 30 characters in name • may use hyphen, but prefer dash for readability • may not use an ABAP reserved word • follow rules of scope definition
Program DATA A, B, C Write A Write F Form DATA X, Y, Z Write A Write F Form DATA D, E, F Write A Write F Normal Scope Line 1 2 3 4 5 6 According to normal rules of “scope,” which Write statements are legal and which are not?
Data Types Pre-defined (p,i,f,c,n,d,t,x) User defined Elementary Structured Structured type Table type
Data Types Pre-defined (p,i,f,c,n,d,t,x) User defined Elementary Structured Structured type Table type
Pre-defined Types(with default length and value) • Character Default Justify • c 1 space left • n 1 ‘0’ left • Numbers • i 4 0 right • p 8 0 right • f 8 0.0 right • Date (d) 8 ‘00000000’ left • Time (t) 6 ‘000000’ left • Hexadecimal (x) 1 ‘00’ left
Data Types Pre-defined (p,i,f,c,n,d,t,x) User defined Elementary Structured Structured type Table type
Three Ways to Declare Types • pre-defined elementary types • non-elementary types • existing fields
Types and Data Statement DATA var[(length)] [TYPE type] [DECIMALS num] [VALUE init] TYPES BEGIN OF rec-name [fieldname]… END OF rec-name DATA var LIKE table-field [VALUE init]
Similar Declarations Data: customer_name(25) type c, vendor_name(25) type c. TYPES name(25) type c. DATA: customer_name type name, vendor_name type name. DATA: customer_name(25) type c, vendor_name LIKE customer_name.
What are the defaults here? What are the default type and length of ‘flag’ and of ‘my_number’? DATA: flag, my_number. What is contained in ‘c_alpha’ and ‘n_alpha’? DATA: c_alpha(3) type c value ‘5’, n_alpha(3) type n value ‘5’.
Character: C vs N • C = justifies left and has trailing blanks • N = justifies right and has leading zeroes What happens with: DATA: var-1(4) type c value ‘1234’, var-2(4) type n value ‘1234’. WRITE:/ var-1, var-2.
What are the defaults here? What is contained in ‘c_alpha’ and ‘n_alpha’? DATA: c_alpha(3) type c value ‘5’, n_alpha(3) type n value ‘5’.
Numbers • i - cannot have explicit length • p - 15 digits, can explicitly define decimal places DATA Dollars TYPE p DECIMALS 2. • f - handles exponential, subject to rounding errors sometimes (1.0/3.0)*3.0 is not 1.0
Dates and Times • Date = d stored as YYYYMMDD with initial value of 00000000 • Time = t stored as HHMMSS with 000000 • Why store in this format?
01/01/58 01/20/58 01/01/60 12/01/97 01/20/00 19580101 19580120 19600101 19971201 20000120 Which is easier to sort?
Computations on Dates DATA my_date LIKE sy-datum. MOVE 19580420 to my_date. my_date = my_date - 1. Write:\ my_date. Displays 19580419
Offset and Length Format • One may address sub-parts of elementary data objects by specifying the offset and length !!! MOVE sy-datum+6(2) to hold_day 1 9 5 8 0 4 2 0 sy-datum(0) sy-datum(6)
Parameter Statement • Parameter statement creates a set of variable fields which are presented to the user for input on the selection screen. • PARAMETERS var TYPE type [DEFAULT value]
Data Types Pre-defined (p,i,f,c,n,d,t,x) User defined Elementary Structured Structured type Table type
Records • records or structures are called field strings in ABAP • use BEGIN OF and END OF • nesting is allowed • use TYPES command
Field String Types TYPES : BEGIN OF ADDRESS, street(20) type c, city(20) type c, state(10) type c, zip type I, END OF ADDRESS. How large (in characters) is the record ADDRESS?
Using Field String Types TYPES : BEGIN OF ADDRESS, street(20) type c, city(20) type c, state(10) type c, zip type I, END OF ADDRESS. DATA: Old_Address TYPE Address, New_Address TYPE Address. MOVE Old_Address to New_Address.
Using Field String Types TYPES : BEGIN OF ADDRESS, street(20) type c, city(20) type c, state(10) type c, zip type I, END OF ADDRESS. DATA: Old_Address TYPE Address, New_Address TYPE Address. Old_Address Street City State Zip Old_Address-City Old_Address-Zip
Data Types Pre-defined (p,i,f,c,n,d,t,x) User defined Elementary Structured Structured type Table type
Creating Tables • Use the occurs statement • not necessary to identify the amount, may use zero (0). • Format TYPES tablename TYPE type OCCURS 0. • Example TYPES Address_Table TYPE ADDRESS OCCURS 0. Really creates the structure which will be allocated and maintained dynamically.
Declarative Statements • DATA • TYPE • CONSTANTS • PARAMETERS
Assignments • Create program(s) to • demonstrate the justification difference between the n and c types • determine whether or not our system has a rounding error in the fixed point arithmetic • find the difference between the current date and your birthday • prove that one day before 01/01/98 is 12/31/97 using the ABAP date types • use the parameter statement to interactively ask for two dates and display the difference between them.