### ABAP 学习笔记知识点详解 #### 一、引用类型与数据对象声明 - **引用类型**: 在 ABAP 中,引用类型(如 `z_ref`)是一种特殊的数据类型,用于存储其他数据对象的地址。这类似于其他编程语言中的指针。 - **声明方式**: ```abap DATA myref TYPE z_ref. // 声明一个名为 myref 的数据对象,其类型为 z_ref。 CREATE DATA myref TYPE z_ref. // 创建一个名为 myref 的数据对象,其类型为 z_ref。 ``` - **区别**:`CREATE DATA` 语句不仅声明了数据对象,还为其分配了内存空间。 #### 二、参照数据字典中的表类型生成内表对象或结构体 - **内表**:是 ABAP 中的一种数据结构,用于存储多行数据。 - **声明方式**: ```abap DATA mytable TYPE z_table. // 基于数据字典中的表类型 z_table 声明内表。 ``` - **结构体**:用于定义数据行的结构。 ```abap myline TYPE LINE OF z_table. // 定义一个名为 myline 的结构体,它代表了 z_table 表的一行。 ``` #### 三、系统日期与时间 - **系统日期**:通过 `SY-DATUM` 获取当前系统的日期。 - **系统时间**:通过 `SY-UZEIT` 获取当前系统的时间。 #### 四、系统字段 - **字段定位**:使用 `SY-FDPOS` 来获取字符串比较后的偏移量信息。 - **循环计数**:`SY-INDEX` 用来记录循环语句中的循环次数。 - **内表行索引**:在处理内表行时,`SY-TABIX` 返回当前行的索引位置;`SY-SUBRC` 返回操作是否成功的状态。 - **用户名**:`SY-UNAME` 用于获取当前用户的用户名。 - **屏幕序号**:`SY-DYNNR` 用于获取当前屏幕的序号。 - **OK 代码**:`SY-UCOMM` 或 `SYST-UCOMM` 用于获取 OK 代码。 - **屏幕组 ID**:`SY-DYNGR` 用于获取屏幕组 ID。 #### 五、常量声明 - **声明方式**: ```abap CONSTANT const(len) TYPE type | LIKE dobj [DECIMALS dec] [VALUE val]. ``` - `len`:常量的长度。 - `type`:常量的数据类型。 - `LIKE dobj`:指定常量与某个数据对象具有相同的数据类型。 - `DECIMALS dec`:小数位数。 - `VALUE val`:常量的初始值。 #### 六、确定数据对象属性 - **语法**: ```abap DESCRIBE FIELD f [LENGTH l] [TYPE t [COMPONENTS n]] [OUTPUT-LENGTH o] [DECIMALS d] [EDIT-MASK m] [HELP-ID h]. ``` - `LENGTH l`:字段的长度。 - `TYPE t`:字段的数据类型。 - `COMPONENTS n`:字段包含的组件数。 - `OUTPUT-LENGTH o`:输出长度。 - `DECIMALS d`:小数位数。 - `EDIT-MASK m`:编辑掩码。 - `HELP-ID h`:帮助 ID。 #### 七、数据赋值 - **赋值操作**: ```abap MOVE source TO destination. // 直接赋值。 destination = source. // 等同于直接赋值。 ``` #### 八、其他常用命令 - **清除数据对象**: ```abap CLEAR f. // 清除数据对象 f。 ``` - **检查字段是否为初始值**: ```abap f IS INITIAL. // 检查字段 f 是否为初始值。 ``` - **检查字段是否已分配**: ```abap f IS ASSIGNED. // 检查字段 f 是否已被分配。 ``` - **检查参数是否已传递**: ```abap p IS [SUPPLIED | REQUESTED]. // 检查参数 p 是否已被实际参数填充。 ``` - **检查数据对象的值是否位于特定范围内**: ```abap f1 BETWEEN f2 AND f3. // 检查数据对象 f1 的值是否介于 f2 和 f3 之间。 ``` - **检查数据对象是否符合选择表的逻辑条件**: ```abap f IN sel_tab. // 检查数据对象 f 的内容是否符合选择表 sel_tab 的逻辑条件。 ``` #### 九、字符串操作 - **输出变量并控制格式**: ```abap WRITE:/10 g. // 在 10 个空格后输出变量 g。 / (8) time USING EDIT-MASK '__:__:__'. // 输出变量 time,并保持 8 位长度。 ``` - **强制结束循环**: ```abap EXIT. // 强制结束循环。 STOP. // 同上。 REJECT. // 同上。 ``` - **循环控制**: ```abap CONTINUE. // 无条件中止当前循环并开始下一轮循环。 CHECK condition. // 如果条件为真,则继续循环;否则结束当前循环并开始下一轮循环。 EXIT. // 无条件中止并退出整个循环。 ``` - **字符串左移**: ```abap SHIFT string. // 将字符串 string 左移。 ``` - **连接字符串**: ```abap CONCATENATE s1 s2 ... sn INTO s_dest [SEPARATED BY sep]. // 连接多个字符串,并可设置分隔符。 ``` - **字符串分割**: ```abap SPLIT s_source AT sep INTO s1 s2 ... sn. // 使用内表操作可以避免被截断的情况。 SPLIT s_source AT sep INTO TABLE itab. // 此语句根据子串数目生成 n 行的内表。 ``` - **循环输出内表中的每一行数据**: ```abap LOOP AT itab INTO text. // 循环遍历内表 itab 并将每行数据赋值给 text。 ENDLOOP. // 结束循环。 ``` - **替换字段内容**: ```abap REPLACE str1 WITH str2 INTO s_dest [LENGTH len]. // 替换字段中的内容,并可指定替换长度。 ``` - **确定字段长度**: ```abap [COMPUTE] n = STRLEN(str). // 计算字符串 str 的长度。 ``` - **删除字符串中的多余空格**: ```abap CONDENSE str. // 删除字符串 str 中的多余空格。 ``` - **字符转换**: ```abap TRANSLATE str. // 将字符串 str 转换为另一种形式,例如大写转小写。 ``` - **创建可排序格式**: ```abap CONVERT TEXT. // 创建一个可以排序的文本格式。 ``` - **用一个字符串覆盖另一个字符串**: ```abap OVERLAY dest WITH source. // 使用 source 覆盖 dest 中的相应部分。 ``` - **WRITETO 赋值**: ```abap WRITETO destination = source. // 将 source 的值赋给 destination,忽略数据对象类型。 ``` - **字符串比较中的换码字符**: - `#`:用于转换比较时使用的通配符。 - `*` 或 `+`:进行区分大小写、空格的比较。 - **定位操作子串**: ```abap strName [+0] [(1)]. // 对字符串 strName 进行子串定位操作。 ``` - **字段符号与数据引用**:动态数据对象用于在运行时引用其他数据对象。 #### 十、子程序定义与调用 - **定义子程序**: ```abap FORM subroutine_name USING parameters1 parameters2 .... .... ENDFORM. ``` - **调用子程序**: ```abap PERFORM subroutine_name USING actual_parameters1 p2 .... (其中 USING 可换成 CHANGING) ``` #### 十一、其他实用工具 - **输出下划线**: ```abap ULINE. // 输出下划线。 ``` - **错误查看**: ```abap ST22. // 打开错误日志查看器。 ``` - **程序打包发布**: - 在 SE01 中找到对应的程序,然后进行打包发布操作。 以上是基于给定的学习笔记中的知识点整理,涵盖了 ABAP 中的一些基本概念和常用操作,对于初学者来说是非常有价值的参考资料。
















剩余28页未读,继续阅读


- 粉丝: 0
- 资源: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 管家婆辉煌食品版TOP+13.3
- COMSOL多孔介质流燃烧器模型:四场耦合仿真,精准模拟多种气体燃烧流动,高EI准确性与收敛性,COMSOL多孔介质流燃烧器模型:四场耦合仿真,高精度模拟燃烧流动耦合结果,涵盖多种气体,EI级准确性与
- libtorch CPU版本安装包:libtorch-win-shared-with-deps-2.6.0+cpu.zip
- 基于MATLAB的塞曼效应与法布里-珀罗干涉仪(F-P)标准具模拟系统:平面波、球面波分布子函数生成与数值模拟分析,基于MATLAB的塞曼效应与法布里-珀罗干涉仪(F-P)模拟系统:平面波与球面波分布
- 2021年美赛D题.zip
- 基于模糊聚类算法的水质检测报告:程序化数据分析与应用实践,基于模糊聚类算法的水质检测报告:数据分析与程序实现 ,基于模糊聚类算法的水质检测数据分析 报告+数据+程序 ,基于模糊聚类算法; 水质检测数
- Python爬虫技术的基础理论与关键知识点全解析
- 《TypeScript 中的 Exercism 练习》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip
- 融合A*算法优化RRT路径规划算法的仿真研究:全局路径规划与RRT算法原理详解,基于A*算法优化的RRT路径规划代码仿真:全局路径快速规划原理,融合A*改进RRT算法的路径规划代码仿真 全局路径规划
- 《令人愉快的 JavaScript 测试》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip
- 基于新英格兰10机39节点系统的风机并网与频率控制研究:虚拟同步与减载控制深度探讨,基于新英格兰与IEEE节点系统的风机并网频率控制与虚拟同步机研究,新英格兰10机39节点 IEEE 39节点 调
- 管家婆辉煌食品版TOP+13.32
- 《练习 “真实” SQL 问题》(毕业设计,源码,教程)简单部署即可运行 功能完善、操作简单,适合毕设或课程设计.zip
- 基于遗传算法的带充电桩电动汽车路径规划问题研究:考虑软时间窗、时间窗惩罚、多目标点及充电功能的多层次优化,基于遗传算法的电动汽车路径规划与充电策略研究:软时间窗、多目标点与时间窗惩罚的VRPTW问题求
- 基于JavaFX图形化界面的井字棋游戏设计与实现
- 管家婆辉煌食品版TOP15.0


