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.mzph.cn/news/762309.shtml

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

相关文章

iPhone语音备忘录误删?掌握这几个技巧轻松恢复【详】

语音备忘录是一款强大的应用程序&#xff0c;它允许用户使用语音输入功能来快速记录想法、提醒、待办事项等。无论是在行进间、工作中还是日常生活中&#xff0c;语音备忘录都是一个非常实用的工具&#xff0c;可以帮助您随时随地记录重要信息&#xff0c;而无需打字或者手动输…

redis-黑马点评-商户查询缓存

缓存&#xff1a;cache public Result queryById(Long id) {//根据id在redis中查询数据String s redisTemplate.opsForValue().get(CACHE_SHOP_KEY id);//判断是否存在if (!StrUtil.isBlank(s)) {//将字符串转为bean//存在&#xff0c;直接返回Shop shop JSONUtil.toBean(s, …

专家解读!IMAP的要点助您在旅途中保持邮件无忧!

你是否经常因会议而出差&#xff0c;需要在各种设备上灵活地访问你的电子邮件&#xff1f;如果是的话&#xff0c;你可能会想了解你的电子邮件系统是如何通过使用互联网消息访问协议&#xff08;IMAP&#xff09;来工作的&#xff0c;这样当你不在办公桌前时&#xff0c;你可以…

_.debounce防抖函数 在vue中使用this问题,应该传匿名函数而不是箭头函数

简单理解&#xff1a;_.debounce内部做了apply操作&#xff0c;箭头函数由于没有this,无法绑定this,导致最终this是undefined, 而匿名函数&#xff0c;成功通过applay绑定了this,所以this指向了vue组件实例。 methods: {// 防抖动dSave1: _.debounce(() > {console.log(thi…

你知道弧幕影院如何制作吗?其应用领域竟如此广泛!

“沉浸式”作为如今备受热议的内容展示形式&#xff0c;其有着多种可实现的途径&#xff0c;其中弧幕影院作为一项有着独特视觉效果、沉浸式观影体验的技术类型&#xff0c;便是大多数影院、主题公园等娱乐场景的必备设计展项&#xff0c;这种弧幕影院通常使用大型的半圆形屏幕…

python 爬取杭州小区挂牌均价

下载chrome驱动 通过chrome浏览器的 设置-帮助-关于Google Chrome 查看你所使用的Chrome版本 驱动可以从这两个地方找: 【推荐】https://storage.googleapis.com/chrome-for-testing-publichttp://npm.taobao.org/mirrors/chromedriver import zipfile import os import r…

leetcode 232.用栈实现队列 JAVA

题目 思路 使用两个栈&#xff08;输入栈和输出栈&#xff09;来模拟一个队列。 队列的push操作实现&#xff1a;直接将元素push到输入栈中。 队列的pop操作实现&#xff1a;队列是先入先出&#xff0c;将输入栈的元素全部pop到输出栈中&#xff0c;然后再由输出栈pop&#…

PMP备考时间、出成绩时间有多久?从在威班培训到拿证我用了60天

尽管PMI官方没有对PMP考试通过分数进行具体规定&#xff0c;能否通过也是看成绩页显示的是“PASS”&#xff08;通过&#xff09;还是“FAIL”&#xff08;未通过&#xff09;&#xff0c;没有成绩的数值体现&#xff0c;但有每个领域的等级可以进行查看&#xff0c;比如下图。…

Windows系统服务器宝塔面板打开提示Internal Server Error错误

1、cmd运行bt命令 2、尝试输入16修复程序 3、如果不行&#xff0c;输入17升级程序

STL —— string(1)

目录 1. 模板 1.1 泛型编程 1.2 函数模板 1.2.1 函数模板概念 1.2.2 函数模板格式 1.2.3 函数模板的原理 1.2.4 显式实例化 1.2.5 模板参数的匹配原则 1.3 类模板 1.3.1 类模板定义格式 1.3.2 类模板的实例化 2. STL —— string类 2.1 STL 简介 2.2 标准库中的s…

怎样隐藏查询和分组?

发布查询时&#xff0c;遇到信息量较大需要提前制作好&#xff0c;但不用马上发布的查询&#xff0c;该怎样隐藏查询和分组&#xff1f; &#x1f4cc;使用教程 01“开始”和“暂停”查询 如果想要隐藏查询&#xff0c;可以通过点击绿色开始按钮来暂停查询&#xff0c;暂停后的…

【软考高项】十五、信息系统工程之系统集成

1、集成基础 定义&#xff1a;通过硬件平台、网络通信平台、数据库平台、工具平台、应用软件平台将各类资源有机、高效地集成到一起&#xff0c;形成一个完整的工作台面 基本原则包括:开放性、结构化、先进性和主流化 2、网络集成 包括&#xff1a;传输子系统、交换子系统、…

调试西门子G120STO模式出现O.F1600等一系列报警

目录 一、现象描述 二、 解决经历 三、结果展示 四、总结 一、现象描述 在调试使用西门子G120的STO功能时&#xff0c;一直无法使用&#xff0c;变频器也一直在报警(RDY灯红灯快闪、SAFE灯黄灯快闪)。在博图上查询发现下面一系列的故障报警。 二、 解决经历 也查询了很多网…

Vue中的状态管理Vuex,基本使用

1.什么是Vuex? Vuex是专门为Vue.js设计的状态管理模式;特点:集中式存储和管理应用程序中所有组件状态,保证状态以一种可预测的方式发生变化。 1.1.什么是状态管理模式? 先看一个单向数据流的简单示意图 state:驱动应用的数据源 view:以声明方式将state映射到视图 actions:…

SAP前台处理:物料主数据创建<MM01>之会计视图

一、背景&#xff1a; 终于来到了物料主数据&#xff0c;我觉得物料账是SAP最重要的一项发明&#xff0c;也一直是SAP的一项重要优势&#xff0c;物料账记录了一个个物料的生生不息&#xff1b; 本章主要讲解物料主数据和财务相关的主要内容&#xff1a;这里特别提示由于作者…

c语言扫雷改进版

目录 文章目录 主体 整体架构流程 技术名词解释 技术细节 测试情况 文章目录 概要整体架构流程技术名词解释技术细节测试情况 主体 主体包括菜单&#xff0c;游戏规则简绍&#xff0c;选择进行与否 int main() {int input;srand((unsigned int)time(NULL));do{ menu()…

科技云报道:造完“大模型”,“具身智能”将引领AI下一个浪潮?

科技云报道原创。 资深机器人专家Eric Jang不久前曾预言&#xff1a;“ChatGPT 曾在一夜之间出现。我认为&#xff0c;有智慧的机器人技术也将如此。” 3月13日深夜&#xff0c;一段人形机器人的视频开始热传。 在视频中&#xff0c;Figure的人形机器人&#xff0c;可以完全…

【算法】差分算法详解(模板)

类似于数学中的求导和积分之间的关系&#xff0c;差分可以看成前缀和的逆运算。 差分数组&#xff1a; 首先给定一个原数组a&#xff1a;a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b &#xff1a; b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] b[1] b[2 ] b[3] ,,,…

CAD建筑版2024 安装教程

CAD建筑版是一种专门用于建筑设计和绘图的CAD软件版本。它提供了专业的建筑设计工具和功能&#xff0c;帮助建筑师、设计师和工程师在建筑领域进行快速、准确和高效的设计工作。 CAD建筑版具备建筑相关的库和元素&#xff0c;用户可以方便地使用预定义的建筑符号和元素进行建筑…

网络基础(二)

1、应用层 程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层&#xff1b; 1.1、再谈 "协议" 协议是一种 "约定". socket api的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些 "…