小于
v1>=v2
大于等于
v1<=v2
小于等于
v1betweenv2andv3
在……之间
notv1betweenv2andv3
不在……之间
5.赋值语句
total=10.
mess='thisisatest!
'.
如果字符串中包括'号,用''进行付值,如:
mess='thisisa''test''!
'.
6.IF语句
ifi=2.
write'i等于2'.
[else.
write'i不等于2'.]
endif.
7.CASE语句
casei.类似于VFP中的DOCASE语句
when1.write'i=1'.
when2.write'i=2'.
[whenothers.write'i<>1andi<>2'.]
endcase.
8.DO语句
do[n]times.类似于VFP中的FOR语句
[执行代码]
enddo.
9.WHILE语句
while[条件].类似于VFP中的DOWHILE语句
[执行语句]
endwhile.
10.从数据库中取数据集
select*from数据表[where条件].
[操作语句]
endselect.
如:
select*fromt000[wheremandt<200].
write:
/t000-mandt,t000-mtext.
endselect.
11.取出单行记录
selectsingle*from数据表[where条件].注:
仅取出符合条件的第一行记录
selectsingle字段from数据表into变量[where条件].
12.WRITE语句
write:
[/][定位][数据1][,[定位][数据2]]……
[/]为插入一行空行,注意单独write一个[/]和在其它数据之前加[/]的效果是不一样的,单独的write[/]在插入空行后光标定位在空行的下面,在其它数据前加[/]在插入空行后光标定位于所插的空行。
13.ULINE语句
uline.在当前行下一行显示一直线。
ulinen.在当前行第n列显示一直线。
uline/n.在当前行下一行第n列显示一直线。
uline和write‘|’一起使用可实现画表格的功能。
14.SKIP语句
SKIP.光标跳到下一行。
SKIPn.光标跑到下n行。
SKIPtolinen.光标跳到第n行。
15.定义常量
作用:
定义一些不会改变的数据,如一年的月数、圆围率等。
语法:
constantsc1[(l)][typet][decimalsd]value'xxx'.
或者:
constantsc1likecvvalue'xxx'.
例如:
constantspitypepvalue‘3.14’.
16.定义结构
(1)基本结构
data:
beginof结构名,
f1[(l)][typet][decimalsd][value'xxx'],
f2[(l)][typet][decimalsd][value'xxx'],
……
endof结构名.
(2)结构中包含另一结构
data:
beginof结构名,
f1[(l)][typet][decimalsd][value'xxx'],
f2[(l)][typet][decimalsd][value'xxx'],
f3like另一结构名,
……
endof结构名.
(3)定义结构的另一种写法:
databeginof结构名.
dataf1[(l)][typet][decimalsd][value'xxx'].
dataf2[(l)][typet][decimalsd][value'xxx'].
[includestructure另一个结构.]
dataendof结构名.注:
此种写法data后可以加冒号也可以不加
例如:
data:
beginofperson,
educ(10)typec,
train(10)typec,
endofperson.
data:
beginofemployee,
code(10)typec,
name(10)typec,
department(20)typec,
addresslikeperson,"person为另一个结构名
……
endofemployee.
employee-code='1001'.
employee-name='张三'.
employee-department='IT部'.
employee-person-educ='本科'
employee-person-train='工程师'
write:
/employee-code,employee-name,employee-department,employee-person-educ.
write:
/employee.
17.TYPES语句
将结构定义成数据类型,这样在程序中可以象定义一个变量那样简单地定义一个结构。
语法同定义结构,只是把data换成types即可。
如:
types:
beginofemployee,
code(10)typec,
name(10)typec,
endofemployee.
types:
address(50)typec.
data:
emptypeemployee.“使用TYPES定义的结构类型
data:
myaddtypeaddress.“使用TYPES定义的变量类型
emp-code='1001'.
emp-name='张三'.
myadd='thisisaaddress'.
write:
/emp.
write:
/myadd.
18.LIKE语句
tables:
t000.
data:
p(20)typec.
data:
p1liket000."p1拥有了和t000相同的结构
data:
p2liket000-mandt."p2的定义等同于t000中mandt这个字段
"的定义
data:
p3likep."p3的定义和p相同,为20长度的字符串
data:
t111liket000occurs0withheaderline."定义一个和t000一样的内表
19.输入参数
要让一个变量成为可输入的参数,只需在定义变量时把data改为parameters即可。
parametersp1likev1...
...[default'xxx'][obligatory][lowercase]
[ascheckbox][radiobuttongroupg].
使用DEFAULT后缀为参数指定缺省值。
使用obligatory后缀来标识参数为必输项。
输入参数默认会把输入的字符转为大写,如果要去掉该转换,使用lowercase后缀。
使用ascheckbox后缀使参数以复选框的形式出现。
使用复选框的参数一定为长度为1的字符串,其内容只能为'X'或'',如:
parameters:
p1ascheckbox.
parameters:
p2ascheckboxdefault'X'.
使用radiobuttongroupg后缀使输入参数以单选框的形式出现。
使用单选框的参数一定为长度为1的字符串,其内容只能为'X'或'',如:
parameters:
p1radiobuttongroup1.
parameters:
p2radiobuttongroup1.
parameters:
p3radiobuttongroup2.
parameters:
p4radiobuttongroup2default'X'.
20.分块语句
selection-screenbeginofblock块名withframetitle[text-(titlename)].
parameters:
v1(10)typec.
parameters:
aaliket000-mandt."将出现圆钮选择项,也可以自定义圆钮选择项
parameters:
v2(10)typecmatchcodeobjectzhlp.
这是自定义的圆钮选择项,在SE38中创建搜索帮助,zhlp为创建的搜索帮助名称
selection-screenendofblock块名.
selection-screenuline.“在输入屏幕上画线
21.定义内表
内表的定义和结构很相似,所差别只是内表需要指定记录的条数。
data:
beginof内表名occursn,
f1[(l)][typet][decimalsd][value'xxx'],
f2[(l)][typet][decimalsd][value'xxx'],
...
endof内表名.
n为该内表的记录条数,不过当内表的记录数超过了该数值后,内表会自动的填大这个数目,定义该数值只是为了系统的效率考虑,如果n为0,则系统会在一开始就分配8KB的空间。
内表同时也可以以已存在的数据表或结构进行定义,格式为:
da