Autor |
Mensaje |
Administrador

|
#1 Publicado: 15 Dic 2011 16:26
Muchos de los usuarios que trabajan con FileMaker, vienen de un entorno de hoja de cálculo, están acostumbrados a trabajar con Excel, y tiene unas costumbres adquiridas. En vista Tabla, puedes hacer que FileMaker navegue como una hoja de cálculo más, con las teclas de dirección del teclado, y obtener una experiencia de usuario satisfactoria. Para hacerlos vamos a necesitar de los activadores de guión.
Como breve introducción, un Activador de Guión está definido como un mecanismo causante de que un guión determinado se active. Los activadores de guión se introdujeron desde la versión FileMaker 10 y hay muchas situaciones en las que nos simplifican mucho las tareas. Vamos pues a ver cómo nos pueden ayudar en este caso particular.
Primero de todo vamos a crear un guión que llamaremos: NavegaciónTabla, este guión constará de los siguientes pasos de guión: If [Code (Get ( TriggerKeystroke )) = 29 ] Ir al registro/petición/página[ Anterior ] Else If [ Code (Get ( TriggerKeystroke )) = 31 ] Ir al registro/petición/página [ Siguiente ] Else If [ Code (Get ( TriggerKeystroke )) = 30 ] Ir al campo siguiente Else If [ Code (Get ( TriggerKeystroke )) = 28 ] Ir al campo anterior End If
Es decir, por orden, en este guión lo que le estamos diciendo a FileMaker es que si presiono la flecha hacia arriba del teclado, vaya al registro anterior, la flecha hacia abajo, vaya al registro siguiente, y las teclas de derecha e izquierda al campo anterior o siguiente respectivamente. ¡Genial! Ya tenemos el guión creado. Ahora sólo falta crear el activador de guión sobre la presentación. Vamos allá. Volvemos a nuestra base de datos en vista tabla y nos ponemos en modo presentación ( ctr + L ó cmd +L). Vamos al menú Presentación > Ajustar Presentación y seleccionamos la pestaña Activadores de guión. Marca el activador OnLayoutKeystroke, y especifica que active el guión que acabamos de crear NavegaciónTabla.
Este activador de guión activará el guión al presionar determinadas teclas de nuestro teclado, y al hacerlo, le decimos que nos active el guión de navegación que acabamos de crear. ¡Pues ya lo tenemos todo listo para probarlo! Vamos a la presentación en vista tabla, y creamos un nuevo registro, ¡funciona! Ahora puedo moverme por la tabla como una hoja de cálculo, a través de las flechas del teclado, y mejorar así la experiencia de usuario.
Sacado del boletín de noticias de FileMaker.
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
 Habitual

|
#2 Publicado: 7 Ago 2012 10:40 - Editado por: Sulfato
Me gusta. Funciona bastante bien, pero para una experiencia excel completa me gustaría que al entrar en un campo se seleccione todo el contenido. Lo estoy intentando pero no lo consigo ni alterando el comportamiento del campo ni añadiendo el paso de guion seleccionar todo o establecer selección.
¿alguna idea?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 7, FMPAdv12
|
Administrador

|
#3 Publicado: 7 Ago 2012 10:55
Es probable que el comportamiento en ese tipo de vista no sea compatible con lo que quieres.
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
 Habitual

|
#4 Publicado: 7 Ago 2012 11:25 - Editado por: Sulfato
El desplazamiento con los cursores funciona bien en todas las vistas pero el comportamiento del campo (seleccionar todo el contenido en la entrada) solo funciona si te desplazas con TAB pero no con los cursores. Esto es igual en los 3 tipos de vista.
Si probamos a cambiar el guion así:
If [ Code (Get ( TriggerKeystroke )) = 29 ] Ir al registro/petición/página [ Anterior ] Seleccionar todo Else If [ Code (Get ( TriggerKeystroke )) = 31 ] Ir al registro/petición/página [ Siguiente ] Establecer selección [ Posición inicial: 1; Posición final: 5 ] Else If [ Code (Get ( TriggerKeystroke )) = 30 ] Ir al campo siguiente Else If [ Code (Get ( TriggerKeystroke )) = 28 ] Ir al campo anterior End If
Nada cambia, se desplaza igual, pero no selecciona nada en ningun tipo de vista.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 7, FMPAdv12
|
Moderador
Adicto
   
|
#5 Publicado: 7 Ago 2012 14:37
Prueba lo siguiente:
Para todos los campos, activa la casilla de "Seleccionar todo el contenido del campo en una entrada" en las opciones de campo del inspector.
Después, en el guión, añade una linea al final del mismo:
Salir del guión [Resultado:False]
Saludos.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 8 y Filemaker 11
|
Miembro
 Habitual

|
#6 Publicado: 8 Ago 2012 18:28 - Editado por: Sulfato
Funciona pero despues no me deja editar ningún campo. No entiendo porqué.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 7, FMPAdv12
|
Moderador
Adicto
   
|
#7 Publicado: 8 Ago 2012 19:28
Al pulsar una de las teclas de flecha, se desencadena el guión, pero inmediatamente después se realiza la propia función de la flecha (ya sea desplazarse hacia arriba, hacia la derecha, ...) por lo que desaparece la selcción del registro. Si en vez de una flecha, el desencadenante del guión fuera la tecla "A", por ejemplo, al pulsar la "A" se desencadenaría el guión y posteriormente de escribiría la A.
Lo que hacemos con el paso de guión "Salir del guión [Resultado:False] es cancelar o evitar que se realice la función de la propia tecla.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 8 y Filemaker 11
|
Moderador
Adicto
   
|
#8 Publicado: 8 Ago 2012 19:43
Por lo mismo que he dicho antes, cuando pulsas cualquier tecla, se desencadena el guión. Al haber puesto en la última línea que se desentienda de la función de la tecla, esto provoca que no haga nada. Para solucionarlo pon otra línea como primera línea del guión:
If[Code ( Get ( TriggerKeystroke ) )=29 or Code ( Get ( TriggerKeystroke ) )=31 or Code ( Get ( TriggerKeystroke ) )=30 or Code ( Get ( TriggerKeystroke ) )=28]
y, por supuesto, una línea al final de todo el guión:
End If
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 8 y Filemaker 11
|
Miembro
 Habitual

|
#9 Publicado: 10 Ago 2012 11:56
Ok ahora si funciona perfecto. Eres un Monstruo. Gracias.
Pego el código completo por si a alguien le interesa.
If [ Code ( Get ( TriggerKeystroke ) )=29 or Code ( Get ( TriggerKeystroke ))=31 or Code ( Get ( TriggerKeystroke ) )=30 or Code( Get ( TriggerKeystroke ) )=28 ] If [ Code (Get ( TriggerKeystroke )) = 29 ] Ir al registro/petición/página[ Anterior ] Else If [ Code (Get ( TriggerKeystroke )) = 31 ] Ir al registro/petición/página[ Siguiente ] Else If [ Code (Get ( TriggerKeystroke )) = 30 ] Ir al campo siguiente Else If [ Code (Get ( TriggerKeystroke )) = 28 ] Ir al campo anterior End If Salir del guión [ Resultado: False ] End If
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Windows 7, FMPAdv12
|
Miembro
 Ocasional
|
#10 Publicado: 23 Mar 2015 21:39
Gracias por este aporte
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
Ocasional
|
#11 Publicado: 10 Ago 2017 07:08
Excelente aporte muchas Gracias 
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Win 7 _ Linux- Mac OX/fm12
|