Без SORT
Code:
REPORT ZZZTESTCA01.
TYPES: begin of line_tab1,
ebeln TYPE EKPO-EBELN,
ebelp TYPE EKPO-EBELP,
matnr TYPE EKPO-MATNR,
END OF line_tab1.
TYPES: lt_tab1_type TYPE STANDARD TABLE OF line_tab1,
lt_tab2_type TYPE STANDARD TABLE OF line_tab1.
DATA: lt_tab1 TYPE lt_tab1_type,
lt_tab2 TYPE lt_tab2_type.
DATA: wa_tab1 TYPE line_tab1,
wa_tab2 TYPE line_tab1,
tabix like sy-tabix value 1,
text TYPE string,
is_over TYPE c
.
" получаем какие-то записи
SELECT ebeln ebelp matnr UP TO 1000 ROWS
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE lt_tab1.
" брем еще записи - скрее всего совпадут
SELECT ebeln ebelp matnr UP TO 30 ROWS
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE lt_tab2.
" перекидываем в таблицу, чтобы сделать повторяющиеся записи
LOOP AT lt_tab2 INTO wa_tab2.
APPEND wa_tab2 to lt_tab1.
ENDLOOP.
FREE: lt_tab2, wa_tab2.
LOOP AT lt_tab1 INTO wa_tab1.
WRITE: / wa_tab1-ebeln, ' ' , wa_tab1-ebelp, ' ' , wa_tab1-matnr.
ENDLOOP.
" lt_tab2[] = lt_tab1[].
LOOP AT lt_tab1 INTO wa_tab1.
" write: / wa_ekpo-ebeln, wa_ekpo-ebelp.
tabix = sy-tabix + 1.
LOOP AT lt_tab1 INTO wa_tab2 FROM tabix.
IF wa_tab1 EQ wa_tab2.
CONCATENATE 'Неуникальная запись' ' _ ' wa_tab1-ebeln ' _ ' wa_tab1-ebelp ' _ ' wa_tab1-matnr INTO text.
MESSAGE text TYPE 'I'.
MOVE 'X' to is_over.
ENDIF.
IF is_over EQ 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF is_over EQ 'X'.
EXIT.
ENDIF.
ENDLOOP.