SAP ABAP自学:OOALV对象导向ALV教程
需积分: 50 62 浏览量
更新于2024-07-18
收藏 1.02MB DOCX 举报
"ABAP OOALV是SAP ABAP编程中用于生成对象导向的ALV(ABAP List Viewer)表格的一种技术,适用于初学者学习。通过OOALV,开发者可以更加灵活地控制ALV的显示和功能。本文档记录了自学ABAP OOALV的过程和技术要点。"
在SAP ABAP开发中,ALV是一种标准的报表显示工具,而OOALV则是基于面向对象编程的概念来实现ALV的功能。以下是一些关键知识点:
1. **对象定义**:
- `DATAGS_ALVTYPEREFTOCL_GUI_ALV_GRID`: 这个数据类型引用了`CL_GUI_ALV_GRID`类,这是生成ALV的基本对象,用于处理表格的显示和交互。
- `DATAGS_PARENTTYPEREFTOCL_GUI_CUSTOM_CONTAINER`: 这个数据类型引用了`CL_GUI_CUSTOM_CONTAINER`类,它是ALV的容器,用于在屏幕上的特定区域显示ALV。
2. **构造器与实例化**:
- 构造器(Constructor)在对象实例化时使用,用来初始化对象的状态。在ABAP中,你需要实例化`CL_GUI_CUSTOM_CONTAINER`作为ALV的容器,以及`CL_GUI_ALV_GRID`作为ALV本身。
3. **数据结构**:
- `DATAGT_FIELDCATTYPELVC_T_FCAT`: 这是ALV列定义的数据结构,包含关于列名、类型、宽度等信息。
- `DATAGS_FIELDCATTYPELVC_S_FCAT`: 工作区的列定义数据结构,用于临时存储列设置。
- `DATAGS_LAYOUTTYPELVC_S_LAYO`: 表示ALV的布局设置,如行高、列宽等。
- `DATAGS_STABLETYPELVC_S_STBL`: 用于表单刷新,管理表格数据。
4. **数据获取**:
- 虽然描述中没有详细说明,但在实际应用中,你需要从数据库或其他数据源获取数据,并将其映射到ALV所需的结构中,以便正确显示。
5. **输出与屏幕处理**:
- ALV显示在屏幕0100上,因此需要在程序中创建这个屏幕并设置相关模块。
- 在`PROCESSBEFOREOUTPUT`事件中进行初始化和设置。
- `MODULEINIT_ALV`和`MODULEINIT_ALVOUTPUT`是自定义的模块,用于执行初始化和输出相关的操作。
- `PERFORM CREATE_ALV`用于实例化ALV对象,`PERFORM DISPLAY_DATA`则调用类中的方法显示数据。
- `FROMCREATE_ALV`用于实例化`CL_GUI_ALV_GRID`,并将其插入到`CL_GUI_CUSTOM_CONTAINER`中。
6. **字段分类设置**:
- FIELDCAT的设置决定了ALV中列的显示方式,这通常涉及到对`T_FCAT`结构的填充,可以通过函数模块或直接在代码中定义。
7. **宏定义**:
- 在`TOP`中定义宏可以提高代码的可读性和可维护性,例如定义宏来存储常量或常用表达式。
学习ABAP OOALV需要理解ABAP的面向对象编程概念,熟悉SAP的GUI组件,以及如何处理数据和屏幕逻辑。实践是掌握这些知识的关键,通过创建和修改实际的ALV报表,你可以更深入地了解这一技术。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-02-27 上传
2023-03-25 上传
2023-04-12 上传
2023-05-26 上传
2024-10-28 上传
了了liao
- 粉丝: 0
- 资源: 10
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析