ABAP笔记:定义指针,动态指针分配:ASSIGN COMPONENT <N> OF STRUCTURE <结构> TO <指针>.

参考大佬文章学习,总结了下没有提到的点:SAP ABAP指针的6种用法。_abap 指针-CSDN博客

定义指针:其实指针这玩意,就是类似你给个地方,把东西临时放进去,然后指针就是这个东西的替身了,写代码的时候更方便,指针可以直接赋值。

  FIELD-SYMBOLS: <F1>,<F2>,<F3>.ASSIGN <结构体> TO <F1>.参照结构体定义指针ASSIGN <变量> TO <F2>.参照变量定义指针

动态指针分配:

 <N> -结构的字段技术名称,或者当前行 ,SY-INDEX这种变量,可以是动态的

 <结构>-结构体,工作区之类的

 <指针>-一般以F开头

粗浅理解为:将<结构>中的某个<N>的值 ,分配给<指针>

哈哈,怎么感觉说了好像没说~还得自己理解。

仔细一点就是把结构中,具体的某一个字段,分配给指针,这个字段可以是动态变化的,也可以是静态的某个字段,这里的<N>代表的是结构中的字段技术名称。听不懂没关系,可以看下面示例代码参悟。

ASSIGN COMPONENT <N> OF STRUCTURE <结构> TO <指针>.

使用场景:

可以用灵活计算财务在一行的账龄金额例如 T100,T200,或者各个期间的金额累计,如DMBTR1,DMBTR2……,结构的T100,,T200可以参考如下代码,动态替代,以下计算累计的方式

    REPORT ztest.DATA:BEGIN OF wa_tab,char1 TYPE i VALUE '1',char2 TYPE i VALUE '2',char3 TYPE i VALUE '3',char4 TYPE i VALUE '4',END OF wa_tab.DATA:comp(6) VALUE 'CHAR05'.FIELD-SYMBOLS: <F1>,<F2>,<F3>.ASSIGN WA_TAB TO <F1>.ASSIGN COMP TO <F2>.DATA :LS_TEST TYPE CHAR10,LS_I TYPE I,LS_SUM TYPE I.DO 4 TIMES.LS_I  = LS_I +  1.LS_TEST  = 'char' && LS_I .ASSIGN COMPONENT LS_TEST OF STRUCTURE <F1> TO <F3>.IF <F3> IS ASSIGNED AND SY-SUBRC = 0.LS_SUM = LS_SUM  + <F3>.WRITE :/ '第' && LS_I && '次累计' , LS_SUM .ENDIF.ENDDO.

注意事项:

1.需要配合sy-subrc 来判断是否分配成功,

而不是 IF <F3> IS ASSINGED,这个只是判断有没有分配,不能判断有没有成功分配到值

如图结果第五次为999

    REPORT ztest.DATA:BEGIN OF wa_tab,char1 TYPE i VALUE '01',char2 TYPE i VALUE '02',char3 TYPE i VALUE '03',char4 TYPE i VALUE '04',END OF wa_tab.DATA:comp(6) VALUE 'CHAR05'.FIELD-SYMBOLS: <F1>,<F2>,<F3>.ASSIGN WA_TAB TO <F1>.ASSIGN COMP TO <F2>.DATA :LS_TEST TYPE CHAR10,LS_I TYPE I.DO 5 TIMES.LS_I  = LS_I +  1.LS_TEST  = 'char' && LS_I .ASSIGN COMPONENT LS_TEST OF STRUCTURE <F1> TO <F3>.IF sy-subrc = 0.WRITE:/ <F3>.ELSE.<F3> = 999.WRITE:/ <F3>.ENDIF.CLEAR <F3>.ENDDO.

2.如果下一次没有分配成功,指针的值仍为上一次分配的值,第五次执行结果等于第四次,并不是第五次没有分配成功,指针就会清空

    REPORT ztest.DATA:BEGIN OF wa_tab,char1 TYPE i VALUE '1',char2 TYPE i VALUE '2',char3 TYPE i VALUE '3',char4 TYPE i VALUE '4',END OF wa_tab.DATA:comp(6) VALUE 'CHAR05'.FIELD-SYMBOLS: <F1>,<F2>,<F3>.ASSIGN WA_TAB TO <F1>.ASSIGN COMP TO <F2>.DATA :LS_TEST TYPE CHAR10,LS_I TYPE I,LS_SUM TYPE I.DO 5 TIMES.LS_I  = LS_I +  1.LS_TEST  = 'char' && LS_I .ASSIGN COMPONENT LS_TEST OF STRUCTURE <F1> TO <F3>.IF  <F3> <> ''.WRITE:/ <F3>.ENDIF.ENDDO.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/564421.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷day3

B2053 求一元二次方程 - 洛谷 掌握printf用法&#xff1b; #include <iostream> #include <cmath> using namespace std; double a,b,c; double delta; double x1,x2;int main() {cin>>a>>b>>c;delta b*b-4*a*c;if(delta>0){x1 (-bsqrt…

Linux查看磁盘空间

查看磁盘空间 df -h 查看目录所占空间 du -sh [目录] 查看当前目录下, 所有目录所占空间 (一级目录) find . -maxdepth 1 -type d -exec du -sh {} \;-maxdepth 1 查看的目录深度是1级, 2则是2级

从抛硬币试验看概率论的基本内容及统计方法

一般说到概率&#xff0c;就喜欢拿抛硬币做例子。大多数时候&#xff0c;会简单认为硬币正背面的概率各为二分之一&#xff0c;其实事情远没有这么简单。这篇文章会以抛硬币试验为例子并贯穿全文&#xff0c;引出一系列概率论和数理统计的基本内容。这篇文章会涉及的有古典概型…

注意力机制篇 | YOLOv8改进之添加CBAM注意力机制

前言:Hello大家好,我是小哥谈。CBAM是一种用于图像分类的注意力机制,全称为Convolutional Block Attention Module。它可以自适应地学习每个通道和空间位置的重要性,从而提高模型的性能。CBAM由两个部分组成:通道注意力模块和空间注意力模块。通道注意力模块通过学习每个通…

生物信息学文章中常见的图应该怎么看?

目录 火山图 热图 箱线图 森林图 LASSO回归可视化图&#xff08;套索图&#xff09; 交叉验证图 PCA图 ROC曲线图 这篇文章只介绍这些图应该怎么解读&#xff0c;具体怎么绘制&#xff0c;需要什么参数&#xff0c;怎么处理数据&#xff0c;会在下一篇文章里面给出 火山…

【】(综合练习)博客系统

在之前的学些中&#xff0c;我们掌握了Spring框架和MyBatis的基本使用&#xff0c;接下来 我们就要结合之前我们所学的知识&#xff0c;做出一个项目出来 1.前期准备 当我们接触到一个项目时&#xff0c;我们需要对其作出准备&#xff0c;那么正规的准备是怎么样的呢 1.了解需求…

基于Java中的SSM框架实现快餐店线上点餐系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现快餐店线上点餐系统演示 摘要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现&#xff0c;不仅增加了商户的销售量和营业额&#xff0c;而且为买家提供了极大的方便&#xff0c;足不出户&#xff0c;就能订…

代码随想录算法训练营第三十二天 | 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II

代码随想录算法训练营第三十二天 | 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II 122. 买卖股票的最佳时机 II题目解法 55. 跳跃游戏题目解法 45. 跳跃游戏 II题目解法 感悟 122. 买卖股票的最佳时机 II 题目 解法 贪心&#xff1a;局部最优&#xff1a;收集每…

计算机二级 公共基础知识点大全

计算机二级 公共基础知识点 第一章 数据结构与算法 1.1 算法 算法的定义&#xff1a;是指解题方案的准确而完整的描述。&#xff08;算法不等于程序&#xff0c;程序的设计不可能优于算法的设计&#xff09;算法的基本特征&#xff1a;可行性、确定性、有穷性、足够的情报。…

【算法每日一练]-动态规划(保姆级教程 篇17 状态压缩)#POJ1185:炮兵阵地 #互不侵犯

目录 今日知识点&#xff1a; 把状态压缩成j,dp每行i的布置状态&#xff0c;从i-1和i-2行进行不断转移 把状态压缩成j,dp每行i的布置状态&#xff0c;从i-1行进行状态匹配&#xff0c;然后枚举国王数转移 POJ1185&#xff1a;炮兵阵地 思路&#xff1a; 题目&#xff1a;互…

继承和多态(1)(继承部分)

继承 继承的概念 上文就是继承的概念。 必须记住父类也可以称为基类&#xff0c;超类。 子类也可以称为派生类。 继承的语法 在Java中如果要表示类之间的继承关系&#xff0c;需要借助extends关键字&#xff0c;具体如下&#xff1a; 修饰符 class 子类 extends 父类 {//…

JavaEE初阶之认识进程及进程基本调度过程

题外话 今天先不写数据结构有关知识了,先写一篇关于进程的相关知识 正题 进程概念 每个应⽤程序运⾏于现代操作系统之上时&#xff0c;操作系统会提供⼀种抽象&#xff0c;好像系统上只有这个程序在运 ⾏&#xff0c;所有的硬件资源都被这个程序在使⽤。 这种假象是通过抽…