ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx

上传人:b****1 文档编号:3777879 上传时间:2023-05-02 格式:DOCX 页数:52 大小:943.49KB
下载 相关 举报
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第1页
第1页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第2页
第2页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第3页
第3页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第4页
第4页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第5页
第5页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第6页
第6页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第7页
第7页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第8页
第8页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第9页
第9页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第10页
第10页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第11页
第11页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第12页
第12页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第13页
第13页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第14页
第14页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第15页
第15页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第16页
第16页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第17页
第17页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第18页
第18页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第19页
第19页 / 共52页
ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx

《ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx》由会员分享,可在线阅读,更多相关《ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx(52页珍藏版)》请在冰点文库上搜索。

ABAP4编程宝典中文版abap魔鬼教程Word文件下载.docx

:

变量类型及长度;

初值

小数位数

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.

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.

二.SELECTION-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:

最大值

SELECTION-OPTIONS<

check-option>

FOR<

table-field>

TABLESSPFLI.

SELECTION-OPTIONSAIRLINEFORSPFLI-CONNID.

将条件的输入值存放入AIRLINE,筛选选择为SPFLI中的CONNID字段

执行结果:

可直接输入起始范围或按下选择画面,输入完后按下左上角的执行键

三.条件输入选择画面

1.自Table中选取

按下输入项的右边往下箭头,叫出Table中数据项,选取开始和结束的范围

2.SelectionOptions

按下”Selectionoptions”按键,,输入Option及Sign参数内容,屏幕如下:

3.Multi-Options输入

按下最右边的Multi-Options输入键,输入条件选取的范围,画面如下:

条件输入完后按下”Copy”按键

四.改变条件输入格式

1.DEFAULT<

begin>

end>

设定开始结束范围输入默认值

SELECTION-OPTIONAIRLINEFORSPFLI-CONNID

DEFAULT‘2042’TO‘4555’.

2.NO-EXTENSION

设定不要Multi-Option输入画面

3.NOINTERVALS

设定不要区间范围输入画面

4.LOWERCASE

输入转换成大写

5.OBLIGATORY

强制要求输入

五.配合SELECT命令

条件输入完后要将符合条件的数据筛选出来,可配合使用SELECT指令

1.使用WHERE<

条件式>

SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.

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-SCREENPOSITION40.

PARAMETE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2