APAP4中文自学开发教程.docx

上传人:b****1 文档编号:1623697 上传时间:2023-05-01 格式:DOCX 页数:61 大小:1.26MB
下载 相关 举报
APAP4中文自学开发教程.docx_第1页
第1页 / 共61页
APAP4中文自学开发教程.docx_第2页
第2页 / 共61页
APAP4中文自学开发教程.docx_第3页
第3页 / 共61页
APAP4中文自学开发教程.docx_第4页
第4页 / 共61页
APAP4中文自学开发教程.docx_第5页
第5页 / 共61页
APAP4中文自学开发教程.docx_第6页
第6页 / 共61页
APAP4中文自学开发教程.docx_第7页
第7页 / 共61页
APAP4中文自学开发教程.docx_第8页
第8页 / 共61页
APAP4中文自学开发教程.docx_第9页
第9页 / 共61页
APAP4中文自学开发教程.docx_第10页
第10页 / 共61页
APAP4中文自学开发教程.docx_第11页
第11页 / 共61页
APAP4中文自学开发教程.docx_第12页
第12页 / 共61页
APAP4中文自学开发教程.docx_第13页
第13页 / 共61页
APAP4中文自学开发教程.docx_第14页
第14页 / 共61页
APAP4中文自学开发教程.docx_第15页
第15页 / 共61页
APAP4中文自学开发教程.docx_第16页
第16页 / 共61页
APAP4中文自学开发教程.docx_第17页
第17页 / 共61页
APAP4中文自学开发教程.docx_第18页
第18页 / 共61页
APAP4中文自学开发教程.docx_第19页
第19页 / 共61页
APAP4中文自学开发教程.docx_第20页
第20页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

APAP4中文自学开发教程.docx

《APAP4中文自学开发教程.docx》由会员分享,可在线阅读,更多相关《APAP4中文自学开发教程.docx(61页珍藏版)》请在冰点文库上搜索。

APAP4中文自学开发教程.docx

APAP4中文自学开发教程

1.ABAP/4Introduction

Introduction

ABAP/4(AdvancedBusinessApplicationProgramming)是SAP/R3目前唯一的系统发展工具,

属4GL,语法比较近似VisualBasic或JAVA,和传统third-generation语言,如C,PASCAL

有很大不同,在程序模块(ProgramStructureModule)可分以

下三个部分:

1.Sequentialcodingwithinprocessingblock

与一般语言语法近似,如IF,WHILE等,但并没有GOTO叙述

2.Reports

呼叫一个独立的事件(DependingEvent),读取database产生资料列表

3.Dialog

屏幕参数输入的对话框,专门处理database读取或异动的tranactionprocess

BasicLanguangeOverview

1.dataelement宣告方式,如数值,字符资料变量宣告

2.操作数(operate)使用,如+-*/

3.Controlelement使用,如Boolean值

4.特殊资料格式,如日期与时间

5.字符串字料处理function,如部分字符串的截取

6.子程序或自定函数的呼叫

7.SQL语法使用

8.数据结构的使用,如processinternaltable的宣告与使用

ReportsOverview

1.ReportsTask,如报表屏幕预览或打印机打印的选择

2.Reports模块是一个Stand-along程序,

3.database读取方式,如可定义logicaldatabase(与磁盘的physicalstorage对映)

4.报表数据的计算与产生

5.报表的输出

DialogOverview

1.专处理database的读取与异动,如使用SQL指令

2.Dialog不是一个Stand-AlongProgarm,使用transactioncode来产生屏幕对话框

3.由flowlogic控制,flowlogic分成PBO(ProcessBeforeOutput)与PAI(ProcessAfterInput)

2.BeginToProgramming

2.1ABAP/4Editor

CreatingABAP/4Program

使用ABAPWorkbench撰写程序(ChooseTools->ABAP/4Workbench,TransactionCode:

S001),萤

幕如下:

可分成:

1.ABAP/4Editor:

针对简单的报表或程序,仅使用几个组件或不使用

2.ObiectBrowser:

针对复杂的报表或程序,如DialogTransactionModule撰写

使用ABAP/4Editor撰写程序

1.ABAP/4Editor画面如下(TransactionCode:

SE38):

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

S:

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

系统所定义资料

这是由系统所定义的专有名辞,如

SPACE空白字符串

SY-SUBRC系统执行传回值,0表示成功

SY-UNAMElogon帐号

SY-DATUM系统日期

SY-UZEIT系统时间

SY-TCODE目前的transactioncode

 

TYPE叙述

用来指定资料型态或宣告自定资料型态

Example:

TYPES:

BEGINOFMYLIST,

NAME(10)TYPEC,

NUMBERTYPEI,

ENDOFMYLIST.

DATALISTTYPEMYLIST.

LIKE叙述

跟TYPE叙述使用格式相同,如

DATATRANSCODELIKESY-TCODE.

不同的是LIKE用在已有值的资料项,如系统变量,而TYPE叙述则是用

在指定资料型态。

DATA叙述

语法:

DATA[][][]

:

变量名称,最长30个字符,不可含有+.,:

()等字符

:

资料型态及长度,如LINE(20)TYPEC.MYNAMELIKESY-UNAME.

:

初值

:

小数字数

Example:

DATA:

COUNTERTYPEPVALUE1, 

FLAGTYPECVALUEISINITIAL,

WEIGHTTYPEPDECIMALS2VALUE‘1.25’.

字段变量的宣告:

DATA:

BEGINOFADDRESS,

NAME(10)TYPEC,

NUMBERTYPEP,

ENDOFADDRESS.

使用时用字段变量加上组件名称,如ADDRESS-NAME

CONSTANTS叙述

用来宣告常数

语法:

CONSTANTS[][][]

Example:

CONSTANTS:

CNAME(10)VALUE‘周庆日’,

BIRTH_DAYTYPEDVALUE‘19650201’.

STATICS叙述

宣告的变量仅在目前的程序中使用,结束后会自动释放

语法:

STATICS[][][]

TABLES叙述

用来宣告TableWorkArea的资料,对映至ABAP/4资料文件(DictionaryObject),

由SQL指令加载所需数据

语法:

TABLES

Example:

TABLES:

SPFL.

SELECT*FROMSPFL.

WRITE:

SPFL-MANDT,SPFL-CARRID,SPFL-CONNECTION.

ENDSELECT.

从ABAP/4Dictionary的SPFL档加载MANDT,CARRID,CONNECTION三个字段至

SPFL此TableWorkArea

 

2.3OutputtingDatatoScreen

Write叙述

ABAP/4用来在屏幕上输出资料的指令是Write指令

语法:

Write资料项

数据项可以是常数或变量,如:

WRITE‘Thisissample’.

WRITE:

‘COMPANY:

’,STFL-CARRID.

指定屏幕位置显示

语法:

WriteAT[/][][()]资料项

/:

先往下一列

pos:

屏幕X轴坐标

(len):

显示资料的长度

Example:

WRITE‘FirstLine’.

WRITE/6‘SecondLine’.

输出结果:

FirstLine

SecondLine

DATA:

NUMBERTYPEIVALUE‘1234567890’.

TEXT(10)VALUE‘ABCDEFGHIJ’.

WRITE:

(5)NUMBER,/(6)TEXT.

输出结果:

*7890

ABCDEF

指定显示格式

语法:

WRITE资料项<显示格式参数>

显示格式参数:

LEFT-JUSTIFIED资料靠左显示

CENTERED资料靠中间显示

RIGHT-JUSTIFIED资料靠右显示

UNDER在资料项的X轴开始坐标显示

NO-GAP紧接着显示,不留空格

USINGEDITMASK使用内嵌字符显示,如11:

20:

30

USINGNOEDITMASK不使用内嵌字符

NO-ZERO数字前面0的部分不显示

NO-SIGN不显示正负号

DECIMALS显示d位小数字数

EXPONENTF(浮点数)exponent的值

ROUND四舍五入至小数字数下r位

CURRENCY币别显示

DD/MM/YY日期显示格式

MM/DD/YY

DD/MM/YYYY

MM/DD/YYYY

DDMMYY

MMDDYY

YYMMDD

Example:

DATA:

XTYPEIVALUE‘112030’,

A(5)VALUE’ABCDE’. 

WRITEXUSINGEDITMASK‘__:

__:

__’.

输出结果为11:

20:

30

WRITEXUSINGEDITMASK‘$___,___’

输出结果为$112,030

产生空白列

产生n个空白列

语法:

SKIP[]

Example:

WRITE‘PASS1’.

SKIP.

WRITE‘PASS2’.

输出结果为:

PASS1

PASS2

显示图标

可以显示R/3系统所提供的符号或图标

语法:

WRITEASSYMBOL

WRITEASICON

Example:

INCLUDE

INCLUDE

WRITE:

/‘PhoneSymbol:

’,SYM_PHONEASSYMBOL.

WRITE:

/‘AlarmIcon:

’,ICON_ALARMASICON.

执行结果:

要查看系统所提供有那些符号及图标,可选择“Edit”下的“InsertStatement”,选择

“WRITE”

接下来选择要查的群组,如SYMBOL或ICON,按下“Display”即可.

跳至指定列坐标

将坐标跳至指定的Y轴列坐标

语法:

SKIPTOLINE[]

Example:

SKIPTOLINE5.

WRITE‘PASS1’. 

 

显示CHECKBOX资料

以字符串资料内容的第一个字符为CHECKBOX的输出,如果是空白,CHECKBOX显示

为空白,相反则显示X,可用在逻辑判断检查

语法:

WRITE<资料项>ASCHECKBOX.

Example:

DATA:

FLAG1VALUE‘‘.

FLAG2VALUE‘X’.

WRITE:

/‘CHECKFLAG1:

’,FLAG1ASCHECKBOX.

WRITE:

/‘CHECKFLAG2:

’,FLAG2ASCHECKBOX.

执行结果:

 

2.4ProcessingData

AssignValue

语法:

MOVETO

将F1的值存至变量F2中,也可写成F2=F1

Example:

M_NAME=‘CHER’.

使用Offset

语法:

MOVE[+]TO[+]

Example:

DATA:

F1(10)VALUE‘ABCDEFGHIJ’.

F2(5).

F2=F1+3(5).“自第4个位置开始取出5个字符

F2的内容会变成DEFGH

FieldString组件的复制

语法:

MOVE–CORRESPONDINGTO.

将Strings1中的field组件的资料复制至String2中,仅复制相同名称的组件

Example:

DATA:

BEGINOFADDRESS,

FIRSTNAME(10)VALUE‘LULU’,

LASTNAME(10)VALUE‘CHOU’,

TEL(12)VALUE‘4660570’,

ENDOFADDRESS.

DATA:

BEGINOFNAME,

FIRSTNAME(10),

LASTNAME(10),

E_MAIL(30),

ENDOFNAME.

MOVE-CORRESPONDINGADDRESSTONAME.

NAME-FIRSTNAME变成‘LULU’,NAME-LASTNAME变成‘CHOU’,

而NAME-E_MAIL则不变

变量CALLBYVALUE的使用

在变量的使用上,可以使用类似CallByValue的方法

语法:

WRITE()TO

Example:

DATA:

NAME(20)VALUE‘SOURCE’,

SOURCE(10)VALUE‘LILY’,

TARGET(10).

WRITE(NAME)TOTARGET.

WRITE/TARGET.

屏幕可印出LILY

清除变量内容

语法:

CLEAR

清除变量现在内容,恢复成初值

Example:

DATANTYPEIVALUE100.

CLEARN.

变量N的内容变成0

算术符号

**乘幂

*乘

/除

+加

-减

DIV整数除法

MOD余数除法

 

数值函数

1.ABS(N):

传回数值N的绝对值

2.SIGN(N):

1ifN>0

1ifN=0

-1ifN<0

3.CEIL(N):

传回大于数值N的最小整数

Example:

WRITECEIL(-5.65)印出–5.00

WRITECELL(4.54)印出5.00

4.FLOOR(N):

传回小于数值N的最大整数

Example:

WRITEFLOOR(-5.65)印出–6.00

WRITEFLOOR(4.54)印出4.00

5.TRUNC(N):

传回数值N的整数部分

Example:

WRITETRUNC(5.65)印出5.00

6.FRAC(N):

传回数值N的小数部分

Example:

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.日期资料的运算

日期资料可以直接运算,如加法与减法的运算

Example:

DATA:

MdataTYPED.

Mdate=SY-DATUM.“如传回19971015

Mdate+6

(2)=‘01’“Mdate变成19971001

Mdate=Mdate-1“Mdate变成19970931

 

2.时间资料的运算

时间格式为‘hhmmss’,如‘212030’表’21:

20:

30’

Example:

DATA:

HOURSTYPEI,

MINUTESTYPEI,

T2TYPETVALUE‘200000’,

T1TYPETVALUE‘183000’.

HOURS=(T2-T1)/3600.“计算有几小时

MINUTES=(T2–T1)/60.“计算几分钟

字符串数据处理

1.字符串移位

语法:

SHIFT[BYPLACES][]

:

(1).空白,字符串往左移一位

(2).LEFT,字符串往左移n位

(3).RIGHT,字符串往右移n位

(4).CIRCULAR:

字符串以环状方式移位

Example:

DATASTRING(10)VALUE‘ABCDEFGHIJ’.

SHIFTSTRING.“得到BCDEFGHI’

SHIFTSTRINGBY2PLACESRIGHT.“得到ABCDEFGH

2.取代字符串内容

语法:

REPLACEWITHINTO

将字符串中的来取代

Example:

DATA:

STRING(10)VALUE‘ABCDEFGHI’,

STR1(3)VALUE‘DEF’,

STR2(3)VALUE‘123’.

REPLACESTR1WITHSTR2INTOSTRING.

WRITE/STRING.“得到ABC123GHI

3.大小写的转换

语法:

TRANSLATETOUPPERCASE.“转成大写

TRANSLATETOLOWERCASE.“转成小写

4.在字符串中寻找部分字符串

语法:

SEARCHFOR

Example:

DATASTRING(10)VALUE‘ABCDEFGHIJ’.

会回存至两个变量,SY-SUBRC和SY-FDPOS,若找到则SY-SUBRC为0

SY-FDPOS存开始位叠,若找不到则SY-SUBRC为4,SY-FDPOS为0

5.字符串长度

STRLEN(

Example:

INT=STRLEN(‘XYZABC’).“得到6

INT=STRLEN(‘ABC’).“得到3

6.取部分字符串

[+][]

Example:

DATAT(10)VALUE‘ABCDEFGHIJ’.

WRITE/T+2(4).“得到CDEF

 

2.5FlowControlling

比较符号

1.=或EQ:

等于

2.<>或><或NE:

不等于

3.<或LT:

小于

4.<=或LE:

小于等于

5.>或GT:

大于

6.>=或GE:

大于等于

7.AND:

8.OR:

9.NOT:

条件述叙

1.IF述叙

语法:

IF.

ELSEIF.

ELSEIF.

…..

ELSE.

ENDIF.

(1).在每个判断叙述之后要加上.

(2).在巢状迥圈之中无法使用ELSE叙述,ELSE叙述属IF叙述

Example:

IF3>8.

WRITE/‘3islessthan

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

当前位置:首页 > 农林牧渔 > 林学

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

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