107 ABAP4语法祥解简体中文Word格式文档下载.docx
- 文档编号:1394987
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:53
- 大小:941.57KB
107 ABAP4语法祥解简体中文Word格式文档下载.docx
《107 ABAP4语法祥解简体中文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《107 ABAP4语法祥解简体中文Word格式文档下载.docx(53页珍藏版)》请在冰点文库上搜索。
<
:
变量类型及长度;
初值
小数位数
Example1:
DATA:
COUNTERTYPEPDECIMALS3,
NAME(10)TYPECVALUE‘Delta’,
S_DATETYPEDVALUE‘19991203’.
Example2:
BEGINOFPERSON,
NAME(10)TYPEC,
AGETYPEI,
WEIGHTTYPEPDECIMALS2,
ENDOFPERSON.
另外,有关DATA宣告的指令还有:
CONSTANTS(宣告常数)、STATICS(临时变量宣告).
3.系统专用变量说明
系统内部专门创建了SYST这个STRUCTURE,里面的字段存放系统变量,常用的系统变量有:
SY-SUBRC:
系统执行某指令后,表示执行成功与否的变量,’0’表示成功
SY-UNAME:
当前使用者登入SAP的USERNAME;
SY-DATUM:
当前系统日期;
SY-UZEIT:
当前系统时间;
SY-TCODE:
当前执行程序的Transactioncode
SY-INDEX:
当前LOOP循环过的次数
SY-TABIX:
当前处理的是internaltable的第几笔
SY-TMAXL:
Internaltable的总笔数
SY-SROWS:
屏幕总行数;
SY-SCOLS:
屏幕总列数;
SY-MANDT:
CLIENTNUMBER
SY-VLINE:
画竖线
SY-ULINE:
画横线
附注:
1.SAP的全称是:
SystemApplicationProductsinDataProcessing;
2.ABAP/4的全称是:
AdvancedBusinessApplicationProgramming;
3.ABAP/4的路径为:
ToolsABAP/4WorkBenchABPA/4Editor;
4.ABAP/4每条语句以句号结束;
5.ABAP/4中象=,>
<
+,-,*,/等符号左右都需要有至少一个空格;
6.整行注释用’*’号,注释本行后面部分用’”’号;
OUTPUTTINGDATATOSCREEN
一.WRITE语句
ABAP/4用来在屏幕上输出数据的指令是WRITE指令,例如:
WRITE:
‘USERNAMEIS:
’,SY-UNAME.
二.指定屏幕输出位置
指定输出位置的语句格式为:
[AT][/][<
pos>
][(<
len>
)]资料项[<
par>
/:
在下一行输出
指定输出的行号;
(<
):
指定输出位数(长度)
指定显示格式参数,参数有:
LEFT-JUSTIFIED资料靠左对齐
CENTERED数据靠中间对齐
RIGHT-JUSTIFIED资料靠右对齐
UNDER<
g>
正对在数据项<
的下面显示
NO-GAP紧接着显示,不留空格
USINGEDITMASK<
m>
使用内嵌子元显示,如12:
20
USINGNOEDITMASK:
不使用内嵌子元
NO-ZERO:
数字前面0的部分不显示
NO-SIGN:
不显示正负号
DECIMALS<
d>
显示<
位小数
EXPOENT<
e>
F(浮点数)指数的值
ROUND<
r>
四舍五入至小数点后<
位
CURRENCY<
c>
币别显示
DD/MM/YY:
日期显示格式
MM/DD/YY:
YY/MM/DD:
YY/DD/MM
MM/DD/YYYY:
DD/MM/YYYY
YYYY/MM/DD:
YYYY/DD/MM:
例如1:
/10(6)‘ABCDEFGHIJK’.
输出结果为:
ABCDEF
例如2:
XTYPEIVALUE’11:
20:
30’,
A(5)TYPECVALUE‘ABCDE’.
/XUSINGEDITMASK‘__:
__:
__’.
/XUSINGEDITMASK‘$___,___’.
/YNO-GAP.
11:
30
$112,030
4.显示图标:
语法:
symbol-name>
ASSYMBOL.
icon-name>
ASICON.
例如:
INCLUDE<
SYMBOL>
.
ICON>
WRITE:
/‘Phonesymbol:
’,SYM_PHONEASSYMBOL.
/‘AlarmIcon:
’,ICON_VOICE_OUTPUTASICON.
要查看系统所提供有那些符号及图标,可选择’EDIT’下的’InsertStatement’,选择’Write’,接下来选择要查看的群组,如SYMBOL或ICON,接下来按’Display’即可.
INTERNALTABLE
1.InternalTable的宣告
ABAP/4中的InternalTable是一种DataStructure,类似于其它语言中的STRUTURE,它可以由几个不同类型的字段(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔数据表示具有相同属性的多个事物.例如:
为了存取或记录某班的同学数据,我们创建如下的internaltable:
DATA:
BEGINOFSTUDENTOCCURS20,
STD_IDTYPEN,
BIRTHTYPED,
SCORETYPEPDECIMALS2,
ENDOFSTUDENT.
此时我们已经创建了名叫STUDENT的internaltable,并且为它预先申请了能够存放20笔数据的Buffer(当然,如果存取数据不止20笔,程序执行时,会自动申请系统Buffer)
Internaltable的定义有以下几种格式:
格式一.DATA:
BEGINOF<
internaltable>
OCCURS<
n>
field1>
TYPE<
type1>
field2>
type2>
field3>
type3>
…]
ENDOF<
格式二.TYPES:
workarea>
TYPES<
格式三.DATA:
INCLUDESTRUCTURE<
tablename>
LIKE<
2.APPENDLINE
格式:
APPEND[<
TO]<
举例一.(使用workarea)
BEGINOFLINE,
COL1TYPEI,
COL2TYPEI,
ENDOFLINE.
DATAITABLIKELINEOCCURS10.
DO2TIMES.
LINE-COL1=SY-INDEX.
LINE-COL2=SY-INDEX**2.
APPENDLINETOITAB.
ENDDO.
LOOPATITABINTOLINE.
/LINE-COL1,LINE-COL2.
ENDLOOP.
执行结果为:
11
24
举例二.(不使用workarea)
BEGINOFITABOCCURS10,
ENDOFITAB.
DO2TIMES.
ITAB-COL1=SY-INDEX.
ITAB-COL2=SY-INDEX**2.
APPENDITAB.
ENDDO.
LOOPATITAB.
/ITAB-COL1,ITAB-COL2.
ENDLOOP.
执行结果与举例一相同.
举例三.(加入另一个Internaltable的元素)
格式:
APPENDLINESOF<
itab1>
[FROM<
n1>
][TO<
n2>
]TO<
itab2>
将<
的元素加入至<
中,可选取自<
至<
的范围.
APPENDLINESOFITABTOJTAB.
3.COLLECTLINE
COLLECT指令也是将元素加入Internaltable中,与APPEND的区别是:
COLLECT指令在非数值字段相同的情况下,将数值字段汇总.
COLLECT[<
INTO]<
itab>
BEGINOFITABOCCURS3,
COL1(3)TYPEC,
ITAB-COL1=‘ABC’.ITAB-COL2=10.
COLLECTITAB.
ITAB-COL1=‘XYZ’.ITAB-COL2=20.
ITAB-COL1=‘ABC’.ITAB-COL2=80.
此时,internaltable中放的是2笔数据,分别为:
ITAB-COL1ITAB-COL2
‘ABC’90
‘XYZ’20
4.INSERTLINE
将元素插入在指定的internaltable位置之前.
INSERT[<
wa>
INTO][INITIALLINEINTO]<
[INDEX<
idx>
或者:
INSERTLINESOF<
TO<
]INTO<
INDEX<
即workarea,工作区中的元素.
[INITIALLINEINTO]:
插入一笔初始化的记录.
internaltable
[INDEX<
]:
internaltable的记录号.(新加入的元素放在此记录前面)
5.读取internaltable
格式一:
LOOPAT<
[INTO<
][FROM<
][WHERE<
conditions>
statement>
格式二:
READTABLE<
][INDEX<
/WITHKEY<
举例.(格式二)
DO10TIMES.
ITAB-COL2=SY-INDEX*2.
READTABLEITABINDEX3.
(或者:
READTABLEITABWITHKEYCOL1=3.)
/‘ITAB-COL1=‘,ITAB-COL1,‘ITAB-COL2=‘,ITAB-COL2.
执行结果同样是:
ITAB-COL1=3
ITAB-COL2=6.
6.修改internaltable中的值
MODIFY<
][INDEX<
][TRANSPORTING<
f1>
f2>
…][WHERE<
举例一.READTABLEITABINDEX3.
LINE-COL1=29.
MODIFYITABFROMLINETRANSPORTINGCOL1.
将第三笔记录的COL1字段的值修改为29.
举例二.T_SALARY–salary=50.
MODIFYT_SALARYTRANSPORTINGsalaryWHEREbirthday=‘1999/12/06’.
7.DELETEinternaltable中的字段
DELETE<
或:
[FROM<
][WHERE<
8.Internaltable排序
SORT<
orderway>
][BY<
…]
有DESCENDING和ASCENDING,Default为ASCENDING.
为指定排序的字段.
9.加总
SUM.
总和计算存放与workarea中,但只能在LOOP中使用.
例:
LOOPATITABINTOLINE.
SUM.
10.初始化internaltable
REFRESH<
.清空<
中的值.
CLEAR<
的HeaderLine. Clear:
t_mara[],t_mara.
FREE<
.释放记忆体空间.
屏幕输入命令
在ABAP/4中要从屏幕输入变量,使用的命令是PARAMETERS及SELECTION-OPTIONS:
1.PARAMETER:
输入一个变量
2.SELECTION-OPTIONS:
使用条件筛选画面来输入数据
一.PARAMETERS指令
基本的输入命令,类似如BASIC的INPUT命令,但无法使用F格式(浮点数)
语法:
PARAMETERS<
p>
[DEFAULT<
][LOWERCASE]
[OBLIGATORY][ASCHECKBOX]
[RADIOBUTTONGROUP<
rad>
]
Example:
PARAMETERS:
NAME(8),
BIRTHTYPED.
执行结果:
在日期的输入格式上为MM/DD/YY,MM/DD/YYYY,MMDDYY或MMDDYYYY,如输入020165表1965年02月01日,与02/01/65的输入是一样的,日期输入范围为公元1950年至2049年
1.DEFAULT
设定输入的默认值
Example:
COMPANY(20)DEFAULT‘DELTA’,
BIRTHTYPEDDEFAULT‘19650201’.
2.LOWERCASE
ABAP/4预设是将字符串输入值自动转换为大写,加上此参数会将输入的数据转成小写,
3.OBLIGATORY
强制要求输入,屏幕上会出现一个?
使用者必须要输入才可.
4.ASCHECKBOX
输入CHECKBOX的格式
TAXASCHECKBOXDEFAULT‘X’,
NTDASCHECKBOX.
5.RADIOBUTTONGROUP<
输入RADIOBUTTONGROUP的方式
BOYRADIOBUTTONGROUPSEXDEFAULT‘X’,
GIRLRADIOBUTTONGROUPSEX.
二.SELECT-OPTIONS
SELECTION-OPTIONS所输入的值实际上是放在internaltable中的,该Internaltable有四个字段,分别是:
SIGN,OPTION,LOW,HIGH..条件筛选检查条件输入画面指令,输入条件后可配合SELECT指令自TABLE读取符合条件的数据,直接执行或放入InternalTable中,条件有四个参数:
1.SIGN:
I:
表筛选条件符合的资料
E:
表筛选条件不符合的资料
2.OPTION:
比较的条件符号
EQ(等于),NE(不等于),GT(大于),LE(小于),CP(包含),NP(不包含)
3.LOW:
最小值
4.HIGH:
最大值
SELECT-OPTIONS<
check-option>
FOR<
table-field>
TABLESSPFLI.
SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.
将条件的输入值存放入AIRLINE,筛选选择为SPFLI中的CONNID字段
执行结果:
可直接输入起始范围或按下选择画面,输入完后按下左上角的执行键
三.条件输入选择画面
1.自Table中选取
按下输入项的右边往下箭头,叫出Table中数据项,选取开始和结束的范围
2.SelectionOptions
按下”Selectionoptions”按键,,输入Option及Sign参数内容,屏幕如下:
3.Multi-Options输入
按下最右边的Multi-Options输入键,输入条件选取的范围,画面如下:
条件输入完后按下”Copy”按键
四.改变条件输入格式
1.DEFAULT<
begin>
end>
设定开始结束范围输入默认值
SELECT-OPTIONSAIRLINEFORSPFLI-CONNID
DEFAULT‘2042’TO‘4555’.
2.NO-EXTENSION
设定不要Multi-Option输入画面
3.NOINTERVALS
设定不要区间范围输入画面
4.LOWERCASE
输入转换成大写
5.OBLIGATORY
强制要求输入
五.配合SELECT命令
条件输入完后要将符合条件的数据筛选出来,可配合使用SELECT指令
1.使用WHERE<
条件式>
SELECT*FROMSPFLIWHERECONNIDINAIRLINE.
/CONNID,FROMCITY,TOCITY.
ENDSELECT.
2.使用CHECK参数
SELECT*FROMSPFLI.
CHECKAIRLINE.
3.使用IF…IN叙述
IFSPFLI-CONNIDINAIRLINE.
ENDIF
六.SELECTION-SCREEN
1.产生空白列
SELECTION-SCREENSKIP[<
SELECTION-SCREENSKIP2.
产生两列空白列
2.产生底线
SELECTION-SCREENULINE/<
(length)
SELECTION-SCREENULINE/10(30).
自第10格开始产生长度30的底线
3.印出备注说明
SELECTION-SCREENCOMMENT/<
(length)<
name>
REMARK=‘Plsenteryourname’.
SELECTION-SCREENCOMMENT/10(30)REMARK.
4.同一列中输入数个数据项
SELECTION-SCREENBEGINOFLINE.
……
SELECTION-SCREENENDOFLINE.
SELECTION-SCREENPOSITION20.
PARAMETERSNAME(10).
SELECTION-SCREENPOS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 107 ABAP4语法祥解简体中文 ABAP4 语法 简体中文