IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> SAP(九)的FiELD Symbol 和数据引用 -> 正文阅读

[C++知识库]SAP(九)的FiELD Symbol 和数据引用

字段符号可以看作仅是已经被解除引用的指针(类似于C语言中带有解引用操作符 * 的指针),但更像是C++中的引用类型(int i ;&ii= i;),即某个变量的别名,它与真真的指针还是有很大的区别的,在ABAP中引用变量则就是C语言中的指针。
添加链接描述

在这里插入图片描述

  • 动态使用Assign语句
DATA : gv_1 TYPE c VALUE 'A',
      gv_2 TYPE c VALUE 'B',
      gv_3 TYPE c VALUE 'C',
      gv_4 TYPE c VALUE 'D',
      gv_5 TYPE c VALUE 'E'.
DATA : gv_name TYPE c LENGTH 10,
      gv_idx TYPE n.
FIELD-SYMBOLS : <fs>.

DO 5 TIMES  .
  CLEAR : gv_name.
  gv_name = 'GV_'.
  gv_idx = sy-index.
 CONCATENATE gv_name gv_idx INTO gv_name.
 ASSIGN (gv_name) TO <fs>.
 WRITE : <fs>.
 ENDDO.
  • 结构体字段分配到Field Symbol
DATA : BEGIN OF gs_str,
   col1 TYPE char5 VALUE 'CHINA',
   col2 TYPE char10 VALUE 'BEIJING',
   col3 TYPE char15 VALUE 'TWIN BUILDING',
  END OF gs_str.

  FIELD-SYMBOLS : <fs1> LIKE gs_str,
                 <fs2> TYPE any.
  ASSIGN gs_str TO <fs1>.

  DO 3 TIMES.
    ASSIGN COMPONENT sy-index OF STRUCTURE <fs1> TO <fs2>.
    WRITE <fs2>.
 ENDDO.

Field Symbol语句与内表

TYPES : BEGIN OF t_line,
   col1 TYPE c ,
   col2 TYPE c,
  END OF t_line.


DATA : gs_wa TYPE t_line ,
      gt_itab TYPE HASHED TABLE OF t_line WITH UNIQUE KEY col1,
      gv_key(4) TYPE c VALUE 'col1'.
FIELD-SYMBOLS <fs> TYPE ANY TABLE.
ASSIGN gt_itab TO <fs>.
READ TABLE <fs> WITH TABLE KEY (gv_key) = 'X' INTO gs_wa.
WRITE : gs_wa-col1.
  • 循环内表处理
DATA : BEGIN OF gs_line,
  carrid TYPE sflight-carrid,
  connid TYPE sflight-carrid,
  carrname TYPE scarr-carrname ,
  END OF gs_line.

  DATA gt_line LIKE TABLE OF gs_line.
  FIELD-SYMBOLS <fs> LIKE gs_line.

  SELECT carrid connid INTO CORRESPONDING FIELDS OF TABLE gt_line FROM sflight.

    LOOP AT gt_line ASSIGNING <fs>.
      SELECT SINGLE carrname INTO <fs>-carrname FROM scarr WHERE carrid = <fs>-carrid.
    ENDLOOP.
  • TYPE REF TO 用来定义一个数据对象,这个数据对象是用来指向另外的数据的;
    *TYPE用来定义一个数据对象,它本身就是一个存储数据的对象,不是用来指向别的数据对象的.

  • DATA: r1 TYPE REF TO c1.
    *属于ABAP面向对象编程,c1是一个类,r1定义了这个类的对象

  • 数据引用

PARAMETERS : p_tname(30) DEFAULT 'SFLIGHT'.
DATA : dref TYPE REF TO data.
FIELD-SYMBOLS : <fs1> TYPE any,<fs2> TYPE any.
CREATE DATA dref TYPE (p_tname).
ASSIGN dref->* to <fs1>.
SELECT * FROM (p_tname) INTO <fs1> UP TO 3 ROWS.
  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE <fs1> TO <fs2>.
    IF sy-subrc NE 0.
      SKIP.
      EXIT.
    ENDIF.
    WRITE : <fs2>.
  ENDDO.
ENDSELECT.
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:10:21  更:2021-08-21 15:13:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 5:26:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计