Automatisera uppgifter med scripts > Exempel på script
 
Exempel på script
Du kan använda de exempel på scripts som finns i Hjälp som utgångspunkt för dina egna scripts. Ett flertal scripts ingår också i FileMaker Pros Färdig lösningar.
Så här visar du ett script i FileMaker Pro:
1. Välj menyn Scripts > Scriptfönster. Eller öppna Arkiv-menyn > Hantera > Scripts.
2. I sektionen för scripts dubbelklickar du på scriptet som du vill visa.
Scriptet öppnas i en ny flik i sektionen för scriptredigering.
If-struktur, exempel
Scriptstegen If, Else If, Else och End If definierar en struktur som kontrollerar om scriptstegen ska utföras eller inte. Denna kontroll är beroende av resultatet av ett villkor som prövas eller av en logisk beräkning.
När resultatet av beräkningen inte är noll värderas villkoret till Sant och efterföljande scriptsteg utförs.
När resultatet av beräkningen är noll, tomt eller innehållet inte kan tolkas som ett tal, utvärderas villkoret som Falskt och efterföljande steg utförs inte.
Else If-steg ger ytterligare logiska villkor. Else-steg utgör alternativa steg som kan utföras om alla villkor utvärderas till Falskt.
Exempel 1
Utför en sökning. Om inga poster hittas visas en anpassad dialogruta. Om poster hittas sorteras sökresultatet.
Utför sökning [Spara]
If [Get ( HittadePoster ) = 0]
Visa anpassad dialogruta ["Sök poster"; "Inga poster hittades."]
Else
Sortera poster [Återställa; Med dialogruta: Av]
End If
Exempel 2
Utför en sökning. Om inga poster hittas visas en anpassad dialogruta. Om en post hittas visas layouten Fakturainformation. Om mer än en post hittas visas layouten Fakturor.
Utför sökning [Spara]
If [Get (HittadePoster) = 0]
Visa anpassad dialogruta ["Sök poster"; "Ingen post hittades."]
Else If [Get (HittadePoster) = 1]
Gå till layout ["Fakturainformation"]
Else
Gå till layout ["Fakturor"]
End If
Loop-struktur, exempel
Scriptstegen Loop, Exit Loop If och End Loop definierar en struktur som gör att scriptstegen kan upprepas. Scriptsteg mellan Loop och End Loop utförs kontinuerligt tills ett Exit Loop If- eller Avbryt efter sista-villkor har uppfyllts för något av stegen Gå till post/sökpost/sida eller Gå till portalrad.
Med scriptsteget Exit Loop If kan du ange att en beräkning ska utvärderas. När resultatet av beräkningen inte är noll värderas beräkningen till Sant och loopen avslutas. När resultatet av beräkningen är noll värderas beräkningen till Falskt och loopen fortsätter.
Exempel 1
Kopierar innehållet i Kunder::Arbetstelefon till kund::Kontakt dagtid i alla poster.
Gå till post/sökpost/sida [Första]
Loop
Tilldela fält [Kunder::Kontakt dagtid; Kunder::Arbetstelefon]
Gå till post/sökpost/sida [Nästa; Avbryt script efter alla: På]
End Loop
Exempel 2
Loopar igenom poster för att exportera filer i containerfält. Avbryter loopen om en post har ett tomt containerfält.
Ange variabel [$SÖKVÄG; Värde: Get ( Dokumentsökväg ) & Produkter::Container]
Gå till post/sökpost/sida [Första]
Loop
Exit Loop If [IsEmpty ( Produkter::Container )]
Exportera fältinnehåll [Produkter::Container; "$SÖKVÄG"]
Gå till post/sökpost/sida [Nästa; Avbryt script efter alla: På]
End Loop
Exempel på startscripts
Med ett startscript kan man anpassa användarens databasvy eller utföra andra åtgärder när en databas öppnas. Startscript körs av scripttriggern VidFörstaFönsterÖppna. Information om hur du konfigurerar ett startscript finns i Ange filtillval.
Exempel 1
Går till administrationslayouten om kontot har tilldelats behörighetsuppsättningen Fullständig behörighet. Går annars till datainmatningslayouten.
If [Get ( KontoBehörighetsuppsättning ) = "[Full åtkomst]"]
Gå till layout ["Administration"]
Else
Gå till layout ["Datainmatning"]
End If
Exempel 2
Kollar vilken version av FileMaker Pro eller FileMaker Go som öppnade databasen och går till lämplig kundlayout.
If [Get ( Enhet ) = 3]
Gå till layout ["Kunder iPad"]
Else If [Get ( Enhet ) = 4]
Gå till layout ["Kunder iPhone"]
Else
Gå till layout ["Kunder"]
End If
Exempel på Utför script och scriptparametrar
Utför script utför ett script som har definierats i den aktuella filen eller i en annan FileMaker Pro-fil.
Valfria scriptparametrar kan överföra text till ett script. Du kan t.ex. använda en scriptparameter för att lagra den aktiva postens nummer när ett script startas, så att du lätt kan återgå till den posten när scriptet är slut. Du kan också anropa samma script från olika knappar i samma layout och lätt fastställa vilken knapp som anropade scriptet genom att använda olika scriptparametrar för varje knapp.
När du anger en parameter kan du hämta den i ett script eller överföra den till andra scripts med funktionen Get ( Scriptparameter ).
Du kan också använda komplexa parametrar, t.ex. en lista med namn eller andra värden. Komplexa parametrar som är avgränsade med returtecken kan tolkas med funktionen LeftValues, funktionen MiddleValues och funktionen RightValues. De här funktionerna returnerar de inledande, mellersta och avslutande värdena i listor som är avgränsade med returtecken. Komplexa parametrar som är avgränsade med andra tecken kan tolkas som text med t.ex. funktionen Left, funktionen Middle och funktionen Right.
Exempel 1
Kör scriptet "Skriv ut fakturarapport" utan några parametrar.
Gå till layout ["Fakturarapport"]
Utför script ["Skriv ut fakturarapport"]
Exempel 2
Använder ett fält, Kundnamn, som parameter. Fakturor för den aktuella kunden returneras i ett nytt fönster med layouten Fakturarapport.
Huvudscript: Aktuella kundfakturor
Sök efter matchande poster [Ersätt; Fakturor::Kund-ID]
#Anropar delscriptet "Visa kundfakturor" som anges nedan
Utför script ["Visa kundfakturor"; Parameter: Fakturor::Kundnamn]
Delscript: Visa kundfakturor
Nytt fönster [Namn: "Kund: " & Get ( ScriptParameter ); Stil: Dokument]
Gå till layout ["Fakturarapport"]
Sortera poster [Återställa; Med dialogruta: Av]
Kommentar
En scriptparameter finns bara kvar så länge scriptet utförs. Scriptparametrar återställs varje gång ett script körs. Om du vill att en scriptparameter ska kvarstå medan en fil är öppen, kan du använda en global variabel som scriptparameter.
En scriptparameter finns bara inom det överordnade scriptet om det inte uttryckligen överförs till ett annat script med funktionen Get ( Scriptparameter ).
En scriptparameter kan användas (men inte ändras) inom ett script och den kan överföras till delscript med funktionen Get ( Scriptparameter ) som parameter för delscriptet. Du kan också ange olika parametrar varje gång delscriptet anropas med Utför script. Ändring av parametrar som skickas till ett delscript ändrar inte värdet på parametrar som returneras från Get ( Scriptparameter ) i huvudscriptet.