ABAP4基础V1.0分析_第1页
ABAP4基础V1.0分析_第2页
ABAP4基础V1.0分析_第3页
ABAP4基础V1.0分析_第4页
ABAP4基础V1.0分析_第5页
已阅读5页,还剩158页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、真诚协同真诚协同SAP ABAP SAP ABAP 基础培训基础培训-ABAP4 基础11第一章第一章 ABAP/4ABAP/4基础基础第二第二章章 ABAP/4 ABAP/4基本语法基本语法第三第三章章 数据数据输出到屏幕输出到屏幕第四第四章章 处理处理数据数据第五第五章章 流控制流控制第六第六章章 内内表处理表处理第七第七章章 单单界面界面REPORTREPORT第八第八章章 交互式报表交互式报表第九第九章章 ALVALV报表报表第十第十章章 FUNCTIONFUNCTION第十一第十一章章 搜索搜索帮助帮助第十二第十二章章 DEBUGDEBUG课程内容课程内容2第一第一章章 ABAP/4

2、ABAP/4基础基础3ABAP/4ABAP/4程序类型程序类型 1.1.报表程序报表程序 报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。逻辑数据库是特殊的 ABAP/4 程序,使开发者不必编码所有的数据库访问。 2.2.对话程序对话程序 将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“ 动态程序”)都基于一个ABAP/4对话程序。流逻辑包含对ABAP/4对话模块的调用。4创建简单的创建简单的ABAP/4程序程序步骤步骤 : 1.命名程序命名程序 2.指定程序属性指定程序属性 3.编写程序代码编写程序代码

3、 4.测试程序测试程序51.1 1.1 打开编辑器打开编辑器1.1.创建程序,请进行如下操作:创建程序,请进行如下操作: a. a.在在“ “ SAP R/3”SAP R/3”初始屏上选择初始屏上选择“工具工具 - - ABAP/4 ABAP/4 工作台工作台”。出现。出现“开开 发发”屏幕,选择屏幕,选择“ABAP4 ABAP4 编辑器编辑器”。双击双击ABAP4编辑器编辑器6b. b. 在屏幕左上角输入事务代码在屏幕左上角输入事务代码“SE38SE38”。在此输入在此输入“SE38”,然后点击左边的执行按钮然后点击左边的执行按钮b. b. 在屏幕左上角输入事务代码在屏幕左上角输入事务代码“

4、SE38”SE38”。1.1 1.1 打开编辑器打开编辑器7 执行后出现执行后出现“ABAP/4 ABAP/4 编辑器:初始屏幕编辑器:初始屏幕”屏幕:屏幕:显示程序代码显示程序代码输入程序名称输入程序名称创建程序创建程序显示程序并处于修改状态显示程序并处于修改状态1.1 1.1 打开编辑器打开编辑器81.2 1.2 命名程序命名程序 在在“程序程序”字段输入创建的程序名称,必须遵守程序命名规则。如果程字段输入创建的程序名称,必须遵守程序命名规则。如果程序已经存在,可以按下序已经存在,可以按下“显示显示”或者或者“修改修改”。 在命名规则上在命名规则上, , ReportsReports程序为

5、程序为 YaxxxxxxYaxxxxxx或或Zaxxxxxx, aZaxxxxxx, a表表application application modulemodule简称简称, , 如如s s表表SDSD。DialogDialog程序为程序为SAPMYxxxSAPMYxxx或或SAPMZxxxSAPMZxxx。 我们自己开发的程序一般都是以我们自己开发的程序一般都是以Z Z开头。开头。91.3 1.3 指定程序属性指定程序属性 创建程序时需要指定程序的一些属性,比如类型、开发类等等。创建程序时需要指定程序的一些属性,比如类型、开发类等等。输入程序的标题输入程序的标题选择程序类型选择程序类型10

6、点击保存以后,提示输入程序的开发类。如下:点击保存以后,提示输入程序的开发类。如下:选择程序的开发类选择程序的开发类点击保存后进入程序编辑点击保存后进入程序编辑界面界面1.3 1.3 指定程序属性指定程序属性111.4 1.4 编写程序代码编写程序代码指定完程序属性后,系统自动进入编辑界面,并自动输入第一个指定完程序属性后,系统自动进入编辑界面,并自动输入第一个ABAP/4ABAP/4语语句。如下:句。如下:此处此处REPORTNAME为先前输入的为先前输入的程序名称程序名称121.5 1.5 测试程序测试程序语法检查语法检查激活激活测试程序测试程序(F8)程序中请加入程序中请加入详细注释详细

7、注释13 语法检查无错误,并且激活以后,可以点语法检查无错误,并且激活以后,可以点 测试程序,运行结果如下:测试程序,运行结果如下:输入查询条件输入查询条件执行执行1.5 1.5 测试程序测试程序141 1. .6 6 ABAP/4ABAP/4开发平台工具开发平台工具( (一一) )n 对象浏览器对象浏览器(Repository Browser)n 数据字典数据字典(Dictipnary)n 程序编辑器程序编辑器(ABAP Editor)n 功能模块生成器功能模块生成器(Function Builder)n 屏幕绘制器屏幕绘制器(Screen Painter)n 菜单绘制器菜单绘制器(Menu

8、 Painter)151 1. .6 6 ABAP/4ABAP/4开发平台工具开发平台工具( (二二) )n Repository Browser(SE80) 便于程序员看清楚分离组件的关系,其外观类似一个目录列表。便于程序员看清楚分离组件的关系,其外观类似一个目录列表。nDictionary(SE11) 存储整个系统的数据定义存储整个系统的数据定义nABAP Editor(SE38) 用来创建或修改代码,可以进行语法检测,激活程序。用来创建或修改代码,可以进行语法检测,激活程序。nFunction Builder(SE37) 所有所有FUNCTION的资源库,完成的资源库,完成FUNCTIO

9、N的创建和相关处理。的创建和相关处理。nScreen Painter(SE51) 用于图形用户界面的设计,将字段、按钮和其它元素添加到屏幕上。用于图形用户界面的设计,将字段、按钮和其它元素添加到屏幕上。nMenu Painter(SE41) 创建用户自定义菜单。创建用户自定义菜单。16第二章第二章 ABAP/4ABAP/4基本语法基本语法17基本数据类型及其属性基本数据类型及其属性Data typeMeaningInitial valueStandardAllowedlengthlengthPacked number0 81-16Integer0 * -Floating point no.0

10、* -Numeric text0.0 11-max.Text (character)Blank11-max.Date (YYYYMMDD)0000000 8 8Time (HHMMSS)00000 66HexadecimalX0011-max.* Machine-specificmax.: approx. 64,000 Byte压缩型压缩型整型整型浮点型浮点型数值型数值型文本型文本型日期型日期型时间型时间型十六进十六进制型制型182.1 2.1 变量定义变量定义变量定义变量定义包含包含 name, type, length name, type, length 和和 structurestru

11、cture四四个个部分部分, , 使用使用 DATA DATA 指令指令, , 语法如下语法如下: :DATA () .示例示例: DATA: S1 TYPE I, SUM TYPE C.变量名变量名指定变量的长度和类型指定变量的长度和类型初始值初始值指定小数位数指定小数位数192.2 2.2 常量定义常量定义 常量定义常量定义使用使用 CONSTANTS CONSTANTS 指令指令, , 语法如下语法如下: :CONSTANTS .如宣告如宣告 PI PI 是一個小是一個小数点数点5 5位的值位的值 3.141593.14159: CONSTANTS PI TYPE P DECIMALS

12、5 VALUE 3.14159.变量名变量名指定变量的长度和类型指定变量的长度和类型初始值初始值指定小数位数指定小数位数202.3 2.3 STATICSSTATICS定义定义 定义定义的的变量变量在目前的程式中使用在目前的程式中使用, , 结束后自动释放结束后自动释放语法语法: : STATICS 212.4 2.4 TYPESTYPES定义定义 定义常用数据类型或者自定义结构类型定义常用数据类型或者自定义结构类型 语法语法: : TYPES Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYL

13、IST. DATA LIST TYPE MYLIST. 请请注意:注意: 由于没有与数据类型相关联的内存,所以无法在由于没有与数据类型相关联的内存,所以无法在TYPESTYPES语句中使用语句中使用 value 参数。因此,不能给数据类型分配值。参数。因此,不能给数据类型分配值。222.5 2.5 LIKELIKE定义定义 跟跟TYPETYPE使用格式相同使用格式相同, , 如如: DATA TRANSCODE LIKE SY-TCODE.请注意:请注意: 不同的是不同的是 LIKE LIKE 用在已有用在已有值值的的数据类型数据类型, , 如如系统变量系统变量, ,而而TYPETYPE则则是

14、用在是用在定定义数据类型义数据类型232.6 2.6 DATADATA定义定义语法:语法:DATA 请注意:请注意:: 变量名称变量名称, , 最長最長3030個字元個字元, , 不可含有不可含有 + . , : ( ) 等等字符字符 : 数据类型数据类型及長度及長度, , 如如 LINE(20) TYPE C. MYNAME LIKE SY-UNAME.: 初值初值: 小数位数小数位数242.7 2.7 结构变量定义结构变量定义示例示例:DATA: BEGIN OF ADDRESS, NAME(10) TYPE C , NUMBER TYPE P, END OF ADDRESS.请注意:请注

15、意:使用使用时时用用结构名结构名加上加上元素名称元素名称, , 如如 ADDRESS-NAMEADDRESS-NAME252.8 2.8 TABLESTABLES定义定义语法语法: : TABLES . 是是 ABAP/4 ABAP/4 词典对象的名称,同时也是创建的表工作区的名称。可以词典对象的名称,同时也是创建的表工作区的名称。可以引用的有效引用的有效ABAP/4ABAP/4词典对象是结构词典对象是结构, ,视图视图, ,透明表。透明表。262.9 2.9 系统保留字系统保留字 這是由這是由系统所定义的专有名词系统所定义的专有名词, ,如如: SPACE 空白字串空白字串 SY-SUBRC

16、 系统执行返回值系统执行返回值, 0 表示成功表示成功 SY-UNAME 登陆用户名登陆用户名 SY-DATUM 系统系统日期日期 SY-UZEIT 系统时间系统时间 SY-TCODE 目前的目前的transaction code27第三章第三章 数据输出到屏幕数据输出到屏幕283.1 3.1 WRITEWRITE语句语句 语法语法: : WRITE . 示例示例: PROGRAM Ztrain_01. DATA NUMBER TYPE P VALUE -1234567.89 DECIMALS 2. WRITE: Number, NUMBER, is packed.29 点击测试程序点击测试程

17、序3.1 3.1 WRITEWRITE语句语句30 3.1 3.1 WRITEWRITE语句语句313.1 3.1 WRITEWRITE语句格式化输出语句格式化输出 数字字段的格式化选项数字字段的格式化选项 选项选项 用途用途 NO-SIGN 不输出前导符号。不输出前导符号。 DECIMALS 定义小数点后的数字位数。定义小数点后的数字位数。 EXPONENT 在类型在类型 F 字段中,在字段中,在中定义幂数。中定义幂数。 ROUND 用用10*(-r) 乘类型乘类型P 字段,然后取整。字段,然后取整。 CURRENCY 按表格按表格TCURX 中的货币中的货币格式化。格式化。 UNIT 按表

18、格按表格T006 中为类型中为类型P字段所指定的单位字段所指定的单位 固定小数位数。固定小数位数。32 日期字段的格式化选项日期字段的格式化选项 选项选项 用途用途 DD/MM/YY 用户主记录中定义的分隔符用户主记录中定义的分隔符 MM/DD/YY 用户主记录中定义的分隔符用户主记录中定义的分隔符 DD/MM/YYYY 用户主记录中定义的分隔符用户主记录中定义的分隔符 MM/DD/YYYY 用户主记录中定义的分隔符用户主记录中定义的分隔符 DDMMYY 无分隔符无分隔符 MMDDYY 无分隔符无分隔符 YYMMDD 无分隔符无分隔符3.1 3.1 WRITEWRITE语句格式化输出语句格式化

19、输出333.2 3.2 在屏幕上输出符号和图标在屏幕上输出符号和图标 语法语法: :WRITE AS SYMBOL.WRITE AS ICON. 示例示例: INCLUDE . INCLUDE . WRITE: / Phone Symbol:, SYM_PHONE AS SYMBOL. SKIP. WRITE: / Alarm Icon: , ICON_ALARM AS ICON.34 3.2 3.2 在屏幕上输出符号和图标在屏幕上输出符号和图标353.3 3.3 输出屏幕上的线和空行输出屏幕上的线和空行 a.a.水平线水平线 语法语法: : ULINE AT /().它等同于它等同于 WRI

20、TE AT /() SY-ULINE.36 b.b.垂直线垂直线 语法语法: : WRITE AT / SY-VLINE. 或或 WRITE AT / |.3.3 3.3 输出屏幕上的线和空行输出屏幕上的线和空行37 b.b.空行空行 语法语法: : SKIP . SKIP TO LINE .3.3 3.3 输出屏幕上的线和空行输出屏幕上的线和空行383.4 3.4 输出复选框输出复选框 b.b.空行空行 语法:语法: WRITE AS CHECKBOX . 示例示例: DATA: FLAG1 VALUE , FLAG2 VALUE X, FLAG3(5) VALUE Xenon. WRITE

21、: / Flag 1 , FLAG1 AS CHECKBOX, / Flag 2 , FLAG2 AS CHECKBOX, / Flag 3 , FLAG3 AS CHECKBOX.393.4 3.4 输出复选框输出复选框40第四章第四章 处理数据处理数据414.1 4.1 赋值赋值 a.MOVE语句语句 MOVE TO .相当于相当于 = . MOVE +() TO +(). MOVE-CORRESPONDING TO .b. WRITE TO 语句语句 WRITE TO . WRITE () TO . WRITE +() TO +().424.2 4.2 将值重置为默认值将值重置为默认值

22、语法:语法: CLEAR . 示例示例: DATA NUMBER TYPE I VALUE 10. WRITE NUMBER. CLEAR NUMBER. WRITE / NUMBER. 输出为:输出为: 10 0434.3 4.3 基本算术运算基本算术运算算术运算符:算术运算符: + 加法加法- 减法减法* 乘法乘法 除法除法DIV 整除整除MOD 求余求余* 求幂求幂444.4 4.4 使用数学函数使用数学函数 数值数据类型的函数:数值数据类型的函数: 函数函数 结果结果 ABS 参数的绝对值。参数的绝对值。 SIGN 参数符号:参数符号: 1 X 0 SIGN( X) = 0 if X

23、= 0 -1 X 0 CEIL 不小于参数的最小整数值。不小于参数的最小整数值。 FLOOR 不大于参数的最大整数值。不大于参数的最大整数值。 TRUNC 参数的整数部分。参数的整数部分。 FRAC 参数的分数部分。参数的分数部分。454.5 4.5 处理日期和时间处理日期和时间 日期:日期: DATA: ULTIMO TYPE D. ULTIMO = SY-DATUM. ULTIMO+6(2) = 01. = first day of this month ULTIMO = ULTIMO - 1. = last day of last month46 时间:时间: DATA: DIFF TY

24、PE I, SECONDS TYPE I, HOURS TYPE I. DATA: T1 TYPE T VALUE 200000, T2 TYPE T VALUE 020000. DIFF = T2 - T1. SECONDS = DIFF MOD 86400. HOURS = SECONDS / 3600.4.5 4.5 处理日期和时间处理日期和时间474.6 4.6 处理字符串处理字符串 1.1.移动字段内容移动字段内容 a.a.按给定位置数移动字段串按给定位置数移动字段串SHIFT BY PLACES .注意:注意: 该语句将字段该语句将字段 移动移动 个位置。如果省略个位置。如果省略B

25、Y PLACES,则将则将 解释为一个位置。如果解释为一个位置。如果 是是 0 或负值,则或负值,则 保持不变。保持不变。 如果如果 超过超过 长度,则长度,则 用空格填充用空格填充 。 可为变量。可为变量。LEFTRIGHTCIRCLUAR48 1.1.移动字段内容移动字段内容 b.b. 移动字段串给指定串移动字段串给指定串SHIFT UP TO .示例:示例:DATA: T(10) VALUE abcdefghij, STRING LIKE T, STR(2) VALUE ef. STRING = T. WRITE STRING. SHIFT STRING UP TO STR. WRITE

26、 / STRING. STRING = T.4.6 4.6 处理字符串处理字符串49 SHIFT STRING UP TO STR LEFT.WRITE / STRING.STRING = T.SHIFT STRING UP TO STR RIGHT.WRITE / STRING.STRING = T.SHIFT STRING UP TO STR CIRCULAR.WRITE / STRING.4.6 4.6 处理字符串处理字符串输出如下:输出如下:abcdefghijefghijefghij abcdefefghijabcd50 1.1.移动字段内容移动字段内容 c.c. 根据第一个或者最后

27、一个字符移动字符串根据第一个或者最后一个字符移动字符串 语法:语法:SHIFT LEFT DELETING LEADING .SHIFT RIGHT DELETING TRAILING .4.6 4.6 处理字符串处理字符串51 2.2.替换字段内容替换字段内容语法:语法: REPLACE WITH INTO LENGTH .注意:注意: 、 和和 可为变量。可为变量。4.6 4.6 处理字符串处理字符串52 3.3.转换大转换大/ /小写小写语法:语法:TRANSLATE TO UPPER CASE. TRANSLATE TO LOWER CASE.4.6 4.6 处理字符串处理字符串534

28、.4.获得字符串长度获得字符串长度 语法:语法:COMPUTE = STRLEN( ).示例:示例:DATA: INT TYPE I, WORD1(20) VALUE 12345. WORD2(20). WORD3(20) VALUE 4 . INT = STRLEN( WORD1 ). WRITE INT. INT = STRLEN( WORD2 ). WRITE / INT. INT = STRLEN( WORD3 ). WRITE / INT.结果分别是结果分别是 5,0 和和 4。4.6 4.6 处理字符串处理字符串54 5.5.连接字符串连接字符串 语法:语法: CONCATENAT

29、E . INTO SEPARATED BY . 该语句连接该语句连接 字符串字符串 与与 并将结果赋并将结果赋 给给 。4.6 4.6 处理字符串处理字符串55 6.6.拆分字符串拆分字符串 语法:语法:SPLIT AT INTO . . 该语句在字符字段该语句在字符字段 搜索分界字符串搜索分界字符串 ,并将分界符之前和之后的并将分界符之前和之后的部分放到目标字段部分放到目标字段 . 中。中。4.6 4.6 处理字符串处理字符串56 7.7.指定字符串的偏移量指定字符串的偏移量 语法:语法:+() DATA TIME TYPE T VALUE 172545. WRITE TIME. WRITE

30、 / TIME+2(2). CLEAR TIME+2(4). WRITE / TIME. 该过程的输该过程的输 出如下:出如下: 172545 25 1700004.6 4.6 处理字符串处理字符串57第五章第五章 流控制流控制585.1 5.1 赋值赋值58 a. 比较运算符比较运算符 含含 义义 EQ 等于等于 = 等于等于 NE 不等于不等于 不等于不等于 不等于不等于 小于小于 大于大于 GE 大于等于大于等于 = 大于等于大于等于595.2 5.2 编程分支和循环编程分支和循环59 a.a. 使用使用IF的条件分支的条件分支语法:语法: IF . . ELSEIF . . ELSEI

31、F . . . ELSE. . ENDIF.60 b. b. 使用使用CASE的条件分支的条件分支语法语法: CASE . WHEN . WHEN . WHEN . WHEN . . WHEN OTHERS. ENDCASE.5.2 5.2 编程分支和循环编程分支和循环6061 c. c. 使用使用DO的无条件循环的无条件循环语法:语法: DO TIMES VARYING FROM NEXT . ENDDO.说明:说明: 可以使用可以使用 TIMES 选项限制循环次数。选项限制循环次数。 可以是文字或变量。如果可以是文字或变量。如果 是是 0 或负数,系统不执行该循环。系统字段或负数,系统不执

32、行该循环。系统字段 SY-INDEX 中包含已处中包含已处 理过的循环次数。理过的循环次数。5.2 5.2 编程分支和循环编程分支和循环61625.2 编程分支和循环62d. 终止循环终止循环关键字用途CONTINUE无条件终止循环CHECK有条件终止循环EXIT完全终止循环63第六章 内表处理63646.1 什么是内表64a. 内表的目的:内表的目的: 在在 ABAP/4 中中,主要使用表格。表格是主要使用表格。表格是 R/3 系统中的关键数据结构系统中的关键数据结构 .长长期使用的数据存储在关系数据库表格中。期使用的数据存储在关系数据库表格中。 除了数据库表格除了数据库表格,还可以创建仅在

33、程序运行时还可以创建仅在程序运行时 间内存在的内表。间内存在的内表。ABAP/4提供了针对内表的不同操作。例如提供了针对内表的不同操作。例如,可以搜索可以搜索 、附加、插、附加、插 入或删除行入或删除行 .内表中的行内表中的行 数并不固定数并不固定 .根据需求根据需求 ,系统可实系统可实 时增加内表时增加内表 的大小的大小. 可以使用内表在数据库表格的子集上执行表格计算。可以使用内表在数据库表格的子集上执行表格计算。 内表的另一内表的另一 种用处是根种用处是根 据程序需要重新组织数据程序需要重新组织数 据库表格的据库表格的 内容内容.656.1 什么是内表65b. 内表的结构内表的结构: 在在

34、 ABAP/4 中中,可以区别内表数据类型可以区别内表数据类型(定义内表的结构定义内表的结构)和内表数据对和内表数据对象象(实实 际的内表而际的内表而 且可以用数且可以用数 据进行填充据进行填充).内表数内表数 据类型是数据结构据类型是数据结构(可可用于将数据对象说明为内表用于将数据对象说明为内表)的抽的抽 象定义象定义.666.1 什么是内表66c. 访问内表:访问内表: 内表是按行内表是按行 进行访问的进行访问的 。必须使用。必须使用 某个工作区某个工作区 域作为与表域作为与表 格互相格互相传输传输 数据的接口数据的接口 。说明:说明: 从内表中读取数据时,已定址的表格行内容覆盖工作区域的

35、内容。然后从内表中读取数据时,已定址的表格行内容覆盖工作区域的内容。然后可以在程序中引用工作区域的内可以在程序中引用工作区域的内 容。将数据写入内表时,必须首先容。将数据写入内表时,必须首先 在工作在工作区域(从中系统区域(从中系统 可以将数据可以将数据 传输给内表传输给内表 )中输入数)中输入数 据。据。表读取表读取表修改表修改表工作区工作区676.2 创建内表67a. 创建内表数据类型:创建内表数据类型: 语法:语法:TYPES OCCURS . 示例:示例: TYPES VECTOR TYPE I OCCURS 10. TYPES: BEGIN OF LINE, COLUMN1 TYPE

36、 I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10.686.2 创建内表68b. 创建内表数据对象:创建内表数据对象: 3种方法:种方法: 通过引用另一个表格来创建内表通过引用另一个表格来创建内表 通过引用结构来创建内表通过引用结构来创建内表 创建带新结构的内表创建带新结构的内表 696.2 创建内表69 a.通过引用另一个表格来创建内表通过引用另一个表格来创建内表 语法:语法:DATA WITH HEADER LINE. 示例:示例: TYPES ITAB TYPE LINE OCCU

37、RS 10. DATA TAB1 TYPE ITAB. DATA TAB2 LIKE TAB1 WITH HEADER LINE.创建的内表带工作区域创建的内表带工作区域706.2 创建内表70 b .通过引用结构来创建内表通过引用结构来创建内表 语法语法: DATA OCCURS WITH HEADER LINE. 示例示例: DATA FLIGHT_TAB LIKE SFLIGHT OCCURS 10.创建的内表带工作区域创建的内表带工作区域716.2 创建内表71 c. 创建带新结构的内表创建带新结构的内表 要创建既不引用现有对象,也不引用现有行结构的内表要创建既不引用现有对象,也不引用

38、现有行结构的内表数据对象,使用数据对象,使用 DATA 语句,用法语句,用法 如下:如下:DATA: BEGIN OF OCCURS , , . END OF .726.2 创建内表DATA: BEGIN OF ITAB OCCURS 10, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF ITAB.本示例创建内表及其相本示例创建内表及其相 应的表格工作区域应的表格工作区域 ITAB。736.3 使用内表 要填充内表要填充内表 ,既可逐行添加数据,也可复制另一个表格的,既可逐行添加数据,也可复制另一个表格的内容。要逐行填充内表,可以

39、内容。要逐行填充内表,可以 使用使用 APPEND、 COLLECT或或 INSERT 语句。语句。 1、逐行填充内表、逐行填充内表 要将内表仅用于存储数据,出于性能方面的考虑,建议要将内表仅用于存储数据,出于性能方面的考虑,建议 使用使用 APPEND。 用用 APPEND 也可以创建序列清单。也可以创建序列清单。 要计算数字字段之和或要确保内表中没有出现重复条要计算数字字段之和或要确保内表中没有出现重复条目目 ,请使用,请使用 COLLECT 语句,它根据标准关键字处理行。语句,它根据标准关键字处理行。 要在内表现有行之前插入新行,请使用要在内表现有行之前插入新行,请使用 INSERT 语

40、句。语句。746.3.1 填充内表语法:语法:APPEND TO|INITIAL LINE TO .COLLECT INTO .INSERT INTO|INITIAL LINE INTO INDEX .756.3.1 填充内表2、将内表内、将内表内 容复制到另一个内表中容复制到另一个内表中 要将内表要将内表 行附加到另一个内表中行附加到另一个内表中 ,请使用,请使用 APPEND 语句的变式语句的变式 。 要将内表要将内表 行插入另一个内表中,行插入另一个内表中, 请使用请使用 INSERT 语句的变式语句的变式 。 要将内表条目内容复要将内表条目内容复 制到另一个内表中,并且覆盖该目制到另一

41、个内表中,并且覆盖该目 标表格,请使用标表格,请使用 MOVE 语句。语句。766.3.1 填充内表语法:语法: 附加内表行:附加内表行:APPEND LINES OF FROM TO TO . 插入内表:插入内表:INSERT LINES OF FROM TO INTO INDEX . 复制内表:复制内表:MOVE TO . = .源内表源内表起始行起始行结束行结束行目的内表目的内表索引索引776.3.2 读取内表1.逐行读取内表逐行读取内表:LOOP AT INTO FROM TO WHERE . .ENDLOOP.内表内表工作区工作区过滤条件过滤条件786.3.2 读取内表2.用索引读取

42、单行:用索引读取单行:READ TABLE INTO INDEX . 说明:说明: 用用 INTO 选项指定目标区域选项指定目标区域 。 如果表格有表头行,可以忽略如果表格有表头行,可以忽略 INTO 选项。这样选项。这样 ,表格工作,表格工作 区域就成了目标区域。系统用索引区域就成了目标区域。系统用索引 从表格从表格 中读取行。中读取行。 这比用关键字访问表格要快。这比用关键字访问表格要快。796.3.2 读取内表3.读取有关键字的单行:读取有关键字的单行:语法:语法: a.用自定义关键字读取单行:用自定义关键字读取单行:READ TABLE INTO WITH KEY BINARY SEA

43、RCH. b.读取有标准关键字的单行:读取有标准关键字的单行:READ TABLE INTO BINARY SEARCH.806.3.2 读取内表4.读取部分单行:读取部分单行:语法:语法:READ TABLE INTO TRANSPORTING .816.3.2 读取内表5.确定内表属性:确定内表属性: 如果在处理过程中想知道内表一共包含多少行如果在处理过程中想知道内表一共包含多少行 ,或者想,或者想知道定义的知道定义的 OCCURS 参数的大小,请使用参数的大小,请使用DESCRIBE语句,语句,用法如下:用法如下:DESCRIBE TABLE LINES OCCURS .826.3.3

44、更改内表语法:语法:MODIFY FROM INDEX .WRITE +() TO +() INDEX .836.3.4 删除内表语法:语法: 1.在循环中删除在循环中删除DELETE . 2.用索引删除用索引删除DELETE INDEX . 3.删除邻近的重复项目删除邻近的重复项目DELETE ADJACENT DUPLICATE ENTRIES FROM COMPARING . 4.删除选定行删除选定行DELETE FROM TO WHERE .846.3.5 内表排序84语法:语法:SORT AS TEXTBY AS TEXT . AS TEXT. 856.3.6 初始化内表语法:语法:

45、 1.清除内表内容清除内表内容 REFRESH . 2.清除工作区域清除工作区域 CLEAR . 3.释放内表占用释放内表占用的内存的内存 FREE .86第七章 单界面REPORT877.1 单界面REPORT 单界面单界面REPORT分为分为2个屏幕:个屏幕: 查询条件选择查询条件选择 数据输出屏幕。数据输出屏幕。 选择屏幕选择屏幕887.1 单界面REPORT数据输出屏幕数据输出屏幕897.2 编写单界面REPORT 单界面单界面REPORT程序分为程序分为4大部分:大部分: 1、数据定义数据定义。表声明,常量、变量定义,内表以及结构定义。表声明,常量、变量定义,内表以及结构定义。 2、

46、查询条件屏幕查询条件屏幕 。 查询参数的屏幕输出,包括单选和多选查询参数的屏幕输出,包括单选和多选2种。种。 3、数据查询数据查询。根据输入的查询参数,筛选出符合条件的数据。根据输入的查询参数,筛选出符合条件的数据。 4、数据输出界面数据输出界面 。 907.2 编写单界面REPORT 1、数据定义、数据定义 声明表声明表(结构结构)定义内表定义内表917.2 编写单界面REPORT 2、查询条件选择、查询条件选择 单选参数单选参数多选参数多选参数927.2 编写单界面REPORT 效果:效果: 937.2 编写单界面REPORT 3、查询条件选择、查询条件选择 根据查询条件查询数根据查询条件

47、查询数据,并放入内表据,并放入内表947.2 编写单界面REPORT 4、数据输出、数据输出 循环内表,输出数据循环内表,输出数据957.3 REPORT基本语法 1、 PARAMETERS 语句基本格式:语句基本格式:PARAMETERS () DEFAULT NO-DISPALY LOWER CASE OBLIGATORY AS CHECKBOX.分配缺省值分配缺省值禁止参数显示禁止参数显示允许接受大小写允许接受大小写参数必输参数必输创建复选框创建复选框967.3 REPORT基本语法 说明:说明: 该语句创建参数该语句创建参数 。附加项附加项 、 和和 与与DATA 语语句相同。用户启动

48、报表程序时,句相同。用户启动报表程序时, 的输入字段将出现在选择屏幕中。的输入字段将出现在选择屏幕中。 您可以如您可以如选择文本选择文本中描述中描述的那样通过使用文字摘要来更改输入字段左侧的说明的那样通过使用文字摘要来更改输入字段左侧的说明。977.3 REPORT基本语法 2.、在选择屏幕上创建单选按钮组:、在选择屏幕上创建单选按钮组: 语法:语法:PARAMETERS . RADIOBUTTON GROUP . 示例:示例:PARAMETERS: R1 RADIOBUTTON GROUP RAD1, R2 RADIOBUTTON GROUP RAD1 DEFAULT X, R3 RADIO

49、BUTTON GROUP RAD1, S1 RADIOBUTTON GROUP RAD2, S2 RADIOBUTTON GROUP RAD2, S3 RADIOBUTTON GROUP RAD2 DEFAULT X.987.3 REPORT基本语法组组1组组2997.3 REPORT基本语法99 2.、SELECT-OPTIONS 语句基本格式:语句基本格式:语法语法:SELECT-OPTIONS FOR DEFAULT TO NO INTERVALSNO-DISPALYLOWER CASEOBLIGATORY.说明:说明:该语句创建选择表该语句创建选择表 ,该表与数据库表的列该表与数据库表

50、的列 或内部或内部字段字段 相连接。该数据库表必须在程序中用相连接。该数据库表必须在程序中用 TABLES 语句声明。语句声明。 名称名称 最多可以包含最多可以包含 8 个字符。个字符。限制为单值限制为单值禁止参数显示禁止参数显示允许参数大小写允许参数大小写参数必输参数必输1007.3 REPORT基本语法100 3、格式化选择屏幕:、格式化选择屏幕: 要格式化选择屏幕,请使用要格式化选择屏幕,请使用 SELECTION-SCREEN 语句,语句,该语句使用户能指定在选择屏幕上参数和选择标准格式。该语句使用户能指定在选择屏幕上参数和选择标准格式。使用使用SELECTION-SCREEN 语句的

51、各种选项,可以做下列工作语句的各种选项,可以做下列工作 : 1.指定空行、下划线和注释指定空行、下划线和注释 2.将几个元素放在一行上将几个元素放在一行上 3.定位元素定位元素 4.创建元素块创建元素块 5.在应用工具条中创建按钮在应用工具条中创建按钮 6.在选择屏幕上创建按钮在选择屏幕上创建按钮1017.3 REPORT基本语法101 1. 指定空行、指定空行、 下划线和注释下划线和注释 a.空行:空行:SELECTION-SCREEN SKIP . b.下划线:下划线:SELECTION-SCREEN ULINE / MODIF ID . c.注释:注释:SELECTION-SCREEN

52、COMMENT / FOR FIELD MODIF ID .1027.3 REPORT基本语法102 2. 将几个元素放在同一行将几个元素放在同一行 将参数或注释集合定将参数或注释集合定 位在选择屏幕的一行上位在选择屏幕的一行上 ,必须在由下,必须在由下列两条语句封闭的块中声明元素列两条语句封闭的块中声明元素 :语法:语法:SELECTION-SCREEN BEGIN OF LINE. .SELECTION-SCREEN END OF LINE.1037.3 REPORT基本语法103示例:示例:SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN

53、COMMENT 1(10) TEXT-001. PARAMETERS: P1(3), P2(5), P3(1).SELECTION-SCREEN END OF LINE.P1P2P31047.3 REPORT基本语法104 3. 定位元素定位元素 语法:语法:SELECTION-SCREEN POSITION . 示例:示例:SELECT-OPTIONS AIRLINE FOR SPFLI-CARRID.SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION POS_HIGH. PARAMETERS FIELD(5).SELECTIO

54、N-SCREEN END OF LINE.1057.3 REPORT基本语法105参数参数FIELD1067.3 REPORT基本语法106 4. 创建元素块创建元素块 语法:语法:SELECTION-SCREEN BEGIN OF BLOCK WITH FRAME TITLE NO INTERVALS. .SELECTION-SCREEN END OF BLOCK .元素块元素块1077.3 REPORT基本语法107 5. 在应用工具条创建按钮在应用工具条创建按钮 在选择屏幕在选择屏幕 的应用工具条中最多可以创建的应用工具条中最多可以创建 5 个按钮。这些个按钮。这些按钮自动与功能键相连接

55、。语法如下所示:按钮自动与功能键相连接。语法如下所示:SELECTION-SCREEN FUNCTION KEY . 必须在必须在 1 到到 5 之间。必须在之间。必须在 ABAP/4 词典字段词典字段SSCRFIELDS-FUNCTXT_0 中指定要在运行时间出现在按中指定要在运行时间出现在按钮上的文本。钮上的文本。1087.3 REPORT基本语法1081097.3 REPORT基本语法109 6. 在选择屏幕创建按钮在选择屏幕创建按钮 要在选择屏幕上创建按钮,可以与要在选择屏幕上创建按钮,可以与PUSHBUTTON 参数一参数一起使用起使用 SELECTION-SCREEN 语句。语法如

56、下:语句。语法如下:SELECTION SCREEN PUSHBUTTON / USER-COMMAND MODIF ID .1107.3 REPORT基本语法基本语法110 7. 页眉和页脚页眉和页脚 页眉:页眉: TOP-OF-PAGE. WRITE: . 页脚:页脚: END-OF-PAGE. WRITE: .页眉页眉111第八章第八章 交互式报表交互式报表1111128.1 什么是什么是交互式报表交互式报表 传统的、非交互式报表由创建单个列表的一个程序组成。这意味着启动报表传统的、非交互式报表由创建单个列表的一个程序组成。这意味着启动报表之后之后 ,它创建的列表必须包含所有要求的数据,

57、而不管用户想查看的细节的数,它创建的列表必须包含所有要求的数据,而不管用户想查看的细节的数目。目。 交互式报表允许用户在会话期间积交互式报表允许用户在会话期间积 极参与检索和提出数据。交互式报表创建极参与检索和提出数据。交互式报表创建的不是一个扩展的不是一个扩展 的和详细的列表,而是一个精简的基本列表,通过定位光标并的和详细的列表,而是一个精简的基本列表,通过定位光标并输入命令,用户可以从该列表中调用详细信息。因此,交互式报表减少了实际需输入命令,用户可以从该列表中调用详细信息。因此,交互式报表减少了实际需要检索的数据信息。要检索的数据信息。 交互式报表还允许从列交互式报表还允许从列 表中调用

58、事务和其它报表。然后,这些程序将显示在表中调用事务和其它报表。然后,这些程序将显示在列表中的值用作输入值。列表中的值用作输入值。 1121138.2 交互式报表的事件控制交互式报表的事件控制113下列事件是交互式列表环境特有的下列事件是交互式列表环境特有的 : AT LINE-SELECTION AT PF AT USER-COMMAND允许行选择允许行选择允许功能键选择允许功能键选择响应功能代码事件响应功能代码事件1148.3 页眉和页脚页眉和页脚114交互式报表次列表的页眉交互式报表次列表的页眉TOP-OF-PAGE DURING LINE-SELECTION. 说明:说明: 对每个次列表

59、,系统都触发该事件对每个次列表,系统都触发该事件 。如果要为不同列表级创建不同的页眉,。如果要为不同列表级创建不同的页眉,必须相应地编写该事件的处理块,例如必须相应地编写该事件的处理块,例如 ,通过使用系统字段,通过使用系统字段, 如控制语句(如控制语句(IF IF 和和CASECASE) 中的中的 SY-LSIND SY-LSIND 或或 SY-PFKEYSY-PFKEY。用户垂直滚动次列表时用户垂直滚动次列表时 ,系统将,系统将保留页眉而只保留页眉而只 滚动页眉下面的列表行滚动页眉下面的列表行 。1158.4 列表中的消息列表中的消息115 在程序中使用在程序中使用MESSAGE 语句静态

60、或语句静态或 动态地输出信息,并确定信息类型动态地输出信息,并确定信息类型 。如果要静态如果要静态 地使用程序中特定标识地使用程序中特定标识 的消息,请使用的消息,请使用REPORT 或或PROGRAM 语语句的句的MESSAGE-ID 选项:选项:语法:语法:REPORT MESSAGE-ID . 由于该语句的作用,报表由于该语句的作用,报表 rep 可以使用存储标识可以使用存储标识 id 下表格下表格 T100 T100 中的中的所有消息。如果动态地指定消息标识,则可以忽略此选项。所有消息。如果动态地指定消息标识,则可以忽略此选项。要静态地指定消息号,要静态地指定消息号, 请使用:请使用:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论