Autor |
Mensaje |
Miembro
Habitual

|
#1 Publicado: 23 Jun 2009 12:15 - Editado por: Incanus
Hola a todos otra vez XD He buscado en lo de Bases de conocimientos pero lo que encuentro no se ajusta exactamente a lo que persigo.
En una tabla de mi base de datos tengo un campo contenedor en donde coloco una fotografía (diferente para todos los registros). Las fotografías las tengo catalogadas y clasificadas en carpetas en un disco que cuelga de un servidor interno, y yo necesito que mis usuarios puedan abrir la carpeta correspondiente a un registro
Yo lo que hice fue crear un campo texto llamado Ubicación, donde meto la ruta, por ejemplo: \\Servidor2003\lacie (e)\02-Fotos\Largometrajes\Amateurs - [Gabriel Velázquez - España]
Luego asocio a un botón el siguiente guión: Enviar evento["aevt"; "odoc" ;"explorer.exe" &Tabla::Ubicación]
Esto me obliga a entrar yo manualmente en la carpeta con las fotos, copiar la dirección y pegarla en el campo Ubicación para que funcione.
No habría alguna forma de que cuando yo inserte la fotografía en el campo contenedor me coja la dirección, en alguna variable quizás, y usar esa variable en el guión para no tener que utilizar ese campo de texto?
---
Acabo de intentar una cosa pero no funciona, aunque podría estar encaminado: Tengo un guión para insertar la foto, y lo que hace es ir al campo contenedor, insertar imagen (solo referencia) y establecer una variable del modo: [$$URLFOTO; Valor:GetAsText(Nombre de tabla::campo contenedor)] El problema es que mete también el nombre de la imagen, con lo que al ejecutar el siguiente guión: Enviar evento ["aevt"; "odoc"; "explorer.exe" & $$URLFOTO] pues que me dice que no es una carpeta válida ya que está cogiendo también el nombre de la foto.
De todas formas, no estoy seguro que esto funcione porque cuando pasas a otro registro la variable no se actualiza si no metes la foto
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Administrador

|
#2 Publicado: 23 Jun 2009 19:38
Conociendo la potencia del campo objeto Web de FileMaker, yo la pregunta que me hago es si FileMaker es capaz de capturar y manejar las variables de PHP ¿Porqué? Pues porque eso añadiría las funcionalidades de PHP a FileMaker, incluyendo la posibillidades de ver las rutas de los archivos y carpetas.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Todo lo que sueñas, se puede diseñar.
FM 11 * VV 6 * PHP 5 * MySQL * Win 8.
|
Miembro
 Constante
  
|
#3 Publicado: 23 Jun 2009 22:40
Si quieres añadir las funcionalidades de PHP a FileMaker usa el plugin SmartPill.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
FM15, PHP, XML/XSLT, JavaScript, ExtJS, Sencha
|
Miembro

|
#4 Publicado: 24 Jun 2009 07:54 - Editado por: alopas
Icanus: establecer una variable del modo: [$$URLFOTO; Valor:GetAsText(Nombre de tabla::campo contenedor) En vez de usar una variable, crea un campo de cálculo con este resultado:
RightValues( GetAsText(contenedor); 1)
Saludos
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
FileMaker 9 & 10 Certified Developer
GOODRELATIONSHIPS::__key
|
FMP 11 Advanced; Mac OSX, Win XP
|
Miembro
Habitual

|
#5 Publicado: 24 Jun 2009 09:42
Uhm... lo del campo parece encaminado, pero el resultado que obtengo es algo como esto:
imagewin://Servidor2003/lacie (e)/02-Fotos/Largometrajes/León y Olvido - [Xavier Bermúdez - España]/León y Olvido - 00.jpg
Me sobra la parte que he marcado en rojo. lo de imagewin, creo que podría buscar algo, por comparación quizás, para eliminarlo, pero el nombre del fichero no se como, pues cada caso será distinto
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro

|
#6 Publicado: 24 Jun 2009 11:23
Necesitas usar las funciones de texto:
Let (
[ ubicacion_con_archivo=RightValues(GetAsText(conten edor);1); posicion_primera_barra=Position ( ubicacion_con_archivo ; "/" ; 1 ; 1); contar_barras=PatternCount ( ubicacion_con_archivo ; "/" ); posicion_ultima_barra=Position ( ubicacion_con_archivo ; "/" ; 1 ; contar_barras ); ubicacion_sin_archivo=Left(ubicacion_con_archivo; posicion_ultima_barra) ];
Middle ( ubicacion_sin_archivo ; posicion_primera_barra ; Length(ubicacion_sin_archivo)-posicion_primera_bar ra )
)
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
FileMaker 9 & 10 Certified Developer
GOODRELATIONSHIPS::__key
|
FMP 11 Advanced; Mac OSX, Win XP
|
Miembro
Habitual

|
#7 Publicado: 24 Jun 2009 12:55
va funcionando parece... lo único es que no me deja sustituir "/" por "\" efectivamente se consigue esto: //Servidor2003/lacie (e)/02-Fotos/Largometrajes/El último vals - (The Last Waltz) - [Martin Scorsese - EEUU]
pero se necesita esto otro: \\Servidor2003\lacie (e)\02-Fotos\Largometrajes\El último vals - (The Last Waltz) - [Martin Scorsese - EEUU]
porque si no no me reconoce que eso es la dirección de una carpeta, al menos en windows
Cuando intento sustituir las "/" por "\" me dice que hace falta un número, constante de texto, nombre de campo o "(" y eso me lo pone para el segundo "\"
lo señalo en rojo:
Let ( [ $ubicacion_con_archivo=RightValues(GetAsText(Films ::Foto);1); $posicion_barra_1=Position ( $ubicacion_con_archivo ; "/" ; 1 ; 1); $contar_barras=PatternCount ( $ubicacion_con_archivo ; "/" ); $posicion_barra_final=Position ( $ubicacion_con_archivo ; "/" ; 1 ; $contar_barras ); $ubicacion_sin_archivo=Left ( $ubicacion_con_archivo; $posicion_barra_final) ]; Middle ( $ubicacion_sin_archivo ; $posicion_barra_1 ; Length ( $ubicacion_sin_archivo) - $posicion_barra_1 ) )
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro

|
#8 Publicado: 24 Jun 2009 14:12 - Editado por: Perezoso
Prueba con esto:
Let ( [ $texto = Substitute ( RightValues ( Foto ; 1) ; "/" ; "¶") ; $cuentalineas = PatternCount ($texto ; "¶" ) ] ; "\\\\" & Substitute (MiddleValues ( $texto ; 2 ; $cuentalineas - 2 ) ; "¶" ; "\\" ) )
Foto, es el nombre del campo contenedor de la foto.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Soy todo oidos ;-)
Ubuntu & Win XP # FileMaker: 5 - 10
|
Miembro

|
#9 Publicado: 24 Jun 2009 14:14
El problema es que la barra invertida se usa para comentar los cálculos, por eso tienes que hacer un "escape" con "\\":
Let (
[ ubicacion_con_archivo=RightValues(GetAsText(conten edor);1); posicion_primera_barra=Position ( ubicacion_con_archivo ; "/" ; 1 ; 1); contar_barras=PatternCount ( ubicacion_con_archivo ; "/" ); posicion_ultima_barra=Position ( ubicacion_con_archivo ; "/" ; 1 ; contar_barras ); ubicacion_sin_archivo=Left(ubicacion_con_archivo; posicion_ultima_barra); longitud_sin_prefijo=Length(ubicacion_sin_archivo) -posicion_primera_barra; ubicacion_sin_prefijo=Middle (ubicacion_sin_archivo ; posicion_primera_barra ; longitud_sin_prefijo) ];
Substitute(ubicacion_sin_prefijo; "/"; "\\")
)
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
FileMaker 9 & 10 Certified Developer
GOODRELATIONSHIPS::__key
|
FMP 11 Advanced; Mac OSX, Win XP
|
Miembro
Habitual

|
#10 Publicado: 25 Jun 2009 12:39
Bueno, tema resuelto... Al final la solución de Perezoso con alguna pequeña modificación fue la que me valió... Muchísimas gracias a todos 
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro

|
#11 Publicado: 25 Jun 2009 16:01
Me alegro 
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Soy todo oidos ;-)
Ubuntu & Win XP # FileMaker: 5 - 10
|