2013

Sep

22

Av

För några år sedan (drygt fyra år sedan faktiskt) visade jag hur du kan söka i FileMaker medan du skriver. Det är ett enkelt och snabbt sätt för användaren att hitta det man vill.

Ett problem kan vara att sökningen görs för ofta. Användaren vill kanske skriva 3-4 tecken innan sökningen börjar, speciellt om det är stora datamängder som ska sökas genom eller man använder en långsammare klient som FileMaker Go. Genom att skriva fler tecken direkt kan urvalet begränsas i första sökningen.

Det finns en lika enkel som genial lösning. Istället för att göra sökningen vid varje ändring av sökfältet görs den några tiondelar efter senaste tecknet skrivits in. På så sätt hinner användaren skriva flera tecken.

I exempel-databasen från tidigare finns några poster och ett sökfält, som är ett globalt fält placerat i sidhuvudet. En manus-trigger startar ett manus vid varje ändring av fältet som utför själva sökningen.

Genom att göra ett nytt manus som installerar en timer och utföra det med samma manus-trigger istället får man en fördröjning på sökningen. Manuset som jag kallar Fördröj sökning består av en rad:

SokFordrojManus1

Manussteget installerar en timer som ska starta manuset Filtrera om 0,5 sekunder, tillräckligt med tid för att hinna skriva ett tecken till.

Manuset Filtrera är samma som tidigare, men jag har lagt till en rad först för att ta bort timern.

SokFordrojManus2

I layoutläget markerar jag sökfältet i sidhuvudet och ställer in manusutlösare så att manuet Fördröj sökning körs vid varje ändring i fältet.

SokFordrojTrigger
Sen är det bara att prova, så här ser exempeldatabasen ut när man skrivit in “Ro” i sökfältet.

SokFordrojBearbeta
Experimentera med fördröjningen för att få bästa resultat för just din databas. Du ändrar t.ex. 0,5 sekunder till 1 sekund för att få mer tid att skriva innan sökningen, eller minskar tiden för att det ska gå snabbare.

2014-01-15: Vi har uppdaterat inlägget för att hantera en bugg i FileMaker Go 13. Det virtuella tangentbordet försvann efter att man skrivit något tecken. Det är löst med en paus före manussteget Gå till fält.

Du kan ladda ner en exempel-databas med fördröjningen här.

Skriv en kommentar

  • (will not be published)
  • − 8 = one

Läs också: