[RESUELTO] Abrir Carpeta para elegir archivo a abrir

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Abrir Carpeta para elegir archivo a abrir

Notapor Chelo2 » Mar Sep 01, 2015 4:45 pm

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   Expandir vistaContraer vista
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   Expandir vistaContraer vista
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
Chelo2
 
Mensajes: 100
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Notapor mauricio » Mar Sep 01, 2015 4:55 pm

Hola... puedes usar EasyDev
Código: Seleccionar todo   Expandir vistaContraer vista
   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
Avatar de Usuario
mauricio
 
Mensajes: 5867
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Abrir Carpeta para elegir archivo a abrir

Notapor Chelo2 » Mar Sep 01, 2015 5:20 pm

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
Chelo2
 
Mensajes: 100
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Notapor fornelasa » Mar Sep 01, 2015 5:44 pm

Tal vez algo como esto pudiera servir, ejemplo:
Código: Seleccionar todo   Expandir vistaContraer vista
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!
Avatar de Usuario
fornelasa
 
Mensajes: 3223
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Abrir Carpeta para elegir archivo a abrir

Notapor Chelo2 » Mar Sep 01, 2015 6:20 pm

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   Expandir vistaContraer vista
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
Chelo2
 
Mensajes: 100
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Notapor fornelasa » Mar Sep 01, 2015 6:32 pm

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   Expandir vistaContraer vista
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!
Avatar de Usuario
fornelasa
 
Mensajes: 3223
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Abrir Carpeta para elegir archivo a abrir

Notapor Chelo2 » Mar Sep 01, 2015 6:45 pm

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
Chelo2
 
Mensajes: 100
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Abrir Carpeta para elegir archivo a abrir

Notapor mauricio » Mar Sep 01, 2015 7:16 pm

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
Avatar de Usuario
mauricio
 
Mensajes: 5867
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Abrir Carpeta para elegir archivo a abrir

Notapor Chelo2 » Mar Sep 01, 2015 7:38 pm

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
Chelo2
 
Mensajes: 100
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados