Anwenden einer benutzerdefinierten VB-Aktion auf einen Echtzeit-Layer
Die von Tracking Analyst bereitgestellte benutzerdefinierte VB-Layer-Aktion ist verfügbar, wenn Sie die Software ArcGIS Desktop VBA Resources for Developers installieren und lizenzieren, die im ArcGIS Desktop-Medien-Paket enthalten ist. Installations- und Lizenzierungsinformationen sind im ArcGIS Desktop-Installationshandbuch verfügbar. Nach der Installation finden Sie im Hilfesystem von ArcGIS Desktop VBA Resources for Developers Anleitungen dazu, wie Sie den Visual Basic-Editor zum Erstellen von Makros für ArcGIS Desktop verwenden.
Bevor Sie dieses Verfahren durchführen können, müssen Sie mit dem Visual Basic-Editor ein VB-Makro zur Verwendung mit dieser Aktion erstellt haben.
Die benutzerdefinierte VB-Layer-Aktion unterscheidet sich von den anderen Layer-Aktionen, weil sie nur auf Echtzeit-Tracking-Layer angewendet werden kann. Außerdem unterscheidet sie sich von Service-Aktionen, weil sie für einen Tracking-Layer definiert ist, nicht für einen Tracking-Service. VB-Aktionen werden auf Echtzeitereignisse angewendet, wenn sie dem Tracking-Layer hinzugefügt werden, aber sie werden nicht auf Ereignisse angewendet, die vor dem Auslösen der Aktion bereits im Layer vorhanden sind.
Weitere Informationen zu benutzerdefinierten VB-Aktionen für Echtzeit-Tracking-Layer
- Erstellen Sie mit dem Visual Basic-Editor das VB-Makro, das Sie für den Echtzeit-Tracking-Layer verwenden möchten.
-
Klicken Sie im Fenster Inhaltsverzeichnis mit der rechten Maustaste auf den Tracking-Layer, auf den Sie die Aktion anwenden möchten, und klicken Sie im Kontextmenü auf Eigenschaften. Das Dialogfeld Layer-Eigenschaften wird geöffnet.
Alternativ dazu können Sie im Inhaltsverzeichnis auf den Tracking-Layer doppelklicken.
- Klicken Sie im Fenster Layer-Eigenschaften auf die Registerkarte Aktionen.
-
Klicken Sie auf die Schaltfläche Neue Aktion.
-
Wählen Sie im Fenster Typ der zu erstellenden Aktion die Option Visual Basic. Die Option Visual Basic ist nur aufgeführt, wenn Sie mit einem Echtzeit-Tracking-Layer arbeiten.
- Klicken Sie in das Textfeld, und geben Sie einen Namen für die Aktion ein. Klicken Sie dann auf OK, um das Aktionsparameterformular zu starten.
-
Klicken Sie im Dialogfeld Visual-Basic-Aktionsparameter auf den Dropdown-Pfeil Projekt, und wählen Sie entweder Projekt oder Normal aus.
- Klicken Sie auf den Dropdown-Pfeil der Option Modul, und wählen Sie das Modul aus, in dem das Makro enthalten ist.
-
Klicken Sie auf den Dropdown-Pfeil der Option Makro, und wählen Sie den Namen des zu verwendenden Makros aus.
Falls Sie bereits ein VB-Makro erstellt und in diesem Modul gespeichert haben, wird es in der Liste angezeigt.
-
Legen Sie den Trigger für die Aktion fest. Klicken Sie unter Auslöser für Aktion auf die gewünschte der unten angegebenen Optionen, und führen Sie die weiteren Schritte zum Festlegen des Triggers aus:
Immer
Die Aktion wird immer ausgelöst.
Attributabfrage
Die Aktion wird basierend auf den Attributkriterien ausgelöst. Informationen zum Festlegen eines Attribut-Triggers
Lagebezogene Abfrage
Die Aktion wird basierend auf den lagebezogenen Kriterien ausgelöst. Informationen zum Festlegen eines lagebezogenen Triggers
Attribut- UND lagebezogene Abfrage
Die Aktion wird basierend auf einer Kombination aus attribut- und lagebezogenen Kriterien ausgelöst.
- Klicken Sie nach dem Festlegen des Triggers für die Aktion auf OK, um die Aktion zu erstellen.
-
Die neue Aktion wird in der Liste der Layer-Aktionen angezeigt. Falls in der Liste weitere Layer-Aktionen angezeigt werden, können Sie diese mithilfe der Pfeilschaltflächen verschieben und so die Reihenfolge festlegen, in der sie auf den Tracking-Layer angewendet werden sollen. Sie können Layer-Aktionen in der Liste auch aktivieren bzw. deaktivieren, indem Sie das entsprechende Kontrollkästchen aktivieren oder deaktivieren.
- Klicken Sie im Dialogfeld Layer-Eigenschaften auf Übernehmen oder auf OK, um alle Änderungen zu übernehmen.
Ein im Ordner "Normal" gespeichertes Makro wirkt sich auf alle in ArcMap geöffneten Dokumente aus. Ein Makro, das sich im Ordner "Projekt" befindet, wirkt sich nur auf das aktuelle Kartendokument aus.
Der Standardmodulname im Visual Basic-Editor ist ThisDocument.
Dieses Makro zeigt das fünfte Feld einer eingehenden Datenmeldung auf der ArcMap-Statusleiste an. Dieses Makro wird für alle eingehenden Ereignisse ausgeführt, die die Trigger-Kriterien der Aktion erfüllen.
Public Sub StatusBarMacro(ParamArray varArgs() As Variant) Application.StatusBar.Message(0) = varArgs(5) End Sub
Dieses Makro zeigt das dritte Feld einer eingehenden Datenmeldung in einem Meldungsfeld an. Dieses Makro wird für alle eingehenden Ereignisse ausgeführt, die die Trigger-Kriterien der Aktion erfüllen.
Public Sub MessageBoxMacro(ParamArray varArgs() As Variant) MsgBox varArgs(3) End Sub
Gehen Sie beim Verwenden der benutzerdefinierten VB-Aktion mit Bedacht vor. Wenn Sie das oben als Beispiel angegebene Makro mit dem Meldungsfeld beispielsweise für einen Echtzeit-Datenfeed mit Tausenden von Datensätzen verwenden und alle Datensätze die Trigger-Kriterien für die Aktion erfüllt, müssen Sie für jedes einzelne Ereignis ein Meldungsfeld schließen.