ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:125.54KB ,
资源ID:1682909      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1682909.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(ABAP基础知识-自学.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

ABAP基础知识-自学.doc

1、 ABAP根底知识(完整版)-上 SAP ABAP / 4 根底知识学习 数据类型 C :字符串 D :日期型格式为 YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串 如:011,'302' T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数 如:'1A03' *-------------------------------------------------------------------------------------* 变量声明 DATA [

2、ngth>] [][decimals] 变量名称 变量类型及长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON,

3、 NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. 另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 关键字 声明的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [<

4、length>] [] [] 系统专用变量说明 系统内部专门创立了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code SY-INDEX: 当前LOOP循环过的次数 S

5、Y-TABIX: 当前处理的是internal table 的第几笔 SY-TMAXL: Internal table的总笔数 SY-SROWS: 屏幕总行数; SY-SCOLS: 屏幕总列数; SY-MANDT: CLIENT NUMBER SY-VLINE: 画竖线 SY-ULINE: 画横线 TYPE 关键字 用来指定资料型态或声明自定资料型态 Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE

6、 C, NUMBER TYPE I, END OF MYLIST. DATA LIST TYPE MYLIST. LIKE 关键字 跟TYPE关键字使用格式相同, 如 DATA TRANSCODE LIKE SY-TCODE. 不同的是 LIKE 用在已有值的资料项, 如系统变量, 而TYPE关键字那么是用在指定资料型态。 TABLES 关键字 用来声明 Table Work Area 的数据, 对应至 ABAP/4 资料文件(Dictiona

7、ry Object), 由SQL 指令加载所需数据 语法: TABLES Example: TABLES: SPFL. SELECT * FROM SPFL. WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION. ENDSELECT. 从ABAP/4 Dictionary 的 SPFL 档载入MANDT,CARRID,CONNECTION 三个字段至SPFL 此Table Work Area *----------------------------------------------------------

8、 输出 一. WRITE 语句 ABAP/4用来在屏幕上输出资料的指令是WRITE指令,例如: WRITE: 'USER NAME IS:', SY-UNAME. 二. 指定屏幕输出位置 指定输出位置的语句格式为: WRITE: [AT] [ / ] [] [()] 资料项 [] 其中: / : 在下一行输出 : 指定输出的行号; ():指定输出位数(长度) : 指定显示格式参数,参数有: LEFT-JUSTI

9、FIED 资料*左对齐 CENTERED 资料*中间对齐 RIGHT-JUSTIFIED 资料*右对齐 UNDER 正对在资料项的下面显示 NO-GAP 紧接着显示,不留空格 USING EDIT MASK : 使用内嵌子元显示, 如 12:03:20 USING NO EDIT MASK: 不使用内嵌子元 NO-ZER 数字前面 0 的局部不显示

10、 NO-SIGN: 不显示正负号 DECIMALS : 显示 位小数 EXPOENT : F(浮点数)指数的值 ROUND : 四舍五入至小数点后位 CURRENCY : 币别显示 DD/MM/YY : 日期显示格式 MM/DD/YY: YY/MM/DD: YY/DD/MM MM/DD/Y

11、YYY: DD/MM/YYYY YYYY/MM/DD: YYYY/DD/MM: 例如1: WRITE: /10(6) 'ABCDEFGHIJK'. 输出结果为: ABCDEF 例如2: DATA: X TYPE I VALUE '11:20:30', A(5) TYPE C VALUE 'AB CDE'. WRITE: / X USING EDIT MASK '__:__:__'. WRITE: / X USING EDIT MASK '$___,_

12、'. WRITE: / Y NO-GAP. 输出结果为: 11:20:30 $112,030 ABCDEF 例如3: DATA: LEN TYPE I VALUE 10, POS TYPE I VALUE 11, TEXT(10) VALUE '1234567890' WRITE 'The text ------------ appears in the text.'. WRITE AT POS(LEN) TEXT. WRITE TO 语句的

13、根本 形式 要将值(文字)或源字段内容写入目标字段,可以使用 WRITE TO 语句: 语法 WRITE TO [

14、MBER TO PACK. WRITE / PACK. MOVE NUMBER TO PACK. WRITE / PACK. exp: DATA: NAME(10) VALUE 'SOURCE', SOURCE(10) VALUE 'Antony', TARGET(10). ... WRITE (NAME) TO TARGET. WRITE: TARGET. exp : DATA: COUNTER TYPE I. COMPUTE COUNTER = COUNTER + 1. COUNTER = COUNTER + 1. AD

15、D 1 TO COUNTER. 在此,三条运算语句进行相同算术运算 输出屏幕上的线和空行 用以下语法,可以在输出屏幕上生成水平线: 语法 ULINE [AT [/][][()]]. 它等同于 WRITE [AT [/][][()]] SY-ULINE. AT 后的格式标准,与在在屏幕上定位 WRITE 输出(页 28)中为 WRITE 语句说明的格式标准完全一样。 如果没有格式标准,系统那么开始新的一行,并用水平线填充该行。否那么,只按指定输出水平线。 生成水平线的另一种方法,是在 WRITE 语句中键入恰当数量的连字符,如下

16、所示: WRITE [AT [/][][()]] '-----...'. 垂直线 用以下语法 ,可以在输出屏幕上生成垂直线: 语法 WRITE [AT [/][]] SY-VLINE. 或 WRITE [AT [/][]] '|'. 空行 用以下语法 ,可以在输出屏幕上生成空行: 语法 SKIP []. 该语句从当前行开始,在输出屏幕上生成 个空行。如果没有指定 的值,就输出一个空行 。 要将输出定位在屏幕的指定行上,请使用: 语法 SKIP TO LINE . 该语句允许将输出位置向上或向下移

17、动。 四. 显示图示: 语法: WRITE: AS SYMBOL. WRITE: AS ICON. 例如: INCLUDE . INCLUDE . WRITE: / 'Phone symbol:', SYM_PHONE AS SYMBOL. WRITE: / 'Alarm Icon:', ICON_VOICE_OUTPUT AS ICON. 要查看系统所提供有那些符号及图示,可选择'EDIT'下的'Insert Statement',选择'Write',

18、接下来选择要查看的群组,如SYMBOL 或ICON, 接下来按'Display'即可. *-------------------------------------------------------------------------------------* 一. Internal Table 的声明 ABAP/4中的Internal Table是一种Data Structure,类似于其他语言中的STRUTURE,它可以由几个不同类型的栏位(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔资料表示具有相同属性的多个事物. Internal

19、table 的定义有以下几种格式: 格式一. DATA: BEGIN OF OCCURS , TYPE , [ TYPE , TYPE , … ] END OF .

20、语法: DATA OCCURS [WITH HEADER LINE] Example: DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE. 格式二. TYPES: BEGIN OF , TYPE , [

21、> TYPE , TYPE , … ] END OF . TYPES TYPE OCCURS . 格式三. DATA: BEGIN OF . INCLUDE STRUCTURE

22、 name>. DATA: END OF . DATA: LIKE OCCURS . exp: TYPES VECTOR TYPE I OCCURS 10. TYPES: BEGIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE L

23、INE OCCURS 10. TYPES: BEGIN OF DEEPLINE, TABLE1 TYPE VECTOR, TABLE2 TYPE ITAB, END OF DEEPLINE. TYPES DEEPTABLE TYPE DEEPLINE OCCURS 10. 本例如创立与上例相同的内表数据类型(VECTOR 和 ITAB)。然后创立数据类型 DEEPLINE 作为字段串,包含这些内表作为组件。通过该字段串,数据类型 DEEPTABLE 被创立为内表。因此该内表的元素本身就是内表。 exp : TYPES: BE

24、GIN OF LINE, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10. DATA TAB1 TYPE ITAB. DATA TAB2 LIKE TAB1 WITH HEADER LINE. 同创立内表数据类型(页 99)中所示,该例如创立数据类型 ITAB 作为内表。通过使用 DATA 语句的 TYPE 参数引用 ITAB,使数据对象 TAB1 与 ITAB 结构相同。通过

25、使用 DATA 语句的 LIKE 参数引用 TAB1,使数据对象 TAB2 结构相同。创立的 TAB2 带表头行。因此,可以在程序中使用 TAB2-COLUMN1、TAB2-COLUMN2 和 TAB2-COLUMN3 等定位表格工作区域 TAB2。 exp : DATA FLIGHT_TAB LIKE SFLIGHT OCCURS 10. 本例如创立数据对象 FLIGHT_TAB, 其结构与数据库表格 SFLIGHT 相同。 本例如介绍 如何采用两种不同的步骤创立同一内表。 TYPES VECTOR_TYPE TYPE I OCCURS 10. DATA VECTOR T

26、YPE VECTOR_TYPE WITH HEADER LINE. 在此创立一个内表数据类型 VECTOR_TYPE,其行包含首先创立的根本类型 I 字段。然后,通过引用 VECTOR_TYPE 创立数据对象 VECTOR。通过使用 WITH HEADER LINE 选项还创立表格工作区域 VECTOR。在这种情况下,表格工作区域包含一种类型 I 字段,可以通过名称 VECTOR 定位。 DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE. 在这种情况下,通过直接在 DATA 语句中使用 OCCURS 选项创立完全一样的数据类型 VECTOR。

27、 1. TYPES type. 2. TYPES type(len). 3. TYPES: BEGIN OF structype ... END OF structype. 4. TYPES itabtype {TYPE tabkind OF linetype LIKE tabkind OF lineobj} [WITH [UNIQUE|NON-UNIQUE] ke

28、ydef] [INITIAL SIZE n]. 5. TYPES itabtype TYPE RANGE OF type. TYPES itabtype LIKE RANGE OF f. 6. TYPES itabtype {TYPE linetype|LIKE lineobj} OCCURS n. *-------------------------------------------------------------------------------------* APPEND LINE 格式:APPEND

29、TO 举例一:(使用WORK AREA) DATA : BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DO 2 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO ITAB. ENDDO. LOOP AT ITAB INTO LINE.

30、 WRITE : / LINE-COL1,LINE-COL2. ENDLOOP. 举例二 (不使用WORK AREA) DATA : BEGIN OF ITAB OCCURS 10, COL1 TYPE I, COL2 TYPE I, END OF ITAB. DO 2 TIMES. ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX ** 2. APPEND ITAB. ENDDO. LOOP AT ITAB. WRITE :

31、/ ITAB-COL1,ITAB-COL2. ENDLOOP. exp: DATA: BEGIN OF ITAB OCCURS 10, COL1 TYPE C, COL2 TYPE I, END OF ITAB. DO 3 TIMES. APPEND INITIAL LINE TO ITAB. ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX ** 2. APPEND ITAB. ENDDO. LOOP AT ITAB. WRITE: / ITAB-COL1, IT

32、AB-COL2. ENDLOOP. 举例三. (参加另一个Internal table的元素) 格式: APPEND LINES OF [FROM ] [TO ] TO . 将的元素参加至中,可选取自的范围. APPEND LINES OF ITAB TO JTAB. COLLECT LINE COLLECT 指令也是将元素参加Internal table中,与APPEND 的区别是: COLLECT指令在非数值栏位相同的情况下,将数值栏

33、位汇总. 格式: COLLECT [ INTO ] DATA: BEGIN OF ITAB OCCURS 3, COL1(3) TYPE C, COL2 TYPE I, END OF ITAB. ITAB-COL1 = 'ABC'. ITAB-COL2 = 10. COLLECT ITAB. ITAB-COL1 = 'XYZ'. ITAB-COL2 = 20. COLLECT ITAB.

34、 ITAB-COL1 = 'ABC'. ITAB-COL2 = 80. COLLECT ITAB. 此时, internal table中放的是2笔数据, 分别为: ITAB-COL1 ITAB-COL2 'ABC' 90 'XYZ' 20 *-------------------------------------------------------------------------------------* INSERT L

35、INE 将元素插入在指定的internal table位置之前. 格式: INSERT [ INTO] [INITIAL LINE INTO ] [INDEX ] 或者: INSERT LINES OF [FROM TO ] INTO INDEX 其中: 即work area,工作区中的元素. [INITIAL LINE INTO] :插入一笔初始化的记录. : internal table [INDEX ]: internal table 的记录号.(新参

36、加的元素放在此记录前面) Example: DATA: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DO 3 TIMES.

37、 LINE-COL1 = SY-INDEX *10. LINE-COL2 = SY-INDEX *20. APPEND LINE INTO ITAB. ENDDO. LINE-COL1=100. LINE-COL2=200. INSERT LINE INTO ITAB INDEX 2. "插入在位置2之前

38、 LOOP AT ITAB INTO LINE. WRITE: / SY-TABIX,LINE-COL1,LINE-COL2. "SY-TABIX为Table位置 ENDLOOP. 执行结果: 1 10 20 2 100 200 "插入的元素

39、 3 20 40 4 30 60 插入另一Internal Table元素 语法: INSERT LINES OF [FROM TO ] TO INDEX 的元素插入至中, 位置在 之前, 可选取自的范围 Example:

40、 APPEND LINES OF ITAB TO JTAB INDEX 3. 将ITAB所有元素插入JTAB中, 位置在第三个元素之前 *-------------------------------------------------------------------------------------* 读取internal table 格式一: LOOP AT [INTO ][FROM TO ][WHERE ] END

41、LOOP. Example: LOOP AT ITAB INTO LINE WHERE COL1 >100. WRITE: / SY-TABIX,LINE-COL1. ENDLOOP. 仅读取 COL1 > 100 的元素 格式二: READ TABLE [INTO ] [INDEX / WITH KEY ] 举例. (格式二)

42、DATA: BEGIN OF ITAB OCCURS 10, COL1 TYPE I, COL2 TYPE I, END OF ITAB. DO 10 TIMES. ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX * 2. APPEND ITAB. ENDDO. READ TABLE ITAB INDEX 3. (或者: READ TABLE ITAB WITH KEY COL1 = 3.) WRI

43、TE: / 'ITAB-COL1 = ', ITAB-COL1, 'ITAB-COL2 = ', ITAB-COL2. 执行结果同样是: ITAB-COL1 = 3 ITAB-COL2 = 6. Example: READ TABLE ITAB INTO LINE INDEX 5 读取 ITAB的第5个元素资料, 放入 LINE的栏位中 根据栏位内容寻找 语法: READ TABLE INTO

44、 Example: ITAB-COL1 = 'ABC'. READ TABLE ITAB INTO LINE. 找出ITAB 中 COL1 栏位内容是 ABC 的元素, 找到的值放入 LINE 中 假设找到 SY-SUBRC传回0, 找不到那么传回 4, 必须声明有 work area *---------------------------------------------------------------

45、 修改internal table 中的值 格式: MODIFY [FROM ][INDEX ][TRANSPORTING …][WHERE ] 举例一. READ TABLE ITAB INDEX 3. LINE-COL1 = 29. MODIFY ITAB FROM LINE TRANSPORTING COL1. 将第三笔记录的COL1栏位的值修改为29. 举例二. T_SALARY - salary = 50.

46、 MODIFY T_SALARY TRANSPORTING salary WHERE birthday = '1999/12/06'. DELETE internal table中的栏位 格式: DELETE INDEX . 或: DELETE [FROM TO ] [WHERE ] Internal table 排序 SORT [][BY …] 其中: 有DESCENDING 和ASCE

47、NDING, Default 为ASCENDING. : 为指定排序的栏位. Example: SORT ITAB DESCENDING BY COL2. 将 ITAB 根据 COL2栏位递减排序 *-------------------------------------------------------------------------------------* 确定内表属性 如果在处理过程中想知道内表一共包含多少行,或者想知道定义的 OCCURS 参数的大小,

48、请使用 DESCRIBE 语句,用法如下: 语法 DESCRIBE TABLE [LINES ] [OCCURS ]. 如果使用 LINES 参数,那么将填充行的数量写入变量 。如果使用 OCCURS 参数,那么将行的初始号写入变量 。 DATA: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. DATA ITAB LIKE LINE OCCURS 10. DATA: LIN TYPE I, OCC TYPE I

49、 DESCRIBE TABLE ITAB LINES LIN OCCURS OCC. WRITE: / LIN, OCC. DO 1000 TIMES. LINE-COL1 = SY-INDEX. LINE-COL2 = SY-INDEX ** 2. APPEND LINE TO ITAB. ENDDO. DESCRIBE TABLE ITAB LINES LIN OCCURS OCC. WRITE: / LIN, OCC. 其输出为: 0 10 1.000 10 在此创立内表 ITAB。

50、在填充表格前后执行 DESCRIBE 语句。更改当前行号,但无法更改初始行号。 *-------------------------------------------------------------------------------------* 加总 SUM. 总和计算存放与work area中,但只能在LOOP 中使用. 例: LOOP AT ITAB INTO LINE. SUM. ENDLOOP. WRITE: / LINE-COL1, LINE-COL2. LINE-COL1 和 LINE-COL2 存数值总和初始化int

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服