*&---------------------------------------------------------------------*
*& Report ZSTUDY
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSTUDY.
*data type
*Type Length Range Initial Value Description
*C 1 1-65535Byte Space
*D 8 8Byte ‘00000000’
*F 8 8Byte 0
*I 4 between -2^31 and 2^31-1 0
*N 1 1-65535Byte ‘00…0’
*P 8 1-16Byte 0 Packed
*T 6 6Byte ‘000000’
*X 1 1-65535Byte X’00’
*define variable
*name type length structure
data: count type i.
data: string(10) type c.
*define constant
constants PI type p decimals 5 value '3.14159'.
write PI."value is '3.14159'
*constants PIT type p decimals 5 value '3.141594'.
*write PIT."value is '3.14159'
*constants PI type p decimals 5 value '3.141596'.
*write PI."value is '3.14160'
*system data
*space
skip 1.
write '--space :'.
write SPACE.
write '---'.
skip.
*SY-SUBRC
write 'the value of the system return is:'.
write SY-SUBRC."if program run wine ,return 0
skip.
*SY-UNAME
write 'the logon id is:'.
write SY-UNAME.
skip.
*SY-DATUM ststem datetime
write 'the system date is :'.
write SY-DATUM.
skip.
*SY-UZEIT
write 'the system time is :'.
write SY-UZEIT.
skip.
*SY-TCODE
write 'the key name is:'.
write SY-TCODE.
skip.
*type
types: begin of product,
pid type i,
pname(100) type c,
end of product.
data : prodcuttest type product.
data :userid type product-pid.
data :username like sy-uname.
*like
data :uname like sy-uname.
data :utime like sy-datum.
*data
data : begin of producttype,
ptid type i,
ptname(100) type c,
end of producttype.
*constants
constants: cname(10) type c value 'constants'.
write cname.
skip.
*statics
*the "statics" statement can only be used in forms,functions,and class-moethods.
*statics sname type i.
*i=10.
*write i.
*tables
"define tables that be used.
*tables mara.
*select * from mara.
*write: /'the select value'.
*write:/4 mara-MANDT,mara-MATNR.
*endselect.
skip.
data:number type i value '12345678',
str(50) type c value 'abcdefghijklmnopqrst'.
write:(5) number ,/(6) str.
*skip
skip.
skip 10.
*skip to line 5.
*include
INCLUDE <SYMBOL>.
INCLUDE <ICON>.
WRITE: / 'Phone Symbol:' ,SYM_PHONE AS SYMBOL.
WRITE: / 'Alarm Icon:' , ICON_ALARM AS ICON.
*dd/mm/yyyy
skip.
data:dtime type i value '112030'.
write dtime USING EDIT MASK '__:__:__'.
skip.
write dtime using edit mask '$___:___'.
*check box
data : flag1 type c value 'a',
flag2 type c value 'b'.
write:/'check flag1:', flag1 as icon.
write:/'check flag2:', flag2 as icon.
write:/'check flag1:', flag1 as line.
write:/'check flag2:', flag2 as line.
write:/'check flag1:', flag1 as symbol.
write:/'check flag2:', flag2 as symbol.
write:/'check flag1:', flag1 as checkbox.
write:/'check flag2:', flag2 as checkbox.
*icon line symbol checkbox
skip.
*Processing Data
*Assign Value MOVE <F1> TO <F2>
data:dstr(20) type c value 'abcdefghijklmn',
dstr2(20) type c.
move dstr to dstr2.
write: dstr2.
skip.
*Offset
dstr2 = dstr+3(10).
write:dstr2."value is 'defghijklm'
skip.
*Field String MOVE –CORRESPONDING <Strings1> TO <String2>.
DATA: BEGIN OF ADDRESS,
FIRSTNAME(10) VALUE 'LULU',
LASTNAME(10) VALUE 'CHOU',
TEL(12) VALUE '4660570',
END OF ADDRESS.
DATA:BEGIN OF NAME,
FIRSTNAME(10),
LASTNAME(10),
E_MAIL(30),
END OF NAME.
MOVE-CORRESPONDING ADDRESS TO NAME.
skip.
*variable CALL BY VALUE :WRITE (<f>) TO <g>
DATA: dNAME(20) VALUE 'SOURCE',
SOURCE(10) VALUE 'LILY',
TARGET(10).
WRITE (dNAME) TO TARGET.
WRITE / TARGET.
skip.
*clear CLEAR <f>
*if...elseif...else endif
*constants:inumber type i value 1.
data : inumber type i value 1.
write inumber.
if inumber = 0.
write:'the value is ',inumber.
elseif inumber = 1.
write:'i am crazy'.
elseif inumber = 2.
write:'i am tom'.
else.
write:'i am wangyoubo'.
endif.
skip.
*case<f> .when<v1>.Statement1.when<v2>.Statement2.....when<vn>.Statementn.when others.Statement. endcase.
case inumber.
when 0.
write:'i am 0'.
when 1.
write:'i am 1'.
when 2.
write:'i am 2'.
when others.
write:'i am other number'.
endcase.
*do
*DO [n TIMES] [VARYING <f> FROM <start> TO <end>.
* <loop block>
* ENDDO.
SKIP.
DO 3 TIMES .
WRITE : 'HELLO WORLD !'.
ENDDO .
*data : s type i.
*DATA : I TYPE I.
*DO VARYING inumber FROM 0 TO 10.
* s = s + I.
*ENDDO.
* WRITE: / ,'1+2+3+…+10=',S
*WHILE <Condition>.<Statement Block> ENDWHILE
SKIP.
DATA : WC TYPE I VALUE 0.
DATA : SUM TYPE I VALUE 0.
WHILE WC <= 100.
SUM = SUM + WC .
WC = WC + 1.
ENDWHILE.
WRITE:'0+1+2+3+......+100=',SUM.
WRITE SY-SUBRC.
SKIP.
*CONTINUE
DO 3 TIMES .
IF SY-INDEX = 2 .
WRITE : 'I AM TOO TWO !'.
CONTINUE.
ENDIF.
WRITE : SY-INDEX.
ENDDO.
SKIP.
*CHECK
DATA : DINT TYPE I VALUE 0 .
DO 5 TIMES .
DINT = DINT + 1.
CHECK DINT = 4 .
WRITE : 'I AM VERY GOOD ! THANK YOU !'.
ENDDO.
SKIP.
*EXIT
DO 10 TIMES .
IF SY-INDEX = 4 .
WRITE 'I AM 4 ,PLEASE STOP !'.
EXIT.
ENDIF .
WRITE : SY-INDEX.
ENDDO.
SKIP.
**R/3对于存放在Relation Database 的数据可使用 SQL 指令读取或处理, 指令种类
** 可分成DDL(Data Definition Language)指令, 如CREATE, 及DML(Data Manipulation Language)
** , 如 SELECT及INSERT等, 处理方式分成 OPEN SQL 及 NATIVE SQL, 前者在处理时,
** Database 与Command Interpreter 间有一Buffer区, 如SELECT * FROM…, 后者则直接处理
** 数据库, 如 EXCE SQL SELECT…等, 有两个重要的系统变量:
** SY-SUBRC: 传回 0 表成功执行指令, 4 表未找到符合条件数据
** SY-DBCNT: 正处理的数据笔数
*tables :ZWYB_PRODUCT .
*
**select * from ZWYB_PRODUCT where pid = 10.
**write : ZWYB_PRODUCT-pid.
**endselect.
*
*
*data : wa type ZWYB_PRODUCT.
*select * from ZWYB_PRODUCT into wa .
*write wa-pid.
*endselect.
浙公网安备 33010602011771号