初学ABAP的一点教程3Word文件下载.docx

上传人:b****1 文档编号:4185889 上传时间:2023-05-02 格式:DOCX 页数:11 大小:21.27KB
下载 相关 举报
初学ABAP的一点教程3Word文件下载.docx_第1页
第1页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第2页
第2页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第3页
第3页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第4页
第4页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第5页
第5页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第6页
第6页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第7页
第7页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第8页
第8页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第9页
第9页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第10页
第10页 / 共11页
初学ABAP的一点教程3Word文件下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

初学ABAP的一点教程3Word文件下载.docx

《初学ABAP的一点教程3Word文件下载.docx》由会员分享,可在线阅读,更多相关《初学ABAP的一点教程3Word文件下载.docx(11页珍藏版)》请在冰点文库上搜索。

初学ABAP的一点教程3Word文件下载.docx

COMMITWORK.

相反的,如果反悔要复原,可使用ROLLBACKWORK,可复原在上个COMMITWORK指令之后的资料,如:

ROLLBACKWORK.

使用NATIVESQL指令

语法格式:

EXECSQL[PERFORMING<

form>

].

<

statements>

ENDEXEC.

举例一.

EXECSQL.

CREATETABLEAVERI_CLNT(

CLIENT 

CHAR(3)NOTNULL,

ARG1 

ARG2 

FUNCTIONCHAR(10)NOTNULL,

PRIMARYKEY(CLIENT,ARG1,ARG2)

爱ERP网

举例二.

DATA:

F1(3),F2(3),F3(3).

F3='

1'

SELECTCLIENT,ARG1INTO:

F1,:

F2FROMAVERI_CLNT

WHEREARG2=:

F3

ENDEXEC

PERFORMING<

formname>

的使用:

如果NATIVESQL的SELECT命令执行结果是抓到多笔记录,我们想要逐笔记录处理时,就用PERFORMING参数,这个FORM能被逐次调用。

如果想中止调用,就用EXIT

FORMSQL结束调用。

例如:

010'

EXECSQLPERFORMINGWRITE_AVERI_CLNT.

FORMWRITE_AVERI_CLNT.

WRITE:

/F1,F2.

ENDFORM.

BEGINOFWA,

NAME(8),

AGETYPEI,

END 

OFWA.

DATAF1TYPEI.

FI=20.

EXECSQLPERFORMINGOUTPUT.

SELECTNAME,AGEINTO:

WAFROMNAME_TABLE

WHEREAGE&

gt;

=:

F1.

ENDEXEC..

FORMOUTPUT.

WRITE:

/WA-NAME,WA-AGE.

ENDFORM.

注意:

a.NATIVESQL把TABLE中的MANDT(client)栏位当作一般栏位使用,所以在抓取资料时必须指定特定的Client;

b.NATIVESQL中的SELECT语句没有CHECK权限的功能;

c.在登入SAPR/3系统时,我们已经自动与Database连接,所以在执行NATIVESQL时并不需要CONNECT语句;

d.一条NATIVESQL语句可以以分号;

结束,一般情况下是以句号.结束.

e.某些数据库系统对TABLE名字和FIELD名字有大小写区别,要正确书写.

f.在NATIVESQL中,双引号"

不表示注释.

结果语句

条件述叙

1.IF述叙

IF<

Condition1>

Statement1>

ELSEIF<

Condition2>

Statement2>

Condition3>

Stetement3>

…..

ELSE.

elseStatement>

ENDIF.

(1).在每个判断关键字之后要加上.

(2).在巢状循环之中无法使用ELSE关键字,ELSE关键字属IF关键字

IF3&

8.

WRITE/'

3islessthan8'

2.CASE关键字

CASE<

变量f>

WHEN<

Value1>

Statement1>

Value2>

Statement2>

….

WHENOTHERS.

othersStatement>

ENDCASE.

S='

A'

.

CASES.

WHEN'

X'

StringisX'

StringisnotX'

循环关键字

1.计次循环

DO[nTIMES][VARYING<

f>

FROM<

start>

TO<

end>

loopblock>

ENDDO.

DO2TIMES.

执行结果:

X

DOVARYINGIFROM 1TO10.

S=S+I.

/,'

1+2+3+…+10='

S

1+2+3+…+10=55

2.条件循环

WHILE<

Condition>

StatementBlock>

ENDWHILE

I=1.

S=0.

WHILEI<

=10.

S=S+I.

I=I+1.

ENDWHILE.

/'

1+2+3+…+10='

S.

执行结果为:

循环控制关键字

1.CONTINUE

跳至循环的下一次

Example:

DO3TIMES.

IFSY-INDEX=2.

CONTINUE.

WRITE/SY-INDEX.

1

3

2.CHECK&

lt;

CHECK之后条件成立才继续往下执行循环

DO5TIMES.

CHECKSY-INDEXBETWEEN2AND4.

2

4

3.EXIT

跳离循环关键字

DO10TIMES.

IFSY-INDEX=4.

EXIT.

ENDIF

无穷循环

DO.

无穷循环必须配合EXIT关键字来执行

搜索字符串

要搜索特定模式的字符串,请使用SEARCH语句,用法如下:

语法

SEARCH<

FOR<

str>

options>

该语句在字段<

中搜索<

中的字符串。

如果成功,则将SY-SUBRC的返回代码值设置为0并将SY-FDPOS设置为字段<

中该字符串的偏移量。

否则将

SY-SUBRC设置为4。

搜索串<

可为下列格之一:

<

目的

pattern>

搜索<

(任何字符顺序)。

忽略尾部空格。

.<

.搜索<

,但是不忽略尾部空格。

*<

搜索以<

结尾的词。

*搜索以<

开始的词。

单词之间用空格、逗号、句号、分号、冒号、问号、叹号、括号、斜杠、加号和等号等分隔。

DATASTRING(30)VALUE'

Thisisalittlesentence.'

Searched'

'

SY-SUBRC'

SY-FDPOS'

ULINE/1(26).

SEARCHSTRINGFOR'

SY-SUBRCUNDER'

SY-FDPOSUNDER'

itt 

'

.e.'

*e'

*e'

s*'

s*'

该过程的输出如下:

SEARCHEDSY-SUBRCSY-FDPOS

0

11

.e. 

15

*e 

10

s* 

17

搜索字符字段<

的各种选项(<

)如下

ABBREVIATED

在字段<

中搜索包含<

中指定字符串的单词,其中字符可能被其它字符隔开。

单词和字符串的第一个字母必须相同。

STARTINGAT<

n1>

中搜索从<

开始的<

结果SY-FDPOS参照相对于<

的偏移量而不是字段的开始。

ENDINGAT<

n2>

直到位置<

ANDMARK

如果找到搜索串,则将搜索串中的所有字符(和使用ABBREVIATED时的所有字符)转换为大写形式。

STRING(30)VALUE'

Thisisafastfirstexample.'

POSTYPEI,

OFFTYPEI.

WRITE/STRING.

ft'

ABBREVIATED.

SY-FDPOS:

'

SY-FDPOS.

POS=SY-FDPOS+2.

ABBREVIATEDSTARTINGATPOSANDMARK.

OFF=POS+SY-FDPOS-1.

Off:

OFF.

Thisisafastfirstexample.

ThisisafastFIRSTexample.

请注意,在找到单词'

fast'

之后,为了查找包含'

ft'

的第二个单词,必须在偏移量SY-FDPOS上加2,然后从位置POS开始查找。

否则,会再次找到单词

fast'

要获得'

first'

相对于字段STRING开始的偏移量,从POS和SY-FDPOS计算。

获得字符串长度

要决定字符串到最后一个字符而不是SPACE的长度,请使用内部函数STRLEN,用法如下:

[COMPUTE]<

n>

=STRLEN(<

).

STRLEN将操作数<

作为字符数据类型处理,而不考虑其实际类型。

不进行转换。

关键字COMPUTE可选。

有关内部函数的详细信息,参见使用数学函数(页49)。

INTTYPEI,

WORD1(20)VALUE'

12345'

WORD2(20).

WORD3(20)VALUE'

INT=STRLEN(WORD1).WRITE 

INT.

INT=STRLEN(WORD2).WRITE/INT.

INT=STRLEN(WORD3).WRITE/INT.

结果分别是5,0和4。

StandardReport

一个典型的报表程序是由许多的程序区块(CodeBlock)所组成,在区块间最好能加上一些说明以利程序可读性,一个典型的报表程序格式如下:

*PROGRAMSOURCEHEADER:

说明程序名称及目的

*ProgramName:

*Description:

*Date/Author:

*TableUpdate:

*SpecialLogic:

*Include:

*MODIFICATIONLOG:

程序修改更新记录

*ChangeDateProgrammer 

Request 

Description

NEWPROGRAM

*REPORTNAME:

声明程序名称及报表格式,

REPORTZ_____

NOSTANDARDPAGEHEADING

MESSAGE-ID__ 

"

所使用的MESSAGE

LINE-COUNT___ 

每页报表列数

LINE-SIZE___."

每页报表宽度

*TABLEDESCRIPTION:

声明程序会使用的TABLE

TABLES:

*DATA:

声明程序所使用的变量及自定型态

TYPES:

*SELECTIONSCREEN/OPTION/PARAMETER:

屏幕输入报表筛选条件

SELECTION-SCREENBEGINOFBLOCK____

SELECT-OPTIONS:

SELECTION-SCREENENDOFBLOCK___

*INITIALIZATION:

启动程序开始执行,如SELECT-OPTION及PARAMETER

INITIALIZATION.

INCLUDE____.

*ATSTARTSELECTION:

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

当前位置:首页 > 总结汇报 > 实习总结

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

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