PDA

Ver la Versión Completa : Ayuda-Manipulacion de strings


Alfredosite
16/06/08, 17:44:47
FORM top_of_page. "#EC CALLED
DATA: d_line TYPE slis_listheader,
v_empresatxt(120) TYPE C,
n TYPE I,
m TYPE I. "Contador

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 = 'USUARIO'.
d_line-info = sy-uname.
APPEND d_line TO gt_heading.


CLEAR d_line.
d_line-typ = 'S'.
d_line-key = 'SOCIEDAD(es)'.

DESCRIBE TABLE r_empresa LINES N.
*Rutina para mostrar descripcion mas de una sociedad en ALV
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.
d_line-info = v_empresatxt.
APPEND d_line TO gt_heading.

Hola amigos tengo este codigo en el cual me sirve para mostrar als descripciones de varias sociedades en la cabecera de un ALV, acumulandolas en una variable...por ejemplo esta variable deberia cargar.

v_empresatxt = Albacea S.A., Transportes Maritimos S.A, Compaņia Nuevo Mundo S.A. y Corporacion Wong.

Bueno el tema es que esa variable es de mas 120 caracteres para que entre todas y se le asigna a mi variable d_line-info el cual es del tipo slis_listheader que asu vez sap le da a info el type slis_entry(60) type c.

Como ven ese campo info viene a ser solo de 60 caracteres definido asi por sap...
Mi pregunta es como puedo hacer que esa variable de caracteres pueda reconocer que cuando tenga maximo 60 caracteres lo pase a una segunda linea o si fuese mejor logre darse cuenta de capturar el nombre completo de una sociedad sin comerse el texto asi haya completado los 60 caracteres...
Por ejemplo:
Cargado COn:
v_empresatxt = Albacea S.A., Transportes Maritimos S.A, Compaņia Nuevo Mundo S.A. y Corporacion Wong.
Que no haga esto(no coma texto parte del ultimo nombre que lo mande a la segunda linea)
v_empresatxt = Albacea S.A., Transportes Maritimos S.A, Compaņia Nuevo --------------> ((se comio) ....Mundo S.A. y Corporacion Wong.)
Lo ideal:
v_empresatxt = Albacea S.A., Transportes Maritimos S.A,
Compaņia Nuevo Mundo S.A. y Corporacion Wong.(Nueva linea)


Se podra realizar esto??
O en todo caso que instrucciones(manipulacion strings) puedo usar para que me ayude en algo

frankmerlos
16/06/08, 17:52:27
Hola.

La verdad si se puede hacer, llevar un contador de caracteres y si tiene X cantidad pasarlo a otra variable y es algo complicado.

Yo te aconsejo y creo que seria la manera mas facil es que hagas un loop de las sociedades y escribas una linea por cada sociedad.

Saludos.