Lotus Approach - Abrir PDF con diferentes versiones de adobe

 
Vista:

Abrir PDF con diferentes versiones de adobe

Publicado por Luis (11 intervenciones) el 20/10/2010 18:29:00
Necesito ayuda en el siguiente problema.
Tengo una base de datos a la cual es consultada por diferntes personas desde sus PC. Esta base de datos guarda un registro de información en formato PDF el debe poder abrirse desde cualquier PC. Dicho archivo es abierto con la siguiente sentencias en el evento "Click" del objeto

Sub Click(Source As Button, X As Long, Y As Long, Flags As Long)

Dim taskId As Integer
Dim prog, doc As String

prog = "C:\Archivos de programa\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"
doc = "C:Via al documento.pdf"
taskId% = Shell( prog & " " & doc, 1)

End Sub

La rutina anterior funciona de maravilla, el problema ha surgido en que algunas maquinas actuales tiene otra version de ADOBE diferentes a la establecida en la setencia siguiente
pog = "C:\Archivos de programa\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"

Algunas pc tienen la siguiente versión de pdf "C:\Archivos de programa\Adobe\Reader 8.0\Reader\AcroRd 32.exe"

Por lo que alejecutar la rutina no pueden abrir el documento almacenado.

Como puedo hacer para incluir en la setencia un operador o algun comando que permita abrir el archivo con la versión de PDF que este instalada.

Agrdezco cualquier ayuda que me puedan brindar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Manolo (140 intervenciones) el 22/10/2010 20:06:03
Hola:
Ni ayer ni hoy he tenido tiempo de publicar la solución a tu problema. El lunes por la mañana (espero tener tiempo), te explico una solución sencilla.

Un saludo.

Manolo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Luis (11 intervenciones) el 24/10/2010 07:59:22
Manolo.

Esperare tu respuesta, ya que me ayudarias a resolver este problema.

Garcias por tu atención y amabilidad.

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Manolo (140 intervenciones) el 25/10/2010 10:06:33
Hola de nuevo:
Aquí tienes una solución a tu problema. Supongo que habrá muchas otras.

Básicamente:
* Definimos todas las rutas conocidas a los lanzadores de las distintas versiones
de Adobe.
* Antes de ejecutar (Shell), buscamos cual de los lanzadores está instalado (Dir$)
y una vez localizado, será ese el ejecutable que lanzemos:

Detalladamente:

En Globals, Declarations:

Public Lanzador(n) as String '--- n será el nº de versiones de Adobe
'--- distintas que tengas.
'--- en la programación tendrás que sustituir
'--- "n" por el nº de versiones distintas

En Globals, Initialize:

'--------- Inicialización de variables
'--------- Definimos todos los caminos al ejecutable de Adobe de cada versión"
Lanzador(0) = "C:/Archivos de programa/Adobe/Acrobat 7.0/Acrobat.exe"
Lanzador(1) = "C:/Archivos de programa/Adobe/Acrobat 6.0/Acrobat.exe"
Lanzador(2) = "C:/Archivos de programa/Adobe/Acrobat 4/Acrobat.exe"
.....
.....
Lanzador(n-1) = "Ruta al ejecutable de Adobe" .
Lanzador(n) = "Ruta al ejecutable de Adobe"

'---- Hemos declarado todas las rutas de todos las versiones de Adobe
'---- que hay instaladas en nuestros ordenadores.

Ahora en el evento que lanza el "Shell":

'---- Ahora en el evento donde tienes la llamada al ejecutable de Adobe
'---- lo que hacemos es buscar cuál de éstos ejecutables está instalado
'---- en el sistema que lo lanza. Una vez que lo encontramos, ese será
'---- el ejecutable que lanzemos.
'---- Antes del "Shell":

Dim Prog as String
Prog = ""
For j=0 to n
if Dir$(Lanzador(j)) <> "" then
Prog = Lanzador(j) '---- Hemos encontrado uno
Exit For
End if
next

'----- Por si no tiene instalada ninguna versión de Adobe
'----- para que no "casque" el programa:

if prog = "" then
Messagebox "No hay instalada ninguna versión de Adobe"
Exit Sub
end if

'-------- Y ahora ejecutas el Shell. Ya no te fallará.
'-------- Cuando tengas que añadir una versión nueva, sólo
'-------- tienes que incrementar "n" y declarar la nueva ruta.

'------------------------------------------------------------------------------------------------

Está hecho de memoria. Si hay alguna sentencia o función que no va, mirate la
ayuda de Lotus script.

Te quedará de lujo.

Un saludo.

Manolo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Luis (11 intervenciones) el 25/10/2010 16:41:36
Hola Manolo

Te agradezco tu gran apoyo y disposición a nuestras consultas, por le pido a Dios que te brinde mucha salud y felicidad.

Creo que esto resuelve mi problema, lo voy a probar, pero antes necesito que me aclares lo siguiente que no me quedo muy claro.

Lanzador(n-1) = "Ruta al ejecutable de Adobe"
Lanzador(n) = "Ruta al ejecutable de Adobe"

Si tengo 4 versiones de adobe (la 4.0, 5.0, 6.0 y la 7.0) los caminos al ejecutable de Adobe anterior quedarian asi:

Lanzador(4-1) = "C:/Archivos de programa/Adobe/Acrobat 4.0/Acrobat.exe"
Lanzador(4) = "C:/Archivos de programa/Adobe/Acrobat 7.0/Acrobat.exe"

es decir en el primer caso se colocaría la ruta al ejecutable de adobe que tenga la versión mas baja y en el segundo caso a la versión mas alta.

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Manolo (140 intervenciones) el 25/10/2010 20:18:56
Hola:
Te agradezco tus deseos. Ojalá se cumplan. Bueno, a lo que estamos.

Tu pregunta:
Lanzador(n-1) = "Ruta al ejecutable de Adobe"
Lanzador(n) = "Ruta al ejecutable de Adobe"

No es más que el final de una relación consecutiva de n elementos: Puestos en secuencia sería: 1,2,3,...,n-1,n. Me parece que te ha liado más que aclarado.

Si tienes 4 versiones de adobe, defines 4 lineas, de 1 a 4 (en este caso n=4)
Lanzador(1)="V.7"
Lanzador(2)="V.6"
Lanzador(3)="V.5" y
Lanzador(4)="V.4"

Así se ejecutará la versión más moderna instalada en el ordenador.
Si le das la vuelta a la lista, será al contrario, se ejecutará la versión más antigüa.

Eso queda a tu elección.

Espero haber aclarado tus dudas.

Un saludo.

Manolo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Luis (11 intervenciones) el 29/10/2010 16:19:25
Manolo,

Mil gracias por tu ayuda.

Luis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Luis (11 intervenciones) el 11/11/2010 17:59:12
Manolo,

Un cordial saludo,
Te molesto nuevamente, ya que algo estoy haciendo mal, solo logro abrir una version de pdf.
a continuación te describo toda la rutina (solo pondre los datos de dos versiones).

Globals Declarations:
Public Lanzador(2) As String

Initialize:
Lanzador(1)= "C:\Archivos de programa\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"
Lanzador(2)= "C:\Archivos de programa\Adobe\Reader 8.0\Reader\AcroRd32.exe"

Elevento que lanza el "Shell" es este:

Sub Click(Source As Button, X As Long, Y As Long, Flags As Long)

Dim taskId As Integer
Dim prog, doc As String
doc = .Registro1.text
Prog = ""

For j =1 To 2
If Dir$(Lanzador(j)) <> "" Then
Prog = Lanzador(j) '----hemos encontrado uno
Exit For
End If
Next
If prog = "" Then
Messagebox "No hay Instalada Ninguna Versión de Adobe"
Exit Sub
End If
taskId% = Shell( prog & " " & doc, 1)

End Sub

En la forma que esta todo funciona bien para Lanzador 1 es decir la rutina se ejecuta 100% logrando abrir el docuemneto pdf, pero cuando se intenta desde otra estación que tiene la version de PDF 2 ( "C:\Archivos de programa\Adobe\Reader 8.0\Reader\AcroRd32.exe") la rutina se bloquea y manda un error PATH NOT FOUND.

Creo que hay algo mal en la secuencia, ya que cuando le cambio el valor de J a For J=2 To 2 entonces si se ejecuta esta version y se me bloquea la otra.

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Manolo (140 intervenciones) el 12/11/2010 11:56:57
Hola:
Cambia la función de búsqueda del lanzador:

For j =1 To 2
On Error Resume Next
Err = 0
DateTime = Filedatetime(Lanzador(j))
if Err <> 53 then '------ Error 53 es que no existe el fichero
Prog = Lanzador(j)
Exit For
End if
Next
If prog = "" Then
Messagebox "No hay Instalada Ninguna Versión de Adobe"
Exit Sub
End If
taskId% = Shell( prog & " " & doc, 1)

Debería ir bien así. Ya contarás.

Un saludo.

Manolo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir PDF con diferentes versiones de adobe

Publicado por Luis (11 intervenciones) el 12/11/2010 15:56:36
Hola Manolo:

Has dado nuevamente en el blanco, mil gracias.

La rutina funciona de lujo.

Muchos Saludos

Luis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar