sustituir marcadores en word usando libreria velole2

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
antonio1095
vCool
vCool
Mensajes: 165
Registrado: 10 Dic 2005, 11:27

sustituir marcadores en word usando libreria velole2

Mensaje por antonio1095 » 22 Ago 2008, 11:47

En un documento en word
utilizando la libreria velole2, sustituyo los marcadores por valores de campo, hasta hay todo perfecto.
El problema es que si hay un marcador que no uso pero que en el programa si le tengo puesto que lo busque, aunque no lo encuentra lo añade sobre el ultimo marcador encontrado
¿como podria hacer para que si no encuentra un marcador no lo añada ?

el codigo usado es

»VELOLE2.OLE2Command( 1,"Selection.Goto("+'wdGoToBookMark'+", 0, 0,"+'Q'+'sNombreMarcador'+'Q'+")")
»VELOLE2.OLE2Command( 1,"Selection.TypeText("+'Q'+'sValor'+'Q'+")")

es el mismo que figura en el ejemplo suministrado con la libreria

saludos
Antonio

Avatar de Usuario
gregonzalezg
vAdviser
vAdviser
Mensajes: 457
Registrado: 07 Feb 2008, 03:31
Ubicación: Asunción - Paraguay

Mensaje por gregonzalezg » 22 Ago 2008, 12:48

Buenos días.
Alguien sabe si existe una demo del VelOLE?, Hace días envié un email a uno de ellos ( gusmorenocalvo@gmail.com ) y hasta ahora no tengo respuesta.
Gracias.

Avatar de Usuario
Roberto Blasco
vLeader
vLeader
Mensajes: 1028
Registrado: 21 Dic 2005, 10:18
Ubicación: Residente en Guadalajara / Madrid(España) .

Mensaje por Roberto Blasco » 22 Ago 2008, 16:26

¿Has probado a utilizar la librería de libre descarga de word?.

La puedes encontrar en la sección de descargas de http://www.indexneo.com

Un saludo. Roberto.

antonio1095
vCool
vCool
Mensajes: 165
Registrado: 10 Dic 2005, 11:27

Mensaje por antonio1095 » 22 Ago 2008, 18:46

Gracias Roberto
estuve viendo tu libreria y es muy buena
pero es un programa hecho con Zeus con la vers. 5.2 y no lo quiero pasar a una vers. superior
con esta libreria como es una DLL la puedo usar sin problema

saludos y gracias
Antonio

Avatar de Usuario
Roberto Blasco
vLeader
vLeader
Mensajes: 1028
Registrado: 21 Dic 2005, 10:18
Ubicación: Residente en Guadalajara / Madrid(España) .

Mensaje por Roberto Blasco » 22 Ago 2008, 18:53

La puedes utilizar con Zeus sin ningún problema.

Lo único que tienes que hacer es reescribir la definición de las funciones.

Un saludo. Roberto.

VIC8162
vMate
vMate
Mensajes: 53
Registrado: 21 Sep 2005, 10:59

Mensaje por VIC8162 » 22 Ago 2008, 19:15

Antonio,

Te propongo relizar una verificación previa de la existencia de un marcador con la siguiente función:

Set -> Q , fAsciiToCadena(34)

Set -> sExiste , >>VelOLE2.OLE2Command(1,"ActiveDocument.Bookmarks.Exists("+'Q'+'sNombreMarcador'+'Q'+")")

La variable alfabética sExiste tendrá en valor "bTrue" en caso que exista el marcador o "bFalse" en caso contrario.

En VelOLE2, las variables de retorno son siempre alfabéticas indicando, el primer carácter, el tipo de dato que viene a continuación: (s:string, b:booleano, n:numérico, d:fecha).

Espero haberte ayudado.

Saludos.

antonio1095
vCool
vCool
Mensajes: 165
Registrado: 10 Dic 2005, 11:27

Mensaje por antonio1095 » 22 Ago 2008, 21:25

VIC8162 escribió:Antonio,

Te propongo relizar una verificación previa de la existencia de un marcador con la siguiente función:

Set -> Q , fAsciiToCadena(34)

Set -> sExiste , >>VelOLE2.OLE2Command(1,"ActiveDocument.Bookmarks.Exists("+'Q'+'sNombreMarcador'+'Q'+")")

La variable alfabética sExiste tendrá en valor "bTrue" en caso que exista el marcador o "bFalse" en caso contrario.

En VelOLE2, las variables de retorno son siempre alfabéticas indicando, el primer carácter, el tipo de dato que viene a continuación: (s:string, b:booleano, n:numérico, d:fecha).

Espero haberte ayudado.

Saludos.
Gracias
lo voy a probar
saludos
Antonio

antonio1095
vCool
vCool
Mensajes: 165
Registrado: 10 Dic 2005, 11:27

Re:

Mensaje por antonio1095 » 10 Jun 2012, 19:19

VIC8162 escribió:Antonio,

Te propongo relizar una verificación previa de la existencia de un marcador con la siguiente función:

Set -> Q , fAsciiToCadena(34)

Set -> sExiste , >>VelOLE2.OLE2Command(1,"ActiveDocument.Bookmarks.Exists("+'Q'+'sNombreMarcador'+'Q'+")")

La variable alfabética sExiste tendrá en valor "bTrue" en caso que exista el marcador o "bFalse" en caso contrario.

En VelOLE2, las variables de retorno son siempre alfabéticas indicando, el primer carácter, el tipo de dato que viene a continuación: (s:string, b:booleano, n:numérico, d:fecha).

Espero haberte ayudado.

Saludos.
Hola
he tenido que volver a reactivar este mensaje porque me sigue sin funcionar y hasta ahora he usado otra solución , pero solo funciona en 16/32 bits y ahora el cliente ha cambiado a 64 bits y he tenido que volver a reactivar el tema

hice esto que comentabas
Set -> sExiste ,
>>VelOLE2.OLE2Command(1,"ActiveDocument.Bookmarks.Exists("+'Q'+'sNombreMarcador'+'Q'+")")

el problema es que la variable sExiste siempre tiene el mismo valor
si trato de ver su valor con fvalor(sExiste) siempre me da 0
si lo pongo en un mensaje sExiste no me da ningun valor ni btrue ni nada

si lo comparo con bTrue o bFalse no me da ninguna coincidencia
la comparacion la hago fuera del velole dentro de velneo
¿me puedes ayudar ?
saludos

Avatar de Usuario
Roberto Blasco
vLeader
vLeader
Mensajes: 1028
Registrado: 21 Dic 2005, 10:18
Ubicación: Residente en Guadalajara / Madrid(España) .

Re: sustituir marcadores en word usando libreria velole2

Mensaje por Roberto Blasco » 10 Jun 2012, 20:04

Posiblemente el fallo esté en la construcción de la dll aunque no me quiero mojar sin comprobarlo de forma fehaciente.

Yo he tenido algunos "poltergeist" con Velneo con respecto al retorno de un booleno de una función en una dll. Velneo tiene la "mala costumbre" de interpretar siempre 0 el retorno de un boolenao, le importa tres narices que sea true o false, así que tuve que reconstruir todas las funciones para que devolvieran un integer para poder utilizarlas.

No sé, si esto te puede ayudar en algo.

Un saludo. Roberto Blasco.
Guadalajara - España
E-Mail: roberto.blasco.serrano@gmail.com
Skype: roberto.blasco.serrano
Teléfono: (+34)625653066 [WhatsApp]

Responder