Verwenden von ActiveX Automation in FileMaker Pro (Windows)
Die FileMaker Pro-Typbibliothek
Die Typbibliothek beschreibt die Objekte, Eigenschaften und Methoden, die FileMaker Pro freigibt, damit andere ActiveX-Clients auf FileMaker Pro zugreifen können.
Die FileMaker Pro-Typbibliothek ist im ausführbaren FileMaker Pro-Programm enthalten. Sie ist keine separate Datei. Ihre FileMaker Pro-Typbibliothek wurde bei der Installation von FileMaker Pro auf Ihrem Computer registriert.
Fügen Sie in Visual Basic der Liste "Verfügbare Verweise" in Ihrem Projekt "FileMaker Pro-Typbibliothek" hinzu.
Wichtig  Sie müssen die FileMaker Pro-Typbibliothek in die Liste der verfügbaren Typbibliotheken in dem Programm aufnehmen, das Sie zur Implementierung Ihres ActiveX Automation-Dokuments verwenden werden. Wenn Sie die Typbibliothek nicht hinzufügen, ist es nicht möglich, FileMaker Pro über ActiveX Automation anzusprechen.
Die Methode für das Hinzufügen dieser Bibliothek variiert je nach verwendetem ActiveX Automation-Authoring-Tool. Falls Sie Informationen zur Vorgehensweise benötigen, konsultieren Sie das Handbuch zu Ihrem ActiveX Automation-Authoring-Tool. Die folgenden Schritte beschreiben die Vorgehensweise in Microsoft Visual Basic.
So fügen Sie Microsoft Visual Basic die FileMaker Pro-Typbibliothek hinzu:
1.
Wählen Sie in Microsoft Visual Basic Project > References > Add Type Library.
2.
3.
FMPro70Lib wird im Visual Basic-Objektbrowser angezeigt, sobald die Projektverweise die FileMaker Pro-Typbibliothek umfassen. Sämtliche Objekte, Methoden und Eigenschaften, die FileMaker Pro zur Automation-Steuerung freigibt, sind jetzt verfügbar.
Deklarieren von FileMaker Pro als Application-Objekt
Deklarieren Sie FileMaker Pro jedes Mal als Application-Objekt, wenn Sie ein ActiveX Automation-Script oder -Programm zur Steuerung von FileMaker Pro erstellen. Dies kann in einer einzelnen Codezeile am Beginn Ihres Automation-Dokuments erfolgen, wo sich auch Ihre anderen Definitionen befinden.
Beispiel:
Dim FMProApp as FMPro70Lib.Application
Beziehen eines Application-Objekts
Um Automation-Aufrufe an FileMaker auszuführen, benötigen Sie zuvor Zugriff auf das FileMaker-Application-Objekt. Dafür gibt es zwei Möglichkeiten: durch Aufruf von CreateObject oder durch Aufruf von GetObject.
Für jeden Aufruf müssen Sie zuerst das Application-Objekt deklarieren:
Dim FMProApp as FMPro70Lib.Application
Nur für CreateObject:
Set FMProApp = CreateObject("FMPRO.Application")
CreateObject startet FileMaker, falls das Programm noch nicht läuft.
Die Funktion GetObject ruft nur dann ein Application-Objekt ab, wenn FileMaker bereits läuft.
Nur für GetObject:
Set FMProApp = GetObject(, "FMPRO.Application")
Beachten Sie das Komma, das angibt, dass das erste Argument zu GetObject – ein Pfad oder eine Plattendatei – weggelassen wurde. Das Komma ist erforderlich, da GetObject in einigen Situationen einen Dateinamen als erstes Argument verwendet. Um jedoch eine Instanz von FileMaker abzurufen, müssen Sie das Dateinamen-Argument weglassen, da sonst ein Fehler auftritt.
Aufrufen eines FileMaker Pro-Scripts
Um ein FileMaker Pro-Script über ActiveX Automation auszuführen, rufen Sie die Funktion DoFMScript mit dem Scriptnamen als Variable auf.
Beispiel:
Dim FMProApp as FMPro70Lib.Application
CreateObject("FMPRO.application")
Dim FMProDocs, FMProDocs.Open("c:\MeineDatei.fmp12","","")
Dim FMProDoc
FMProDoc.DoFMScript ("MeinScript")
Set FMProDoc = nothing
Umschalten der Sichtbarkeit des FileMaker Pro-Programms
Beim Start durch Automation ist FileMaker Pro standardmäßig ausgeblendet. Sie können FileMaker Pro mithilfe der Eigenschaft "visible" ein- und ausblenden.
So blenden Sie das Programm aus:
FMProApp.Visible = False
So blenden Sie das Programm ein:
FMProApp.Visible = True
Verweiszähler und Objektfreigabe
Bei einem Verweis auf ein Automation-Objekt wird ein Verweiszähler inkrementiert, damit FileMaker weiß, dass ein Prozess dieses Objekt verwendet. In Visual Basic wird ein Verweis jedes Mal gezählt, wenn Sie die deklarierte Variable auf ein FileMaker-Objekt setzen. Beispiel:
' nur Deklaration - noch ohne Verweise
Dim FMDocs as FMPro70Lib.Documents
' Verweis auf FileMaker-Objekt "Documents"
Set FMDocs = FMApp.Documents
' zweiter Verweis auf FileMaker-Objekt "Documents"
Set FMDocs2 = FMApp.Documents
FileMaker kann erst beendet werden, wenn alle Verweiszähler freigegeben sind. In Visual Basic können Sie den Verweiszähler freigeben, indem Sie die Objektvariable auf "Nothing" setzen. Beispiel:
' gibt Verweis auf FileMaker-Objekt "Documents" frei
Set FMDocs = Nothing
' gibt den 2. Verweis auf FileMaker-Objekt "Documents" frei
Set FMDocs2 = Nothing
' gibt Verweis auf FileMaker-Objekt "Application" frei
Set FMApp = Nothing
Es empfiehlt sich, Objektvariablen immer auf "Nothing" zu setzen, wenn Sie die Variablen nicht mehr benötigen.
Zugriffsrechte
FileMaker Pro verwendet die Methode Documents.Open(filename As String, accountName As String, password As String). Wenn es sich bei den Argumenten accountName und password um leere Zeichenfolgen handelt, wird die Datei als Client-Benutzer geöffnet.
Scripts
Direkt durch Automation aufgerufene FileMaker Pro-Scripts können einander unterbrechen.
FileMaker Pro-Scripts, die in anderen FileMaker Pro-Scripts aufgerufen werden, laufen wie erwartet korrekt ab.
Remote als Host bereitgestellte Dateien
Eine durch einen Host bereitgestellte Datei kann nicht alleine durch ActiveX Automation geöffnet werden. Um eine bereitgestellte Datei durch Automation zu öffnen, verwenden Sie entweder direkt das FileMaker-Dialogfeld "Öffnen" und greifen dann über Automation auf die Datei zu. Oder Sie schreiben ein FileMaker Pro-Script, das die Datei öffnet, und rufen die Datei dann über Automation auf.
Weiterführende Themen 
Verwenden von ActiveX Automation in FileMaker Pro (Windows)
Beispiel für ActiveX-Automation (Windows)