ABAP 指針常用语法
1 、定义指針 :
指針的定義主 要有以下語句
定義任意類型的指針,但是不具備欄位結構(僅僅是一個地址)
FIELD-SYMBOLS <carrid> TYPE ANY.
參考數據庫表定義(這種指針是含有欄位結構的,參考內表同理)
FIELD-SYMBOLS <sflight> TYPE sflight.
FIELD-SYMBOLS <sflight> LIKE sflight.
FIELD-SYMBOLS <sflight> LIKE LINE OF sflight.
動態定義具有欄位結構的指針類型
DATA: tabname TYPE tabname VALUE 'SFLIGHT' ,
dref TYPE REF TO data.
FIELD-SYMBOLS: <itab> TYPE ANY TABLE.
CREATE DATA dref TYPE TABLE OF (tabname).
ASSIGN dref->* TO <itab>.
2 、指 針的分配(常用句法)
分 配某個變量給指針
ASSIGN var TO <field-symbols>
分配结构中的某个字段的地址给指针
ASSIGN COMPONENT pos OF STRUCTURE struc TO <field-symbols>.
分配整個內表行給指針(指針必須定義為有欄位結構的類型)
READ TABLE itab INDEX/WITH KEY ASSIGNING <field-symbols>.
LOOP AT itab
ASSIGNING <field-symbols>.
ENDLOOP.
分配类的方法或接口给指针
ASSIGN dref->* TO <field-symbols>.
直 接在SQL語句中分配
SELECT *
FROM (tabname) UP TO 20 ROWS
INTO TABLE <itab>.
主要应用在以下几个方面:
1 给一个数据对象分配一个别名,把结构内多层指向的变成一个短长度的
例<fs>->f 代替 rec1->rec2-r>ec3-......->f
2 在运行时为一个变长度的字符串设置长度和偏移
3 在确定运行时设置一个指向数据对象的指针
4 在运行时动态的采取和变更字段的指针
5 可以访问结构体的组件指向内表行,不用一个单独的工作区去处理内表
assign f to <fs>,把字段f放到了<fs>领域中,这个领域<fs>在运行时指向字段f的内容,
这意味着f的内容的所有改变在<fs中可见.声明这个领域用:fileled-symbols:<fs>.
与其他语言不同:
1 在passcal语言用P^ ,在c中用*p,abap没有像这样的特征
2 在passcal和c语言中定义一个指针指向另一个指针,使让这个指针指向了两一个指针的对象
而abap中让这个领域指向两一个领域,是这个领域指向了另一个领域的值。
例:
FIELD -SYMBOLS: <HSL> , <HSL2> .
LOOP AT IT_TABLE INTO STR_CLASS.
STR_ALV-RACCT = STR_CLASS-RACCT.
STR_ALV-TXT20_SKAT = STR_CLASS-TXT20.
ASSIGN STR_CLASS-HSL TO <HSL>.
DO 16 TIMES .
POS = SY-INDEX + 1 .
ASSIGN COMPONENT POS OF STRUCTURE <HSL> TO <HSL2>.
HSL = HSL + <HSL2>.
ENDDO .
IF STR_CLASS-DRCRK = 'S' .
STR_ALV-HSL_S = HSL.
ELSE .
STR_ALV-HSL_H = HSL.
ENDIF .
IF STR_CLASS-XBILK = 'X' .
ASSIGN COMPONENT 1 OF STRUCTURE <HSL> TO <HSL2>.
STR_ALV-HSLVT = <HSL2>.
STR_ALV-HSLMT = <HSL2> + STR_ALV-HSL_S - STR_ALV-HSL_H.
ENDIF .
COLLECT STR_ALV INTO IT_ALV.
CLEAR STR_ALV.
HSL = 0 .
ENDLOOP .
ABAP 指針常用语法的更多相关文章
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- sql 常用语法汇总
Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...
- Vue常用语法及命令
1,Vue常用语法 vue常用语法之变量的定义 // 1,变量相关 // 变量的提升 var username = "雪雪"; var username ; console.log ...
- ABAP 7.4 新语法-内嵌生命和内表操作(转)
转自:https://www.cnblogs.com/mingdashu/p/6744637.html ABAP 7.4 新语法-内嵌生命和内表操作 1.内嵌声明 2.内表操作 3.opensql ...
- iptables常用语法与案例
常用命令语法: [root@www ~]# iptables [-t tables] [-L] [-nv] 选项与参数: -t :后面接 table ,例如 nat 或 filter ,若省略此项目, ...
- derby常用语法
derby常用语法 以user表为例: 1.创建表 create table user (id int primary key,account varchar(5),name varchar(5),p ...
- Markdown通用的常用语法说明
前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...
- Markdown简介以及常用语法
Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...
- Markdown常用语法
什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...
随机推荐
- 拓扑排序(三)之 Java详解
前面分别介绍了拓扑排序的C和C++实现,本文通过Java实现拓扑排序. 目录 1. 拓扑排序介绍 2. 拓扑排序的算法图解 3. 拓扑排序的代码说明 4. 拓扑排序的完整源码和测试程序 转载请注明出处 ...
- Shader 简明入门教程
Unity3D的所有渲染工作都离不开着色器(Shader),如果你和我一样最近开始对Shader编程比较感兴趣的话,可能你和我有着同样的困惑:如何开始?Unity3D提供了一些Shader的手册和文档 ...
- 在Mysql中Using filesort代表什么意思?
在Mysql中使用explain来查看sql执行信息时,经常会看到Using filesort.那么Using filesort在MySQL中代表什么意思呢? 有人会说是外部排序,其实是不对或者不准确 ...
- web前端学习笔记(CSS盒子的定位)
相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它. 使用relat ...
- Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1755 (CrBrowserMain)问题
- mysql连接查询
以前查询都是随便查到结果就行了,因为发现每次查询的数量都很少,当然现在也是.不过效率一直是程序员执着的追求,我就多了解下差距. 首先是多张表联合,一张模板种类category,一张模板表templat ...
- Elasticsearch 数据搜索篇·【入门级干货】
ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API.本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用.虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的 ...
- SQL 语句的TOP,Distinct语句
--Top获取前几条数据,一般都与Order By连用 SELECT TOP 3 * FROM dbo.MyStudent --查询Student表中前3条所有的数据 SELECT TOP 3 S_N ...
- 使用NISI制作.Net程序服务安装包
1.开篇之前先说一说NISI是什么. NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序.它提供了安装.卸载.系统设置 ...
- cros解决跨域