Concatenemos
2015-01-05

Temos duas variáveis:
DATA palavra1 TYPE string.
DATA palavra2 TYPE string.
DATA: frase TYPE string.
palavra1 = ‘isto’.
palavra2 = ‘aquilo’.
E queremos concatená-las metendo entre elas a palavra ‘mais’ e, claro, separando-as por espaços.
Forma 1 (a clássica):
CONCATENATE palavra1 ‘mais’ palavra2 INTO frase SEPARATED BY space.
Forma 2, que não retém os espaços:
frase = palavra1 && ‘ ‘ && mais && ‘ ‘ && palavra2.
Forma 3, rebuscada mas retendo os espaços:
frase = palavra1 && ‘ALT+255‘ && ‘mais' && ‘ALT+255‘ && palavra2.
(em que ALT+255 é mesmo carregar no ALT e depois escrever 255)
(em rigor não fica lá um espaço, mas o aspecto é o mesmo)
Forma 4, que é o último grito nesta modalidade:
frase = | { palavra1 } mais { palavra2 } |.
Aliás, este último até dá para invocar métodos pelo meio, tipo:
frase = | { o_livro->get_palavra( 1 ) } mais { o_livro->get_palavra( 2 ) } |.
Obrigado Ricardo Monteiro pelo truque do ALT+255 e Sérgio Fraga por nos mostrares o futuro.
Obrigado halfrain pela foto.
O Abapinho saúda-vos.
5 de Janeiro de 2015 às 13:41
Hi,
phrase = word1 && ‘ ‘ && word2.
phrase = word1 && ` ` && word2. “this will keep space
For more info:
http://help.sap.com/abapdocu_731/en/abenstring_templates.htm
5 de Janeiro de 2015 às 13:46
Single quotation mark should be different, but they are “parsed”/changed to other in this web. Check example in link (different kinds of quotation marks).
9 de Janeiro de 2015 às 10:03
One more comment :D
Here I found direct help page about what I wanted to say:
http://help.sap.com/abapdocu_731/en/abenliteral.htm
The thing is, that “Text string literals”(check link) keeps space. So by using them, modified example “Form 2” would work.
13 de Janeiro de 2015 às 9:59
Hi Thommas, indeed you’re right. I’ll soon update the article to reflect your findings.
13 de Janeiro de 2015 às 9:59
Thank you very much!