Altova MapForce 2024 Enterprise Edition

Im Vergleich zur Integration auf Applikationsebene ist die Integration auf Dokumentebene komplexer, bietet aber dafür mehr Flexibilität beim Einbetten von MapForce-Funktionalitäten in Ihre Applikation mit Hilfe von ActiveX Controls. Auf diese Art haben Sie selektiven Zugriff auf die folgenden Teile der MapForce-Benutzeroberfläche:

 

Dokument-Bearbeitungsfenster

Projektfenster

Bibliotheksfenster

Übersichtsfenster

Fenster "Meldungen"

 

 

Wie bereits im Abschnitt Integration auf Applikationsebene erwähnt, ist für eine ActiveX-Integration auf Applikationsebene nur ein Control, nämlich das MapForceControl, erforderlich. Für eine ActiveX-Integration auf Dokumentebene werden die MapForce-Funktionalitäten jedoch durch die folgenden ActiveX Controls zur Verfügung gestellt:

 

MapForceControl

MapForceControl Document

MapForceControl Placeholder

 

Diese Controls werden durch die Datei MapForceControl.ocx aus dem Applikationsinstallationsordner von MapForce zur Verfügung gestellt. Wenn Sie die ActiveX-Integration mit Hilfe von Visual Studio erstellen, benötigen Sie über die Visual Studio Toolbox Zugriff auf diese Controls (siehe Hinzufügen der ActiveX Controls zur Toolbox).

 

Die grundlegenden Schritte, um die ActiveX Controls auf Dokumentebene in Ihre Applikation zu integrieren sind die folgenden:

 

1.Instantiieren Sie in Ihrer Applikation zuerst MapForceControl. Die Instantiierung dieses Control ist obligatorisch; Es ermöglicht die Unterstützung für die oben erwähnten Controls MapForceControl Document und MapForceControl Placeholder. Die Eigenschaft IntegrationLevel muss auf ICActiveXIntegrationOnDocumentLevel (oder "1") gesetzt werden. Um das Control für den Benutzer auszublenden, setzen Sie seine Eigenschaft Visible auf False. Anmerkung: Verwenden Sie für die Integration auf Dokumentebene nicht die Open-Methode des MapForceControl, da dies zu unerwünschten Ergebnissen führen könnte. Verwenden Sie stattdessen die entsprechenden open-Methoden von MapForceControl Document und MapForceControl PlaceHolder.

 

2.Erstellen Sie mindestens eine Instanz von MapForceControl Document in Ihrer Applikation. Dieses Control stellt Ihrer Applikation das Dokumentbearbeitungsfenster von MapForce zur Verfügung und kann bei Bedarf mehrmals instantiiert werden.erwenden Sie die Methode Open, um eine vorhandene Datei zu laden. Um Funktionen im Zusammenhang mit einem Dokument aufzurufen, verwenden Sie die Methoden Path und Save oder Methoden und Eigenschaften, die über die Eigenschaft Document zur Verfügung stehen. Anmerkung: Das Control unterstützt keinen schreibgeschützten Modus. Der Wert der Eigenschaft ReadOnly wird ignoriert.

 

3.Fügen Sie optional für jedes weitere Fenster (bei dem es sich nicht um das Dokumentfenster handelt) und das Ihrer Applikation zur Verfügung stehen soll, den MapForceControl Placeholder zur Ihrer Applikation hinzu. Mit Hilfe von Instanzen von MapForceControl PlaceHolder können Sie selektiv zusätzliche Fenster von MapForce in Ihre Applikation einbetten. Die Art des Fensters (z.B. Projektfenster) wird durch die Eigenschaft PlaceholderWindowID definiert. Um daher die Art des Fensters zu definieren, definieren Sie die Eigenschaft PlaceholderWindowID. Gültige Fenster-IDs finden Sie unter MapForceControlPlaceholderWindow. Verwenden Sie für jeden Windows Identifier nur einen MapForceControl PlaceHolder.

 

Für Placeholder Controls, die das MapForce-Projektfenster auswählen, stehen zusätzliche Methoden zur Verfügung. Mit Hilfe von OpenProject können Sie ein MapForce-Projekt laden. Mit Hilfe der Eigenschaft "Project" und der Methoden und Eigenschaften aus der MapForce Automation-Schnittstelle können Sie andere Operationen im Zusammenhang mit einem Projekt durchführen.

 

Ein Beispiel, wie Sie in C# oder VB.NET mit Visual Studio eine einfache, aus einem Formular bestehende Applikation, in der die MapForce ActiveX Controls auf Dokumentebene integriert sind, erstellen, sehen Sie in der Beschreibung unten. Beachten Sie, dass Ihre Applikation bei Bedarf auch komplexer sein kann. In der Anleitung unten sehen Sie jedoch, welche Voraussetzungen mindestens gegeben sein müssen, damit eine ActiveX-Integration auf Dokumentebene erfolgen kann.

 

1.Erstellen Sie ein neues Visual Studio Windows Forms-Projekt mit einem neuen leeren Formular.

2.Fügen Sie die ActiveX Controls zur Toolbox hinzu, falls dies noch nicht geschehen ist (siehe Hinzufügen der ActiveX Controls zur Toolbox).

3.Ziehen Sie das MapForceControl aus der Toolbox in Ihr neues Formular.

4.Setzen Sie die Eigenschaft IntegrationLevel des MapForceControl auf ICActiveXIntegrationOnDocumentLevel und die Eigenschaft Visible auf False. Sie können dies entweder über den Code oder über das Fenster Properties tun.

5.Ziehen Sie das MapForceControl Document aus der Toolbox in das Formular. Dieses Control stellt das Dokument-Hauptfenster von MapForce für Ihre Applikation zur Verfügung. Eventuell müssen Sie die Größe des Fensters an die Ihres Dokuments anpassen.

6.Fügen Sie optional ein oder mehrere MapForceControl Placeholder Controls zum Formular hinzu (eines für jeden zusätzlichen Fenstertyp, der für Ihre Applikation benötigt wird, z.B. das Projektfenster). Solche zusätzlichen Placeholder Controls werden normalerweise entweder unterhalb oder rechts oder links vom Dokument-Haupt-Control platziert z.B.:

ax_control_windows

7.Setzen Sie die Eigenschaft PlaceholderWindowID jedes MapForceControl Placeholder auf einen gültigen Fenster-Identifier. Eine Liste der gültigen Werte finden Sie unter MapForceControlPlaceholderWindow.

8.Fügen Sie, wie unten gezeigt, Befehle zu Ihrer Applikation hinzu (Sie benötigen zumindest Befehle zum Öffnen, Speichern und Schließen von Dokumenten).

 

Abfragen von MapForce-Befehlen

Bei einer Integration auf Dokumentebene stehen in Ihrer Applikation kein MapForce-Menü- und keine MapForce-Symbolleiste zur Verfügung. Sie können statt dessen die benötigten Befehle aufrufen, deren Status anzeigen und diese programmatisch ausführen, wie folgt:

 

Um alle verfügbaren Befehle abzurufen, verwenden Sie die Eigenschaft CommandsList des MapForceControl.

Um die Befehle, geordnet nach ihrer Menüstruktur abzurufen, verwenden Sie die Eigenschaft MainMenu.

Um die Befehle, geordnet nach der Symbolleiste, in der sie vorkommen, abzurufen, verwenden Sie die Eigenschaft Toolbars.

Um Befehle an MapForce zu senden, verwenden Sie die Methode Exec.

Um abzufragen, ob ein Befehl gerade aktiviert oder deaktiviert ist, verwenden Sie die Methode QueryStatus.

 

Auf diese Art können Sie MapForce-Befehle flexibel in die Menüs und Symbolleisten Ihrer Applikation integrieren.

 

Über Ihre Installation von MapForce stehen Ihnen auch Symbole für in MapForce verwendete Befehle zur Verfügung. Im Ordner <Applicationsordner>\Examples\ActiveX\Images Ihrer MapForce-Installation finden Sie Symbole im GIF-Format. Die Dateinamen entsprechen den im Abschnitt Befehlsreferenz aufgelisteten Befehlsnamen.

 

Allgemeines

Um das Verhalten von MapForce zu automatisieren, verwenden Sie die für MapForceControl, MapForceControl Document und MapForceControl Placeholder beschriebenen Eigenschaften, Methoden und Ereignisse.

 

Für einen komplexeren Zugriff auf MapForce-Funktionalitäten sollten Sie die folgenden Eigenschaften verwenden:

 

MapForceControl.Application

MapForceControlDocument.Document

MapForceControlPlaceHolder.Project

 

Über diese Eigenschaften erhalten Sie Zugriff auf die MapForce Automation-Schnittstelle (<%APPAPI%)

 

Anmerkung:Verwenden zum Öffnen eines Dokuments immer MapForceControlDocument.Open oder MapForceControlDocument.New für das entsprechenden Dokument-Control. Verwenden Sie zum Öffnen eines Projekts immer MapForceControlPlaceHolder.OpenProject in einem Placeholder Control, das ein MapForce-Projektfenster einbettet.

 

Beispiele, wie Sie die erforderlichen Controls in unterschiedlichen Programmierumgebungen instantiieren und aufrufen finden Sie unter Beispiele zur ActiveX-Integration.

© 2017-2023 Altova GmbH