Einführung in die InfoPath-Entwicklung

Veröffentlicht: 18. Aug 2003 | Aktualisiert: 27. Jun 2004

Von Acey James Bunch

Auf dieser Seite

Einführung Einführung
Überblick über die InfoPath-Entwicklungskomponenten Überblick über die InfoPath-Entwicklungskomponenten
Überblick über die Programmierumgebung Überblick über die Programmierumgebung
Überblick über das InfoPath-Objektmodell Überblick über das InfoPath-Objektmodell
Überblick über die InfoPath-Formulardefinitionsdatei Überblick über die InfoPath-Formulardefinitionsdatei
Zentrale Bereiche der InfoPath-Entwicklung Zentrale Bereiche der InfoPath-Entwicklung
Entwickeln eines einfachen Formulars Entwickeln eines einfachen Formulars
Schlussfolgerung Schlussfolgerung
Referenzmaterial Referenzmaterial

Einführung

Sie haben mittlerweile wahrscheinlich schon von der neuesten Erweiterung des Microsoft Office-Systems gehört. Bei Microsoft® Office InfoPathT handelt es sich um eine Desktopanwendung, mit der Sie vielseitige, dynamische Formulare entwickeln können, die auf XML (Extensible Markup Language) basieren. Was Sie vielleicht noch nicht gehört haben, ist die Tatsache, dass InfoPath wie viele andere Office-Anwendungen auch ein robustes Programmiermodell und eine stabile Entwicklungsumgebung unterstützt. Dieser Artikel bietet eine Einführung in die InfoPath-Entwicklung und enthält einen Überblick über die wichtigsten Entwicklungskomponenten, Informationen zur Entwicklungsumgebung, eine Beschreibung des Objektmodells und der Formulardefinitionsdatei sowie eine Erläuterung der zentralen Entwicklungsbereiche.

 

Überblick über die InfoPath-Entwicklungskomponenten

Bei der Entwicklung einer benutzerdefinierten Lösung mithilfe einer Office-Anwendung arbeiten Sie größtenteils mit Entwicklungskomponenten, wie etwa einem Programmiermodell, einem Objektmodell und verschiedenen Ereignissen, die bei Verwendung der Anwendung auftreten. Die Arbeit mit InfoPath ist in dieser Hinsicht ähnlich, jedoch verfügt das Programm zudem über einige einzigartige Entwicklungskomponenten.

Die Programmierumgebung
Die meisten Office-Anwendungen verwenden Microsoft Visual Basic® für Applikationen als ihre primäre Entwicklungsumgebung (IDE, Integrated Development Environment). InfoPath hingegen verwendet den Microsoft Skript-Editor (MSE) als primäre Entwicklungsumgebung. Dies bedeutet, dass Sie bei der Entwicklung eines InfoPath-Formulars nicht Visual Basic als Programmiersprache verwenden, sondern stattdessen eine Skriptsprache.

InfoPath unterstützt die Skriptsprachen Microsoft JScript® und Microsoft VBScript®. Mithilfe dieser Skriptsprachen können Sie die Funktionalität Ihrer InfoPath-Formulare erweitern und anpassen.

Anmerkung Der Microsoft Skript-Editor wird weiter unten in diesem Artikel ausführlicher erläutert.

Das Objektmodell
Wie andere Office-Anwendungen enthält auch InfoPath ein robustes Objektmodell, das zur Interaktion mit der Anwendung, seinen Formularen und den darin enthaltenen Daten dient. Das InfoPath-Objektmodell enthält auch Eigenschaften, mit denen Verweise auf das XML-DOM (Document Object Model) zurückgegeben werden. Das DOM interagiert mit den XML-Dokumenten (oder -Dateien), die in einem InfoPath-Formular verwendet werden, einschließlich der XML-Daten, die von einem InfoPath-Formular erzeugt werden.

Das übergeordnete Objekt des InfoPath-Objektmodells ist das Application-Objekt, über das Sie Zugriff auf andere Objekte erhalten, die im Objektmodell enthalten sind. Zu den anderen zentralen Objekten des InfoPath-Objektmodells gehören das Window-Objekt, mit dem auf verschiedene Komponenten der InfoPath-Benutzeroberfläche zugegriffen werden kann, und das XDocument-Objekt, mit dem auf verschiedene Komponenten eines Formulars und sein zugrunde liegendes XML-Dokument zugegriffen werden kann.

Ein Hauptunterschied zwischen dem InfoPath-Objektmodell und anderen Objektmodellen für Office-Anwendungen besteht darin, dass InfoPath keine vollständige Automatisierung unterstützt. Es ist nicht möglich, das InfoPath-Objektmodell für die programmtechnische Erstellung eines InfoPath-Formulars zu verwenden. Das InfoPath-Objektmodell enthält jedoch das ExternalApplication-Objekt, mit dem eine begrenzte Anzahl von Operationen innerhalb von InfoPath wie das Öffnen, Registrieren und Schließen eines Formulars durchgeführt werden kann.

Anmerkung Das InfoPath-Objektmodell wird weiter unten in diesem Artikel ausführlicher erläutert.

Die Formulardefinitionsdatei
Einmalig für InfoPath ist die Formulardefinitionsdatei bzw. XSF-Datei Bei der XSF-Datei handelt es sich um eine XML-Datei, die als Manifest eines InfoPath-Formulars dient. Die manifest.xsf-Datei dient zur Verknüpfung von Informationen darüber, wie das Formular konstruiert, verwendet und weitergegeben wird. Die XSF-Datei wird von InfoPath automatisch beim Entwerfen eines Formulars erstellt und wird zusammen mit den anderen Formulardateien in einer XSN-Datei verpackt.

Allgemein sollten die Informationen, die in der XSF-Datei enthalten sind, ausschließlich von InfoPath erstellt werden. Jedoch besteht die Möglichkeit, einige Änderungen direkt an der XSF-Datei durchzuführen, um die Funktionalität eines Formulars zu erweitern. Da die XSF-Datei ein Standard-XML-Format besitzt, kann sie direkt mit einem beliebigen Standard-Text-Editor wie etwa dem Microsoft Editor bearbeitet werden.

Anmerkung Die InfoPath-Formulardefinitionsdatei wird weiter unten in diesem Artikel ausführlicher erläutert.

Die Formulardateien
Ein InfoPath-Formular wird durch Verwendung einer Vielzahl unterschiedlicher Dateitypen implementiert, die zusammen als "Formulardateien" bezeichnet werden. Die Formulardateien umfassen alle Dateien, die zur Erstellung einer InfoPath-Formularvorlage (eine InfoPath-Datei mit der Erweiterung .xsn) verwendet werden. Zu den Formulardateien gehören die XSF-Datei, XML-Schemas, XML-Vorlagen sowie Ansichts-, Präsentations-, Skript- und benutzerdefinierte Geschäftslogikdateien.

In der folgenden Tabelle werden die Formulardateien beschrieben und ihre Erweiterungen aufgeführt.

Name

Erweiterung

Beschreibung

Formulardefinition

.xsf

Eine von InfoPath generierte Datei, die Informationen über alle anderen im Formular verwendeten Dateien und Komponenten enthält. Die Datei dient als das Manifest für das Formular.

XML-Schema

.xsd

Die XML-Schemadateien, die zur Einschränkung und Überprüfung der XML-Dokumentdateien dienen, die einem Formular zugrunde liegen.

Ansicht

.xsl

Die Präsentations-Stylesheetdateien, die zur Darstellung, Anzeige und Transformation der Daten dienen, die in den XML-Dokumentdateien enthalten sind, die einem Formular zugrunde liegen.

XML-Vorlage

.xml

Die XML-Datei, die die Standarddaten enthält, die in einer Ansicht bei Erstellung eines neuen Formulars angezeigt werden.

Darstellung

.htm, .gif, .bmp und andere

Die Dateien, die der Erstellung von benutzerdefinierten Benutzeroberflächenelementen dienen.

Geschäftslogik

.js, .vbs

Die Skriptdateien (JScript und VBScript), die Programmcode enthalten, der zur Implementierung einer bestimmten Bearbeitungsfunktionsweise, der Gültigkeitsprüfung, der Ereignishandler, der Datenflusssteuerung und anderer benutzerdefinierter Geschäftslogik dient.

Binär

.dll, .exe

Die benutzerdefinierten COM-Komponenten (Component Object Model), die zusätzliche Geschäftslogik bieten. Dabei handelt es sich um externe Dateien der Formularvorlagendatei, die separat registriert werden müssen.

Formularvorlage

.xsn

Das komprimierte Dateiformat (.cab), das alle Formulardateien in einer Datei verpackt.

Anmerkung InfoPath verpackt die InfoPath-Formulardateien automatisch als XSN-Datei. Dabei handelt es sich einfach um eine CAB-Datei, die eine .xsn-Erweiterung verwendet. Sie können diese Dateien in einen Ordner auf Ihrer Festplatte extrahieren, indem Sie beim Entwerfen des Formulars im Menü File (Datei) auf Extract Form Files (Formulardateien extrahieren) klicken.

Die Ereignisse
Wie andere Office-Anwendungen implementiert InfoPath eine Reihe von Ereignissen, mit denen auf einen Anwendungsstatus oder eine vom Benutzer initiierte Aktion geantwortet werden kann. Weiterhin werden Ereignisse implementiert, die auf Änderungen im XML-Dokument reagieren, das einem Formular zugrunde liegt.

Es gibt im Wesentlichen zwei Arten von InfoPath-Ereignissen: Formularereignisse und Gültigkeitsprüfungsereignisse. Formularereignisse antworten auf den Status der Anwendung oder einer vom Benutzer initiierten Aktion, und Gültigkeitsprüfungsereignisse antworten auf Änderungen in einem XML-Dokument, das einem Formular zugrunde liegt.

Die folgende Tabelle enthält eine Liste der einzelnen InfoPath-Ereignisse und beschreibt, auf welche Situationen diese antworten können:

Ereignis

Typ

Beschreibung

OnLoad

Formular

Dient zum Initialisieren des Formulars beim Öffnen. Dieses Ereignis tritt vor der Anzeige der ersten Ansicht auf.

OnSwitchView

Formular

Wird beim Wechseln von einer Ansicht in eine andere verwendet. Dieses Ereignis tritt auf, wenn Benutzer die Ansicht ändern, oder beim ersten Laden einer Ansicht.

OnBeforeChange

Gültigkeitsprüfung

Wird verwendet, nachdem Änderungen an dem XML-Dokument durchgeführt wurden, das einem Formular zugrunde liegt, jedoch bevor die Änderungen akzeptiert wurden.

OnValidate

Gültigkeitsprüfung

Wird verwendet, nachdem Änderungen an dem XML-Dokument akzeptiert wurden, das einem Formular zugrunde liegt, jedoch vor Auftreten des OnAfterChange-Ereignisses.

OnAfterChange

Gültigkeitsprüfung

Wird verwendet, nachdem Änderungen an dem XML-Dokument akzeptiert wurden, das einem Formular zugrunde liegt, und nachdem das OnValidate-Ereignis aufgetreten ist.

OnSubmitRequest

Formular

Wird verwendet, wenn der Sendevorgang entweder über die InfoPath-Benutzeroberfläche oder durch Verwendung der Submit-Methode des XDocument-Objekts im InfoPath-Objektmodell aufgerufen wird.

OnVersionUpgrade

Formular

Dient der Überprüfung, ob die Versionsnummer des geöffneten Formulars der Versionsnummer der Formularvorlage entspricht, mit der es geöffnet wird. Dieses Ereignis tritt auf, falls die Versionsnummern nicht übereinstimmen. Mithilfe von Skriptcode kann dann das Formular aktualisiert oder eine Fehlermeldung angezeigt werden.

OnAfterImport

Formular

Dient der Weiterverarbeitung, nachdem ein Formular mit einem anderen zusammengeführt wurde. Dieses Ereignis tritt auf, nachdem Daten aus einem anderen Formular importiert wurden. Mithilfe von Skriptcode kann die entsprechende Ansicht auf der Basis der zusammengeführten Daten festgelegt werden, die im Formular enthalten sind.

OnClick

Formular

Wird verwendet, um auf das Klicken auf eine Schaltfläche in einem Formular zu reagieren.

Anmerkung In einigen Fällen kann die Gültigkeitsprüfung mehrmals auftreten. Wenn Benutzer beispielsweise neue Daten einfügen, treten die Ereignisse OnBeforeChange und OnAfterChange jeweils einmal pro Einfügeoperation auf. Beim Aktualisieren vorhandener Daten treten die Ereignisse jedoch zweimal als Löschoperation auf, und anschließend tritt eine Einfügeoperation auf.

InfoPath implementiert auch Ereignisobjekte, die als Parameter an jedes dieser Ereignisse übergeben werden. Mit diesen Ereignisobjekten erhalten Sie einen Verweis auf das XML-Dokument, das dem Formular zugrunde liegt, geben den Status des Ereignisses, Informationen über einen XML-Knoten während einer XML-DOM-Änderung (Document Object Model) sowie einen Fehler zurück. Die in den Ereignisobjekten verfügbaren Eigenschaften und Methoden hängen davon ab, welche Ereignisse Sie verwenden.

Die folgende Tabelle enthält eine Zusammenfassung der Ereignisobjekte, der Ereignisse, mit denen sie verknüpft sind, und der Funktionalität, die die Ereignisobjekte bieten.

Ereignisobjekt

Ereignis

Beschreibung

DocEvent

OnSwitchView, OnAfterImport

Gibt einen Verweis auf das zugrunde liegende XML-Dokument eines Formulars während einer Ansichtsänderungs- oder Formularzusammenführungs-Operation zurück.

DocReturnEvent

OnLoad, OnSubmitRequest

Gibt einen Verweis auf das zugrunde liegende XML-Dokument eines Formulars zurück sowie den Rückgabestatus während des Ladens oder Sendens eines Formulars.

VersionUpgradeEvent

OnVersionUpgrade

Gibt einen Verweis auf das zugrunde liegende XML-Dokument eines Formulars zurück, den Rückgabestatus sowie die Dokument- und Lösungsversionsnummern während der Versionsaktualisierung.

DataDOMEvent

OnBeforeChange, OnValidate, OnAfterChange

Gibt einen Verweis auf das zugrunde liegende XML-Dokument eines Formulars zurück, den Rückgabestatus und andere Eigenschaften, die Informationen über den XML-Knoten während einer XML-DOM-Änderung enthalten. Enthält außerdem eine Methode zum Auslösen eines Fehlers.

DocActionEvent

OnClick

Gibt einen Verweis auf das zugrunde liegende XML-Dokument eines Formulars zurück, den Rückgabestatus sowie den Quell-XML-Knoten während des Klickens auf eine Schaltfläche in einem Formular.

 

Überblick über die Programmierumgebung

Wie bereits erwähnt, ist die Programmierumgebung für InfoPath der Microsoft Skript-Editor (MSE), während Microsoft JScript und VBScript die Programmiersprachen sind, die in MSE zum Entwerfen der benutzerdefinierten Geschäftslogik für ein Formular verwendet werden. Die Arbeit mit MSE in InfoPath umfasst eine Reihe von Aufgaben, wie das Festlegen der Standardprogrammiersprache, das Starten von MSE, das Erstellen von Ereignishandlern, das Debuggen von Skriptcode, die Verwendung des Objektbrowsers und das gelegentliche Aufrufen der Programmierhilfe.

Festlegen der Standardprogrammiersprache
Um die in einem Formular verwendete Skriptsprache festzulegen, klicken Sie im InfoPath-Entwurfsmodus im Menü Tools (Extras) auf Form Options (Formularoptionen), und wählen Sie anschließend im Dialogfeld Form Options (Formularoptionen) auf der Registerkarte Advanced (Erweitert) die Skriptsprache in der Liste Form script language (Formularskriptsprache) aus, wie in Abbildung 1 dargestellt. Nachdem Sie die Standardskriptsprache ausgewählt und den ersten Programmcode erstellt haben, können Sie die in einem Formular verwendete Skriptsprache nicht mehr ändern, da die Liste Form script language (Formularskriptsprache) deaktiviert ist.

odc_inintro1.gif

Abbildung 1. Erweiterte Formularoptionen

Anmerkung Obwohl InfoPath die Verwendung von entweder JScript oder VBScript in einem Formular unterstützt, können die beiden Programmiersprachen in einem einzelnen Formular nicht gemischt werden.

Starten von MSE
Um die Funktionalität eines Formulars mithilfe von Skriptcode zu erweitern, muss das Formular im InfoPath-Entwurfsmodus geöffnet sein, damit Sie MSE starten können. Wenn das Formular im Entwurfsmodus geöffnet ist, gibt es verschiedene Methoden zum Starten von MSE:

  • Zeigen Sie im Menü Tools (Extras) auf Script (Skript), und klicken Sie anschließend auf Microsoft Script Editor (Microsoft Skript-Editor).

  • Drücken Sie ALT+UMSCHALT+F11.

  • Wählen Sie die Erstellung oder Bearbeitung eines Ereignishandlers im Untermenü Script (Skript) des Menüs Tools (Extras).

  • Wählen Sie die Erstellung oder Bearbeitung eines Ereignishandlers in einem InfoPath-Dialogfeld.

Anmerkung Auf bestimmte InfoPath-Ereignishandler kann über Dialogfelder zugegriffen werden, die über das Menü Tools (Extras) geöffnet werden, oder über die Dialogfelder Properties (Eigenschaften), die mit einigen der InfoPath-Steuerelemente verknüpft sind, die Sie beim Entwerfen eines Formulars verwenden. Dies wird ausführlicher im nächsten Abschnitt behandelt.

Wenn Sie MSE im InfoPath-Entwurfsmodus öffnen, wird der MSE-Code-Editor angezeigt, und die Standardskriptdatei des Formulars (entweder mit einer JS- oder VBS-Erweiterung, je nach der für das Formular festgelegten Standardskriptsprache) wird im Codebearbeitungsfenster angezeigt.

Erstellen von Ereignishandlern
Beim Schreiben von Skriptcode als Antwort auf ein spezifisches InfoPath-Ereignis müssen Sie zunächst einen Ereignishandler erstellen. Dabei handelt es sich um eine Funktionsdeklaration, die InfoPath in der primären Skriptdatei eines Formulars erstellt. Ereignishandler werden in der Benutzeroberfläche des Entwurfsmodus erstellt. Diese Vorgehensweise ist deshalb notwendig, weil InfoPath die Funktionsdeklarationen für die Ereignisse erstellt sowie die erforderlichen Einträge in der XSF-Datei vornimmt, die dem Formular die Verwendung von Ereignishandlern ermöglichen.

Anmerkung Es ist zwar möglich, Ereignishandler manuell in der Skriptdatei zu erstellen und anschließend Einträge direkt in der XSF-Datei vorzunehmen, jedoch wird dies nicht empfohlen. Beim manuellen Erstellen von Ereignishandlern könnten Ungenauigkeiten auftreten, was zu Fehlfunktionen im Formular führen könnte.

Die Art und Weise, wie Sie den Ereignishandler erstellen, hängt vom Ereignistyp ab, den Sie verwenden möchten. Einige Ereignishandler werden über das Untermenü Script (Skript) des Menüs Tools (Extras) erstellt, und andere werden unter Verwendung der verschiedenen Dialogfelder von InfoPath erstellt.

Die folgende Tabelle enthält eine Liste der einzelnen InfoPath-Ereignishandler und beschreibt die Schritte für ihre Erstellung.

Ereignishandler

Schritte

OnLoad

Zeigen Sie im Menü Tools (Extras) auf Script (Skript), und klicken Sie anschließend auf On Load Event.

OnSwitchView

Zeigen Sie im Menü Tools (Extras) auf Script (Skript), und klicken Sie anschließend auf On Switch Views Event.

OnBeforeChange

Klicken Sie in der Liste Events (Ereignisse) des Dialogfelds Data Validation (Gültigkeitsprüfung) (wird geöffnet über die Registerkarte Data (Daten) des Dialogfelds Properties (Eigenschaften) eines Steuerelements oder das Menü Format), auf OnBeforeChange.

Der OnBeforeChange-Ereignishandler lässt sich auch erstellen, indem Sie im Dialogfeld Field or Group Properties (Feld- oder Gruppeneigenschaften) eines Steuerelements auf die Registerkarte Validation and Script (Gültigkeitsprüfung und Skript) klicken und anschließend auf OnBeforeChange in der Liste Events (Ereignisse) klicken.

OnValidate

Klicken Sie in der Liste Events (Ereignisse) des Dialogfelds Data Validation (Gültigkeitsprüfung) (wird geöffnet über die Registerkarte Data (Daten) des Dialogfelds Properties (Eigenschaften) eines Steuerelements oder das Menü Format) auf
OnValidate.

Der OnValidate-Ereignishandler lässt sich auch erstellen, indem Sie im Dialogfeld Field or Group Properties (Feld- oder Gruppeneigenschaften) eines Steuerelements auf die Registerkarte Validation and Script (Gültigkeitsprüfung und Skript) klicken und anschließend auf OnValidate in der Liste Events (Ereignisse) klicken.

OnAfterChange

Klicken Sie in der Liste Events (Ereignisse) des Dialogfelds Data Validation (Gültigkeitsprüfung) (wird geöffnet über die Registerkarte Data (Daten) des Dialogfelds Properties (Eigenschaften) eines Steuerelements oder das Menü Format) auf OnAfterChange.

Der OnAfterChange-Ereignishandler lässt sich auch erstellen, indem Sie im Dialogfeld Field or Group Properties (Feld- oder Gruppeneigenschaften) eines Steuerelements auf die Registerkarte Validation and Script (Gültigkeitsprüfung und Skript) klicken und anschließend auf OnAfterChange in der Liste Events (Ereignisse) klicken.

OnSubmitRequest

Klicken Sie im Menü Tools (Extras) auf Submitting Forms (Formulare absenden). Klicken Sie im Dialogfeld Submitting Forms (Formulare absenden) in der Liste Submit (Absenden) auf Submit using custom script (Senden mittels benutzerdefiniertem Skript).

OnVersionUpgrade

Klicken Sie im Menü Tools (Extras) auf Form Options (Formularoptionen). Klicken Sie im Dialogfeld Form Options (Formularoptionen) auf die Registerkarte Advanced (Erweitert), und klicken Sie anschließend in der Liste On version upgrade (Bei Versionsaktualisierung) auf Use script event (Skriptereignisse verwenden).

OnAfterImport

Dieser Ereignishandler bildet eine Ausnahme und kann nicht in der Benutzeroberfläche des Entwurfsmodus erstellt werden. Seine Erstellung muss manuell erfolgen.

OnClick

Klicken Sie im Dialogfeld Button Properties (Schaltflächeneigenschaften) für das Schaltflächensteuerelement auf Microsoft Script Editor (Microsoft Skript-Editor).

Bei der Programmierung eines Ereignishandlers im InfoPath-Formularentwurfsmodus erstellt InfoPath die Deklaration des Ereignishandlers in der primären Skriptdatei des Formulars und öffnet anschließend MSE, wo der neu erstellte Ereignishandler im Codebearbeitungsfenster angezeigt wird. In der Deklaration des Ereignishandlers verwendet InfoPath eventObj als den Namen des Parameters, der an den Ereignishandler übergeben wird. Dieser Parameter enthält einen Verweis auf das Ereignisobjekt, das mit dem Ereignishandler verknüpft ist.

Wenn Sie beispielsweise ein OnLoad-Ereignis im Entwurfsmodus erstellen, wird der OnLoad-Ereignishandler in der Skriptdatei erstellt und anschließend MSE geöffnet, damit Sie Ihren eigenen Skriptcode in der Deklaration des Ereignishandlers erstellen können.

Wenn Sie JScript als Standardskriptsprache verwenden, wird der OnLoad-Ereignishandler wie folgt deklariert:

//=======  
// The following function handler is created by Microsoft Office 
// InfoPath. Do not modify the name of the function, or the name  
// and number of arguments.  
//=======  
function XDocument::OnLoad(eventObj) 
{ 
   // Write your code here 
}

Wenn Sie VBScript als Standardskriptsprache verwenden, wird der OnLoad-Ereignishandler wie folgt deklariert:

//=======  
// The following function handler is created by Microsoft Office 
// InfoPath. Do not modify the name of the function, or the name  
// and number of arguments.  
//=======  
Sub XDocument_OnLoad(eventObj) 
   ' Write your code here 
End Sub

Anmerkung Ändern Sie nach der Erstellung von InfoPath-Ereignishandlern ihre Deklaration nicht, da dies zu Fehlfunktionen im Formular führen könnte.

Debuggen von Skriptcode
Ein allgemeines Merkmal integrierter Entwicklungsumgebungen ist die Fähigkeit, den erstellten Code zu debuggen. Das Debuggen von Programmcode kann entweder durchgeführt werden, wenn ein Fehler auftritt, oder durch Setzen eines Haltepunkts im Code, der den Debugger anweist, die Programmausführung anzuhalten. Dies ermöglicht eine schrittweise Ausführung des Codes und eine Untersuchung seiner Funktionsweise.

Zum Debuggen des Codes, der zur Anpassung eines InfoPath-Formulars verwendet wird, können Sie eine Programmierdebuganweisung im Code verwenden. In JScript verwenden Sie die debugger;-Anweisung; in VBScript die Stop-Anweisung. Nach Eingabe einer Debuganweisung in den Code speichern Sie diesen und zeigen eine Vorschau des Formulars an.

Das folgende Beispiel demonstriert die Verwendung der Debuganweisung im OnLoad-Ereignishandler durch Verwendung von JScript-Syntax.

function XDocument::OnLoad(eventObj) 
{ 
   debugger; 
}

Wenn Sie VBScript als Standardskriptsprache verwenden, kann die Debuganweisung wie folgt eingesetzt werden:

Sub XDocument_OnLoad(eventObj) 
   Stop 
End Sub

Anmerkung Stellen Sie bei der Verwendung von Skriptdebugging sicher, dass in Microsoft Internet Explorer im Dialogfeld Internetoptionen auf der Registerkarte Erweitert das Kontrollkästchen Skriptdebugging deaktivieren deaktiviert ist. Sie öffnen dieses Dialogfeld, indem Sie im Menü Extras von Internet Explorer auf Internetoptionen klicken.

Wenn Sie ein Formular mit einer Debuganweisung öffnen oder eine Vorschau davon anzeigen, wird das Dialogfeld Just-In-Time Debugging angezeigt, in dem Sie zur Auswahl des gewünschten Debuggers aufgefordert werden, wie in Abbildung 2 angezeigt. Klicken Sie auf New instance of Microsoft Script Editor (Neue Instanz von Microsoft Skript-Editor) und anschließend auf Yes (Ja). Das Dialogfeld Step Into Remote Procedure Call (Remoteprozeduraufruf schrittweise ausführen) wird angezeigt, in dem Sie den Programmtyp zum Debuggen auswählen können. Klicken Sie auf Script (Skript) und anschließend auf OK. MSE wird daraufhin im Debugmodus geöffnet. Ein gelber Pfeil zeigt an, an welcher Stelle die Programmausführung angehalten wurde.

odc_inintro2.gif

Abbildung 2. Das Dialogfeld "Just-In-Time Debugging"

Wenn sich MSE im Debugmodus befindet, können Sie alle verfügbaren Debugfunktionen verwenden, wie etwa das Setzen von Haltepunkten, die schrittweise Ausführung von Programmanweisungen sowie die Anzeige beliebiger Debugfenster wie Watch, Immediate und Call Stack.

Um das Debuggen des Skriptcodes anzuhalten, klicken Sie im Menu Debug (Debuggen) auf Stop Debugging (Debuggen beenden), oder drücken Sie UMSCHALT+F5.

Anmerkung Sie können das Debuggen auch bei Auftreten eines Fehlers im Code durchführen, wenn Sie das Formular verwenden oder eine Vorschau davon anzeigen.

Verwenden des Objektbrowsers
Ähnlich der Programmierumgebung von Visual Basic für Applikationen (VBA) bietet MSE ebenfalls einen Objektbrowser, mit dem Sie den Inhalt des InfoPath-Objektmodells untersuchen können. Mit dem Objektbrowser können Sie alle Objekte des InfoPath-Objektmodells anzeigen sowie alle Eigenschaften, Methoden und Ereignisse, die mit diesen verknüpft sind.

Um den MSE-Objektbrowser (siehe Abbildung 3) zu öffnen, führen Sie einen der folgenden Schritte aus:

  • Zeigen Sie im Menü View (Ansicht) auf Other Windows (Andere Fenster), und klicken Sie anschließend auf Object Browser (Objektbrowser).

  • Drücken Sie STRG+ALT+J.

  • Klicken Sie in der Symbolleiste Standard auf Objekt Browser (Objektbrowser).

odc_inintro3.gif

Abbildung 3. Der MSE-Objektbrowser

Falls das InfoPath-Objektmodell nicht im MSE-Objektbrowser angezeigt wird, gehen Sie wie folgt vor:

  1. Öffnen Sie den MSE-Objektbrowser.

  2. Klicken Sie im Fenster des Objektbrowsers auf Customize (Anpassen).

  3. Klicken Sie im Dialogfeld Selected Components (Ausgewählte Komponenten) in der Komponentenliste auf den Knoten Other Packages and Libraries (Andere Pakete und Bibliotheken), um diesen zu erweitern.

  4. Falls InfoPath - Microsoft Office InfoPath 1.0 Type Library in der Liste angezeigt wird, aktivieren Sie das entsprechende Kontrollkästchen, und klicken Sie auf OK. Falls nicht, fahren Sie mit dem nächsten Schritt fort.

  5. Klicken Sie auf Add (Hinzufügen).

  6. Markieren Sie im Dialogfeld Component Selector (Komponentenauswahl) den Eintrag Microsoft InfoPath 1.0 Type Library, klicken Sie auf Select (Auswählen), und klicken Sie auf OK, um das Dialogfeld zu schließen.

  7. Stellen Sie sicher, das der Eintrag InfoPath - Microsoft Office InfoPath 1.0 Type Library im Dialogfeld Selected Components (Ausgewählte Komponenten) angezeigt und markiert ist, und klicken Sie anschließend auf OK.

Aufrufen von Programmierhilfe
Bei der Entwicklung einer benutzerdefinierten Lösung mit InfoPath oder einer anderen Office-Anwendung ist es häufig nützlich, nach entwicklerorientierten Hilfeinhalten zu suchen, die Ihnen beim Verständnis der Anwendung oder der Lösung bestimmter Entwicklungsprobleme helfen können. InfoPath enthält eine Vielzahl von Hilfeinhalten, die Formularentwickler bei der Anpassung und Erweiterung der von ihnen entworfenen Formulare unterstützen sollen. Die primären Hilferessourcen für die InfoPath-Formularentwicklung sind die InfoPath-Entwickerreferenz, das MSE-Hilfesystem und verschiedene Onlineressourcen.

Die InfoPath-Entwickerreferenz
Die folgenden Ressourcen sind in der InfoPath-Entwickerreferenz enthalten, die im InfoPath-Hilfesystem und im MSE-Hilfesystem verfügbar ist.

  • Programmierkonzepte Diese Themensammlung enthält konzeptionelle Informationen über die InfoPath-Programmierung, einschließlich Informationen über das InfoPath-Objektmodell und die XSF-Datei.

  • Beispielformulare für Entwickler Diese Themensammlung enthält Dokumentation für die fünf Entwickerbeispielformulare, die mit InfoPath installiert werden und einige der Hauptfunktionen der InfoPath-Formularentwicklung demonstrieren.

  • InfoPath-Objektmodellreferenz Diese Themensammlung enthält eine vollständige Dokumentation des InfoPath-Objektmodells, einschließlich aller Auflistungen, Objekte, Eigenschaften, Methoden, Ereignisse und Enumerationen.

    Anmerkung Das InfoPath-Objektmodell unterstützt die F1-Kontexthilfe: Wenn Sie im MSE-Codebearbeitungsfenster die Einfügemarke in ein bestimmtes Objektmodellelement setzen und die F1-Taste drücken, wird das Referenzthema für dieses Element angezeigt.

  • InfoPath-XSF-Referenz Diese Themensammlung enthält eine vollständige Dokumentation der InfoPath-XSF-Datei, einschließlich ihrer Namespaces, Gruppen, Typen, Elemente und Attribute.

Das MSE-Hifesystem
Die folgenden Ressourcen sind im MSE-Hilfesystem enthalten, das bei der Arbeit in MSE zur Verfügung steht.

  • Microsoft Skript-Editor-Hilfe Diese Themensammlung enthält Informationen über die Verwendung von MSE, von der Anpassung des Skript-Editors bis hin zu Debuggingverfahren.

  • Microsoft XML Core Services (MSXML) 5.0 SDK Diese Themensammlung enthält Informationen über die Verwendung von XML, das XML-DOM (Document Object Model), XML-Schemas, XSL Transformation (XSLT) und XPath. Es enthält verschiedene Entwicklerhandbücher und Sprachreferenzen, in denen die einzelnen XML-basierten Technologien erläutert werden.

  • JScript-Referenz Diese Themensammlung enthält Informationen über die Verwendung der Microsoft JScript-Programmiersprache, einschließlich einer Sprachreferenz und eines Lernprogramms.

  • VBScript-Referenz Diese Themensammlung enthält Informationen über die Verwendung der Microsoft VBScript-Programmiersprache, einschließlich einer Sprachreferenz und eines Lernprogramms.

Onlineressourcen
Neben den in InfoPath enthaltenen Hilferessourcen stehen noch eine Reihe von Onlineressourcen zur Verfügung:

 

Überblick über das InfoPath-Objektmodell

InfoPath verfügt über ein COM-basiertes Objektmodell, das zur Interaktion mit InfoPath-Formularen und den zugrunde liegenden XML-Dokumenten dient. Es ist anderen Objektmodellen von Office-Anwendungen insofern ähnlich, als es Schnittstellen für Auflistungen, Objekte, Eigenschaften, Methoden und Ereignisse implementiert. Das InfoPath-Objektmodell unterstützt jedoch nur eine begrenzte Anzahl von Methoden für die Automatisierung der InfoPath-Anwendung.

Funktionsbereich des Objektmodells
Das InfoPath-Objektmodell enthält Objekte, die die zentralen Funktionsbereiche eines InfoPath-Formulars repräsentieren, mit denen Sie programmtechnisch interagieren können. Die folgende Tabelle enthält Beschreibungen einiger dieser zentralen Objekte:

Object

Beschreibung

Application

Das Application-Objekt ist das übergeordnete Objekt im InfoPath-Objektmodell. Es enthält eine Reihe von Eigenschaften und Methoden, mit denen auf Low-Level-Auflistungen und -Objekte im Objektmodell zugegriffen werden kann und eine Vielzahl allgemeiner Funktionen durchgeführt werden können.

Window

Das Window-Objekt bietet eine Anzahl von Eigenschaften und Methoden, die zur programmtechnischen Interaktion mit InfoPath-Fenstern dienen, einschließlich der Möglichkeit, ein Fenster zu aktivieren oder zu schließen sowie der Möglichkeit, mit den darin enthaltenen Aufgabenbereichen und Befehlsleisten zu interagieren. Das Window-Objekt enthält auch eine Eigenschaft für den Zugriff auf das zugrunde liegende XML-Dokument des Formulars, das mit dem Fenster verknüpft ist.

XDocument

Das XDocument-Objekt enthält eine Reihe von Eigenschaften, Methoden und Ereignissen, die eine programmtechnische Interaktion mit den XML-Quelldaten eines Formulars sowie deren Bearbeitung ermöglichen.

MailEnvelope

Das MailEnvelope-Objekt bietet eine Reihe von Eigenschaften zur programmtechnischen Erstellung einer E-Mail-Nachricht in Microsoft Office Outlook® 2003, mit denen das aktuell geöffnete InfoPath-Formular an die Nachricht angehängt werden kann.

TaskPane

Das TaskPane-Objekt enthält eine Reihe von Eigenschaften für die Arbeit mit den integrierten und benutzerdefinierten Aufgabenbereichen von InfoPath.

DataObject

Das DataObject-Objekt enthält Eigenschaften und Methoden, die eine programmtechnische Interaktion mit Datenadapterobjekten ermöglichen. Dazu gehört u.a. das Abrufen von Informationen über die Datenadapterobjekte und der Zugriff auf die Daten, mit denen diese eine Verbindung herstellen.

Error

Das Error-Objekt enthält eine Reihe von Eigenschaften, die eine programmtechnische Interaktion mit einem von InfoPath generierten Fehler ermöglichen.

Solution

Das Solution-Objekt enthält verschiedene Eigenschaften zum Abrufen von Informationen über eine Formularvorlage, einschließlich ihrer Versionsnummer, des URL ihrer extrahierten Formulardateien, des URL, von dem diese geladen wurden, sowie eines XML-DOM (Document Object Model) mit ihrer XSF-Datei.

UI

Das UI-Objekt (User Interface, Benutzeroberfläche) enthält eine Reihe von Methoden für die Anzeige benutzerdefinierter und integrierter Dialogfelder.

View

Das View-Objekt bietet eine Reihe von Eigenschaften und Methoden, die eine programmtechnische Interaktion mit einer InfoPath-Ansicht ermöglichen. Dazu gehören Methoden für die Auswahl von Daten, die in der Ansicht enthalten sind, das Wechseln von einer Ansicht in eine andere, das Synchronisieren der Ansicht mit dem zugrunde liegenden XML-Dokument eines Formulars sowie die Ausführung einer InfoPath-Bearbeitungsaktion.

ViewInfo

Das ViewInfo-Objekt enthält Eigenschaften, mit denen der Name der Ansicht abgerufen und ermittelt werden kann, ob es sich bei einer Ansicht um die Standardansicht des Formulars handelt.

ExternalApplication

Das ExternalApplication-Objekt implementiert eine begrenzte Anzahl von Methoden, mit denen InfoPath durch eine externe COM-basierte Programmiersprache automatisiert werden kann.

Zugriff auf das Objektmodell
Der Zugriff auf das InfoPath-Objektmodell erfolgt über Skriptcode, mit Ausnahme des ExternalApplication-Objekts, auf das über beliebige COM-kompatible Programmiersprachen zugegriffen werden kann. Für Skriptcode gibt es in einem InfoPath-Formular folgende Verwendungsmöglichkeiten:

  • Formularlogik Skript, das in den mit einem Formular verknüpften Skriptdateien enthalten ist. Häufig handelt es sich dabei um Skriptcode, der in einem InfoPath-Formular oder einem Ereignishandler für die Gültigkeitsprüfung enthalten ist.

  • Aufgabenbereich Skript, das im Programmcode für einen benutzerdefinierten Aufgabenbereich enthalten ist.

  • Dialogfeld Skript, das im Programmcode für ein benutzerdefiniertes Dialogfeld enthalten ist.

  • Ansicht Skript, das im XLST-Code (XSL Transformation) für eine Ansicht enthalten ist.

Sicherheit des Objektmodells
Das InfoPath-Objektmodell implementiert drei unterschiedliche Sicherheitsstufen. Diese Sicherheitsstufen bestimmen, wie und wo ein bestimmtes Objektmodellelement verwendet werden kann, einschließlich der Arten von Formularen, die darauf Zugriff haben.

Das InfoPath-Objektmodell verfügt über die folgenden Sicherheitsstufen:

  • 0: Zugriff ohne Einschränkungen möglich.

  • 1: Reserviert für künftige Verwendung.

  • 2: Der Zugriff ist nur Formularen gestattet, die in derselben Domäne wie das aktuell geöffnete Formular ausgeführt werden, oder Formularen, denen domänenübergreifende Berechtigungen erteilt wurden.

  • 3: Der Zugriff ist nur voll vertrauenswürdigen Formularen gestattet.

Sie können zwei Arten von Formularen in InfoPath entwickeln: Standard und Voll vertrauenswürdig. Standardformulare sind durch einen URL identifiziert und werden in einem zwischengespeicherten Verzeichnis auf dem Computer von Benutzern ausgeführt. Sie können auf keine der Systemressourcen zugreifen und stellen damit keine Bedrohung der Systemsicherheit dar. Weiterhin sind Standardformulare nicht in der Lage, COM-Komponenten zu nutzen. Standardformulare können auf keine Objektmodellelemente der Sicherheitsstufe 3 zugreifen. Der Aufruf eines InfoPath-Objektmodellelements ohne die erforderlichen Berechtigungen für seine Sicherheitsstufe führt zu einem Zugriffsverweigerungsfehler.

Voll vertrauenswürdige Formulare werden durch einen Uniform Resource Name (URN) identifiziert und verfügen über vollen Zugriff auf die Ressourcen eines Systems. Sie sind in der Lage, benutzerdefinierte COM-Komponenten zu verwenden und InfoPath-Objektmodellelemente aufzurufen, die über die Sicherheitsstufe 3 verfügen.

 

Überblick über die InfoPath-Formulardefinitionsdatei

Die InfoPath-Formulardefinitionsdatei (XSF) ist die zentrale Datei eines Formulars: Sie enthält Informationen über den Aufbau eines Formulars, einschließlich der verwendeten XML-Schemas, der enthaltenen Ressourcendateien, der implementierten Ereignishandler und einer Vielzahl weiterer Aspekte der allgemeinen Operation und Darstellung.

Anpassungen der Formulardefinitionsdatei
Die XSF-Datei ist eine XML-Datei, die in InfoPath beim Entwurf eines Formulars erstellt und anschließend kontinuierlich aktualisiert wird, wenn Sie Änderungen am Formular vornehmen. Für die meisten Aufgaben des Formularentwurfs und der Formularentwicklung sollte die Erstellung und Verwaltung der XSF-Datei InfoPath überlassen werden. Zur Funktionserweiterung eines Formulars können Sie jedoch einige Änderungen an der XSF-Datei direkt vornehmen, die nicht im InfoPath-Entwurfsmodus verfügbar sind.

Nachfolgend werden einige allgemeine Änderungen aufgeführt, die Sie an der XSF-Datei durchführen können.

  • Erweitern der Benutzeroberfläche durch Hinzufügen von Untermenüs zur Menüleiste und zu den Symbolleisten

  • Hinzufügen mehrerer Skriptdateien

  • Erstellen voll vertrauenswürdiger Formulare

  • Überschreiben von Standardfehlermeldungen

  • Hinzufügen zusätzlicher Druckereinstellungen

  • Hinzufügen zusätzlicher Symbolleisten

  • Hinzufügen zusätzlicher übergeordneter Menüs

  • Erstellen von Schaltflächen in Menüs und Symbolleisten, die Skriptfunktionen aufrufen.

Hauptelemente der Formulardefinitionsdatei
Die XSF-Datei enthält eine Anzahl von Hauptelementen, die von InfoPath zur Speicherung von Informationen über ein Formular verwendet werden, und viele dieser Hauptelemente verfügen wiederum über andere Elemente, die darin verschachtelt sind. Die folgende Tabelle enthält Beschreibungen einiger dieser Elemente:

Element

Beschreibung

xDocumentClass

Das Stammelement der XSF-Datei enthält alle anderen Elemente und Attribute.

applicationParameters

Enthält formularspezifische Eigenschaften, die beschreiben, wie ein Formular im InfoPath-Entwurfsmodus verwendet werden soll.

customValidation

Definiert regelbasierte benutzerdefinierte Überprüfung zusätzlich zur gesamten Überprüfung, die vom XML-Schema forciert wird.

dataObjects

Definiert alle sekundären Datenobjekte, die in einem Formular verwendet werden.

documentSchemas

Definiert die XML-Schemas für das Formular.

documentSignatures

Definiert die Position des XML-DOM-Knotens mit der digitalen Signatur innerhalb des XML-Dokuments, das dem Formular zugrunde liegt.

documentVersionUpgrade

Legt fest, wie Formulare, die mit einer älteren Version der Formularvorlage erstellt wurden, auf die aktuelle Version der Formularvorlage aktualisiert werden können.

domEventHandlers

Enthält Zeiger auf verschiedene skriptbasierte Ereignishandler, die auf Änderungen in den XML-DOM-Knoten eines XML-Dokuments reagieren, das einem Formular zugrunde liegt.

fileNew

Liefert einen Verweis auf eine XML-Datei, die zu ladende Beispieldaten enthält, wenn Benutzer ein neues Formular auf der Basis der Formularvorlage entwerfen möchten.

importParameters

Enthält alle Parameter, die festlegen, wie die Funktion "Formulare zusammenführen" (Import) für Formulare funktioniert.

listProperties

Identifiziert die Eigenschaften, die sich in einer Listenansicht aller Formulare befinden sollten, die der Formularvorlage angehören.

package

Enthält Informationen über alle Dateien, die in einem Formular verwendet werden.

query

Verknüpft einen Datenadapter mit einem Datenobjekt oder dem zugrunde liegenden XML-Dokument eines Formulars.

schemaErrorMessages

Enthält benutzerdefinierte Meldungen, die die XML-Schema-Datentypfehler überschreiben.

scripts

Definiert die Quelle aller Geschäftslogikskripts, die auf der Dokumentebene im Formular verwendet werden.

submit

Enthält Informationen über die Sendefunktionalität eines Formulars.

taskpane

Definiert einen benutzerdefinierten Aufgabenbereich für die Verwendung in einem Formular.

views

Definiert alle Ansichten, die in einem Formular implementiert wurden.

 

Zentrale Bereiche der InfoPath-Entwicklung

Neben den Entwicklungskomponenten für die Anpassung eines InfoPath-Formulars sind zwei weitere Bereiche der InfoPath-Entwicklung ebenfalls relevant. Der eine umfasst die Programmierkomponenten, die der Anpassung eines Formulars dienen, und der andere umfasst das Konzept der programmtechnischen und deklarativen Entwicklung.

Programmierkomponenten
Die Programmierbarkeit von InfoPath besteht darin, ein InfoPath-Formular durch Ändern seiner Formulardateien oder durch Verfassen von Skriptcode anzupassen, um benutzerdefinierte Funktionen durch Verwendung des InfoPath-Objektmodells zu erstellen. Die Hauptkomponenten eines InfoPath-Formulars, die programmtechnische Interaktion erfordern können, werden in der folgenden Tabelle aufgelistet.

Komponente

Beschreibung

Objektmodell

Eine robuste hierarchische Typbibliothek, die aus Auflistungen, Objekten, Eigenschaften, Methoden und Ereignissen besteht und Entwicklern die programmtechnische Steuerung verschiedener Aspekte der InfoPath-Entwicklungsumgebung und den Zugriff auf das zugrunde liegende XML-Dokument eines Formulars ermöglicht.

Gültigkeitsprüfung

Eine Kombination aus XML-Schemas, Ausdrücken und Skriptcode, der zur Überprüfung und Einschränkung der Daten dient, die Benutzer in ein Formular eingeben dürfen.

Ereignisbehandlung

Eine Reihe von Ereignishandlern, die auf Änderungen im zugrunde liegenden XML-Dokument eines Formulars antworten, auf Ansichtswechsel reagieren, die benutzerdefinierte Formularübertragung implementieren oder auf das Laden des zugrunde liegenden XML-Dokuments eines Formulars reagieren.

Benutzeroberfläche

Eine Reihe definierbarer Benutzeroberflächenkomponenten wie Menüs, Symbolleisten, Schaltflächen, Befehlsleisten und ein Aufgabenbereich.

Bearbeitungssteuerelemente

Eine Reihe von InfoPath-spezifischen Steuerelementen, die der Verwaltung und der Interaktion mit dem zugrunde liegenden XML-Dokument eines Formulars dienen, einschließlich Auflistungen, optionale Elemente, Textlisten und Felder.

Fehlerbehandlung

Eine Kombination aus Ereignishandlern, Objektmodellaufrufen und XSF-Dateieinträgen, die zur Behandlung von Fehlern in einem InfoPath-Formular dienen.

Sicherheit

Eine Reihe von Sicherheitsstufen, die den Zugriff auf das InfoPath-Objektmodell und Systemressourcen einschränken.

Datenübermittlung

Eine Reihe vordefinierter Funktionen, die zur Implementierung benutzerdefinierter Sende- und Übermittlungsfunktionen für ein InfoPath-Formular dienen.

Geschäftslogik

Eine Reihe benutzerdefinierter Skriptdateien mit Programmcode, um ein bestimmtes Bearbeitungsverhalten, Gültigkeitsprüfung, Ereignishandler und die Steuerung des Datenflusses zu kontrollieren. Geschäftslogik kann auch den Zugriff auf externe COM-Komponenten umfassen.

Formularintegration

Integration anderer Office-Anwendungen wie Microsoft Excel oder Microsoft Outlook. Die Integration kann auch die Verwendung von Back-End-Servern wie Microsoft SQL ServerT, Microsoft Windows® SharePointT Service oder XML Web Services umfassen.

Programmtechnische und deklarative Programmierung
Bei der Bearbeitung der InfoPath-Formulardateien führen Sie eine deklarative Anpassung des Formulars durch, d.h., Sie öffnen die Formulardateien in einem Standard-Text-Editor und ändern die Elemente, Attribute und Werte der Dateien manuell. Bei einer programmtechnischen Änderung eines Formulars erstellen Sie Programmcode mithilfe einer Skriptsprache in Verbindung mit dem InfoPath-Objektmodell und in einigen Fällen externen COM-Komponenten, die die Funktionsweise des Formulars erweitern und verbessern.

Im Anschluss sind einige Möglichkeiten für die deklarative Anpassung eines Formulars aufgeführt:

  • Ändern der XML-Schemadateien (XSF)

  • Ändern der Ansichtsdateien (XSL), die im Entwurfsmodus erstellt werden

  • Ändern der XSF-Datei

  • Ändern der XML-Vorlagendatei

Im Anschluss sind einige Möglichkeiten für die programmtechnische Anpassung eines Formulars aufgeführt:

  • Hinzufügen von Verarbeitungslogik für die Lebensdauer eines Formulars

  • Hinzufügen von benutzerdefinierter Gültigkeitsprüfung

  • Hinzufügen von benutzerdefinierter Fehlerbehandlung

  • Implementieren der Datenübermittlung

  • Beantworten einer Formularzusammenführung (oder Import)

  • Verwenden benutzerdefinierter Aufgabenbereiche

  • Verwenden benutzerdefinierter Dialogfelder

  • Zugreifen auf und Ändern des zugrunde liegenden XML-Dokuments eines Formulars

  • Zugreifen auf und Ändern der XSF-Datei

  • Verwenden externer COM-Komponenten

 

Entwickeln eines einfachen Formulars

Im folgenden Beispiel entwerfen Sie ein einfaches InfoPath-Formular, das ein Textfeld zur Eingabe von Daten enthält sowie eine Schaltfläche zur Ausführung von Skriptcode, der diese Daten verwendet.

  1. Falls InfoPath noch nicht geöffnet ist, starten Sie das Programm.

  2. Klicken Sie im Aufgabenbereich Fill Out a Form (Ein Formular ausfüllen) auf Design a Form (Ein Formular entwerfen). (Falls der Aufgabenbereich Fill Out a Form (Ein Formular ausfüllen) nicht sichtbar ist, klicken Sie im Menü File (Datei) auf das Menü Fill Out a Form (Ein Formular ausfüllen).)

  3. Klicken Sie im Aufgabenbereich Design a Form (Ein Formular entwerfen) auf New Blank Form (Formular erstellen), um ein leeres Formular im InfoPath-Entwurfsmodus zu öffnen.

  4. Klicken Sie im Menü Tools (Extras) auf Form Options (Formularoptionen).

  5. Wählen Sie im Dialogfeld Form Options (Formularoptionen) auf der Registerkarte Advanced (Erweitert) im Feld Form script language (Formularskriptsprache) eine Standardskriptsprache aus, und klicken Sie auf OK.

    Anmerkung In diesem Beispiel wird JScript verwendet.

  6. Klicken Sie im Aufgabenbereich Design Tasks (Entwurfsaufgaben) auf Data Source (Datenquelle).

  7. Klicken Sie im Aufgabenbereich Data Source (Datenquelle) unter Work with the data source (Datenquelle bearbeiten) auf myFields. Dadurch wird die Schaltfläche Add (Hinzufügen) im unteren Teil des Aufgabenbereichs aktiviert.

  8. Klicken Sie auf Add (Hinzufügen), um das Dialogfeld Add Field or Group (Feld oder Gruppe hinzufügen) zu öffnen.

  9. Geben Sie SimpleMessage für das Feld Name ein, und klicken Sie anschließend auf OK. Das Feld SimpleMessage wird anschließend in der Datenquelle aufgelistet.

  10. Klicken Sie auf das Feld SimpleMessage, und ziehen Sie es auf das Formular, um ein Textfeld mit der Beschriftung Simple Message zu erstellen.

  11. Klicken Sie im Aufgabenbereich Data Source (Datenquelle) auf Controls (Steuerelemente).

  12. Klicken Sie im Aufgabenbereich Controls (Steuerelemente) auf das Steuerelement Button (Schaltfläche), und ziehen Sie es auf das Formular.

  13. Klicken Sie mit der rechten Maustaste auf das Formular, und klicken Sie anschließend auf Button Properties (Schaltflächeneigenschaften), um das Dialogfeld Button Properties (Schaltflächeneigenschaften) zu öffnen.

  14. Klicken Sie auf der Registerkarte General (Allgemein) auf Microsoft Script Editor (Microsoft Skript-Editor), um MSE zu öffnen und einen OnClick-Ereignishandler für die Schaltfläche zu erstellen.

  15. Geben Sie im OnClick-Ereignishandler folgenden Code ein:

var strMessage;
strMessage = eventObj.Source.selectSingleNode ("//my:SimpleMessage").text XDocument.UI.Alert(strMessage);

**Anmerkung** Dieses Codebeispiel verwendet die **Source**-Eigenschaft des Ereignisobjekts, die als Parameter an den **OnClick**-Ereignishandler übergeben wird. Die **Source**-Eigenschaft gibt einen Verweis auf den XML-DOM-Knoten zurück, der derzeit im Formular verwendet wird. In diesem Fall handelt es sich um den XML-DOM-Knoten, der die Daten aus dem **Simple Message**-Feld enthält. Beachten Sie die Verwendung der XML-DOM-Methode **selectSingleNode** für den Zugriff auf die Daten, die im XML-DOM-Knoten enthalten sind.

Beachten Sie weiterhin die Verwendung der **Alert**-Methode des **UI**-Objekts, das zur Anzeige eines einfachen Dialogfelds mit einer Textmeldung dient.
  1. Klicken Sie im Menü File (Datei) von MSE auf Save (Speichern), und beenden Sie MSE.

  2. Klicken Sie in InfoPath in der Symbolleiste Standard auf Preview Form (Formularvorschau).

  3. Geben Sie beliebigen Text in das Feld Simple Message ein, und klicken Sie auf die Schaltfläche. Ein einfaches Dialogfeld wird mit dem gerade eingegebenen Text angezeigt.

  4. Klicken Sie in der Symbolleiste Standard auf Close Preview (Vorschau schließen), und kehren Sie zum InfoPath-Entwurfsmodus zurück.

Dieses Formular dient lediglich zur Demonstration einiger der geläufigen Entwicklungsaufgaben in InfoPath, die in der folgenden Tabelle zusammengefasst sind:

Aufgabe

Beschreibung

Entwerfen eines Formulars

Mit den Aufgabenbereichen Fill Out a Form (Ein Formular ausfüllen) und Design a Form (Ein Formular entwerfen) haben Sie ein leeres Formular entworfen und dieses im InfoPath-Entwurfsmodus geöffnet.

Festlegen der Standardskriptsprache

Mit dem Dialogfeld Form Options (Formularoptionen) haben Sie die Standardskriptsprache für das Formular festgelegt.

Erstellen einer Datenquelle

Unter Verwendung des Aufgabenbereichs Data Source (Datenquelle) haben Sie eine einfache Datenquelle für das Formular erstellt. Hinter den Kulissen hat InfoPath eine XML-Schemadatei (XSD) angelegt.

Hinzufügen eines gebundenen Steuerelements zu einem Formular

Unter Verwendung des Aufgabenbereichs Data Source (Datenquelle) haben Sie ein Steuerelement auf das Formular gezogen und ein gebundenes Feld erstellt.

Hinzufügen eines ungebundenen Steuerelements zu einem Formular

Unter Verwendung des Aufgabenbereichs Controls (Steuerelemente) haben Sie ein Schaltflächensteuerelement auf das Formular gezogen und ein ungebundenes Steuerelement erstellt.

Erstellen einer Ansicht für das Formular

Standardmäßig implementieren alle Formulare eine einzige Standardansicht. Durch das Hinzufügen von Steuerelementen zum Formular wurden automatisch XSL-Transformationen (XSL) für die Ansicht erstellt.

Erstellen eines Ereignishandlers

Mit dem Dialogfeld Button Properties (Schaltflächeneigenschaften) haben Sie einen Ereignishandler für das Schaltflächensteuerelement erstellt und MSE geöffnet.

Erstellen des Skriptcode

Im OnClick-Ereignishandler für das Schaltflächensteuerelement haben Sie Skriptcode verwendet, um mit dem InfoPath-Objektmodell zu interagieren.

Anzeigen einer Vorschau und Testen eines Formulars

Mit der Schaltfläche Preview Form (Formularvorschau) in der Symbolleiste haben Sie eine Vorschau des Formulars angezeigt und dieses getestet.

 

Schlussfolgerung

InfoPath, wie auch viele andere Microsoft Office-Anwendungen, bietet eine vielseitige Entwicklungsumgebung für die Anpassung der damit erstellten Formulare. Mithilfe von Entwicklungskomponenten wie dem Microsoft Skript-Editor, dem InfoPath-Objektmodell, der InfoPath-XSF-Datei und Skriptsprachen können Sie die Basisfunktionen Ihrer Formulare erweitern, damit diese Ihren spezifischen Geschäftsanforderungen entsprechen.

 

Referenzmaterial

Weitere Informationen über die verfügbaren Technologien für die Entwicklung von InfoPath-Formularen finden Sie auf den folgenden Websites:

InfoPath-Produktseite
Office Developer Center
XML Developer Center
Scripting Developer Center