声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4292805.html

DESCRIBE

可参考反射RTTS

DESCRIBE FIELD

DESCRIBE FIELD dobj
  [TYPE typ [COMPONENTScom]]
  [LENGTHilen IN {BYTE|CHARACTER} MODE]
  [DECIMALSdec]
  [OUTPUT-LENGTH olen]
  [HELP-ID hlp]
  [EDIT MASK mask].

TYPE typ

以下是不同类型的dobj返回的类型ID列表,ID大小写敏感:

Numeric Data Type

ID

b

b

s

s

i

I

p

P

decfloat16

a

decfloat34

e

f

F

Character-Like Data Type

ID

c

C

string

g

n

N

d

D

t

T

Byte-Like Data Type

ID

x

X

xstring

y

Reference Type

ID

Data reference

l

Object reference

r

Complex Type

ID

Flat structure

u

Deep structure

v

Internal table

h

COMPONENTS选项是对结构的字段数进行统计,如果有内嵌的结构,则只算直接(最高级别的)内嵌的结构,且只算做1个。

,
      comp2 TYPE i.

DESCRIBE FIELD: struc1        TYPE typ1 COMPONENTS comp1,
                struc1-struc2 TYPE typ2 COMPONENTS comp2.
WRITE:/ typ1,comp1,/ typ2,comp2.

DESCRIBE FIELD: struc1        TYPE typ1,
                struc1-struc2 TYPE typ2.
WRITE:/ typ1,/ typ2.

v          3

u          2

v

u

LENGTH ilen

当使用IN CHARACTER MODE选项时,dobj必须是flat and character-like,针对deep data types的dobj,你只能使用IN BYTE MODE,并且此情况下返回的长度为引用所占长度(在SAP系统中每个reference的长度固定为8 bytes)

对于固定长度类型的dobj,是在创建这个变量时就已决定。如果字符串类型,则不会计算尾部空格,此时可以使用预置函数strlen来测定

,
      blen  TYPE i,
      clen  TYPE i,
      bytes TYPE i.

DESCRIBE FIELD text LENGTH blen IN BYTE MODE.
DESCRIBE FIELD text LENGTH clen IN CHARACTER MODE.
bytes = blen / clen.
WRITE:/ blen,clen,bytes.

2           1           2

DECIMALS dec

dobj的小数位

,
      i  TYPE i.
DESCRIBE FIELD p DECIMALS i.
WRITE:/ i.

4

OUTPUT-LENGTH olen

测试dobj屏幕输出宽度,对于那些固定长度数据类型,输出宽度都是已经预置好的,对于strings,则为0

Numeric Data Types

Data Type

Output length

b

3

s

5

i

11

p

2 x length of dobj (+ 1, if there is a decimal separator)

decfloat16

24

decfloat34

46

f

24

注:上面表中的s类型显示宽度只有5位,不中以显示符号;i显示宽度为11,可以显示符号

Character-like data types

Data Type

Output Length

c

Length of dobj, maximum 255

string

text field literals

根据屏幕列表设置的最大宽度来决定。如果字符不满List设置的宽度时,left-justified输出时会在右边补空格,right-justified输出时会在左边补空格,centered outputs输出时两端补空格

n

Length of dobj, maximum 255

d

8

t

6

Byte-Like Data Types

Data Type

Output Length

x

2 x length of dobj, maximum 255

xstring

2 x number of bytes contained

DATA: date1 TYPE d,
      date2 TYPE sy-datum,
      olen1 TYPE i,
      olen2 TYPE i.

DESCRIBE FIELD date1 OUTPUT-LENGTH olen1.
DESCRIBE FIELD date2 OUTPUT-LENGTH olen2.

WRITE: / date1,date2,/ olen1,olen2.

00000000 00.00.0000

8          10

HELP-ID hlp

DATA: carrid TYPE spfli-carrid,
      hlp    TYPE string,
      struc  TYPE dfies-tabname,
      comp   TYPE dfies-fieldname.
DESCRIBE FIELD carrid HELP-ID hlp.
SPLIT hlp AT '-' INTO struc comp.
WRITE:/ hlp, / struc,/ comp.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
  EXPORTING
    tabname   = struc
    fieldname = comp.

EDIT MASK mask

If a conversion routine is assigned to the data object dobj by referring to a domain in ABAP Dictionary, two equals signs "==" precede the name of the conversion routine and the result is assigned to the data object mask.

.
WRITE / seconds USING EDIT MASK msk.

==SDURA

5:33

DESCRIBE TABLE

DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n].

不同的选项使你能够判断表类型、行数、初始化大小。另外,系统字段sy-tfill 和 sy-tleng 保存着表行数量和以字节计的表行长度。注:为了更详细的关于内表的信息,应用RTTS的方法代替语句describe table。没有指定一个附加项,语句describe table 只设置系统字段sy-tfill 和sy-tleng的值。

a)         KIND knd

标识为T 时代表标准表,为S时代表排序表,为H时代表哈希表。这些值在类型组SYDES中已被定义成常量sydes_kind-standed ,sydes_kind-sorted,sydes_kind-hashed。

b)         LINES lin  内表表行数量

注:在版本6.10中,内表表行的当前数量也可以用内建函数lines来判断

c)         OCCURS n

在内表用选项initial size 或者老式的选项ocurs创建期间决定内表所需要的初始化内存大小

.
  DESCRIBE TABLE itab KIND tabkind.
  IF tabkind = sydes_kind-standard OR
     tabkind = sydes_kind-hashed.
    SORT itab DESCENDING.
  ELSEIF tabkind = sydes_kind-sorted.
    MESSAGE '...' TYPE 'E'.
  ELSE.
    MESSAGE '...' TYPE 'E'.
  ENDIF.
ENDFORM.

DESCRIBE DISTANCE

DESCRIBE DISTANCE BETWEEN dobj1 AND dobj2 INTO dst
                          IN {BYTE|CHARACTER} MODE.

dobj1 and dobj2两个变量地址起始位置的距离

,
        comp3 TYPE c LENGTH 4 VALUE 'Hey',
        comp4 TYPE c LENGTH 4 VALUE 'you!',
        comp5 TYPE x,
      END OF struc.
DATA: off TYPE i,
      len TYPE i,
      len2 TYPE i.

FIELD-SYMBOLS: <hex>    TYPE x,
               <result> TYPE c.

DESCRIBE DISTANCE BETWEEN:
         struc       AND struc-comp3 INTO off IN BYTE MODE,
         struc-comp3 AND struc-comp5 INTO len IN BYTE MODE,
         struc       AND struc-comp1 INTO len2 IN BYTE MODE.

ASSIGN: struc TO <hex> CASTING,
        <hex>+off(len) TO <result> CASTING.

WRITE: / 'Offset off is', off,
       / 'Length len is', len,
       / '<result> points to', <result>,
       / len2.

Offset off is          6

Length len is         16

<result> points toHey you!

0

ABAP DESCRIBE语句的更多相关文章

  1. Hive学习之函数DDL和Show、Describe语句

    创建/删除函数 创建暂时函数 以下的语句创建由class_name实现的暂时函数,该函数被创建后仅仅能够在当前会话中使用.会话结束后函数失效. 实现函数的类能够是Hive类路径中的随意类.能够使用Ad ...

  2. ABAP table control例子

    [转自]http://blog.csdn.net/lhx20/article/details/3039909Table control用于在screen上以表格的形式显示数据,在table contr ...

  3. ABAP 关键字(1)

    1.定义DATA ,TYPES TYPES关键字用于创建自定义数据类型,就像JAVA里面创建类一样,用TYPES创建的数据类型可以被其它变量引用(类似于实例化对象),而本身不能直接引用或者赋值. DA ...

  4. ABAP之声母韵母

    我们一开始上学的时候,老师最先教的是什么? 拼音,声母,韵母,声调等等. 那么ABAP里什么是这些东西呢? 基础的数据类型,已经数据字典里的东西:域,数据元素,结构,视图,表,搜索帮助,锁... 数据 ...

  5. MySQL-Select语句高级应用

    1.1 SELECT高级应用 1.1.1 前期准备工作 本次测试使用的是world数据库,由mysql官方提供下载地址: https://dev.mysql.com/doc/index-other.h ...

  6. ABAP 7.53 中的ABAP SQL(原Open SQL)新特性

    S/4 HANA 1809 已经在上月发布,随之而来的是ABAP 7.53. 本文是更新文档中ABAP SQL的部分的翻译. 本次更新的内容较多,主要内容包括:Open SQL更名为ABAP SQL: ...

  7. load data语句实验报告

    1.创建和选择数据库 如果管理员在设置权限时为您创建数据库,则可以开始使用它.否则,您需要自己创建它: 创建数据库不会选择它来使用; 你必须明确地这样做.要创建menagerie当前数据库,请使用以下 ...

  8. 【转】MySQL-Select语句高级应用

    [转]MySQL-Select语句高级应用 1.1 SELECT高级应用 1.1.1 前期准备工作 本次测试使用的是world数据库,由mysql官方提供下载地址: https://dev.mysql ...

  9. 高性能mysql-----MySQL_explain关键字分析查询语句(一)

    转载地址:https://www.cnblogs.com/xpp142857/p/7373005.html   MySQL_explain关键字分析查询语句 通过对查询语句的分析,可以了解查询语句的执 ...

随机推荐

  1. xcode简介

    Xcode 是苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷方式.Xcode 具有统一的用户界面设计,编码.测试.调试都在一个简单的窗口内完成. Xcode前身是继承自N ...

  2. VMWare联网

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).  如果你想利用VMWare在局域网中新建一个独立的虚拟服务器,为局域网用 ...

  3. Jython安装步骤

    1.下载安装包 2.执行安装 Java -jar [此处是下载的jython jar包名],或者双击jar包夜可以 3.配置环境变量 新增JYTHON_THOME的环境变量,并设置为安装路径. 配置c ...

  4. [充电]Code Review

    参考:http://blog.jobbole.com/83595/ http://www.kuqin.com/shuoit/20150319/345323.html 让 Code Review成为一种 ...

  5. 八大排序算法之五--交换排序—冒泡排序(Bubble Sort)

    基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将 ...

  6. 深入学习netty系列(1)

    一.Server端的编程模型 示例代码1 EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup ...

  7. 【转】MYSQL入门学习之六:MYSQL的运算符

    转载地址:http://www.2cto.com/database/201212/175862.html 一.算术运算符 1.加  www.2cto.com           mysql> s ...

  8. Spring AOP:面向切面编程,AspectJ,是基于注解的方法

    面向切面编程的术语: 切面(Aspect): 横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象 通知(Advice): 切面必须要完成的工作 目标(Target): 被通知的对象 代理(Pr ...

  9. TreeView 节点的显示,读取,操作

    using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq ...

  10. LA 4998 Simple Encryption

    题意:输入正整数$K_1(K_1 \leq 50000)$, 找一个$12$位正整数$K_2$(不能含有前导零)使得${K_1}^{K_2}\equiv K_2(mod10^{12})$. 例如,$K ...