内表要进行排序 然后删除重复行
SORT <内表> BY <字段> [ascending/descending].
DELETE ADJACENT DUPLICATES FROM <内表> COMPARING ALL FIELDS.
*&---------------------------------------------------------------------*
*& Form FM_BUTTON_PRT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FM_BUTTON_PRT.
LOOP AT IT_DATA INTO WA_DATA.
IF WA_DATA-SEL = 'X'.
WA_SELS-PUR_NUM = WA_DATA-PUR_NUM.
WA_SELS-CRT_DATE = WA_DATA-CRT_DATE.
WA_SELS-VEND_NUM = WA_DATA-VEND_NUM.
WA_SELS-PAY_KEY = WA_DATA-PAY_KEY .
WA_SELS-MAT_NUM = WA_DATA-MAT_NUM .
WA_SELS-PUR_TXT = WA_DATA-PUR_TXT .
WA_SELS-PLT_NUM = WA_DATA-PLT_NUM .
WA_SELS-STOR_LOC = WA_DATA-STOR_LOC.
APPEND WA_SELS TO IT_SELS.
ENDIF.
ENDLOOP.
LOOP AT IT_DATA INTO WA_DATA.
IF WA_DATA-SEL = 'X'.
WA_PURNM-PURNM = WA_DATA-PUR_NUM.
APPEND WA_PURNM TO IT_PURNM.
SORT IT_PURNM BY PURNM ASCENDING.
DELETE ADJACENT DUPLICATES FROM IT_PURNM COMPARING ALL FIELDS.
ENDIF.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZXLI_TEST_002'
IMPORTING
FM_NAME = L_FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
CALL FUNCTION L_FM_NAME
TABLES
IT_DATA = IT_SELS
IT_PURNM = IT_PURNM.
CLEAR IT_SELS[].
ENDFORM. "FM_BUTTON_PRT
分享到:
相关推荐
- **删除重复项**: - 示例代码: ```abap SORT itab2 DESCENDING BY posnr datuv. DELETE ADJACENT DUPLICATES FROM itab2 COMPARING posnr. ``` - 解析:首先按照`posnr`和`datuv`字段降序排序表`itab2`,...
在ABAP语言中,Table是一种非常重要的数据类型,用于存储多个具有相同结构的数据项。Table可以视为一种特殊的数组,其中每个元素都是一个结构(Structure)。Table在ABAP中的应用非常广泛,几乎所有的业务逻辑处理...
SAP ABAP提供了多种删除内表数据的方法: 1. `delete itab where name = 'northsnow'`:基于特定条件删除记录。 2. `delete itab index i`:使用索引i删除一行。 3. 使用`loop at`循环遍历内表并删除,如`loop at ...
除了从数据库表中读取数据之外,还可以使用ABAP中的SQL语句来更改表中的数据。主要的操作包括插入新记录、更新现有记录和删除记录。 - **INSERT**:用于向数据库表中添加新记录。例如,向`MATERIAL`表中添加一条新...
- **内表**: ABAP中用于存储数据的集合,类似于数组,支持多种类型的索引和排序方式。 - **工作区**: 用于临时存储数据的区域,常用于循环处理数据时的中间结果存储。 ##### 8. 使用字段符号 - **字段符号**: 是一...
##### 4.8 确定内表属性 查询内部表的属性,如行数等,可以使用`LOOP AT`或`COUNT`关键字,格式如下: ```abap COUNT <table_variable> INTO <counter>. ``` - `<table_variable>`: 内部表变量。 - `<counter>`: ...
(2)该语句会自动删除重复行,所以取数时尽量把主键都考虑上。例如: SELECT bukr_s bel_nr gja_h buzeishkzg wr bt FROM bseg INTO TABLE itab1 FOR ALL ENTRIES IN itab2 WHERE bel_nr = itab2-bel_nr AND bukr_...
- **概述**:介绍如何在 ABAP 中使用数据集。 - **用途**:存储和处理大量数据的有效方式。 - **3.4.4 WS_DOWNLOAD** - **概述**:使用 Web 服务下载文件。 - **用途**:实现跨系统的文件传输。 - **3.4.5 GUI...
- **变量**:ABAP中的变量用于存储数据,可以定义不同类型的数据结构。 - **分支控制**:用于根据条件改变程序执行流程,例如IF-THEN-ELSE语句。 - **条件表达式**:用于计算布尔值,常用于IF语句中。 - **子程序**...
- **扩展内容**:ABAP Dictionary的组成部分(如数据元素、结构、透明表等)及其作用;如何使用SE11来查看和维护这些数据结构。 #### 12. 新建数据库表 - **知识点**:在SAP系统中创建自定义数据库表的过程。 - **...
- **UPDATE/DELETE指令**:用于更新或删除字典表中的数据。 #### 六、ABAP/4程序模块 模块化编程是ABAP的重要特性,包括宏块、包含程序、子程序等。 - **宏块**:用于定义可重复使用的代码段。 - **子程序**:...
Select语句用于从这些表中检索数据,是ABAP编程中处理数据的基本手段。通过学习Select语句,开发者可以高效地获取和处理业务数据。 5. **Chapter 13:ABAP函数模块** 函数模块是ABAP中的可重用代码单元,它们封装...
APPL_LOG_INIT 函数模块用于检查指定的对象或子对象是否存在,并删除关联的数据在本地内存中。该函数模块使开发者能够快速地初始化日志系统,准备日志记录。 APPL_LOG_READ_DB 函数模块用于读取数据库中的日志记录...
- **内部表**: 内部表类似于数组,用于存储同质的数据集。 - **数据处理**: 学习如何使用INSERT、APPEND、READ、MODIFY、DELETE和LOOP命令来操作内部表。 **3.4 子程序与函数** - **FORM**: 介绍如何使用FORM命令...
- 内表操作:通过在ABAP程序中定义内表来暂存查询结果或作为数据处理的容器。 - 内联视图(Inline View):允许创建临时的数据库查询,用于子查询或特定的数据检索。 - 连接表(Joining tables):用于结合来自不同...
- **数据类型和对象简介**:ABAP/4提供了多种数据类型,包括基本数据类型、结构化数据类型等。 - **数据类型**:了解各种数据类型的特点和用途。 - **基本数据类型 - 预定义的**:如字符型、数值型等,这些都是ABAP/...
APPL_LOG_INIT检查指定的对象或子对象是否存在,并删除所有相关的本地内存数据。这在开始新的日志记录周期或需要清除旧日志数据时使用。 6. APPL_LOG_READ_DB 使用APPL_LOG_READ_DB,你可以根据选择条件从数据库中...
2. 注意事项:在进行记录筛选前务必进行排序,类似ABAP中删除内表重复记录的操作。 三、DS 中文字符长度处理 1. 当DS处理中文字符时,可能会出现与SAP R3或Oracle数据库格式不匹配的问题,导致错误。 2. 解决方案...