SAP ABAP 变量

作者: 鼠小倩 | 来源:发表于2022-06-15 23:35 被阅读0次

    静态变量 交互式变量 参考变量 系统变量

    变量是用于在程序的分配的存储区域中存储值的命名数据对象。 顾名思义,用户可以在ABAP语句的帮助下更改变量的内容。
    ABAP中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局 ; 可以存储在该存储器内的值的范围; 以及可以应用于该变量的一组操作。

    变量必须先声明所有变量,然后才能使用它们。 变量声明的基本形式是:

    DATA <f> TYPE <type> VALUE <val>.
    

    这里< f> 指定变量的名称。 变量的名称最多可包含30个字符。
    < type> 指定变量的类型。 具有完全指定的技术属性的任何数据类型被称为< type> 。
    < val> 指定< f>的初始值。 变量。 在定义基本固定长度变量的情况下,DATA语句会自动使用类型特定的初始值填充变量的值。
    < val>的其他可能值 可以是文字,常量或显式子句,例如Is INITIAL。
    变量声明的有效示例:

    DATA d1(2) TYPE c.
    DATA d2 LIKE d1.
    DATA minimum_value TYPE i VALUE 10.
    

    ABAP中可用的各种变量类型。 ABAP中有三种变量 -
    •Static Variables 静态变量
    •Reference Variables 参考变量
    •System Variables 系统变量

    静态变量

    (这里暂时简单理解定义)

    • 静态变量在子程序函数模块静态方法中声明。
    • 生命周期与声明的上下文相关联。
    • 使用“CLASS-DATA"语句,可以在类中声明变量
    • “PARAMETERS"语句可用于声明链接到选择屏幕上的输入字段的基本数据对象
    • 还可以使用“SELECT-OPTIONS"语句声明在选择屏幕上链接到输入字段的内部表

    以下是命名变量时使用的约定:
    • 不能使用特殊字符(例如“$"和“,")来命名变量。
    • 无法更改预定义数据对象的名称。
    • 变量的名称不能与任何ABAP关键字或子句相同。
    • 变量的名称必须传达变量的含义,而不需要进一步的评论。
    • 连字符被保留以表示结构的组件。 因此,应该避免在变量名中使用连字符。&&
    • 下划线字符可用于分隔复合词。

    交互式变量

    允许输入值的变量为交互式变量,如下面运行的结果可以输入值:

    image.png

    使用PARAMETERS语句声明一个变量:

    **变量-交互式变量
    REPORT zhy01_hy101_20220612_01 NO STANDARD PAGE HEADING.
    PARAMETERS: name(10) TYPE c,
                class TYPE I,
                score TYPE p DECIMALS 2,
                connect TYPE mara-matnr.
    
    结果展示

    这里,
    NAME表示10个字符的参数;
    CLASS表示整数类型的参数,默认大小(以字节为单位);
    SCORE表示具有最多两个小数位的值的打包类型参数,
    CONNECT 是指ABAP字典的MARA-MATNF类型 。

    参考变量

    (这里暂时简单理解定义)

    声明引用变量的语法是:

    DATA <ref> TYPE REF TO <type> VALUE IS INITIAL.
    

    • REF TO附加声明一个引用变量ref。
    • REF TO之后的规范指定了引用变量的静态类型。
    • 静态类型限制<ref>的对象集合。 可以参考。
    • 引用变量的动态类型是它当前引用的数据类型或类。
    • 静态类型总是更加通用或与动态类型相同。
    • TYPE添加用于创建绑定引用类型和起始值,并且只能在VALUE添加后指定IS INITIAL

    CLASS C1 DEFINITION.
    PUBLIC SECTION. 
    DATA Bl TYPE I VALUE 1. ENDCLASS. 
    DATA: Oref TYPE REF TO C1 , 
          Dref1 LIKE REF TO Oref, 
          Dref2 TYPE REF TO I . 
    CREATE OBJECT Oref. 
    GET REFERENCE OF Oref INTO Dref1. 
    CREATE DATA Dref2. 
    Dref2→* = Dref1→*→Bl.
    

    系统变量

    • ABAP系统变量可从所有ABAP程序访问。
    • 这些字段实际上由运行时环境填充。
    • 这些字段中的值指示系统在任何给定时间点的状态。
    • 您可以在S AP中的SYST表中找到系统变量的完整列表。
    • 可以使用“SYST- "或“SY- "访问SYST结构的各个字段。

    REPORT zhy01_hy101_20220612_01 NO STANDARD PAGE HEADING.
    WRITE: /'SY-ABCDE', SY-ABCDE,
           /'SY-DATUM', SY-DATUM,
           /'SY-DBSYS', SY-DBSYS,
           /'SY-HOST ', SY-HOST,
           /'SY-LANGU', SY-LANGU,
           /'SY-MANDT', SY-MANDT,
           /'SY-OPSYS', SY-OPSYS,
           /'SY-SAPRL', SY-SAPRL,
           /'SY-SYSID', SY-SYSID,
           /'SY-TCODE', SY-TCODE,
           /'SY-UNAME', SY-UNAME,
           /'SY-UZEIT', SY-UZEIT.
    
    输出展示

    相关文章

      网友评论

        本文标题:SAP ABAP 变量

        本文链接:https://www.haomeiwen.com/subject/raeamrtx.html