ABAP 新语法-ITAB[ idx ]、ITAB[ key ]

news2024/11/20 20:43:05

这段ABAP代码主要演示了使用新的ABAP语法内表表达式的用法,其中核心点如下:

索引和关键字读取:

使用gt_student[1]进行索引读取,获取内表的第一个元素。使用gt_student[id = '0000000005' age = 15]进行关键字读取,根据指定条件获取内表中的元素。

结构字段读取:

通过gt_student[1]-namegt_student[id = '0000000002']-name的方式,直接从内表元素中读取结构字段的值。

避免抛出异常的几种方式:

使用ASSIGN gt_student[id = '0000000003' name = 'Student 3'] TO FIELD-SYMBOL(<stu>),通过ASSIGN语句避免抛出异常。

条件表达式和行是否存在的检查:

使用line_exists(gt_student[1])检查内表中是否存在指定的行。

内表表达式的默认值和OPTIONAL选项:

使用VALUE #(gt_student[11] OPTIONAL),通过OPTIONAL选项在索引越界时避免抛出异常。使用VALUE #(gt_student[11] DEFAULT VALUE #(id = '0000000010' name = 'Student 10')),在索引越界时提供默认值。

使用条件表达式处理异常情况:

使用COND表达式,例如COND #(LET c = lines(gt_student) IN WHEN c > 10 THEN gt_student[11]),在特定条件下选择内表中的元素。

使用TRY-CATCH处理异常:

使用TRY...CATCH语句,捕获特定的异常类型,这里是cx_sy_itab_line_not_found

 TYPES:
    BEGIN OF gty_student,
      name(10)  TYPE c,            "姓名
      gender    TYPE c,            "性别
      age       TYPE i,            "年龄
      id(10)    TYPE n ,           "学生ID
      class(10) TYPE c,            "班级
      score     TYPE p DECIMALS 1, "成绩
      level(10) TYPE c,            "级别
      ispass    TYPE c,            "是否通过
    END OF gty_student.

  DATA:
    gt_student TYPE TABLE OF gty_student,
    gs_student TYPE gty_student.

  gt_student = VALUE #( LET pre = 'Student'
                            random = cl_abap_random_int=>create( seed = CONV #( sy-timlo ) min = 0 max = 100 ) IN
                        FOR n = 1 UNTIL n > 10
                          ( id = n
                            name = |{ pre } { n }|
                            gender = COND #( WHEN n < 6 THEN '男'
                                             ELSE '女' )
                            age = 10 + n
                            class = |{ n }班|
                            score = random->get_next( ) ) ).


*&----------------------------------------------------------------------
*& 2. 内表表达式                      理解:内表表达式,相当于Read Table
*&----------------------------------------------------------------------
*& 语法:itab[ idx ].
*&       itab[ col1 = … col2 = … ].
*&----------------------------------------------------------------------
  "不存在会抛出异常(cx_sy_itab_line_not_found)
  IF 1 <> 1.
    DATA(ls_index) = gt_student[ 1 ]. "index读取
    DATA(ls_key) = gt_student[ id = '0000000005' age = 15  ]. "key读取

    DATA(lv_index_name) = gt_student[ 1 ]-name. "index读取结构字段
    DATA(lv_key_name) = gt_student[ id = '0000000002' ]-name. "key读取字段
  ENDIF.

  "避免抛出异常的几种方式
  ASSIGN gt_student[ id = '0000000003' name = 'Student 3'  ] TO FIELD-SYMBOL(<stu>).
  IF sy-subrc EQ 0.
  ENDIF.

  IF line_exists( gt_student[ 1 ] ).
    DATA(ls_stu01) = gt_student[ 1 ].
    DATA(lv_name) = gt_student[ 1 ]-name.
  ENDIF.

  DATA(ls_stu02) = VALUE #( gt_student[ 11 ] OPTIONAL ).

  DATA(ls_stu03) = VALUE #( gt_student[ 11 ] DEFAULT VALUE #( id = '0000000010' name = 'Student 10' ) ).

  DATA(ls_stu04) = VALUE #( gt_student[ 11 ] DEFAULT VALUE #( gt_student[ 10 ] OPTIONAL ) ).

  DATA(ls_stu05) = COND #( LET c = lines( gt_student ) IN WHEN c > 10 THEN gt_student[ 11 ] ).

  DATA(ls_stu06) = COND #( WHEN line_exists( gt_student[ 11 ] ) THEN gt_student[ 11 ] ).

  TRY .
      DATA(ls_stu07) = gt_student[ 11 ].
    CATCH cx_sy_itab_line_not_found.
*  WRITE : 'Not Found!'.
  ENDTRY.

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

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

相关文章

文献阅读:使用正则化子地图匹配的海底地形位姿图优化

使用正则化子地图匹配的海底地形位姿图优化 海底地形子地图匹配 候选子地图筛选如下图&#xff1a; 双重循环筛选位姿和重心距离 子地图匹配中的正则化 常见的两点云匹配方法包括应用ICP&#xff08;迭代最近点&#xff09;算法。然而&#xff0c;与结构化环境中获得的点云…

Omni3D目标检测

Omni3D是一个针对现实场景中的3D目标检测而构建的大型基准和模型体系。该项目旨在推动从单一图像中识别3D场景和物体的能力&#xff0c;这对于计算机视觉领域而言是一个长期的研究目标&#xff0c;并且在机器人、增强现实&#xff08;AR&#xff09;、虚拟现实&#xff08;VR&a…

表单外链,支持查看方式设置

06/19 主要更新模块概览 外链设置 跳转缩放 打印调整 数据校验 01 表单管理 1.1 【表单外链】-填写外链新增查看方式设置 说明&#xff1a; 原表单填写外链&#xff0c;填写字段权限和查看权限统一字段设置&#xff0c;用户在填写时看到数据与查看数据一致…

智慧路灯可视化:点亮城市管理的新篇章

智慧路灯可视化系统通过图扑 HT 实时数据采集和分析&#xff0c;将城市每一盏路灯的状态、能耗和故障信息一目了然地展示在管理平台上。高效的监控与管理不仅提升了公共照明的维护效率&#xff0c;减少人工巡检成本&#xff0c;还支持节能策略&#xff0c;实现智慧城市的可持续…

30年后的今天 FreeDOS仍在延续命令提示符的梦想

1994 年 6 月&#xff0c;基于文本的磁盘操作系统领域发生了两件大事。首先是微软发布了 MS-DOS 6.22 版&#xff0c;这是其长期运行的操作系统作为独立产品销售给消费者的最后一个版本。在此之后的几年中&#xff0c;MS-DOS 仍在继续发展&#xff0c;但只是作为 Windows 越来越…

为PPT加密:如何设置和管理“打开密码”?

在保护演示文稿的内容时&#xff0c;给PPT文件设置“打开密码”是一个简单而有效的方法。今天一起来看看如何设置和管理PPT文件的“打开密码”吧&#xff01; 一、设置PPT“打开密码” 首先&#xff0c;打开需要加密的PPT文件&#xff0c;点击左上角的“文件”选项卡&#x…

4、Redis分布式锁原理解析

目录 1、Redisson lock 方法原理解析 1. 如果指定了过期时间 2. 如果没有指定过期时间 3. lock 方法的主要步骤 Redisson lock 方法完整代码 分步骤解释 步骤 1&#xff1a;尝试获取锁 步骤 2&#xff1a;获取锁失败&#xff0c;发起订阅 步骤 3&#xff1a;循环等待锁…

64.SAP ME与SAP ERP物料接口增加自定义字段的方法

目录 1.过程介绍 2.配置过程 2.1SAP ME里增加自定义字段 2.2SAP ME修改接口文件 2.3SAP ME刷新接口结构 2.4测试检查接口字段是否传输过来 1.过程介绍 首先&#xff0c;SAP ME与SAP ERP之间的物料主数据接口&#xff0c;采用IDOC的方式。如果需要增加自定…

操作系统精选题(三)(简答题、概念题)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;操作系统 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 简答题 一、对 CPU、内存、外设并…

基于局域网下的服务器连接、文件传输以及内网穿透教程 | 服务器连接ssh | 服务器文件传输scp | 内网穿透frp | 研究生入学必备 | 深度学习必备

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;本篇博客分享的是基于局域网下的服务器连接&#x1f517;、文件传输以及内网穿透教程&#xff0c;内容非常完备✨&#xff0c;涵盖了在服务器上做深度学…

ueditor集成秀米编辑器

ueditor集成秀米编辑器 一、背景二、集成秀米编辑器流程2.1、新增秀米插件的按钮&#xff0c;显示在我们的富文本编辑器上2.2、点击该按钮&#xff0c;可以呼出一个iframe&#xff0c;这个iframe引用的是秀米自己的编辑器页面2.3、要是有图片&#xff0c;需要再修改配置哈2.4、…

密码学:对称加密算法、非对称加密算法、哈希算法

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…

【Python】利用代理IP爬取当当网数据做数据分析

前言 在数字化浪潮的推动下&#xff0c;电商平台已经彻底改变了我们的购物方式。从简单的在线交易到复杂的用户交互&#xff0c;电商平台积累了海量的用户数据。这些数据&#xff0c;如同隐藏在深海中的宝藏&#xff0c;等待着被发掘和利用。通过分析用户的浏览、搜索、购买等行…

Redis学习——Redisson 分布式锁集成及其简单使用

文章目录 引言1. Redisson概述1.1 Redisson的基本概念1.2 Redisson的主要功能1.3 Redisson的优点 2. 开发环境3. Redisson的安装与配置3.1 添加依赖3.2 配置Redisson 4. 使用Redisson4.1 可重入锁4.1.1 可重入锁的概念4.1.2 可重入锁的实现原理4.1.3 简单使用锁的获取和释放 4.…

数据恢复篇:如何在电脑上恢复已删除和丢失的音乐文件

尽管流媒体网络非常流行&#xff0c;但许多人仍然选择将音乐下载并保存在 PC 本地。这会使文件面临丢失或意外删除的风险。 幸运的是&#xff0c;您可以使用数据恢复软件恢复已删除的音乐和其他文件类型。这篇文章讨论了这些解决方案以及如何使用奇客数据恢复检索丢失的音乐文…

Java面试题--JVM大厂篇之深入了解G1 GC:高并发、响应时间敏感应用的最佳选择

引言&#xff1a; 在现代Java应用的性能优化中&#xff0c;垃圾回收器&#xff08;GC&#xff09;的选择至关重要。对于高并发、响应时间敏感的应用而言&#xff0c;G1 GC&#xff08;Garbage-First Garbage Collector&#xff09;无疑是一个强大的工具。本文将深入探讨G1 GC适…

抗腐蚀耐腐蚀不锈钢304/316L航空插头插座

不锈钢航空插头是一种专为航空航天、军事、工业等领域设计的连接器&#xff0c;具有高强度、耐腐蚀、耐高温等特点。它们通常用于在高振动、高湿度、高温度等恶劣环境下保持稳定的电气连接。不锈钢航空插头的设计充分考虑了这些极端条件&#xff0c;以确保信号和电源传输的可靠…

机器学习环境搭建

前言 个人笔记&#xff0c;记录框架和小问题&#xff0c;没有太详细记载。。 1、Anaconda安装 下载地址&#xff1a; Free Download | Anaconda &#xff08;慢&#xff09; ​ 国内镜像&#xff1a;https://link.csdn.net/?targethttp%3A%2F%2Fitcxy.xyz%2F241.html 下载…

(PC+WAP)高端大气的装修装潢公司网站模板

(PCWAP)高端大气的装修装潢公司网站模板PbootCMS内核开发的网站模板&#xff0c;该模板适用于装修公司网站、装潢公司网站等企业&#xff0c;当然其他行业也可以做&#xff0c;只需要把文字图片换成其他行业的即可&#xff1b;(PCWAP)&#xff0c;同一个后台&#xff0c;数据即…

【数据结构(邓俊辉)学习笔记】二叉搜索树04——AVL树

文章目录 1.重平衡1.1 AVL BBST1.2 平衡因子1.3 适度平衡1.4 接口1.5 失衡 复衡 2. 插入2.1 单旋2.2 双旋2.3 实现 3. 删除3.1 单旋3.2 双旋3.3 实现 4. &#xff08;3 4&#xff09;-重构4.1 "34"重构4.2 "34"实现4.3 rotateAt4.4 综合评价 1.重平衡 1…