Página 1 de 1

Sobre Softmaster Template

Publicado: Sab Oct 08, 2011 1:31 am
por osquiabro
hoy me encontre con una situacion usando el template de softmaster y la clase de word, estaba utilizando la opcion de replace para hacer un merge de data a un documento hasta aqui todo bien, de pronto habia un campo definido cstring(8000) y cuando trate de usar el replace no hacia nada, el problema es que la funcion de replace de word solo permite un maximo de 255 caracteres, luego de buscar alternativas encontre algo muy simple en el san google y lo resolvi de esta manera

Código: Seleccionar todo

Se lleva el contenido de la variable al clipboard
SETCLIPBOARD(Con15:Memo)

aqui se le hace paste al contenido de la variable usando la funcion de replace
a#= MSWord.Replace('@memo@','^c',False,False)

caso resuelto espero que si alguien se tope con esto ya sabe como resolverlo.

Re: Sobre Softmaster Template

Publicado: Jue Mar 15, 2012 8:14 pm
por R.Pacheco
Hola amigo
Mira quiero pedirte un favor Necesito hacer algo asi
Quiero hacer un merge usando este template,
si tu puede enviarme un demo o ejemplo de esto ami correo te voy
agradecer muchos, ya que los es intentado hacer y no me sale
por favor hazme un obra de caridad,
yo tengo el template.

Gracia antemanos y recibe muchas bendiciones

Re: Sobre Softmaster Template

Publicado: Jue Mar 15, 2012 9:42 pm
por osquiabro
que necesitas exactamente el template viene con un demo para word y excel.

Re: Sobre Softmaster Template

Publicado: Jue Mar 15, 2012 11:10 pm
por R.Pacheco
Hola Colega

Solemante
Necsito un ejemplo de un merge
como se hace, es cuando tu le manda una carta o cuerpo de una carta a varios clientes
Recibe muchas bendiciones

Re: Sobre Softmaster Template

Publicado: Vie Mar 16, 2012 12:20 am
por osquiabro
aqui tienes un codigo de ejemplo este codigo imprime directo a la impresora con un loop.
Recuerda que en la pantalla tienes que tener la extension del template de softmaster para word.

SETCURSOR(CURSOR:Wait)
ForMerge{prop:SQL}='select * from ForMerge where BatchEnvioId='&BRW1.Q.Bat:BatchEnvioId&' order by ResgisterId'
MSWord.Init(QuickWindow,?SMWord,1,1,0)
LOOP
NEXT(ForMerge)
IF ERRORCODE() THEN BREAK.
MSWord.SetVisible(False)

MSWord.OpenDoc(CLIP(PATH()&'\Documents\HOJAORIGINALMONITOREO.docx'),True)
a#= MSWord.Replace('@nombre@',clip(For:FisrtName)&', '&clip(For:LastName),False,False)
a#= MSWord.Replace('@registerid@',For:ResgisterId,False,False)
a#= MSWord.Replace('@fecha@',FORMAT(For:RegisterDate_DATE,@D8),False,False)
a#= MSWord.Replace('@segurosocial@',FORMAT(For:SocialSecurity,@p###-##-####p),False,False)
a#= MSWord.Replace('@tiporegistro@',clip(For:TypeDescription),False,False)
a#= MSWord.Replace('@pinnumber@',clip(For:PinNumber),False,False)
a#= MSWord.Replace('@municipio@',clip(For:PhysicalCity),False,False)

a#= MSWord.Replace('@ph1@',clip(For:PhysicalAddress1),False,False)
a#= MSWord.Replace('@ph2@',clip(For:PhysicalAddress2),False,False)
a#= MSWord.Replace('@ph3@',clip(For:PhysicalCity)&', '&CLIP(For:PhysicalState)&' '&CLIP(For:PhysicalZipCode),False,False)

a#= MSWord.Replace('@ps1@',clip(For:PostalAddress1),False,False)
a#= MSWord.Replace('@ps2@',clip(For:PostalAddress2),False,False)
a#= MSWord.Replace('@ps3@',clip(For:PostalCity)&', '&clip(For:PostalState)&' '&clip(For:PostalZipCode),False,False)
a#= MSWord.Replace('@telefono@',format(For:DayPhone,@P(###)###-####Pb),False,False)
a#= MSWord.Replace('@celular@',format(For:MobilPhone,@P(###)###-####Pb),False,False)

MsWord.PrintDoc(1,False)
MsWord.CloseAllDocs(0)

CLEAR(For:RECORD)
END
MsWord.CloseAllDocs(0)
MSWord.Quit()
SETCURSOR()

Re: Sobre Softmaster Template

Publicado: Vie Mar 16, 2012 2:51 pm
por R.Pacheco
Gracia por el codigo

Por lo que veo esto pasa los datos desde un reporte
voy a estudiar el codigo ver que saco

Pero lo que quería era ver simplemente un ejemplo en un app,
por que los que quiero es lograr un merge como se hace en Word
Si tengo 5 clientes y le quiero mandar unacarta a mis 5 clientes
que tome el nombre de cada uno lo ponga en cuerpo de la carta.

De toda manera si tiene un tiempito arma un ejemplo en un app y subelo a la
seccion de trucos o sino lo quiere compartir con otros me los envias
a mi correo pacheramon@hotmail.com.

Recibe muchas bendiciones de manera especial.