Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.





Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
llevamos 20 años contigo

Ayuda al foro con tu donación


Búsqueda en los foros

Foros en Udias.com / FileMaker / ::: TRUCO ::: Abrir de forma automática cualquier archivo de un contenedor
Autor Mensaje

Moderador


  Karma               3683

#1 Publicado: 12 Dic 2019 22:49 - Editado por: apyguay



No sé si hay algo sobre el tema, pero no lo he encontrado.
Ahí va mi aporte... que consiste en abrir cualquier tipo de archivo alojado en un campo contenedor de forma automática al pinchar sobre él.
En primer lugar, creamos una carpeta donde se almacenará y desde la que se abrirá el archivo alojado en el contenedor. La creamos donde queramos, pero recomiendo en una ruta relativa de la base de datos.
Después creamos un campo contenedor que, en mi caso, almacena el contenido de forma externa. Al pinchar sobre él, si está vacío nos da la opción de insertar un archivo. Si no está vacío, nos abre el archivo que contenga
Este es el paso de guión:

Permitir cancelación del usuario [ Inactivo ]
Establecer captura de errores [ Activo ]
If [ IsEmpty (CAMPO_CONTENEDOR) ]
Ir al campo [ CAMPO_CONTENEDOR]
Insertar archivo [ ]
[ Método de almacenamiento: Insertar ]
[ Mostrar contenido ]
[ Compresión: No comprimir nunca ]
Consignar registros/peticiones
Detener guión
Else
Establecer variable [ $temporal ; Valor:"file:" & Get ( TemporaryPath ) & "archivo." &
Let ( [
~nombreArchivo = GetValue (CAMPO_CONTENEDOR ; ValueCount ( CAMPO_CONTENEDOR ) ) ; //te da el último elemento del nombre de archivo.
~largoNombreArchivo = Length ( ~nombreArchivo ) ; //longitud del último elemento del nombre de archivo
~posicionUltimoPunto = Position ( ~nombreArchivo ; "." ; 1 ; PatternCount ( ~nombreArchivo ; "." ) ) //posición del último punto
] ;
Right ( ~nombreArchivo ; ~largoNombreArchivo - ~posicionUltimoPunto )
) ]
Exportar contenido del campo [ CAMPO_CONTENEDOR ; "$temporal" ; Abrir automáticamente ]
Consignar registros/peticiones
[ Sin diálogo ]
End If


Lo que hago es, mediante la ruta que se le asigna en la variable, abre en una carpeta temporal que asigna Filemaker y que al cerrar la base de datos elimina los datos, el archivo llamado "file" más la extensión que se calcula justo después en la misma variable. Según lo que sea, será "file.jpg", "file.doc", "file.pdf", "file.mp4", etc
Al abrirlo en la carpeta temporal, siempre se sobrescribe el que coincide con el mismo nombre y así no se satura dicha carpeta.

Seguro que esto ya se ha visto por aquí antes, pero yo no lo he encontrado y espero que le sirva a alguien


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 // FileMaker 11 + 12 Advanced

Moderador


  Karma               11514

#2 Publicado: 12 Dic 2019 22:58



Gracias apiguay.
Ahí va el puntazo verde
Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay solo 10 tipos de personas en el mundo: las que saben binario y las que no.
__Date de alta en la Zona De Descargas Reservada__
Windows 10 + FileMaker Pro 11/19

Moderador


  Karma               3683

#3 Publicado: 12 Dic 2019 23:02



Bueno, ahí quizá habría que meter tu aporte. Seguramente es más correcto que mi cálculo:

Let ( [
~nombreArchivo = GetValue ( CampoContenedor ; ValueCount ( CampoContenedor ) ) ; //te da el último elemento de la lista.
~largoNombreArchivo = Length ( ~nombreArchivo ) ; //longitud del último elemento de la lista
~posicionUltimoPunto = Position ( ~nombreArchivo ; "." ; 1 ; PatternCount ( ~nombreArchivo ; "." ) ) //posición del último punto
] ;

Right ( ~nombreArchivo ; ~largoNombreArchivo - ~posicionUltimoPunto )

)



Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 // FileMaker 11 + 12 Advanced

Administrador


  Karma               32165

#4 Publicado: 13 Dic 2019 08:05



apyguay, me he permitido cambiar el título del hilo y pasarlo a TRUCOS Espero que no te moleste.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Moderador


  Karma               3683

#5 Publicado: 13 Dic 2019 09:33



jcu:
apyguay, me he permitido cambiar el título del hilo y pasarlo a TRUCOS Espero que no te moleste.

Faltaría más. No tienes que dar ninguna explicación


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 // FileMaker 11 + 12 Advanced

Miembro

Constante

  Karma               1266

#6 Publicado: 16 Dic 2019 12:55



Muchas gracias por el aporte, es fenomenal. Super útil, precisamente iba a preguntar como solventar lo que hace el guión. Por favor, está escrito el guión con la modificación Let incluida?. Caso de no estar, sería posible incluirlo en su posición correcta?.
De nuevo muchas gracias por este trabajo.
Saludos y si no tenemos oportunidad después, aprovecho para desearos a todos una Feliz Navidad.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Filemaker 19. Mac OS Big Sur

Moderador


  Karma               11514

#7 Publicado: 16 Dic 2019 17:20 - Editado por: flusheddata



Hola:
Permitir cancelación del usuario [ Inactivo ]
Establecer captura de errores [ Activo ]
If [ IsEmpty (Clientes::Contenedor1 ) ]
Ir al campo [ Clientes::Contenedor1 ]
Insertar archivo [ ]
[ Método de almacenamiento: Insertar ]
[ Mostrar contenido ]
[ Compresión: No comprimir nunca ]
Consignar registros/peticiones
Detener guión
Else
Establecer variable [ $temporal ; Valor:"file:" & Get ( TemporaryPath ) & "archivo." &
Let ( [
~nombreArchivo = GetValue ( Clientes::Contenedor ; ValueCount ( Clientes::Contenedor ) ) ; //te da el último elemento del nombre de archivo.
~largoNombreArchivo = Length ( ~nombreArchivo ) ; //longitud del último elemento del nombre de archivo
~posicionUltimoPunto = Position ( ~nombreArchivo ; "." ; 1 ; PatternCount ( ~nombreArchivo ; "." ) ) //posición del último punto
] ;

Right ( ~nombreArchivo ; ~largoNombreArchivo - ~posicionUltimoPunto )

)
]
Exportar contenido del campo [ Clientes::Contenedor ; "$temporal" ; Abrir automáticamente ]
Consignar registros/peticiones
[ Sin diálogo ]
End If


Nota: donde pone Clientes::Contenedor tienes que poner tu campo contenedor.
He modificado un poco lo de la ruta a la carpeta temporal mediante la función apropiada.

Sls. y Feliz Navidad


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay solo 10 tipos de personas en el mundo: las que saben binario y las que no.
__Date de alta en la Zona De Descargas Reservada__
Windows 10 + FileMaker Pro 11/19

Moderador


  Karma               3683

#8 Publicado: 16 Dic 2019 19:40 - Editado por: apyguay



Francisco Comeron:
Muchas gracias por el aporte, es fenomenal. Super útil, precisamente iba a preguntar como solventar lo que hace el guión. Por favor, está escrito el guión con la modificación Let incluida?. Caso de no estar, sería posible incluirlo en su posición correcta?.
De nuevo muchas gracias por este trabajo.
Saludos y si no tenemos oportunidad después, aprovecho para desearos a todos una Feliz Navidad.

Ya está con la función "Let" y la modificación de la carpeta temporal


flusheddata:
Nota: donde pone Clientes::Contenedor tienes que poner tu campo contenedor.
He modificado un poco lo de la ruta a la carpeta temporal mediante la función apropiada.

Esto ya lo he modificado también por "CAMPO_CONTENEDOR"
Gracias por las modificaciones y la ayuda. He leído en la ayuda de FM que utiliza una carpeta temporal y al cerrar la base de datos elimina esos archivos. Eso es especialmente importante porque a veces son informes médicos y no conviene dejar más rastros de los necesarios. En mi guión, al principio, utilizaba una carpeta temporal propia y siempre quedaba el último archivo de cada extensión


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 // FileMaker 11 + 12 Advanced

Miembro

Habitual

  Karma         100

#9 Publicado: 22 Ene 2020 23:27



Hola,

Tenia el mismo problema y se ha solucionado con este guion, asi que, muchisimas gracias.
Pero ahora no me adjunta los pdf a los correos. Alguien sabe como solucionarlo?

Gracias por vuestra ayuda
Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Filemaker Pro 18.0.3 Advance, Windows 10
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con ::: TRUCO ::: Abrir de forma automática cualquier archivo de un contenedor

Abrir archivo pdf en contenedor
Abrir archivo desde un contenedor
Abrir archivo de campo contenedor con almacenamiento externo
Ejecutar un guion de forma automatica
Mandar un codigo de forma automatica


Conectados: Invitados - 28
Miembros - 2 border=0 DavidCS, Mario nogales
En verde usuarios ZDDR

Realizado con miniBB © 2001-2023
Para Udias.com © 1996-2023
Hosting con Interdominios