SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx

上传人:b****1 文档编号:1161902 上传时间:2023-04-30 格式:DOCX 页数:24 大小:25.06KB
下载 相关 举报
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第1页
第1页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第2页
第2页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第3页
第3页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第4页
第4页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第5页
第5页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第6页
第6页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第7页
第7页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第8页
第8页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第9页
第9页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第10页
第10页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第11页
第11页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第12页
第12页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第13页
第13页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第14页
第14页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第15页
第15页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第16页
第16页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第17页
第17页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第18页
第18页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第19页
第19页 / 共24页
SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx

《SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。

SAP系统变量用法ABAP程序系统字段中英文详解Word文档下载推荐.docx

屏幕总列数;

SY-MANDT:

當前系統編號(CLIENTNUMBER)

SY-VLINE:

画竖线

SY-ULINE:

画横线

SY-PAGNO:

当前页号

SY-LINSZ:

当前报表宽度

SY-LINCT:

当前报表长度

SPACE:

空字符串

SY-LSIND:

列表索引页

SY-LISTI:

上一个列表的索引

SY-LILLI:

绝对列表中选定行的行号

SY-CUROW:

屏幕上的行

SY-CUCOL:

光标列

SY-CPAGE:

列表的当前显示页

SY-STARO:

真实行号

SY-LISEL:

选择行的内容,长度为255

SY-LINNO:

当前行

系统内部有一个专门存放系统变量的结构SYST,其中最常用的系统变量有:

SY-REPID:

ABAP程式名,目前的主程式

SY-CPROG:

ABAP程式名

SY-SYSID:

R/3系統,R/3系統名稱

SY-UCOMM:

 

畫面,PAI驅動的功能代碼,一般用來參照定義變量

当前LOOP循环过的次数 

READTABLEit_poINDEX1 

此時變量值1

下面說下sy-index和sy-tabix的區別

sy-index和sy-tabix都是系统字段,用来记录循环的次数。

sy-index在DO....ENDDO循环里有效,而sy-tabix在loopat......endloop里有效。

運行下面的例子能更好的理解:

DATA:

BEGINOFline,

 

col1TYPEi,

col2TYPEi,

ENDOFline.

DATAitabLIKETABLEOFlineWITHHEADERLINE.

DO30TIMES.

line-col1=sy-index.

line-col2=sy-index*sy-index.

APPENDlineTOitab.

ENDDO.

LOOPATitab.

DO2TIMES.

WRITE:

/'

sy-tabix:

'

sy-tabix,itab-col1,

'

sy-index:

sy-index,itab-col2.

ENDLOOP.

sy-dbcnt:

Sy-dbcnt代表有多少条记录被处理了

例如:

當我們查詢記錄放入內表,判斷內表中是否有數據就可以用 ifsy-dbcnt=0 

MESSAGEs000.

STOP.ENDIF.

sy-tfill:

返回当前内表(InternalTable)内的记录数。

但是要小心,那些字段随各自的内表(InternalTable)改变。

例:

如果你循环(Loopat)(读取)itab,sy-tfill返回itab的记录数。

如果你在循环(Loopat)(读取)内表(InternalTable)itab的内部嵌套循环(Loopat)(读取)内表(InternalTable)jtab,sy-tfill返回的不再是itab的记录数,而是jtab的!

所以如果你需要使用itab的记录数,请先把sy-tfill的值传递给其它变量。

无论如何,sy-tfill永远保存当前的记录数。

例如記錄內表記錄條數:

DESCRIBETABLEitabLINESsy-tfill.

当前系统编号(CLIENTNUMBER)

sy-pagno 

sy-lsind 

列表索引页

sy-listi 

上一个列表的索引

sy-linsz 

当前报表宽度

sy-lilli 

绝对列表中选定的行号

sy-linct 

sy-curow 

屏幕上的行

space 

空字符

sy-cucol 

sy-cpage 

列表的当前显示页

sy-staro 

真实行号

sy-lisel 

sy-linno 

当前行

SY-SLSET:

SY-SUBRC的含义

=================FUNCTIONMODULE(或RFC中)SY-SUBRC的含义================

使用SELECT语句选择查询:

SY-SUBRC=0:

至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。

SY-SUBRC=4:

没有数据。

SY-SUBRC=8:

只有使用“SELECTSINGLEFORUPDATE”时才会有,

表示:

WHERE条件指定的记录不止一行,结果是没有记录被选中。

使用INSERT语句,向表中插入一行,必须注意INSERT的顺序与表中字段的顺序一致:

插入成功,SY-DBCNT包含了插入的行数,0或1。

由于有相同的KEY存在,所以插入失败。

使用LOOP语句来遍历一个内表:

循环至少被执行一次。

循环没有被执行,可能是没有数据,也可能是没有符合条件的记录。

使用DELETE语句来删除一条记录:

找到一行并删除之,如果该表有不唯一主键,也就是有多条重复的记录,则只删除第一条记录。

没有找到符合条件的记录,也没有删除。

使用UPDATE语句来更新一条记录:

找到记录并更新,(如果有多条记录呢?

没有找到符合条件的记录,也没有更新。

ABAP程序系统字段中英文详解

-注_华亭慧剑译

系统字段由ABAP运行时环境填写,并且可以用来在ABAP程序中查询系统状态。

除了一个例外(sy-repid),系统字段都是变量,但是它们都是只读的。

此外,更多程序执行的重要信息通常都被丢弃。

ABAP程序中的系统字段只在极少需要控制系统行为的时候才能被重写。

SystemfieldsarefilledbytheABAPruntimeenvironmentandcanbeusedinanABAPprogramtoquerysystemstatuses.Withoneexception(sy-repid),systemfieldsarevariables,buttheyshouldonlybeaccessedonaread-onlybasis.Otherwise,importantinformationforfurtherprogramexecutionoftengetslost.SystemfieldsinABAPprogramscanonlybeoverwritteninafewcasestocontrolsystembehavior.

对于例外的sy-repid,这个系统字段的数据类型在ABAP字典的SYST结构(版以后)中定义,作为sy结构(也可以用SYST来定位)的组件在ABAP程序中有示例。

sy结构在一个内部会话期间内只存在一次,并且在这个内部会话期间内被所有程序使用。

下表列出了在ABAP程序中可以使用的系统字段。

所有sy结构的其他组件则或者在ABAP运行时环境内部使用或者已经废弃。

Withtheexceptionofsy-repid,thedatatypesofthesystemfieldsaredefinedintheABAPDictionaryinthestructureSYST(asofrelease,andareinstantiatedinABAPprogramsascomponentsofthepredefinedstructuresy,whichcanalsobeaddressedusingSYST.Thestructuresyexistsonlyonceinaninternalsessionandisusedbyallprogramsofaninternalsessionatthesametime.ThefollowingtableshowsthesystemfieldsthatcanbeusedinABAPprograms.AllothercomponentsofthestructuresyareeitherintendedforinternalusebytheABAPruntimeenvironmentorareobsolete.

名称

Name

类型

Type

说明

Content

sy-abcde

c(26)

包含了字母表。

可以用来通过指定偏移/长度直接访问独立的字母,而无需考虑代码页。

Containsthealphabet.Canbeusedtoaccessindividuallettersdirectlybyspecifyingtheoffset/length,regardlessofthecodepage.

sy-batch

c

(1)

在一个后台运行的ABAP程序中设置为“X”,否则就是初始值。

Setto"

X"

inanABAPprogramthatrunsinthebackground,otherwiseinitial.

sy-binpt

在批处理输入会话中设置为“X”,在ABAP程序中调用usingCALLTRANSACTIONUSING。

否则就是初始值。

duringprocessingofbatchinputsessions,andinABAPprogramscalledusingCALLTRANSACTIONUSING.Otherwiseinitial.

sy-calld

在一个调用序列中的第一个程序里为空字符串,否则为值“X”。

在调用usingCALLTRANSACTION,CALLDIALOG或者SUBMIT...ANDRETURN后变为“X”。

如果程序以LEAVETOTRANSACTION或者从一个屏幕事务开始的话,则为空。

使用SUBMIT(没有ANDRETURN)时设定为调用它的程序的值。

Containsablankcharacterinthefirstprograminacallsequence,otherwisecontainsthevalue"

.Issetto"

aftercallsusingCALLTRANSACTION,CALLDIALOG,orSUBMIT...ANDRETURN.EmptyiftheprogramwasstartedusingLEAVETOTRANSACTIONoratransactionfromthescreen.AcallusingSUBMIT(withoutANDRETURN)assumesthevalueofthecallingprogram.

sy-callr

c(8)

当打印清单时,显示打印从何处开始的值,例如NEW-PAGE为程序控制的打印,或者RSDBRUNT为从一个选择屏幕打印。

Whenprintinglists,containsavaluethatdisplayswheretheprintingwasstarted,forexample,NEW-PAGEforprogram-controlledprinting,orRSDBRUNTforprintingfromtheselectionscreen.

sy-colno

i

在清单缓冲区中创建清单过程中的当前位置。

从1开始计算。

在非Unicode系统中,这个位置也符合显示清单中的列。

在Unicode系统中,由于清单缓冲区中的一个字符可能占多列,这只保证每个输出的最低和最高的输出能力。

Currentpositionduringcreationofalistinthelistbuffer.Countingbeginsat1.Innon-Unicodesystems,thispositionalsocorrespondstothecolumninthedisplayedlist.InUnicodesystems,thisisonlyguaranteedforthelowerandupperoutputlimitsapplicabletoeachoutput,asonecharactermaytakeupmorecolumnsinthelistthanpositionsinthelistbuffer.

sy-cpage

当清单事件被触发时,显示在清单顶端的页码。

从1开始。

Pagenumberofthepagedisplayedatthetopofthelistforwhichalisteventwastriggered.Countingbeginsat1.

sy-cprog

c(40)

在外部程序调用中,调用程序的名字,否则就是当前程序的名字。

如果一个程序包含多级程序调用,sy-cprog包含框架程序的名字,而不是设置为程序调用序列中的框架程序名字。

Inprocedurescalledexternally,thenameofthecallingprogram,Otherwisethenameofthecurrentprogram.Ifaprocedurecalledexternallycallsanotherexternalprocedure,sy-cprogcontainsthenameoftheframeworkprogram,andisnotsettothenameoftheframeworkprogramofthesubsequentcallingprogram.

sy-cucol

在屏幕上显示的横向指针的位置。

从第2列开始。

Horizontalcursorpositioninthedisplayonascreen.Countingbeginsatcolumn2.

sy-curow

在屏幕上显示的纵向指针的位置。

从第1行开始。

Verticalcursorpositiononthescreendisplayofascreen.Countingbeginsatline1.

sy-datar

在PAI中,如果屏幕上至少有一个输入字段的值被用户或其他数据传输所更改,则为“X”,否则为初始值。

AtPAI,contains"

ifatleastoneinputfieldofascreenhasbeenchangedbyauserorbyfurtherdatatransfer,otherwiseinitial.

sy-datlo

d

用户的当前日期,例如:

,。

可以用GETTIME来设置。

Localdateoftheuser,forexample,.CanbesetusingGETTIME.

sy-datum

SAP系统的本地日期。

LocaldateoftheSAPsystem.CanbesetusingGETTIME.

sy-dayst

在夏令时中设置为“X”,否则为初始值。

"

duringsummertime,otherwiseinitial.

sy-dbcnt

SQL语句把sy-dbcnt的内容设置为处理过的表行数。

SQLstatementssetthecontentofsy-dbcnttothenumberofprocessedtablelines.

sy-dbnam

c(20)

在执行程序中,表示连接的逻辑数据库。

Inexecutableprograms,thelinkedlogicaldatabase.

sy-dbsys

c(10)

使用的数据库系统,例如ORACEL,INFORMIX。

Centraldatabasesystem,forexample,ORACLE,INFORMIX.

sy-dyngr

c(4)

当前屏幕的屏幕组。

在屏幕画笔中,几个屏幕可以指定给一个公共屏幕组,例如,可以用来一次修改同一个屏幕组中的全部屏幕。

Screengroupofthecurrentscreen.IntheScreenPainter,severalscreenscanbeassignedtoacommonscreengroup,whichcanbeused,forexample,formakingmodificationstoallscreensinthegroupatonce.

sy-dynnr

当前的屏幕号。

在选择屏幕处理过程中,这指定了当前被选中的屏幕。

在列表处理过程中,说明了子屏幕容器的数量。

在子屏幕屏幕过程中(包括选项卡),说明了屏幕数量。

Numberofthecurrentscreen.Duringselectionscreenprocessing,thisisthecurrentselectionscreen.Duringlistprocessing,thenumberofthesubscreencontainer.Duringprocessingofasubscreenscreen(includingintabstrips),thisscreennumber.

sy-fdayw

b

工厂日历的周日,Monday为1,…,Friday为5。

Factorycalendarweekday,Monday=1,...,Friday=5.

sy-fdpos

在字符类型数据对象操作时查找定位。

Foundlocationinoperationswithcharacter-typedataobjects.

sy-host

应用服务器的名字,例如,KSAP0001,HS01234。

Nameoftheapplicationserver,forexample,KSAP0001,HS01234.

sy-index

循环索引。

在DO和WHILE循环中,指包含了本次循环的循环次数。

Loopindex.InDOandWHILEloops,containsthenumberofthelooppassesincludingthecurrentpass.

sy-langu

单字符的语言键,例如,D,E,F,给当前的文本环境使用。

通过依照当前用户的登录语言,或使用SETLOCALE语句设定。

Single-characterlanguagekey,forexample,D,E,F,forthecurrenttextenvironment.SetaccordingtothelogonlanguageoftheuserorbyusingthestatementSETLOCALE.

sy-ldbpg

在可执行程序中,指定了连接的逻辑数据库的数据库程序。

Inexecutableprograms,thedatabaseprogramofthelinkedlogicaldatabase.

sy-lilli

当清单事件被触发时的清单行数,从1开始计算并包含页抬头。

Listlineforwhichalisteventwastriggered.Countingbeginsat1andincludesthepageheader.

sy-linct

在当前清单创建时的页长。

sy-linct在一个任意长度的标准清单中的值为0,而在定义了页长的清单中不为0。

Pagelengthofthecurrentlistduringlistcreation.sy-linctis0forastandardlistofanylength,andhasavaluethatisnot0forlistswithadefinedpagelength.

sy-linno

当清单建立时

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

当前位置:首页 > 人文社科 > 法律资料

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

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