CONCATENATE LINES OF itbl
Se queres serializar um conjunto de strings que tens guardadas numa tabela interna tens duas formas de o fazer. Uma ranhosa e outra cheia de estilo.
Comecemos por definir os dados:
TYPES: BEGIN OF ty_output,
field1 TYPE char10,
field2 TYPE char10,
field3 TYPE char10,
END OF ty_output.
DATA: t_output TYPE TABLE OF ty_output.
APPEND INITIAL LINE TO t_output ASSIGNING <output> .
<output>- field1 = 'a1' .
<output>- field2 = 'a2' .
<output>- field3 = 'a3' .
APPEND INITIAL LINE TO t_output ASSIGNING <output> .
<output>- field1 = 'b1' .
<output>- field2 = 'b2' .
<output>- field3 = 'b3' .
Temos agora uma tabela interna com uma estrutura de 3 campos alfa-numéricos preenchida com 2 linhas de dados.
O objectivo: construir uma linha com tudo serializado: a1 a2 a3 b1 b2 b3.
Se fores uma pessoa ranhosa que ouve música foleira, não tem gosto a vestir e gosta de ir jantar ao Macdonalds fazes assim:
LOOP AT t_output ASSIGNING <output>.
CONCATENATE opcao1
<output>-field1
<output>-field2
<output>-field3
INTO opcao1 SEPARATED BY space .
ENDLOOP.
CONDENSE opcao1.
Se, pelo contrário, fores uma pessoa sofisticada, que só ouve música daquela muita boa, veste roupa de alta categoria e se recusa a levar à boca comida que não seja molecular de uma ponta à outra então fazes assim:
CONCATENATE LINES OF t_output INTO opcao2 SEPARATED BY space.
CONDENSE opcao2.
Obrigado Leandro Gambim pela dica.
Obrigado Nick Thompson pela foto.
O Abapinho saúda-vos.