Conversión de campos Objeto texto


([N1] wikiwiki) #1

Se os ocurre alguna forma de pasar un campo objeto texto enriquecido a objeto texto?

El caso es que en la base de datos ya tengo datos introducidos y uno de los campos es Ojeto Texto Enriquecido. Cómo ya sabéis actualmente no se pueden imprimir estos campos con formato, por lo que me veo obligado a cambiar el tipo de campo a ojeto texto normal, pero cómo lo haría manteniendo los datos?

Me imagino que con un proceso para quitarle los tags de las etiquetas de formato, pero estoy perdido.

Gracias por vuestro tiempo.

Un saludo.

 

 





([N1] comercial) #2

Hola, yo en principio dejaría el campo objeto texto enriquecido y crearía otro objeto texto, dándole valor en alguna parte, pérdida de foco, botón aceptar, trigger...de esta manera, si en la siguiente versión de V7 se soluciona, pos ya está borro el nuevo y sigo con el antiguo, no te puedo decir como hacer la conversión, no tengo experiencia...


([N1] wikiwiki) #3

El problema es que necesito imprimir ese campo, y tengo cientos de registros ya introducidos.

Un saludo.


([N4] Jorge) #4

Dos opciones a bote pronto:

Crea una librería en C++ que se encarge de la conversión.

O mediante una funcion javaScript.


([N1] wikiwiki) #5

Jorge, el bote lo acabo de pegar yo!!!

Ponmelo más fácil oh, en Velneo.

Gracias.

 

 


([N1] Javier Duran Garcia) #6

Por lo que veo lo mas razonable seria crear algun tipo de funcion  que contuviese todas las etiquetas HTML y filtrar el texto con ella.

Otra opcion seria la eliminacion de todo el texto contenido entre los caracteres "<" y ">".

No se, es una idea :)


([N4] eic) #7

Hola.

En la OpenApp vMailWin tienes dos funciones: HTML_2_TXT y XML_2_TXT (la primera llama a la segunda) que hacen lo que tú quieres. En definitiva, lo que hace la segunda es quitar todas las etiquetas entre caracteres < y > (como apuntaba Javier Durán), y la primera quita algunos caracteres típicos de HTML. Como primera aproximación, quizá con un poco de afinado posterior, te puede servir. Se usa para convertir el contenido de un mail, creado con un objeto texto enriquecido, a texto puro (o sea, justo lo que quieres).

Saludos,

Fran Varona

 


([N4] Jorge) #8

Ese conjunto de funciones que comentais se aproximan a la solución... pero si el html es un poco complejo o extenso no lo hará demasiado bien.

En EcmaScript no tiene por que ser demasiado complejo... revisé algunos ejemplos en JavaScript y la verdad es sencillo. En C++ nos llevaría algo más de tiempo... no sé donde veis la complejidad. Además tener en cuenta que la conversión puede ser tediosa si el html es demasiado largo.


([N1] wikiwiki) #9

Voy a echar un vistazo a la Openapp a ver como lo veo.

Lo único que tienen esos campos es alguna palabra en negrita, solamente. Al quitar las etiquetas que pasaría, quedaría el texto plano no?

Gracias de nuevo.

Un saludo.


([N4] velavisual) #10

@nachocrespo

Mira si te puede valer esta pequeña solución.... en velneo.

Creas un proceso que contenga:

-Set reemplazar="CADENA A REEMPLAZAR"

- Set nuevacadena=""

-Cargas lista(tabla, indice)

      - Recorres lista lectura/escritura

      - Set (A,replaceStrings(#CAMPO_NOTA,'reemplazar','nuevacadena'))

       - Modificar campo (CAMPO_NOTAS,A)

 

A mí me funciona ok, incluso con objetos textos enriquecidos, aunque estos aún no se puedan imprimir. :)

 

Saludos

Antonio Vela

http://www.velavisual.com

 


([N1] wikiwiki) #11

Muchas Gracias Antonio.

Esa idea necesitaba en Velneo.

Un saludo.

 


([N1] wikiwiki) #12

Me funciona bien, pero si tengo que borrar unas comillas, como se pondría en la cadena a buscar, """  ?

 Es decir no sé como borrar las comillas del campo texto enriquecido.

Alguna idea?

Gracias.

 Lo acabo de solucionar, seria así:

"""

 


([N1] wikiwiki) #13

Si cambio un campo Objeto texto enriquecido, a Objeto texto, porque me siguen saliendo las etiquetas HTML en los registros nuevos?

Un saludo.


([N1] wikiwiki) #14

Adjunto imagen de lo que aparece en un campo texto enriquecido.

Y ejecuto este proceso para quitar las etiquetas html que me dijo Antonio Vela.

 

-Set reemplazar="CADENA A REEMPLAZAR"

- Set nuevacadena=""

-Cargas lista(tabla, indice)

      - Recorres lista lectura/escritura

      - Set (A,replaceStrings(#CAMPO_NOTA,'reemplazar','nuevacadena' Smiley )

       - Modificar campo (CAMPO_NOTAS,A)

 

El caso es que no funciona con una cadena de texto muy grande, y no se como hacer para quitar estas etiquetas.

Tengo unos 1000 registros y quiero convertirlo a campo texto normal.

Alguna idea?

 

 

[attachment=10034,959]


([N4] eic) #15

Hola.

Como te comento más arriba, tienes una función en una OpenApp que hace justo lo que buscas. Yo la utilicé precisamente para convertir un objeto texto enriquecido en objeto texto.

Saludos,

Fran Varona

 


([N1] wikiwiki) #16

Gracias, Fran la miraré a ver.

Un saludo.


([N1] wikiwiki) #17

No me vale Fran, la función  sólo quita algún caracter típico de HTML, y cómo verás en la imagen adjunta, son muchos caracteres a suprimir.

Utilizo la función replacestring, pero si pongo más de 10 o así de caracteres a sustituir, no me hace nada, por lo que es un rollo ir a cachos.

Alguna otra idea?      


([N4] eic) #18

Hola, Nacho.

Efectivamente, la función HTML_2_TXT sólo quita algún carácter típico de HTML... pero, si te fijas, también llama a la función XML_2_TXT, y ésta lo que hace es quitar todo lo que esté entre los caracteres < y >, o sea, todas las etiquetas.

Saludos,

Fran Varona