[RESUELTO] Abrir Carpeta para elegir archivo a abrir

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

[RESUELTO] Abrir Carpeta para elegir archivo a abrir

Mensaje por Chelo2 »

Hola amigos del foro!!

Quiero comentarles que he estado realizando un botón en un formulario que me abre un visor de una carpeta con todos los archivos (archivos de Notas en pdf) y que me permita elegir el archivo a a abrir. A través del siguiente código sacado del libro de Mauricio y adaptado a mi necesidad me permite hacerlo perfectamente:

Código: Seleccionar todo

Sub AbrirArchivo1()
Dim oDlgAbrirArchivo as Object
Dim mArchivo() As String
Dim mOpciones()
Dim sRuta As String
Dim oDoc As Object

	'Creamos el servicio necesario
	oDlgAbrirArchivo = CreateUnoService ("com.sun.star.ui.dialogs.FilePicker")
	'Establecemos el título del cuadro de diálogo
	oDlgAbrirArchivo.setTitle("Selecciona el archivo a abrir")
	
	'Con el método .Execute() mostramos el cuadro de diálogo
	'Si el usuario presiona Abrir el método devuelve 1 que podemos evaluar como Verdadero (True)
	'Si presiona Cancelar devuelve 0
	If oDlgAbrirArchivo.Execute() Then
		'De forma predeterminada, solo se puede seleccionar un archivo
		'pero devuelve una matriz de todos modos con la ruta completa
		'del archivo en formato URL
		mArchivo() = oDlgAbrirArchivo.getFiles()
		'El primer elemento de la matriz es el archivo seleccionado
		sRuta = mArchivo(0)
		'Y lo abrimos
		sys = CreateUnoService("com.sun.star.system.SystemShellExecute")
'------------------------------------------------------------------------------
'Abre el documento en el visor predeterminado
		sys.execute( sRuta, "", 0)	
	Else
		'Si el usuario presiona Cancelar
		MsgBox "Proceso cancelado"
	End If

End Sub
El tema es que desearía que el usuario no tenga que recorrer toda la ruta para elegir la carpeta, sino que se abriera directamente en una carpeta determinada, en una ruta específica y sólo esa.

He intentaddo hacer varios ensayos, pero todos fueron errores.. jejeje.

De no ser posible prescindiré de la opción mencionada utilizaré el código:

Código: Seleccionar todo

Shell("explorer",1,"C:\Docs")
Que me abre directamente la carpeta y allí debo hacer doble click sobre el archivo a alegir, pero me parecería mucho más prolijo y profesional usar algo similar a lo que se ejecuta con la primera opción.

Desde ya les agradezco cualquier sugerencia que me puedan hacer al respecto.

Un saludo grande desde Buenos Aires, Argentina.

Chelo2
Última edición por Chelo2 el Mar Sep 01, 2015 7:38 pm, editado 1 vez en total.
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por mauricio »

Hola... puedes usar EasyDev

Código: Seleccionar todo

	util = createUnoService("org.universolibre.util.EasyDev")
	
	archivo = util.getSelectedFiles("/home/mau/docs", False, Array("*.pdf", "PDF"))
	
	util.msgbox(archivo)
Mira aquí para más información: https://forum.openoffice.org/es/forum/v ... 36&t=11236

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por Chelo2 »

Holaaa. Mauricio.. me sorprende la rapidés... jeje

En mi casa tengo instalada la extensión que me mencionás, pero en mi trabajo no puedo instalar extensiones, por lo que si bien estoy fascinado con lo que vengo logrando como jovie con las macros, me veo algo limitado sólo al uso de OpenOffice. Por ese motivo, tampoco pude explorar demasiado tu publicación sobre como usar el programa como servidor de correo a través de dicha extensión y como leer una ruta desde un archivo txt, que tan gentilmente me sugeriste en una anterior consulta mia. Aprovecho la oportunidad para aclararte esto, porque en el la misma solicitabas que efectuáramos pruebas y te comentáramos, pero por los motivos expuestos es que no lo hice, y no por falta de colaboración ni de interés.

Volviendo a la consulta, si existiera alguna otra posibilidad sin usar la extensión estaría buenísimo... sino todo bien, apelaré a la alternativa que comenté.

Te agradezco muchísimo, y te cuento que aanoche estuve escuchando un audio tuyo sonre una entrevista que te hicieron en un foro español, hablanso sobre Factura Libre. Te felicito. Muy interesante la charla.

Un abrazo grande..

Marcelo (Chelo2)
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por fornelasa »

Tal vez algo como esto pudiera servir, ejemplo:

Código: Seleccionar todo

Sub AbrirRuta() 
Shell "explorer " & "C:\Users\Federico\", vbNormalFocus 
End Sub
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por Chelo2 »

Hola Fede... como estas?

No me ha funcionado así tal cual, me da error. "Archivo no encontrado" pero con la modificación que sigue sí abre la ventana en el directorio esperado:

Código: Seleccionar todo

Shell "explorer",1, "C:\Docs", vbNormalFocus
Si bien me gustaba más la otra forma que abría la ventana de "Abrir Archivo", es una sutileza innecesaria...por lo que Vale absolutamente tu sugerencia.

Te mando un abrazo enorme desde Buenos Aires, Argentina .. y gracias por la rapidés de las respuestas.

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por fornelasa »

ummmmmm, si, si funciona, tal vez el error viene de que no pusimos el espacio necesario que debe haber en:
"explorer ", es decir:

Código: Seleccionar todo

Shell "explorer " & "C:\Users\Federico\", vbNormalFocus 
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por Chelo2 »

Siiii... tenés razón Fede!! era el espacio después de la palabra "explorer ". No había reparado en eso.

Muchas gracias!!! Resuelto con eso. Igualmente dejo abierto el tema hasta mañana por si aparece alguna otra sugerencia con la alternativa anterior, pero igalmente más que bien...

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por mauricio »

Chelo2 escribió:El tema es que desearía que el usuario no tenga que recorrer toda la ruta para elegir la carpeta, sino que se abriera directamente en una carpeta determinada, en una ruta específica y sólo esa.
El único modo de que solo pueda seleccionar archivos de una ruta específica, es hacer un cuadro de dialogo personalizado, tanto FilePiker como abrir el explorador de archivos, dan acceso a todas las carpetas donde tenga permiso el usuario... con un dialogo personalizado, puedes mostrar de hecho solo los nombres de los archivos para que solo seleccione el que corresponda...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Mensaje por Chelo2 »

Ok. mauricio. Gracias nuevamente a todos por sus aportes. Doy por finalizado el tema.

Un saludo a todo el foro desde Buenos Aires, Argentina.

Marcelo (Chelo2)
OpenOffice 4.1.3 en Windows 7
Responder