ABAP语言基础Word文档下载推荐.docx
《ABAP语言基础Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ABAP语言基础Word文档下载推荐.docx(69页珍藏版)》请在冰豆网上搜索。
![ABAP语言基础Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/12/c14d2175-8579-4358-8cbb-a7a70ba2fe86/c14d2175-8579-4358-8cbb-a7a70ba2fe861.gif)
2.输入程序名称,如果是新程序,按下”Create”,如果修改已存在程序,则按下”Change”或F6键
在命名规则上,Reports程序为Yaxxxxxx或Zaxxxxxx,a表applicationmodule简称,如s表SD
Dialog程序为SAPMYxxx或SAPMZxxx
3.输入程序Attribute
(1).Title:
程序描述或功能说明
(2).Type:
Executemode:
1:
Stand-alongProgram如Reports
I:
IncludeProgram
M:
ModulePool
F:
FunctionGroup
S:
SubroutinePool
(3).Status:
Programdevelopmentstatus:
P:
SAPstandardproductionprogram
K:
Customerproductionprogram
Systemprogram
T:
Testprogram
(4).Application:
程序所属的applicationmodule,如F表Financeialacounting
(5).Developmentclass:
用于同一系统中各个program,如果不属任一class,可使用$TMP
4.撰写SourceCode
Program之后接的是程序名称,Write是显示的意思,会将所接的字符串在屏幕上显示,注意每一
行最后要有一个.(点),表示叙述的结束,储存后回ABAP/4Editor画面
5.执行程序
按”Execute”或F8键,屏幕可见执行所得的结果
重要的编辑键
key
Function
F8
F5
F11
CTRL+F11
执行程序
复制游标所在列的内容
储存档案
删除游标所在列
2.2ABAP/4DataElement<
数据元素>
DataType
ABAP/4的数据型态可分成:
TypeLengthRangeInitialValueDescription
C11-65535ByteSpace字符串数据,如’Program’
D88Byte‘00000000’日期数据,格式为YYYYMMDD
F88Byte0浮点数
I4-2^31至2^31-10整数
N11-65535Byte‘00…0’数值所组成的字符串
P81-16Byte0Packed数,用在小数点数
T66Byte‘000000’时间数据,格式为HHMMSS
X11-65535ByteX’00’16进位数
变量宣告
变量宣告包含name,type,length和structure四个部分,使用DATA指令,如
DATA:
S1TYPEI,
SUMTYPEI.
<
链语句的说明>
常数宣告
常数宣告使用CONSTANTS指令,如宣告PI是一个小数点5位的值3.14159,
CONSTANTSPITYPEPDECIMALS5VALUE‘3.14159’.
CONSTANTS一样支持链语句>
系统所定义数据
这是由系统所定义的专有名辞,如
SPACE空白字符串
SY-SUBRC系统执行传回值,0表示成功
SY-UNAMElogon账号
SY-DATUM系统日期
SY-UZEIT系统时间
SY-TCODE目前的transactioncode
SY-COLNO用于当前列
SY-LINNO用于当前行
SY-LISEL选定行内容
SY-LISEL主要从系统字段中检索下列信息:
列表的索引、输出窗口中列表的位置和光标的位置>
TYPE叙述
用来指定数据型态或宣告自定数据型态
Example:
TYPES:
BEGINOFMYLIST,
NAME(10)TYPEC,
NUMBERTYPEI,
ENDOFMYLIST.
DATALISTTYPEMYLIST.
TYPE与TYPES是不同的,TYPE用来引用TYPES语句定义的结构,
TYPES与DATA也是有区别的,TYPES用来创建用户定义的基本数据类型和结构数据类型>
LIKE叙述
跟TYPE叙述使用格式相同,如
DATATRANSCODELIKESY-TCODE.
不同的是LIKE用在已有值的数据项,如系统变量,而TYPE叙述则是用在指定数据型态。
DATA叙述
语法:
DATA<
f>
[<
length>
]<
type>
value>
][<
decimals>
]
<
:
变量名称,最长30个字符,不可含有+.,:
()等字符
数据型态及长度,如LINE(20)TYPEC.MYNAMELIKESY-UNAME.
初值
小数位数
COUNTERTYPEPVALUE1,
FLAGTYPECVALUEISINITIAL,
WEIGHTTYPEPDECIMALS2VALUE‘1.25’.
字段变量的宣告:
BEGINOFADDRESS,
NAME(10)TYPEC,
NUMBERTYPEP,
ENDOFADDRESS.
使用时用字段变量加上组件名称,如ADDRESS-NAME
CONSTANTS叙述
用来宣告常数
CONSTANTS<
c>
CONSTANTS:
CNAME(10)VALUE‘周庆日’,
BIRTH_DAYTYPEDVALUE‘19650201’.
STATICS叙述
宣告的变量仅在目前的程序中使用,结束后会自动释放
STATICS<
实际上语法与DATA一样>
TABLES叙述
用来宣告TableWorkArea的数据,对映至ABAP/4资料文件(DictionaryObject),
由SQL指令加载所需数据
TABLES<
dbtab>
TABLES:
SPFL.
SELECT*FROMSPFL.
WRITE:
SPFL-MANDT,SPFL-CARRID,SPFL-CONNECTION.
ENDSELECT.
从ABAP/4Dictionary的SPFL档载入MANDT,CARRID,CONNECTION三个字段至
SPFL此TableWorkArea
实际上TABLES定义的是系统表的在本地的工作区,注意是工作区不是内表>
2.3OutputtingDatatoScreen
Write叙述
ABAP/4用来在屏幕上输出数据的指令是Write指令
Write资料项
数据项可以是常数或变量,如:
WRITE‘Thisissample’.
‘COMPANY:
’,STFL-CARRID.
对WRITE语句,可以使用不同的格式化选项。
语法
WRITE....<
选项>
.<
注意格式关键字可并列使用>
所有数据类型的格式化选项
选项用途
LEFT-JUSTIFIED输出左对齐。
CENTERED输出居中。
RIGHT-JUSTIFIED输出右对齐。
UNDER<
g>
输出直接开始于字段<
下。
NO-GAP忽略字段<
后的空格。
USINGEDITMASK<
m>
指定格式模板<
。
USINGNOEDITMASK撤消对ABAP/4词典中指定的格式模板的激活。
NO-ZERO如果字段仅包含零,则用空格代替它们。
对类型C和N字段,将自动代替前导零。
数字字段的格式化选项
选项用途
NO-SIGN不输出前导符号。
DECIMALS<
d>
定义小数点后的数字位数。
EXPONENT<
e>
在类型F字段中,在<
中定义幂数。
ROUND<
r>
用10**(-r)乘类型P字段,然后取整。
CURRENCY<
按表格TCURX中的货币<
格式化。
UNIT<
u>
按表格T006中为类型P字段所指定的单位<
固定小数位数。
日期字段的格式化选项
DD/MM/YY用户主记录中定义的分隔符
MM/DD/YY用户主记录中定义的分隔符
DD/MM/YYYY用户主记录中定义的分隔符
MM/DD/YYYY用户主记录中定义的分隔符
DDMMYY无分隔符。
MMDDYY无分隔符。
YYMMDD无分隔符。
关于格式选项和这些选项内例外原则的详细信息,参见WRITE语句的关键字文档。
以下是格式选项的一些示例。
要获得更多的示例,参见章节创建列表。
在用户主记录中,定义了数字字段的小数点字符和千位分隔符(分号或逗号)。
>
指定屏幕位置显示
WriteAT[/][<
pos>
][(<
len>
)]资料项
/:
先往下一列
pos:
屏幕X轴坐标
(len):
显示资料的长度
WRITE‘FirstLine’.
WRITE/6‘SecondLine’.
输出结果:
FirstLine
SecondLine
NUMBERTYPEIVALUE‘1234567890’.
TEXT(10)VALUE‘ABCDEFGHIJ’.
(5)NUMBER,/(6)TEXT.
*7890
ABCDEF
指定显示格式
WRITE资料项<
显示格式参数>
显示格式参数:
LEFT-JUSTIFIED资料靠左显示
CENTERED资料靠中间显示
RIGHT-JUSTIFIED资料靠右显示
在资料项<
的X轴开始坐标显示
NO-GAP紧接着显示,不留空格
使用内嵌字符显示,如11:
20:
30
USINGNOEDITMASK不使用内嵌字符
NO-ZERO数字前面0的部分不显示
NO-SIGN不显示正负号
DECIMALS<
显示d位小数字数
EXPONENT<
F(浮点数)exponent的值
ROUND<
四舍五入至小数位数下r位
CURRENCY<
币别显示
DD/MM/YY日期显示格式
MM/DD/YY
DD/MM/YYYY
MM/DD/YYYY
DDMMYY
MMDDYY
YYMMDD
XTYPEIVALUE‘112030’,
A(5)VALUE’ABCDE’.
WRITEXUSINGEDITMASK‘__:
__:
__’.
输出结果为11:
WRITEXUSINGEDITMASK‘$___,___’
输出结果为$112,030
产生空白列
产生n个空白列
SKIP[<
n>
WRITE‘PASS1’.
SKIP.
WRITE‘PASS2’.
输出结果为:
PASS1
PASS2
显示图示
可以显示R/3系统所提供的符号或图标
WRITE<
symbol-name>
ASSYMBOL
icon-name>
ASICON
INCLUDE<
SYMBOL>
ICON>
/‘PhoneSymbol:
’,SYM_PHONEASSYMBOL.
/‘AlarmIcon:
’,ICON_ALARMASICON.
执行结果:
要查看系统所提供有那些符号及图标,可选择“Edit”下的“InsertStatement”,选择
“WRITE”
接下来选择要查的群组,如SYMBOL或ICON,按下“Display”即可.
跳至指定列坐标
将坐标跳至指定的Y轴列坐标
SKIPTOLINE[<
SKIPTOLINE5.
WRITE‘PASS1’.
显示CHECKBOX资料
以字符串数据内容的第一个字符为CHECKBOX的输出,如果是空白,CHECKBOX显示
为空白,相反则显示X,可用在逻辑判断检查
资料项>
ASCHECKBOX.
FLAG1VALUE‘‘.
FLAG2VALUE‘X’.
*<
这里面的FLAG1与FLAG2必须是字符串,但长度没关系>
/‘CHECKFLAG1:
’,FLAG1ASCHECKBOX.
/‘CHECKFLAG2:
’,FLAG2ASCHECKBOX.
2.4ProcessingData
AssignValue
MOVE<
F1>
TO<
F2>
将F1的值存至变数F2中,也可写成F2=F1
M_NAME=‘CHER’.
使用Offset
[+<
O1>
]TO<
O2>
F1(10)VALUE‘ABCDEFGHIJ’.
F2(5).
F2=F1+3(5).“自第4个位置开始取出5个字符
F2的内容会变成DEFGH
FieldString组件的复制
MOVE–CORRESPONDING<
Strings1>
String2>
.
将Strings1中的field组件的数据复制至String2中,仅复制相同名称的组件
BEGINOFADDRESS,
FIRSTNAME(10)VALUE‘LULU’,
LASTNAME(10)VALUE‘CHOU’,
TEL(12)VALUE‘4660570’,
BEGINOFNAME,
FIRSTNAME(10),
LASTNAME(10),
E_MAIL(30),
ENDOFNAME.
MOVE-CORRESPONDINGADDRESSTONAME.
NAME-FIRSTNAME变成‘LULU’,NAME-LASTNAME变成‘CHOU’,
而NAME-E_MAIL则不变
变量CALLBYVALUE的使用
在变量的使用上,可以使用类似CallByValue的方法
WRITE(<
)TO<
NAME(20)VALUE‘SOURCE’,
SOURCE(10)VALUE‘LILY’,
TARGET(10).
WRITE(NAME)TOTARGET.
WRITE/TARGET.
屏幕可印出LILY
清除变量内容
CLEAR<
清除变量现在内容,恢复成初值
DATANTYPEIVALUE100.
CLEARN.
变量N的内容变成0
算术符号
**乘幂
*乘
/除
+加
-减
DIV整数除法
MOD余数除法
数值函数
1.ABS(N):
传回数值N的绝对值
2.SIGN(N):
1ifN>
0
1ifN=0
-1ifN<
0
3.CEIL(N):
传回大于数值N的最小整数
WRITECEIL(-5.65)印出–5.00
WRITECELL(4.54)印出5.00
4.FLOOR(N):
传回小于数值N的最大整数
WRITEFLOOR(-5.65)印出–6.00
WRITEFLOOR(4.54)印出4.00
5.TRUNC(N):
传回数值N的整数部分
WRITETRUNC(5.65)印出5.00
6.FRAC(N):
传回数值N的小数部分
WRITEFRAC(5.65)印出0.65
7.COS(A),SIN(A),TAN(A):
传回三角函数cosA,sinA,tanA的值,A为弪度量
8.EXP(N):
传回e^N值
8.LOG(N):
传回logeN值
9.LOG10(N):
传回logN值
10.SQRT(N):
传回N的平方根值
日期与时间运算
1.日期数据的运算
日期数据可以直接运算,如加法与减法的运算
MdataTYPED.
Mdate=SY-DATUM.“如传回19971015
Mdate+6
(2)=‘01’“Mdate变成19971001
Mdate=Mdate-1“Mdate变成19970931
2.时间数据的运算
时间格式为‘hhmmss’,如‘212030’表’21:
30’
Example:
HOURSTYPEI,
MINUTESTYPEI,
T2TYPETVALUE‘200000’,
T1TYPETVALUE‘183000’.
HOURS=(T2-T1)/3600.“计算有几小时
MINUTES=(T2–T1)/60.“计算几分钟
字符串数据处理
1.字符串移位
SHIFT<
[BY<
PLACES][<
modes>
:
(1).空白,字符串往左移一位
(2).LEFT,字符串往左移n位
(3).RIGHT,字符串往右移n位
(4).CIRCULAR:
字符串以环状方式移位
DATASTRING(10)VALUE‘ABCDEFGHIJ’.
SHIFTSTRING.“得到BCDEFGHI’
SHIFTSTRINGBY2PLACESRIGHT.“得到ABCDEFGH
2.取代字符串内容
REP