2010

Jun

18

Av

En funktion som flera efterfrågar i FileMaker är att efter en sökning visa vad man sökt efter. Med FileMaker 11 går det att göra en sådan funktion, oavsett hur många fält som finns på en layout och vilka som användaren väljer att söka i.

Det som gör det möjligt är de nya manus-trigger-funktionerna som nu kan utföra manus när användaren byter mellan olika lägen i FileMaker, t.ex. från sökläget till bearbetningsläget. Innan sökningen utförs kan ett manus spara innehållet i alla fält i sökläget som sedan presenteras i bearbetningsläget.

I exemplet nedan har jag en databas med 4 fält: Namn, Adress, Ort och Telefon. Jag har sökt fram alla poster där fältetNamn börjar med R och fältet Ort börjar med LUND.

Om jag gör en ny sökning, t.ex. efter alla poster vars telefonnummer börjar med 046 (oj, det blev samma resultat 🙂 ) kan det se ut så här. Lägg märke till att senaste sökvillkor som står ovanför tabellen har ändrats, vilket sker helt automatiskt.

<>För att åstadkomma detta behövs ett kort manus och en inställning i layouten så att manuset körs vid lägesbyte. Manuset använder funktionerna Get (AktivtFältnamn) och Get (AktivtFältinnehåll), går genom alla fält på layouten och sparar både fältnamn och innehåll (om det finns något) i en variabel. Tänk på att variabelnamn som inleds med ”$$” är globala i hela databasen. Manuset ”Spara sökvillkor” ser ut så här:

Ange variabel [$$sökvillkor; Värde: ""]
Gå till nästa fält
Ange variabel [$startfält; Värde: Get (AktivtFältnamn)]
Loop
   Ange variabel [$$sökvillkor; $$sökvillkor &  
            If (not IsEmpty( Get ( AktivtFältinnehåll ));
               If ($$sökvillkor  ≠ "";", ";"") & 
               Get ( AktivtFältnamn ) & ": " & Get ( AktivtFältinnehåll );"")]
   Gå till nästa fält
   Exit Loop If [$startfält = Get (AktivtFältnamn)]
End Loop

Manuset ska köras när man går från sökläget till bearbetningsläget. Gå till layoutläget och välj kommandot Tillval för layout i menyn Layouter. Under fliken Manusutlösare väljer du att köra manuset ”Spara sökvillkor” när händelsen ”VidLägesförändringSlut” inträffar. Se till att bara köra det i sökläget, ta bort kryssen för ”Aktivera i” för Bearbeta och Granska.

<>Till sist återstår det bara att visa variabeln $$sökvillkor där jag sparat fältnamn och fältinnehåll i sökläget. Jag har valt att göra det i sidhuvudet ovanför tabellen med hjälp av ett merge-fält.

<>Det återstår också manus för att nollställa variabeln vid ny sökning m.m., men det överlämnas till läsaren eller så återkommer vi med det en annan gång.

Du kan ladda ner exempeldatabas här.

VisaSokvillkor.zip (15,08 kb)