PDA

Ver la Versión Completa : problema con instruccion CONDENSE


ecarrasco0119
12/01/15, 20:01:45
Hola buenas tardes necesito su ayuda para resolver este pequeño problema.

tengo lo siguiente por poner un ejemplo.

tengo un wa_nombre-linea que al pasar por write imprime lo siguiente:

Doc. Nombre
001###|MARIA VAZQUEZ ###############|

*Donde # es igual a espacios en blanco

el tamaño de la cadena para Doc es de 6 y para nombre es de 30, los registros pueden variar de tamaño y me piden que borre los espacios en blanco a la derecha para que quede de esta forma.

Doc Nombre
001|MARIA VAZQUEZ|

En el loop donde construyo el wa_nombre coloco la sentencia condense wa_nombre y efectivamente me borra los espacios vacíos en la cadena pero siempre me deja un espacio en blanco a la derecha

Doc Nombre
001#|MARIA VAZQUEZ#|

Hay forma de eliminarlo de la cadena o porque siempre deja ese espacio,
Espero me puedan ayudar

saludos

Spainnavar
13/01/15, 07:28:11
Hola,
creo que lo que buscas es: CONDENSE <Var> NO-GAPS.

Un saludo

ecarrasco0119
13/01/15, 14:22:21
Hola,
creo que lo que buscas es: CONDENSE <Var> NO-GAPS.

Un saludo



efectivamente pensé en la misma situación pero resulta que en el caso del nombre eliminaría los espacios entre nombre y apellidos.

seguramente es algo muy sencillo pero no logro dar, saludos

Spainnavar
13/01/15, 14:51:29
Primero SPLIT por |
Pilla el nombre y haces un SPLIT por los espacios, cogiendo los dos primero resultados (MARIA y VAZQUEZ)
Borras el campo del nombre entero y lo reconstruyes con los nombres por separado...

La verdad que no se me ocurre mucho mas... No se si funcionara, pero por probar no pasa nada...

Ya nos contaras! ;)

ecarrasco0119
13/01/15, 16:16:40
hola colegas, al final lo resolví con un simple concatenate, en un principio había descartado esta opción por que el cliente quería definir el tamaño de cada cadena, al solicitarme que la cadena se ajustara a los caracteres de cada registro, se volvió viable utilizar un concatenate.

doc = 001
nombre= 'MARIA VAZQUEZ'

CONCATENATE doc nombre SEPARATED BY '|'.


anteriormente tenia esto:

wa_main-line+0(6) = doc.
wa_main-line+6(1) = '|'.
wa_main-line+7(30) = nombre.
wa_main-line+36(1) = '|'.

saludos. y gracias por sus respuestas, espero en algún momento contribuir con ustedes.