PDA

Ver la Versión Completa : ayuda -concatenar texto a mostrar en cabecera ALV


Alfredosite
13/06/08, 17:04:55
Tengo este rango r_paises lo que me interesa mostrar los valores r_paises-low de manera de forma consecutiva en la cabecera de un ALV:
sign Option Low
Peru
Brasil
Mexico

Desearia que en mi cabecera salga de esta manera:

Reporte de Empresa
PAISES : Peru, Brasil y Mexico

Se que con estas lineas de codigo podria mostrarlo en la cabecera...con este codigo solo podria mostrar el primer del pais del rango....(Peru) lo que yo quiero que me ayuden es como haria para poder concatenar los demas paises como deseo mostarlos ( Peru, Brasil y Mexico), estab pensando en un loop al rango pero nose como concatenar el valor r_paises-low con el anterior valor y unirlos al lado solo me falta eso.... alguna idea???
Pdta: Recordando que mi r_paises puede variar de registros...
REFRESH gt_heading.
CLEAR d_line.
d_line-typ = 'H'.
d_line-info = text-101.
APPEND d_line TO gt_heading.

CLEAR d_line.
d_line-typ = 'S'.
d_line-key = 'PAISES'.
d_line-info = r_paises-low.
APPEND d_line TO gt_heading.

APPEND d_line TO gt_heading.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_heading.

frankmerlos
13/06/08, 17:17:04
Hola alfredo.

prueba de la siguiente manera:

DATA MENSAJE TYPE STRING.

MENSAJE = ''

LOOP AT R_PAISES.
CONCATENATE MENSAJE R_PAISES-LOW INTO MENSAJE
SEPARATED BY ','.
ENDLOOP.

CLEAR d_line.
d_line-typ = 'S'.
d_line-key = 'PAISES'.
d_line-info = MENSAJE.
APPEND d_line TO gt_heading.

ludmila22
13/06/08, 17:18:16
trata con el comando concatenate variable variable variable into variableresult

así en variableresult guardara el valor de las variables anteriores.

Luego haces un write de variableresult

sldos,

Alfredosite
13/06/08, 19:01:28
Muchas gracias Frankmerlos por la orientacion con esa logica me resulto y lo termine haciendo de esta manera.
DESCRIBE TABLE r_empresa LINES N.
*Rutina para mostrar descripcion mas de una sociedad en ALV

DATA:
v_empresatxt(60) TYPE C,
n TYPE I,
m TYPE I. "Contador
LOOP AT r_empresa.
m = m + 1.
* primero
if m = 1.
v_empresatxt = r_empresa-low.
else.
* ultimo
if m = n.
concatenate v_empresatxt r_empresa-low INTO v_empresatxt
separated by ' y '.
else.
concatenate v_empresatxt r_empresa-low INTO v_empresatxt
separated by ' , '.
endif.
endif.
ENDLOOP.

Salio perfecto para poder con esto completar si en caso necesito el conector 'y' si tiene mas de 3 paises....muchas gracias por el aporte....