【ABAP系列】SAP ABAP 动态指针

前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
有收有放,转在说明,后面举例,给初学者(因为有很多人问到我这个)
关于abap指针的一些资料。
1.什么是abap指针:
在abap里面,fieldsymbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给它,其实它就指向这个结构或者变量的地址,如果修改了fieldsymbol的值,则相应结构或者变量的值也随之更改。
2.如何定义指针:
基本形式:field-symbols.
附加信息:
1....type:定义一个数据类型,然后定义指针
2....typerefto:指针指向类或者接口
3....typerefto:指针指向数据结构
4....typelineof:指针内表的行项目
5....like:指针为数据库表类型
6....likelineof:指针类型为数据库表的行项目
7....type<>:指针为内表
3.如何分配指针:
(1).assignfto.:分配一个指针,包括以下几种类型
1....casting...:主要对unicode系统地操作
1a....casting
1b....castingtypetype
1c....casting...decimalsdec
1d....castinglikef1
2....typetype:直接指定类型
3....decimalsdec:指定小数点位数
4....rangerange:指定范围
(2).分配结构中的某个字段给指针
assigncomponentidxofstructurestructo.
assigncomponentnameofstructurestructo.
(3).分配类的方法给指针
assigndref->*to.
(4).从f开始,是f的n倍长之后的内容分配给指针
assignfincrementnto.
(5).分配局部变量给指针
assignlocalcopy
3a.assignlocalcopyoffto.
3b.assignlocalcopyofinitialfto.
3c.assignlocalcopyofinitiallineofitabto.
4c.assignlocalcopyofmaintablefield(f)to.
(6).assigndynamicj:动态分配指针
4a.assign(f)to.
4b.assignoref->(f)to.
4c.assign(f1)=>(f2)to.
4d.assigntablefield(f)to.
4e.assignlocalcopyofmaintablefield(f)to.
4f.assignlocalcopyof...(f)to.
4.如何取消分配:
unassign.
例1:
field-SYMBOLS: <wa> TYPE any,
<wa2> TYPE any.
ASSIGN WA_MARA to <wa>.
select single *
from MARA into WA_MARA.
WHILE sy-subrc = 0.
ASSIGN COMPONENT sy-index of STRUCTURE <wa> to <wa2>.
IF sy-index = 5.
itab-ZXXX1 = <wa2>.
ENDIF.
IF sy-index > 9 and sy-index < 25.
itab-ZXXX2 = <wa2>.
ENDIF.
APPEND itab.
ENDWHILE.
例2:
LOOP AT ITAB.
CONCATENATE T_A ITAB-A INTO T_B.
ASSIGN (XXX) TO <A>.
ITAB2-A1 = <A>.
APPEND ITAB2.
ENDLOOP.
【ABAP系列】SAP ABAP 动态指针的更多相关文章
- 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...
- 【ABAP系列】SAP ABAP模块-ABAP动态指针写法的精髓部分
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP模块-ABAP动 ...
- 【ABAP系列】SAP ABAP OOALV 动态设置单元格可否编辑
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP OOALV 动 ...
- 【ABAP系列】SAP ABAP Break Point
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP Break P ...
- 【ABAP系列】【第五篇】SAP ABAP7.50 之用户接口
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列][第五篇]SAP ABAP7.5 ...
- 【ABAP系列】SAP ABAP7.40新语法简介第二篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
- 【ABAP系列】SAP ABAP 行列转换的方法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 行列转换的方法 ...
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...
- 【ABAP系列】SAP ABAP 字符编码与解码、Unicode
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 字符编码与解码 ...
随机推荐
- local_time
time_t time(time_t *tloc); 功能:获取纪元1970-01-01 00:00:00以来所经历的秒数 参数: tloc:用来存储返回时间 返回值:成功:返回秒数, 失败:-1 - ...
- java 集合数组排序
//数组排序Integer arr[] = {3,4,2};Arrays.sort(arr);//默认升序Arrays.sort(arr,Comparator.reverseOrder());//传一 ...
- 编程语言类别;运行Python程序的方式;变量和常量;Python程序的垃圾回收机制;
目录 编程语言分类 运行Python程序的两种方式 1.交互式 变量与常量 1.变量 2.常量 3.小整数池 垃圾回收机制 编程语言分类 编程语言分为: 1.机器语言:直接用二进制的0和1和计算机(C ...
- k8s-insight测试
eureka apiVersion: v1 kind: Pod metadata: name: eureka labels: ccb: eureka spec: containers: - name: ...
- k8s配置文件模板
一,deployment Deployment为Pod和Replica Set下一代Replication Controller)提供声明式更新 1,配置示例 apiVersion: apps/v1 ...
- [转] Linux环境变量配置文件以及启动顺序
转自:https://blog.csdn.net/bjnihao/article/details/51775854 一.环境变量配置文件: 对所有用户都起作用 /etc/profile /etc/pr ...
- Java多线程和并发(五),线程的状态
目录 1.线程的六个状态 2.sleep和wait的区别 3.锁池(EntryList)和等待池(WaitSet) 4.notify和notifyall的区别 五.线程的状态 1.线程的六个状态 2. ...
- 计算机网络&http学习笔记持续整理
http不常见状态码: 204: 请求处理成功,但是没有资源可返回. 206: 只返回请求资源的某一部分(客户端只想请求某一部分),响应报文中包含由Content-Range指定范围的实体内容. 30 ...
- Class constructor FileManager cannot be invoked without 'new' in undefined (line undefined, column undefined)
解决办法: 1.删除package.json属性devDependencies的 less 和 less-loader ; 2.重新安装 npm i less less-loader --save-d ...
- C++入门经典-例4.2-调用默认参数的函数
1:代码如下: // 4.2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...