abap 简单的本地类操作

摘要:
DISPLAY_N_O_ AIRPLANES.16PRIVATESECTION.17类型:GV_ N_O_ AIR PLANES1TYPEI.30ENDCLASS.31“实现类32CLASSLCL_AIRPLANES实现。33方法:

作业:

1、创建程序,用于本地类测试。

2、创建本地类LCL_AIRPLANE,用于对飞机的名称及型号的管理。

3、创建1个私有实例类型GTY_PLANE,包含2个字段:

name(飞机的名称),类型为string,

TYPE(飞机的类型),参考SAPLANE-PLANETYPE.

4、创建一个私有实例内表GT_PLANE,一个私有实例GS_PLANE,均使用上面的私有实例类型。

5、创建一个私有静态属性,GV_N_O_AIRPLANES(计算数量),类型为I

6、创建一个公有实例方法,记录飞机名称,飞机类型及录入飞机数量。

7、创建一个公有实例方法,显示内表。

8、创建公有静态方法,显示飞机数量。

9、创建对象,对方法调用显示。

  1 TYPE-POOLS:SILS.
  2 "定义ALV结构
  3 DATA:IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
  4      WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
  5      WA_LAYOUT   TYPE SLIS_LAYOUT_ALV.
  6 "定义类
  7 CLASS LCL_AIRPLAN DEFINITION.
  8   PUBLIC SECTION.
  9     METHODS:SET_ATTRIBUTES,
 10     "有参数传入的方法
 11       SET_ATTRIBUTES1 IMPORTING P_NAME TYPE STRING
 12                                 P_TYPE TYPE STRING,
 13       DISPLAY_ATTRIBUTES,
 14       DISPLAY_ATTRIBUTES1.
 15     CLASS-METHODS:DISPLAY_N_O_AIRPLANES.
 16   PRIVATE SECTION.
 17     TYPES: BEGIN OF GTY_PLANE,
 18              BOX  TYPE BCD,
 19              NAME TYPE STRING,
 20              TYPE TYPE SAPLANE-PLANETYPE,
 21            END OF GTY_PLANE.
 22     DATA:GT_PLANE TYPE STANDARD TABLE OF GTY_PLANE,
 23          GS_PLANE TYPE GTY_PLANE.
 24 
 25     DATA:GT_PLANE1 TYPE STANDARD TABLE OF GTY_PLANE,
 26          GS_PLANE1 TYPE GTY_PLANE.
 27 
 28     CLASS-DATA: GV_N_O_AIRPLANES TYPE I.
 29     CLASS-DATA: GV_N_O_AIRPLANES1 TYPE I.
 30 ENDCLASS.
 31 "实现类
 32 CLASS LCL_AIRPLAN IMPLEMENTATION.
 33   METHOD:SET_ATTRIBUTES.
 34     GS_PLANE-NAME = '波音'.
 35     GS_PLANE-TYPE = '747'.
 36     APPEND GS_PLANE TO GT_PLANE.
 37     GV_N_O_AIRPLANES = 1.
 38     CLEAR:GS_PLANE.
 39     GS_PLANE-NAME = '国行'.
 40     GS_PLANE-TYPE = '123'.
 41     APPEND GS_PLANE TO GT_PLANE.
 42     GV_N_O_AIRPLANES = GV_N_O_AIRPLANES + 1.
 43     CLEAR:GS_PLANE.
 44     GS_PLANE-NAME = '欧航'.
 45     GS_PLANE-TYPE = '543'.
 46     APPEND GS_PLANE TO GT_PLANE.
 47     GV_N_O_AIRPLANES = GV_N_O_AIRPLANES + 1.
 48     CLEAR:GS_PLANE.
 49   ENDMETHOD.
 50   METHOD SET_ATTRIBUTES1.
 51     GS_PLANE1-NAME = P_NAME.
 52     GS_PLANE1-TYPE = P_TYPE.
 53     APPEND GS_PLANE1 TO GT_PLANE1.
 54     GV_N_O_AIRPLANES1 = GV_N_O_AIRPLANES + 1.
 55     CLEAR:GS_PLANE1.
 56   ENDMETHOD.
 57   METHOD:DISPLAY_ATTRIBUTES.
 58     PERFORM FIELDCAT USING:
 59            1 'NAME' '飞机的名称',
 60            2 'TYPE' '飞机的类型'.
 61     WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
 62     WA_LAYOUT-BOX_FIELDNAME = 'box'. "全选按钮“
 63     CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 64       EXPORTING
 65         I_CALLBACK_PROGRAM = SY-REPID
 66         IS_LAYOUT          = WA_LAYOUT
 67         IT_FIELDCAT        = IT_FIELDCAT
 68       TABLES
 69         T_OUTTAB           = GT_PLANE
 70       EXCEPTIONS
 71         PROGRAM_ERROR      = 1
 72         OTHERS             = 2.
 73     IF SY-SUBRC <> 0.
 74 * Implement suitable error handling here
 75     ENDIF.
 76   ENDMETHOD.
 77   METHOD DISPLAY_ATTRIBUTES1.
 78     CL_DEMO_OUTPUT=>DISPLAY_DATA( GT_PLANE1 ).
 79   ENDMETHOD.
 80 
 81   METHOD:DISPLAY_N_O_AIRPLANES.
 82     WRITE:/ '总计录入了', GV_N_O_AIRPLANES, '架飞机'.
 83   ENDMETHOD.
 84 ENDCLASS.
 85 
 86 FORM FIELDCAT  USING    P_COL_POS
 87                         P_FIELDNAME
 88                         P_SELTEXT_M.
 89   WA_FIELDCAT-COL_POS = P_COL_POS.
 90   WA_FIELDCAT-FIELDNAME = P_FIELDNAME.
 91   WA_FIELDCAT-SELTEXT_M = P_SELTEXT_M.
 92   APPEND WA_FIELDCAT TO IT_FIELDCAT.
 93   CLEAR:WA_FIELDCAT.
 94 ENDFORM.
 95 "创建实例并调用方法
 96 
 97 START-OF-SELECTION.
 98   "常规的定义参考类后创建实例
 99   DATA:RESULT TYPE REF TO LCL_AIRPLAN.
100   CREATE OBJECT: RESULT.
101   RESULT->SET_ATTRIBUTES( )."普通方法实例调用
102   RESULT->DISPLAY_ATTRIBUTES( ).
103   LCL_AIRPLAN=>DISPLAY_N_O_AIRPLANES( )."静态方法调用
104   "new关键字创建实例
105   RESULT = NEW LCL_AIRPLAN( ).
106   RESULT->DISPLAY_N_O_AIRPLANES( ).
107   "直接创建实例
108   DATA(RESULT1) = NEW LCL_AIRPLAN( ).
109   "调用是传入参数
110   RESULT1->SET_ATTRIBUTES1( p_name = '春秋航空' P_TYPE = '747' ).
111   RESULT1->SET_ATTRIBUTES1( p_name = '四川航空' P_TYPE = '333' ).
112"另外一种导入参数的方法,上面是简写
  CALL METHOD RESULT1->SET_ATTRIBUTES1
    EXPORTING
      P_NAME '南方航空'
      P_TYPE '444'.
113 RESULT1->DISPLAY_ATTRIBUTES1( ). 114 RESULT1->DISPLAY_N_O_AIRPLANES( ). 115 "更加直接 116 NEW LCL_AIRPLAN( )->DISPLAY_N_O_AIRPLANES( ).

abap 简单的本地类操作第1张

 abap 简单的本地类操作第2张

 abap 简单的本地类操作第3张

免责声明:文章转载自《abap 简单的本地类操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C语言基础:C语言指针(6)可搜索的下拉框下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

十大接口

十大接口 一、Response响应封装 1.1封装 from rest_framework.response import Response class APIResponse(Response): def __init__(self, status=0, msg="ok", results=None, http_status=None, head...

Adobe/Flash Media Server 5.0 linux 64位系统下的安装

一、下载Adobe/Flash MS5.0下载地址:http://fs1.d-h.st/download/00036/VOt/adobemediaserver_5_ls1_linux64.tar.gz# ./wget http://fs1.d-h.st/download/00036/VOt/adobemediaserver_5_ls1_linux64.t...

ThinkPHP 6.0 管道模式与中间件的实现分析

设计模式六大原则 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象. 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 接口隔离原则...

存储过程(学习笔记)

  存储过程指的是在大型数据库系统中专门定义的一组SQL语句集,它可以定义用户操作参数,并且存在于数据库中,当使用时直接调用即可存储过程=过程的声明+PL/SQL块定义过程语法:CREATE [OR REPLACE] PROCEDURE 过程名称([参数名称[参数模式] NOCOPY 数据类型 [参数名称 [参数模式] NOCOPY 数据类型,...]])...

内核如何启动根文件系统?

当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段。与u-boot类似,普通Linux内核的启动过程也能够分为两个阶段,但针对压缩了的内核如uImage就要包含内核自解压过程了。本文以linux-2.6.37版源代码为例分三个阶段来描写叙述内核启动全过程。第一阶段为内核自解压过程,第二阶段主要工作是设置ARM处理器工作模式、使能MMU、...

Android系统获取手机型号和系统版本号,以及其他配置信息

String sdk=android.os.Build.VERSION.SDK; // SDK号 String model=android.os.Build.MODEL; // 手机型号 String release=android.os.Build.VERSION.RELEASE; // android系统版本号 执行以下代码前,须在manifest.x...