Scriptvoorbeelden

U kunt voorbeelden van scripts in de Help gebruiken als uitgangspunt voor uw eigen scripts. Voor meer voorbeeldscripts en verdere hulp raadpleegt u de Claris Community.

Zo geeft u een script weer in FileMaker Pro:

  1. Kies Scripts > Scriptwerkruimte. Of kies Bestand > Beheren > Scripts.
  2. Dubbelklik in het scriptvenster op het script dat u wilt bekijken.

    Het script wordt in een nieuw tabblad in het scriptbewerkingsvenster geopend.

Voorbeelden van If-structuur

Met de scriptstappen If, Else If, Else en End If definieert u een structuur waarmee u kunt bepalen of scriptstappen al dan niet worden uitgevoerd. Dit besturingselement is afhankelijk van het resultaat van een testbare voorwaarde of logische berekening.

  • Wanneer het resultaat van de berekening elk getal behalve nul is, is de evaluatie van de voorwaarde Waar en worden de volgende scriptstappen uitgevoerd.
  • Wanneer het berekeningsresultaat nul is, leeg is of inhoud is die niet in een getal resulteert, dan is de evaluatie van de voorwaarde Onwaar en worden de volgende scriptstappen niet uitgevoerd.

Met de stap Else If kunt u bijkomende logische tests opgeven. Met de stap Else kunt u alternatieve stappen opgeven die worden uitgevoerd als alle andere voorwaarden Onwaar zijn.

Voorbeeld 1

Dit voorbeeldscript voert een zoekopdracht uit: indien er geen records worden gevonden, wordt een aangepast dialoogvenster weergegeven. Als er wel records worden gevonden, wordt de gevonden reeks gesorteerd.

Kopiëren
Zoekopdracht uitvoeren [Herstellen]
If [Get (GevondenTelling) = 0]
    Aangepast dialoogvenster tonen ["Records zoeken"; "Geen records gevonden."]
Else
    Records sorteren [Herstellen; Met dialoogvenster: Uit]
End If

Voorbeeld 2

Dit voorbeeldscript voert een zoekopdracht uit: indien er geen records worden gevonden, wordt een aangepast dialoogvenster weergegeven. Als er één record is gevonden, wordt de lay-out Factuurgegevens geactiveerd. Als er meer records zijn gevonden, wordt de lay-out Factuurgegevens geactiveerd.

Kopiëren
Zoekopdracht uitvoeren [Herstellen]
If [Get (GevondenTelling) = 0]
    Aangepast dialoogvenster tonen ["Records zoeken"; "Geen record gevonden."]
Else If [Get (GevondenTelling) = 1]
    Ga naar lay-out ["Factuurgegevens"]
Else
    Ga naar lay-out ["Facturen"]
End If

Voorbeelden van Loop-structuur

Met de scriptstappen Loop, Exit Loop If en End Loop definieert u een structuur die bepaalt hoe vaak scriptstappen worden herhaald. Scriptstappen tussen Loop en End Loop worden steeds herhaald, tot aan de voorwaarde Exit Loop If of de voorwaarde Afsluiten na laatste is voldaan voor de stap Ga naar record/verzoek/pagina of Ga naar portaalrij.

Met de scriptstap Exit Loop If kunt u een berekening opgeven die moet worden uitgevoerd. Wanneer het resultaat van de berekening niet nul is, staat dit gelijk aan Waar en wordt de lus beëindigd. Wanneer het resultaat van de berekening nul is, staat dit gelijk aan Onwaar en wordt de lus voortgezet.

Voorbeeld 1

Kopieert de inhoud van de reeks Klanten::Telefoon op het werk tot Klanten::Contactpersoon overdag in alle records.

Kopiëren
Ga naar record/verzoek/pagina [Eerste]
Loop
    Veld instellen [Klanten::Contactpersoon overdag; Klanten::Telefoon op het werk]
    Ga naar record/verzoek/pagina [Volgende; Afsluiten na laatste: Aan]
End Loop

Voorbeeld 2

Bladert steeds opnieuw door records om bestanden te exporteren die in containervelden staan. Sluit de lus af als een record een leeg containerveld heeft.

Kopiëren
Variabele instellen [$PAD; Waarde: Get (Documentpad) & Producten::Container]
Ga naar record/verzoek/pagina [Eerste]
Loop
    Exit Loop If [IsEmpty (Producten::Container)]
    Veldinhoud exporteren [Producten::Container; "$PAD" ;
    mappen maken: Uit ]
    Ga naar record/verzoek/pagina [Volgende; Afsluiten na laatste: Aan]
End Loop

Voorbeelden van een opstartscript

Met een opstartscript kan een gebruiker de weergave van een database aanpassen of andere acties uitvoeren wanneer een database wordt geopend. Opstartscripts worden door de BijEersteVensterOpenen scriptactivering uitgevoerd. Raadpleeg Bestandsopties instellen voor meer informatie over het instellen van een opstartscript.

Voorbeeld 1

Gaat naar de lay-out Beheer als de account volledige toegangsprivileges heeft. Anders gaat het naar de lay-out Gegevensinvoer.

Kopiëren
If [Get (HuidigeNaamPrivilegeset) ≠ "[Full Access]"]
    Ga naar lay-out ["Beheer"]
Else
    Ga naar lay-out ["Gegevensinvoer"]
End If

Voorbeeld 2

Controleert met welke versie van FileMaker Pro of FileMaker Go de database is geopend en gaat naar de bijbehorende lay-out Klanten.

Kopiëren
If [Get (Apparaat) = 3]
    Ga naar lay-out ["iPad klanten"]
Else If [Get (Apparaat) = 4]
    Ga naar lay-out ["iPhone klanten"]
Else
    Ga naar lay-out ["Klanten"]
End If

Voorbeelden van Script uitvoeren en scriptparameters

De scriptstap ‘Script uitvoeren’ voert een script uit dat in het huidige bestand of in een ander FileMaker Pro-bestand is gedefinieerd.

Met optionele scriptparameters kunt u tekst in een script opnemen. Zo kunt u bijvoorbeeld een scriptparameter gebruiken om hierin het nummer van de actieve record op te slaan wanneer een script wordt gestart, zodat u aan het einde van het script makkelijk naar deze record kunt terugkeren. Verder kunt u hetzelfde script aanroepen met verschillende knoppen op dezelfde lay-out, en op een eenvoudige manier nagaan met welke knop dit script werd aangeroepen door voor elke knop een andere scriptparameter te gebruiken.

Wanneer u een parameter opgeeft, is deze parameter toegankelijk binnen een script. Bovendien kunt u de parameter doorgeven aan andere scripts met de Get (ScriptParameter) functie.

Complexe parameters, zoals een lijst met namen of andere waarden, kunnen eveneens worden gebruikt. Complexe parameters, zoals een lijst met namen of andere waarden, kunnen eveneens worden gebruikt. De waarden in complexe parameters die door regelteruglooptekens van elkaar zijn gescheiden, kunnen worden opgevraagd met de LeftValues functie, MiddleValues functie en RightValues functie. Deze functies halen de eerste, middelste en laatste waarden op uit lijsten met waarden die door regelteruglooptekens van elkaar zijn gescheiden. Als de waarden in complexe parameters door andere tekens van elkaar zijn gescheiden, kunt u deze als tekst ophalen met functies zoals Left functie, Middle functie en Right functie.

Voorbeeld 1

In dit voorbeeld wordt het script "Factuurrapport afdrukken" zonder parameters uitgevoerd.

Kopiëren
Ga naar lay-out ["Factuurrapport"]
Script uitvoeren [ Opgegeven: Uit lijst ; "Factuurrapport afdrukken" ; 
Parameter: ]

Voorbeeld 2

In dit voorbeeld wordt een veld, Naam klant, als parameter gebruikt. Facturen voor de huidige klant verschijnen als resultaat in een nieuw venster met de lay-out Factuurrapport.

Hoofdscript: Facturen huidige klant

Kopiëren
Overeenkomende records zoeken [Vervangen; Facturen::Klantnummer]
#Roept het hierna gedefinieerde subscript "Facturen klant weergeven" aan
Script uitvoeren [ Opgegeven: Uit lijst: "Facturen klant weergeven"; Parameter: Facturen::Naam klant]

Subscript: Facturen klant weergeven

Kopiëren
Nieuw venster [Naam: "Klant: " & Get (ScriptParameter); Stijl: Document]
Ga naar lay-out ["Factuurrapport"]
Records sorteren [Herstellen; Met dialoogvenster: Uit]

Opmerkingen

  • Een scriptparameter is alleen geldig voor de duur van het script. Scriptparameters worden telkens wanneer een script wordt uitgevoerd opnieuw ingesteld. Als u een scriptparameter wilt aanhouden wanneer een bestand is geopend, kunt u een algemene variabele als scriptparameter gebruiken.
  • Een scriptparameter geldt alleen voor het bovenliggende script, tenzij die uitdrukkelijk aan een ander script wordt doorgegeven met de functie Get (ScriptParameter).
  • U kunt in een script een scriptparameter gebruiken (maar niet wijzigen) en deze aan subscripts doorgeven met de functie Get (ScriptParameter) als parameter voor het subscript. U kunt ook telkens wanneer het subscript wordt aangeroepen met Script uitvoeren verschillende parameters opgeven. Wanneer u wijzigingen aanbrengt in parameters die aan een subscript zijn doorgegeven, wijzigt u hiermee niet de waarde van de parameters die in het basisscript als resultaat van de functie Get (ScriptParameter) worden verkregen.