Verwenden von ActiveX Automation in FileMaker Pro (Windows)
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.
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.
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 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.
Dim FMProApp as FMPro70Lib.Application
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.
Dim FMProApp as FMPro70Lib.Application
Set FMProApp = CreateObject("FMPRO.Application")
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.
Um ein FileMaker Pro-Script über ActiveX Automation auszuführen, rufen Sie die Funktion DoFMScript mit dem Scriptnamen als Variable auf.
Dim FMProApp as FMPro70Lib.Application
CreateObject("FMPRO.application")
Dim FMProDocs, FMProDocs.Open("c:MeineDatei.fmp12","","")
Dim FMProDoc
FMProDoc.DoFMScript ("MeinScript")
Set FMProDoc = nothing
Beim Start durch Automation ist FileMaker Pro standardmäßig ausgeblendet. Sie können FileMaker Pro mithilfe der Eigenschaft "visible" ein- und ausblenden.
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:
Dim FMDocs as FMPro70Lib.Documents
Set FMDocs = FMApp.Documents
Set FMDocs = 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:
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.
FileMaker Pro-Scripts, die in anderen FileMaker Pro-Scripts aufgerufen werden, laufen wie erwartet korrekt ab.
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.