Exemples
La programmation AppleScript en exemples.

FileMaker
Lire le contenu d'une fiche d'une base FileMaker Pro.
Imaginons qu'on veuille récupérer des données contenues dans une base FileMaker. La première possibilité consiste à exporter le contenu des fiches voulues dans un fichier de type CSV (comma separated value) ou tab-delimited. Ensuite, on lira le contenu de ce fichier. Une autre possibilité consiste à lire le contenu d'une ou plusieurs fiches directement dans une base FileMaker ouverte. Attention, le script ci-dessous requiert l'utilisation de FileMaker et de la base de données d'exemple. Téléchargez la base de données ici.

Exemple 17 : récupérez l'AppleScript ici.

Le Script :

set carte to {prenom:"", nom:"", anniversaire:""}

tell application "FileMaker Pro"
set prenom of carte to cellValue of cell "prenom" of current record of front database
set nom of carte to cellValue of cell "nom" of current record of front database
set anniversaire of carte to cellValue of cell "anniversaire" of current record of front database
end tell

return
carte


Explications :
Ce script permet de lire le contenu des champs de la base de données, ouverte dans FileMaker, qui se trouve au premier plan : on choisit de lire dans "Front database". De plus, on ne lit que le contenu de la fiche active "current record".

Astuce :
Si on a plusieurs bases ouvertes, il sera préférable de connaitre les noms des bases afin de cibler la bonne base. On utilisera alors "
cellValue of cell "anniversaire" of current record of database "exemple.fp7"".




Lire le contenu de toutes les fiches d'une base FileMaker Pro.
Imaginons qu'on veuille récupérer toutes les données contenues dans toutes les fiches d'une base FileMaker. On pourra utiliser le script de l'exemple précédent en lui adjoignant une boucle.

Exemple 18 : récupérez l'AppleScript ici.

Le Script :

set ma_liste to {}
set carte to {prenom:"", nom:"", anniversaire:""}

tell application "FileMaker Pro" to set nombre_de_ficher to count records in front database

repeat with i from 1 to nombre_de_ficher
tell application "FileMaker Pro"
set prenom of carte to cellValue of cell "prenom" of record i of front database
set nom of carte to cellValue of cell "nom" of record i of front database
set anniversaire of carte to cellValue of cell "anniversaire" of record i of front database
end tell
set
ma_liste to ma_liste & (carte as list)
end repeat

return
ma_liste


Explications :
• On utilise "count records" pour connaitre le nombre de fiche(s) dans la base puis on exécute une boucle qui lit le contenu des fiches une à une.
• Le contenu des fiches est mis dans une variable de type "record" puis cette variable est transtypée en "list" et ajoutée dans la variable "
ma_liste" qui est de type "list". On a recours à cette manipulation assez inélégante uniquement dans le but de rendre cet exemple visuel lors de l'affichage du contenu de "ma_liste".





Ecrire dans une base FileMaker Pro.
Imaginons qu'on veuille créer une nouvelle fiche dans une base ouverte. On prendra en donnée d'entrée une variable de type "record". On pourra envisager d'utiliser des boîtes de dialogue pour choisir le contenu à entrer dans la base.

Exemple 12 : récupérez l'AppleScript
ici.

Le Script :

set carte to {prenom:"Arnaud", nom:"M.", anniversaire:"15/10/1273"}


tell application "FileMaker Pro"
set nouvelle_fiche to create new record
go to
nouvelle_fiche
set cellValue of cell "prenom" of current record of front database to prenom of carte
set cellValue of cell "nom" of current record of front database to nom of carte
set cellValue of cell "anniversaire" of current record of front database to anniversaire of carte
end tell


Explications :
On crée une nouvelle fiche de la façon habituelle, puis on va jusqu'à cette fiche et on la remplit en utilisant les données de la variable "carte". Pour modifier le contenu d'une fiche, on se serait déplacé dans la base jusqu'à la fiche à modifier, puis on aura mis-à-jour le(s) champ(s) voulu(s).

Astuce :
Il est possible d'utiliser ce script au sein même de la base FileMaker. C'est ce qui a été fait dans le script "Ajouter une fiche pré-remplie" de la base de données servant d'exemple.