Rellenar un campo tipo Objeto Texto


([N4] Ramon Denuc) #1

Hola Chicos,

Ne consigo salirme con la siguiente cuestión:

Tengo dos tablas, en la tabla CARACTERÍSTICAS tengo solo dos campos ID y DESCRIPCION que el usuario va rellenando según sus necesidades, a través de una rejilla.

Luego tengo la tabla PRINCIPAL que tiene muchos campos, y entre ellos el “CARACTERÍSTICAS_INFORME” que necesito rellenar con el contenido que hay en la tabla CARACTERÍSTICAS, solo cuando el usuario pulse el botón Imprimir informe.

Es decir que si la tabla CARACTERÍSTICAS tiene 3 registro:
Uno
Dos
Tres

Lo que quiero conseguir y no me salgo con ello, es que al pulsar el botón “Imprimir informe” el programa lea el contenido de la tabla CARACTERÍSTICAS y me los pase antes de imprimir al campo “CARACTERÍSTICAS_INFORME” de la tabla PRINCIPAL con el siguiente formato “uno, dos, tres, …”

Si alguien entiende lo que e explicado y puede ayudarme se lo agradezco de antemano.
Saludos

PD: el campo de la tabla PRINCIPAL “CARACTERÍSTICAS_INFORME” es un campo tipo Objeto Texto que luego saldra en el informe con el formato que deseo hacer.


([N3] pacosatu) #2

Hola RamonD.

Parece simple lo que quieres hacer y sin embargo no te sale.
Quieres concatenar el campo DESCRIPCION de los registros seleccionados en la tabla CARCATERISTICAS y el resultado guardarlo (con Modificar Campo) en el campo CARACTERÍSTICAS_INFORME de la tabla PRINCIPAL.

¿Dónde está el problema?

Saludos
Paco Satué


([N4] Ramon Denuc) #3

Hola Paco,

Primero gracias por contestar a mi pregunta.

Segundo, el problema lo tengo en que no se hacer correctamente la concatenación, y no se que utiliza, si un “FOR” o se tiene que hacer con “Recorrer lista solo lectura”, y no consigo el resultado que busco.

He buscado algún ejemplo por el foro, pero no he sabido encontrar nada.

Saludos,


([N1] imesacodabar-es) #4

Hola, a lo mejor yo puedo ayudarte O.o
Primero una variable local:
SET (RESULTADO, “”)
Luego, cargas la tabla, recorres la lista en solo lectura haciendo:
IF (RESULTADO="")
SET (RESULTADO, #DESCRIPCION)
ELSE
SET (RESULTADO, RESULTADO + ", " + #DESCRIPCION)

Cuando hayas terminado, modificas el campo.

Verifica mostrando un mensaje que el campo resultado se haya completado.
Si no se graba, a lo mejor es que no tienes cargado el registro que quieras modificar.
Un saludo,

Edito: para saber si la tabla que quieres recorrer en solo lectura se ha cargado, puedes verificar con sysListSize:

Cargar lista…
if (sysListSize)
Mensaje(“Tiene registros”)
else
Mensaje(“No hay registros”)

Eso te ayudará a depurar dónde está fallando el procedimiento.


([N4] Ramon Denuc) #5

Muchas gracias @imesacodabar-es

El fallo que yo tenia es que no volvía a poner la variable en el segundo SET, fallo de novato.

La concatenación me funciona lo que pasa es que en el momento de querer guardar la concatenación en el registro de la tabla PRINCIPAL no se sitúa en el registro que toca.

¿Como puedo volver a situarme en el registro de la tabla PRINCIPAL?
¿Hay algún comando para realizar esta operación?

Saludos


([N4] Ramon Denuc) #6

Hola,

Ya he conseguido concatenar los registros de la tabla CARACTERÍSTICAS y luego guardarlos en la tabla PRINCIPAL.

Dejo la imagen de como lo he realizado para que en el futuro, si otro usuario lo necesitara, estoy seguro que vale más una imagen que 1000 palabras, no se si es la más conveniente, pero me funciona.

Gracias por la colaboración.

Saludos