Utilisation de FileMaker Pro ActiveX Automation (Windows)
Bibliothèque de types FileMaker Pro
Cette bibliothèque décrit les objets, les propriétés et les méthodes exposés par FileMaker Pro, afin que les autres clients ActiveX puissent accéder à l’application.
Elle fait partie de l’exécutable de FileMaker Pro. Il ne s'agit donc pas d'un fichier séparé. Elle a été enregistrée sur votre ordinateur au cours de l’installation de FileMaker Pro.
Dans Visual Basic, ajoutez « Bibliothèque de types FileMaker Pro » à la liste des références disponibles de votre projet.
Important  Vous devez ajouter cette bibliothèque dans la liste des bibliothèques de types disponibles de l'application qui sera utilisée pour mettre en œuvre le document ActiveX Automation. Si vous ne procédez pas à cet ajout, il ne vous sera pas possible d’accéder à FileMaker Pro via ActiveX Automation.
La méthode d'ajout d'une bibliothèque varie d'un outil ActiveX Automation à un autre. Si vous n'êtes pas certain de la façon de procéder, reportez-vous au manuel fourni avec l'application utilisée. La procédure suivante se rapporte à Microsoft Visual Basic.
Pour ajouter la bibliothèque Bibliothèque de types FileMaker Pro dans Microsoft Visual Basic :
1.
Dans Microsoft Visual Basic, sélectionnez le menu Projet > Références > Ajouter bibliothèque de types.
2.
Activez la case à cocher située à gauche de Bibliothèque de types FileMaker Pro.
3.
FMPro70Lib apparaît dans l’explorateur d’objets de Visual Basic une fois la bibliothèque de types FileMaker Pro incluse dans les références. Tous les objets, méthodes et propriétés exposés par FileMaker Pro sont désormais accessibles.
Déclaration de FileMaker Pro comme objet Application
Définissez FileMaker Pro comme objet Application chaque fois que vous créez un script ou une application ActiveX Automation s’appliquant à FileMaker Pro. Pour cela, il suffit d'une ligne de code au début du document d'automatisation ; elle apparaît avec les autres définitions.
Par exemple :
Dim FMProApp As FMPro70Lib.Application
Extraction d'un objet Application
Pour qu'une commande d'automatisation appelle FileMaker, il faut d'abord accéder à l'objet Application FileMaker. Pour cela, il faut appeler soit CreateObject, soit GetObject.
Quelle que soit la méthode choisie, vous devez au préalable déclarer l'objet Application :
Dim FMProApp as FMPro70Lib.Application
Dans le cas de CreateObject uniquement :
Set FMProApp = CreateObject("FMPRO.Application")
CreateObject lance FileMaker s'il n'est pas déjà actif.
Pour que la fonction GetObject récupère un objet Application, il faut obligatoirement que FileMaker soit lancé.
Dans le cas de GetObject uniquement :
Set FMProApp = GetObject(, "FMPRO.Application")
Remarquez la virgule, qui signale que le premier argument de GetObject (un chemin d'accès au fichier), a été ignoré. Cette virgule sert, dans certaines circonstances, à indiquer un nom de fichier comme premier argument de GetObject. Pour récupérer une occurrence de FileMaker, cependant, vous devez ignorer cet argument de fichier car cela pourrait générer une erreur.
Appel d’un script FileMaker Pro
Pour exécuter un script FileMaker Pro via ActiveX Automation, appelez la fonction DoFMScript, sa variable devant être le nom du script.
Par exemple :
Dim FMProApp as FMPro70Lib.Application
CreateObject("FMPRO.application")
Dim FMProDocs, FMProDocs.Open("c:\MonFichier.fmp12","")
Dim FMProDoc
FMProDoc.DoFMScript ("MonScript")
Set FMProDoc = nothing
Affichage ou masquage de l’application FileMaker Pro
Lorsque FileMaker Pro est lancé par le biais d’ActiveX Automation, il est masqué par défaut. La propriété Visible permet de masquer ou d’afficher l’application.
Par exemple, pour masquer l'application :
FMProApp.Visible = False
Pour l'afficher :
FMProApp.Visible = True
Comptabilisation des références et libération d'un objet
Lorsqu'une commande d'automatisation fait appel à un objet, une comptabilisation de références est établie de sorte que FileMaker sache que le processus utilise cet objet. Dans Visual Basic, un objet est comptabilisé dans le décompte des références à chaque fois que la variable déclarée est un objet FileMaker ; par exemple :
' juste une déclaration ; pas encore une référence
Dim FMDocs as FMPro70Lib.Documents
' cette ligne entraîne une référence à l'objet "Documents" de FileMaker
Set FMDocs = FMApp.Documents
' cette ligne entraîne une seconde référence au même objet "Documents" de FileMaker
Set FMDocs2 = FMApp.Documents
Il arrive que FileMaker ne soit pas fermé tant que tous les objets comptabilisés n'ont pas été libérés. Dans Visual Basic, vous pouvez libérer le décompte en affectant la valeur «Nothing» à la variable objet ; par exemple :
' libère la référence à l'objet "Documents" de FileMaker
Set FMDocs = Nothing
' libère la 2e référence à l'objet "Documents" de FileMaker
Set FMDocs2 = Nothing
' libère la référence à l'objet Application FileMaker
Set FMApp = Nothing
Il est bon de procéder ainsi lorsque vous en avez terminé avec ces variables.
Privilèges d'accès
FileMaker Pro utilise la méthode Documents.Open(NomFichier As String, NomCompte As String, MotPasse As String). Si les arguments NomCompte et MotPasse sont des chaînes vides, le fichier est ouvert en tant que client utilisateur.
Scripts
Il existe un risque d’interruption mutuelle des scripts FileMaker Pro appelés directement via ActiveX Automation.
Les scripts FileMaker Pro invoqués à partir d’un autre script FileMaker Pro s’exécutent dans l’ordre, comme prévu.
Fichiers distants
Il n'est pas possible d'ouvrir des fichiers distants par le seul biais d'ActiveX Automation. Pour ouvrir un fichier distant avec Automation, vous devez soit ouvrir le fichier directement à partir de la boîte de dialogue Ouvrir fichier de FileMaker, puis utiliser la commande d'automatisation, soit rédiger un script FileMaker Pro qui ouvre le fichier distant, puis invoquer ce script via Automation.
Rubriques connexes 
Utilisation de FileMaker Pro ActiveX Automation (Windows)
Exemple de programmation ActiveX Automation (Windows)