Olá Venu,
tipos: BEGIN OF ty,
NOME(20),
VENDAS TIPO I,
END OF ty.
data : itab tipo tabela padrão de ty,
itab1 tipo tabela padrão de ty,
wa tipo ty,
wa1 tipo ty.
wa-NOME = 'Pato'. wa-VENDAS = 10.
adicionar wa a itab.
wa-NOME = 'Tigre'. wa-VENDAS = 20.
adicionar wa a itab.
wa-NOME = 'Pato'. wa-VENDAS = 30.
adicionar wa a itab.
loop em itab em wa.
wa1 = wa.
recolher wa1 em itab1.
endloop.
loop em itab1 em wa1.
escrever : / wa1-nome , wa1-vendas.
endloop.
COLLECT é usado para criar conjuntos de dados únicos ou comprimidos. Os campos-chave são os campos-chave padrão da tabela interna itab.
Se você usar COLLECT apenas para preencher uma tabela interna, o COLLECT garante que a tabela interna não contenha duas entradas com os mesmos campos-chave padrão.
<b>Além de seus campos-chave padrão, se a tabela interna contiver campos numéricos (consulte também tipos de números ABAP/4), o conteúdo desses campos numéricos é somado se a tabela interna já tiver uma entrada com os mesmos campos-chave.</b>
Se a chave padrão de uma tabela interna processada com COLLECT estiver em branco, todos os valores são somados na primeira linha da tabela.
No programa que você mencionou ontem, não consigo entender a lógica, pois muitas linhas estão comentadas.