Office Template de Softmaster - Pasar campo MEMO a WORD

Consultas sobre templates. Análisis de templates.
Responder
CWeidl
Novato
Mensajes: 47
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Office Template de Softmaster - Pasar campo MEMO a WORD

Mensaje por CWeidl » Mié Jun 23, 2021 4:41 pm

Hola a todos, espero estén todos muy bien.
Quería consultar, si alguien sabe, como pasar el contenido de un campo Memo a Word, utilizando el Office Template de Softmaster.

Situación:
LOC:TEMA - Variable donde tengo el texto a buscar dentro del Word (#TEMA1#)
Y# - Contador que incrementa el Nº en el texto a buscar dentro del Word
SETCLIPBOARD() - Copiar en el portapapeles el contenido del campo Memo
CLIPBOARD() - Pegar el contenido del portapapeles en el Word

Lo que hice (y no funciono, no reemplaza el texto por el contenido del portapapeles, los campos string, date y long los reemplaza sin problemas) es :

LOC:TEMA = CLIP('#TEMA') & CLIP(y#) & CLIP('#')
SETCLIPBOARD(CLIP(CAMPO:MEMO))
MsWord1.Replace(LOC:TEMA,CLIP(CLIPBOARD()),False,False)


Obviamente algo no le gusto.
Por favor, si alguien sabe o se encontró con la misma situación y lo pudo resolver, agradecería muchísimo una ayuda.
Muchas gracias a todos. Saludos.

Carlos Weidl
cweidl@magyp.gob.ar
carlosweidl@hotmail.com


Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Office Template de Softmaster - Pasar campo MEMO a WORD

Mensaje por Mauricio » Vie Jun 25, 2021 3:54 am

Dos preguntas: 1) para qué copiás y pegás el contenido del memo en el clipboard? No es lo mismo usar el memo en la función para remplazar?
1) Y si no funciona, probaste pasando el contenido del memo a una variable tipo cstring(64000) o algo así?
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

CWeidl
Novato
Mensajes: 47
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Re: Office Template de Softmaster - Pasar campo MEMO a WORD

Mensaje por CWeidl » Vie Jun 25, 2021 2:30 pm

Hola Mauricio, gracias por la respuesta.
Te comento :
1) Intente pasar directamente el Memo y no me lo reemplazaba. Por lo que pensé que era un tema del template con los campos Memo. Por eso lo segundo que se me ocurrio fue hacerlo con el portapapeles.
2) Pasarlo a una variable cstring no lo probe. Apenas lei tu respuesta lo probe, pero me seguia sin reemplazar el texto.

Ahora, después de chequear nuevamente. Parece que el problema esta en el código.
Por lo que veo no me reconoce la variable donde tengo el texto a reemplazar (#TEXTO1#, #TEXTO2#, #TEXTO3#, etc.)

LOC:TEMA = CLIP('#TEMA') & CLIP(y#) & CLIP('#')

Y# es un contador que se incrementa a medida que voy leyendo registros.
Al leer el primer registro y# = 1, lee el segundo y# = 2, y asi hasta completar.

L:TEMA = CLIP(Campo:Memo) ! L:TEMA variable CString
MsWord1.Replace(LOC:TEMA,L:TEMA,False,False)

Te adjunto imagen, de un lado tenes el Word y del otro lado el dbg, y ahí veo que lee bien el contenido de LOC:TEMA que seria #TEMA1#, #TEMA2#, #TEMA3#, etc.

Lo raro que en esta línea LOC:REMITENTE lo encuentra y reemplaza sin problemas :

LOC:REMITENTE = CLIP('#REMITENTE') & CLIP(y#) & CLIP('#')
L:REMITENTE = CLIP(DES:REMITENTE) & CLIP(' - ') & CLIP(DES:FIRMA) & CLIP(' - ') & CLIP(DES:CARGO_OR) & CLIP(' - ') & CLIP(DES:COD_NUM)
MsWord1.Replace(LOC:REMITENTE,CLIP(L:REMITENTE),False,False)

No logro ver donde puede estar el error.
Cualquier sugerencia será muy bien recibida !!!
Abrazos y muchisimas gracias por tu tiempo.

Carlos Weidl

CWeidl
Novato
Mensajes: 47
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Re: Office Template de Softmaster - Pasar campo MEMO a WORD

Mensaje por CWeidl » Vie Jun 25, 2021 3:46 pm

Hice otra prueba con IF y sin el texto a reemplazar dentro de una variable :

L:TEMA = CLIP(DES:NOTA)
IF y# = 1
MsWord1.Replace('#TEMA1#',L:TEMA,False,False)
ELSIF y# = 2
MsWord1.Replace('#TEMA2#',L:TEMA,False,False)
ELSIF y# = 3
MsWord1.Replace('#TEMA3#',L:TEMA,False,False)


Solo me reemplaza las opciones con texto corto. Aquellas con un texto largo no me lo reemplaza.
:(

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Office Template de Softmaster - Pasar campo MEMO a WORD

Mensaje por Mauricio » Vie Jun 25, 2021 5:37 pm

Con qué versión de Clarion estás trabajando?
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

CWeidl
Novato
Mensajes: 47
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Re: Office Template de Softmaster - Pasar campo MEMO a WORD

Mensaje por CWeidl » Vie Jun 25, 2021 5:55 pm

Clarion 6.3


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados