OpenOffice - Error macro para abrir archivo

   
Vista:

Error macro para abrir archivo

Publicado por Jimena (1 intervención) el 08/07/2011 17:39:39
Hice una macro para poder abrir archivos, la cual les transcribo abajo, tengo dos problemas con ella que no encentro como solucionarlo: el primero es que si la ejecuto desde el organizar macros funciona pero cuando se la asigno a un boton en el formulario me dice Private:object y no anda.

Sub MostrarPdf

Dim NextFile As String
Dim AllFiles As String
dim dirnom as string
dim referencia as string
dim ref as string
dim reflargo as integer
dim refarch as string
dim dirsep as string
dim pdfarch as string
dim i as integer
dim doc as object
dim sys
dim sruta as string
dim encontrado as string

encontrado = ""
set doc=ThisComponent
msgbox doc.geturl()
referencia = " 720/11" rem Se debe cambiar por el valor en el campo correspondiente del formulario


'cambiar el separador en la referencia y lo guardo en refarch
ref=referencia
reflargo=len(ref)
for i=1 to reflargo
if mid(ref,i,1)="/" then
refarch=refarch & "-"
else
refarch=refarch & mid(ref,i,1)
endif
next
refarch=trim(refarch)
rem msgbox ref & " x " & reflargo & " x " & refarch


'obtener el directorio (carpeta) actual
GlobalScope.BasicLibraries.LoadLibrary("Tools")
dirsep="/"
msgbox doc.geturl()
dirnom=DirectoryNameOutOfPath(doc.geturl(),dirsep)
dirnom=dirnom & dirsep & "Resoluciones"& dirsep
rem msgbox "nombre del directorio con pdf's: " & dirnom


'buscar el archivo .pdf correspondiente
AllFiles = ""
NextFile = Dir(dirnom, 0)
While NextFile <> ""
if NextFile >= ("res " & refarch) and NextFile <= ("res " & refarch & "z") then
pdfarch = dirnom & NextFile
rem msgbox "Se abrira el archivo : " & pdfarch
'abrir el archivo pdf correspondiente
sys = CreateUnoService("com.sun.star.system.SystemShellExecute")
sRuta = pdfarch
sys.execute( sRuta, "", 0)
encontrado = "SI"
endif
AllFiles = AllFiles & Chr(13) & NextFile
NextFile = Dir

wend
if encontrado<>"SI" then
msgbox "No se encontró un pdf para: " & Trim(referencia)
endif

end sub

Lo otro que no consigo es que el renglón referencia = "720/11", entre comillas debe hacer referencua a un campo de la tabla.
Muchas gracias
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