Freigeben über


Neuigkeiten für InfoPath-Entwickler

Microsoft Office InfoPath 2007 wurden viele neue Features und Verbesserungen hinzugefügt, die für Entwickler interessant sind. An erster Stelle dieser Verbesserungen steht ein neues Objektmodell mit verwaltetem Code, das bereinigt wurde und besser in .NET Framework integriert ist. Geschäftslogik, die für dieses neue Objektmodell geschrieben ist, ist auf dieselbe Weise für eine Formularvorlage funktionsfähig, die in Office InfoPath 2007 geöffnet wird, und für eine Formularvorlage, die in einem Webbrowser geöffnet wird.

Darüber hinaus ist in Office InfoPath 2007 eine neue Entwicklungsumgebung namens Microsoft Visual Studio Tools für Anwendungen (VSTA) für Geschäftslogik integriert, die in verwaltetem Code geschrieben ist.

Microsoft Office Forms Server 2007 und dieselbe Formularfunktionalität namens InfoPath Forms Services in Microsoft Office SharePoint Server 2007 bieten eine Möglichkeit zum Bereitstellen einer InfoPath-Formularvorlage auf einem Server, sodass Benutzer ohne Office InfoPath 2007 InfoPath-Formulare mithilfe eines Webbrowsers öffnen und ausfüllen können.

Mithilfe von Geschäftslogik, die in das neue Objektmodell mit verwaltetem Code geschrieben wird, und durch das Arbeiten mit Designdetektivfeatures im InfoPath-Entwurfsmodus können Sie eine einzelne Formularvorlage erstellen, die Sie auf einem Computer mit Microsoft Office Forms Server 2007 oder in einer entsprechend konfigurierten Dokumentbibliothek auf einem Computer mit Office SharePoint Server 2007 bereitstellen, auf dem InfoPath Forms Services ausgeführt wird. Diese Formularvorlage kann nicht in InfoPath und in einem Webbrowser ausgeführt werden. Die Gruppe von Features für den InfoPath-Client und InfoPath Forms Services, die dieses Entwurfs- und Bereitstellungskonzept unterstützt, wird als Einmalentwurf bezeichnet.

Neue Features und Verbesserungen

In den folgenden Abschnitten werden diese neuen Features und Verbesserungen in Office InfoPath 2007, die für InfoPath-Entwickler interessant sind, kurz beschrieben:

  • Neues Objektmodell mit verwaltetem Code und neue Entwicklungsumgebungen

  • Unterstützung von COM-Add-Ins

  • Formularvorlagenkonverter

  • Benutzerdefinierte Datenimporter

  • Anzeigen von Steuerelement-IDs auf der Entwurfsmodus-Benutzeroberfläche

  • Unterstützung von Datenverbindungsbibliotheken

  • XML-Ereignisse

  • Vorlagenparts

  • Als Steuerelement gehosteter InfoPath-Editor

Neues Objektmodell mit verwaltetem Code und neue Entwicklungsumgebungen

Office InfoPath 2007 bietet ein neues Objektmodell mit verwaltetem Code, das über eine Hauptgruppe von Funktionalitäten zum Erstellen von benutzerdefinierter Geschäftslogik in Formularvorlagen verfügt. Bei der Bereitstellung auf einem Computer mit Microsoft Office Forms Server 2007 oder in einer entsprechend konfigurierten Dokumentenbibliothek auf einem Computer mit Office SharePoint Server 2007 wird mithilfe dieses neuen Objektmodells erstellte Geschäftslogik sowohl in einem Webbrowser als auch in Office InfoPath 2007 ausgeführt. Optional können Sie Geschäftslogik schreiben, die eine zusätzliche Funktionalitätsebene von diesem Objektmodell verwendet, die nur in Formularvorlagen ausgeführt wird, die zum Bearbeiten in Office InfoPath 2007 geöffnet werden.

Aktivieren Sie beim Erstellen einer neuen Formularvorlage das Kontrollkästchen Nur browserkompatible Features aktivieren im Dialogfeld Eine Formularvorlage entwerfen, um Geschäftslogik zu schreiben, die ausgeführt wird, wenn ein Formular in einem Webbrowser und in Office InfoPath 2007 geöffnet wird. Deaktivieren Sie beim Erstellen einer neuen Formularvorlage das Kontrollkästchen Nur browserkompatible Features aktivieren, um Geschäftslogik zu schreiben, von der zusätzliche Funktionalität nur beim Öffnen in Office InfoPath 2007 verwendet werden kann. Sie können diese Einstellung auch ändern, nachdem Sie eine Formularvorlage erstellt haben. Klicken Sie dazu im Aufgabenbereich Designdetektiv auf Kompatibilitätseinstellungen ändern.

Office InfoPath 2007 stellt zwei neue Optionen zum Entwickeln von Formularvorlagen bereit, die in verwaltetem Code geschriebene Geschäftslogik enthalten:

  • Die Microsoft Visual Studio Tools für Anwendungen (VSTA)-Entwicklungsumgebung, die in InfoPath auf ähnliche Weise integriert ist wie die Umgebung des Visual Basic-Editors, der von anderen Office-Anwendungen verwendet wird. VSTA ist eine Lightweight-Entwicklungsumgebung, die auf der Funktionalität von Visual Studio basiert.

  • Die InfoPath-Entwurfsmodusintegration in Visual Studio Tools für Office, mit deren Hilfe Sie eine InfoPath-Formularvorlage entwerfen und Geschäftslogik in verwaltetem Code schreiben können, ohne die Visual Studio-Umgebung zu verlassen.

Weitere Informationen zum neuen Objektmodell und zu den neuen Entwicklungsumgebungen finden Sie unter Grundlegendes zu Objektmodellen und Entwicklungsumgebungen in InfoPath 2007.

Unterstützung von COM-Add-Ins

Office InfoPath 2007 bietet Unterstützung zum Erstellen und Registrieren von COM-Add-Ins mithilfe eines Entwicklungsmodells, das sehr viele Ähnlichkeiten mit anderen Office-Anwendungen aufweist, z. B. Word und Excel. InfoPath-COM-Add-Ins unterstützen die IDTExtensibility2-Schnittstelle zum Implementieren von Methoden, die als Ereignishandler dienen, um auf InfoPath-Bedingungen zum Starten und Herunterfahren zu reagieren. Das ApplicationEvents-Objekt wurde dem InfoPath-COM-Objektmodell hinzugefügt, um Unterstützung für Ereignisse auf Anwendungsebene zu bieten, z. B. für die Ereignisse WindowActivate und XDocumentOpen, mit deren Hilfe Sie Ereignishandler in Ihrem COM-Add-In für InfoPath-Formularfenster und Dokumentereignisse erstellen können.

Sie müssen die fünf Ereignisse der IDTExtensibility2-Schnittstelle implementieren, um ein InfoPath-COM-Add-In zu erstellen. Weitere Informationen zur IDTExtensibility2-Schnittstelle erhalten Sie, indem Sie auf MSDN nach "IDTExtensibility2" suchen.

Nach dem Erstellen eines Add-Ins müssen Sie es unter dem Registrierungsunterschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\ registrieren und die Werte FriendlyName, Description und LoadBehavior definieren.

InfoPath-COM-Add-Ins können standardmäßig beim Starten der Anwendung geladen werden. Sie können auch über das Dialogfeld COM-Add-Ins aufgerufen werden. Klicken Sie im Menü Extras auf COM-Add-Ins, um das Dialogfeld COM-Add-Ins aufzurufen.

Formularvorlagenkonverter

InfoPath 2003 Service Pack 1 oder höher bietet ein Framework zum Erstellen einer neuen Formularvorlage durch Importieren des Entwurfs einer anderen elektronischen Formularart. Office InfoPath 2007 bietet bereits einen Konverter zum Erstellen einer neuen InfoPath-Formularvorlage, die auf dem Entwurf eines Formulars basiert, das in einem Microsoft Office Word-Dokument oder einer Microsoft Excel-Arbeitsmappe erstellt wurde. Klicken Sie zum Anzeigen des Import-Assistenten im Menü Datei auf Formular importieren, um den Vorgang zum Importieren des Entwurfs eines Formulars zu starten, das in Word oder Excel erstellt wurde.

In Office InfoPath 2007 wurde dieses Framework erweitert, um auch die Erstellung und Installation von benutzerdefinierten Konvertern zum Exportieren des Entwurfs einer InfoPath-Formularvorlage nach einer anderen elektronischen Formularart zu unterstützen. Wenn ein benutzerdefinierter Exportkonverter installiert wurde, kann ein Benutzer eine InfoPath-Formularvorlage im Entwurfsmodus öffnen und dann im Menü Datei auf den Befehl Formularvorlage exportieren klicken, um den Formularentwurf nach einer anderen elektronischen Formularart zu exportieren.

Konverterschnittstellen

Formularvorlagenkonverter geben eine Liste von unterstützten Dateitypen an und verarbeiten diese Dateitypen, um eine InfoPath-Formularvorlage mit Manifestdateien (XSF), Ansichtsdateien (XSL) und anderen Dateien auszugeben, die eine InfoPath-Formularvorlagendatei (XSN) bilden.

Ein InfoPath-Formularvorlagenkonverter ist eine standardmäßige COM-Automatisierungskomponente, die die Schnittstellen IFormTemplateConverter und IFormTemplateConverter2 implementiert. Die Implementierung der IFormTemplateConverter-Schnittstelle bietet Kompatibilität mit Microsoft InfoPath 2003. Die IFormTemplateConverter2-Schnittstelle bietet zusätzliche Funktionalität für Benutzer von Office InfoPath 2007. Der Konverter muss außerdem einige allgemeine Informationen über sich in der Registrierung bereitstellen, um im InfoPath-Entwurfsmodus offen gelegt zu werden, z. B.:

  • Anzeigename

  • Ausführliche Beschreibung

  • Liste der Dateierweiterungen, die vom Konverter unterstützt werden

Die Dynamic Link Library IPDESIGN.DLL im Ordner "C:\Programme\Microsoft Office\Office12" stellt die Schnittstellen IFormTemplateConverter, IFormTemplateConverter2, IConversionManager und IConversionManager2 zum Erstellen von benutzerdefinierten Formularentwurfskonvertern bereit.

Automatisieren eines Konverters

Formularvorlagenkonverter können automatisiert werden, um den Massenimport oder -export mehrerer Formularvorlagen zu erleichtern. Sie verwenden die vom Konverter implementierten Methoden, um einen Konverter zu automatisieren. Der folgende JScript-Ausschnitt demonstriert z. B., wie das Importprogramm für Formulare in Microsoft Office Word automatisiert wird, um die Datei "sample.doc" zu importieren:

var oConverter = new ActiveXObject("InfoPath.DesignerWordImport.2");
var strSourcePath = "c:\\temp\\sample.doc";
var strDestPath = "c:\\temp\\sampleOutput\\"

oConverter.Initialize();
try
{
   oConverter.SetLcid(1033);
   var strMessage = oConverter.Import(strSourcePath, strDestPath, true);
}
catch(e)
{
   WScript.Echo("Error: " + e.message);
}

WScript.Echo("Result was: " + strMessage);

oConverter.UnInitialize();

Benutzerdefinierte Datenimporter

Office InfoPath 2007 bietet ein Framework zum Erstellen benutzerdefinierter Importer zum Importieren von Daten aus anderen Arten von elektronischen Formularen und Dokumenten sowie aus gedruckten Formularen und Dokumenten, die elektronisch mithilfe von OCR-Software (Optical Character Recognition, optische Zeichenerkennung) eingescannt werden. Klicken Sie im Menü Datei auf Ein Formular ausfüllen, wählen Sie das auszufüllende Formular aus, und klicken Sie dann im Menü Datei auf Formulardaten importieren, um das Dialogfeld Formulardaten importieren anzuzeigen.

Die Dynamic Link Library IPEDITOR.DLL im Ordner "C:\Programme\Microsoft Office\Office12" stellt die Schnittstellen IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl und IPropertyBag bereit, die implementiert werden müssen, um einen benutzerdefinierten Datenimporter zu erstellen.

Anzeigen von Steuerelement-IDs auf der Entwurfsmodus-Benutzeroberfläche

Sie können jetzt den ViewContext-Bezeichner für ein Steuerelement in einem InfoPath-Formular im Entwurfsmodus bestimmen, indem Sie das Dialogfeld Eigenschaften für das Steuerelement anzeigen und dann auf die Registerkarte Erweitert klicken. Der ViewContext-Wert für das aktuelle Steuerelement wird im Bereich Code auf der Registerkarte Erweitert angezeigt.

Unterstützung von Datenverbindungsbibliotheken

Die Datenverbindungsbibliothek ist eine Liste, die auf einem Server mit Office SharePoint Server 2007 oder Office Forms Server 2007 gespeichert ist, der Datenverbindungsdateien enthält. Bei einer Datenverbindungsdatei, die in einer Datenverbindungsbibliothek gespeichert ist, kann es sich um eine OCD-Datei (Office Data Connection) handeln, die von Excel verwendet wird, oder um eine UDC-Datei (Universal Data Connection V2), die von Office InfoPath 2007 verwendet wird. Jede UDC-Datei enthält Datenverbindungseinstellungen, die von einer InfoPath-Formularvorlage verwendet werden können.

Eine UDC-Datei in einer Datenverbindungsbibliothek kann verwendet werden, um eine Datenverbindung für eine Benutzerformularvorlage (eine vom Benutzer bereitgestellte Formularvorlage, die keinen Code oder andere Features enthält, für die eine Genehmigung des Administrators erforderlich ist) zu definieren. Alle UDC-Dateien, die einer Datenverbindungsbibliothek hinzugefügt werden, erfordern die Genehmigung durch einen Administrator der Websitesammlung, bevor sie verwendet werden können. Es gibt auch einen getrennten Zentralspeicher für UDC-Dateien, der vom Administrator der Serverfarm gesteuert wird und nur von vom Administrator genehmigten Formularvorlagen (Formularvorlagen, die Code und andere Features enthalten, für die eine Genehmigung des Administrators erforderlich ist) verwendet werden können.

Für eine Benutzerformularvorlage müssen zwei Bedingungen erfüllt sein, bevor durch sie eine domänenübergreifende Verbindung zu einer Datenquelle hergestellt werden kann:

  1. Der Serverfarmadministrator muss zuerst domänenübergreifende Datenverbindungen für Benutzerformularvorlagen in der gesamten Serverfarm aktivieren.

  2. Jede domänenübergreifende Datenverbindung muss in der Datenverbindungsbibliothek definiert werden.

Standardmäßig erfordern Elemente in der Datenverbindungsbibliothek die Genehmigung durch einen Websiteadministrator, bevor sie von InfoPath verwendet werden können.

Beim Veröffentlichen auf einem Server mit Office SharePoint Server 2007 oder Office Forms Server 2007 können von einem Formular-Designer eine oder mehrere Verbindungen ausgewählt werden, die in den UDC-Dateien in einer Datenverbindungsbibliothek auf dem Server in derselben Websitesammlung angegeben sind. Bei serverbasierten Formularen müssen die Dateien auf dem Server vorhanden sein, auf dem das Formular veröffentlicht wird. Die UDC-Dateien können serverspezifische Informationen enthalten, z. B. alternative Authentifizierungsinformationen, oder sogar einen Link zu einer serverspezifischen Verbindung.

Wenn Sie eine Formularvorlage entwerfen und eine Datenverbindung zu einer Datenverbindung von einer Datenverbindungsbibliothek erstellen, wird von InfoPath ein Link zur UDC-Datei in der Manifestdatei (XSF) der Formularvorlage erstellt. Verbindungseinstellungen werden von der Datenverbindungsbibliothek zur Laufzeit abgerufen. Auf diese Weise kann ein Serveradministrator die Verbindungseinstellungen ändern, nachdem das Formular bereitgestellt wurde.

Angeben einer Verbindung von einer Datenverbindungsbibliothek in einer vorhandenen Formularvorlage

  1. Öffnen Sie die Formularvorlage im Entwurfsmodus.

  2. Klicken Sie im Menü Extras auf Datenverbindungen.

  3. Klicken Sie auf Hinzufügen, um den Datenverbindungs-Assistenten zu starten, klicken Sie auf Nach Verbindungen auf einem Computer mit Microsoft Office SharePoint Server suchen, und klicken Sie dann auf Weiter.

Angeben einer Verbindung von einer Datenverbindungsbibliothek beim Erstellen eines neuen leeren Formulars

  1. Klicken Sie im Menü Datei auf Ein Formular entwerfen.

  2. Klicken Sie im Dialogfeld Ein Formular entwerfen auf das Symbol Verbindungsbibliothek.

Angeben einer Verbindung von einer Datenverbindungsbibliothek für ein Steuerelement vom Typ "Listenfeld", "Dropdown-Listenfeld" oder "Kombinationsfeld"

  1. Öffnen Sie die Formularvorlage im Entwurfsmodus.

  2. Zeigen Sie das Dialogfeld Eigenschaften des Steuerelements an.

  3. Klicken Sie auf der Registerkarte Daten auf Werte in einer externen Datenquelle nachschlagen, und klicken Sie dann auf Hinzufügen.

  4. Klicken Sie auf Nach Verbindungen auf einem Computer mit Microsoft Office SharePoint Server suchen, und klicken Sie dann auf Weiter.

Angeben einer Datenverbindung von einer Datenverbindungsbibliothek beim Konfigurieren von Absendeoptionen für eine Formularvorlage

  1. Öffnen Sie die Formularvorlage im Entwurfsmodus.

  2. Klicken Sie im Menü Extras auf Absendeoptionen.

  3. Klicken Sie auf das Kontrollkästchen Übermitteln dieses Formulars durch Benutzer zulassen.

  4. Klicken Sie in der Dropdownliste auf Verbindung von einer Datenverbindungsbibliothek.

  5. Klicken Sie auf Hinzufügen, um den Datenverbindungs-Assistenten zu starten.

Angeben einer Datenverbindung von einer Datenverbindungsbibliothek beim Konfigurieren einer Formularvorlage zum Senden an einen Webserver mithilfe von HTTP Post

  1. Öffnen Sie die Formularvorlage im Entwurfsmodus.

  2. Klicken Sie im Menü Extras auf Absendeoptionen.

  3. Klicken Sie auf das Kontrollkästchen Übermitteln dieses Formulars durch Benutzer zulassen.

  4. Klicken Sie auf Formulardaten an ein einziges Ziel senden, und wählen Sie dann in der Dropdownliste Webserver (HTTP) aus.

  5. Klicken Sie auf Ändern.

  6. Klicken Sie im Dialogfeld An einen Webserver übermitteln auf Office Server-Verbindung, und klicken Sie dann auf Serververbindung.

Konfigurieren von Datenverbindungsbibliothek-Authentifizierungseinstellungen auf dem Computer mit Office SharePoint Server

Ein Serveradministrator kann steuern, auf welche Weise bestimmte Authentifizierungsfeatures für die Verbindungen ausgeführt werden, die in einer Datenverbindungsbibliothek auf einem Computer mit Office SharePoint Server 2007 oder Office Forms Server 2007 angegeben sind. In der folgenden Tabelle sind Einstellungen für Datenverbindungsbibliotheken aufgelistet, die unter SharePoint 3.0-Zentraladministration auf der Seite Anwendungsverwaltung durch Klicken auf InfoPath Forms Services konfigurieren vorgenommen werden.

Einstellung Beschreibung

SSL für HTTP-Authentifizierung von Datenquellen erforderlich

Für Formulare, für die eine Verbindung zu Back-End-Datenquellen wie Webdiensten hergestellt wird, ist möglicherweise das Herstellen der Verbindung mithilfe der Basic- oder Digest-Authentifizierung erforderlich. Dabei muss ein Kennwort über das Netzwerk gesendet werden. Aktivieren Sie dieses Kontrollkästchen, um die SSL-verschlüsselte Verbindung für diese Authentifizierungstypen erforderlich zu machen. Die Standardeinstellung ist True (aktiviert).

Eingebettete SQL-Authentifizierung zulassen

Bei Formularen, für die eine Verbindung zu Microsoft SQL Server-Datenbanken hergestellt wird, kann der SQL Server-Benutzername und das Kennwort in der Verbindungszeichenfolge eingebettet werden. Die Verbindungszeichenfolge kann in Klartext in der UDC-Datei gelesen werden, die der Formularvorlage zugeordnet ist, oder in der Manifestdatei der Formularvorlage (XSF). Deaktivieren Sie dieses Kontrollkästchen, um die Verwendung von eingebetteten SQL-Anmeldeinformationen für Formulare zu sperren. Die Standardeinstellung ist False (deaktiviert).

In Datenverbindungsdateien enthaltene Authentifizierungsinformationen können von Benutzerformularvorlagen verwendet werden

UDC-Dateien (Universal Data Connection) können alternative Authentifizierungsinformationen enthalten, z. B. explizite Benutzernamen und Kennwörter oder eine Anwendungs-ID für einmaliges Anmelden. Aktivieren Sie dieses Kontrollkästchen, um die Verwendung dieser alternativen Authentifizierungsinformationen aus UDC-Dateien durch Benutzerformularvorlagen zuzulassen. Die Standardeinstellung ist False (deaktiviert).

Zugriff auf Daten aus anderen Domänen für Benutzerformularvorlagen ermöglichen, die Verbindungseinstellungen in einer Datenverbindungsdatei verwenden

Benutzerformularvorlagen können Datenverbindungen in einer Datenverbindungsdatei erhalten, von denen auf Daten aus anderen Domänen zugegriffen wird. Aktivieren Sie dieses Kontrollkästchen, um den domänenübergreifenden Zugriff auf Daten für Benutzerformularvorlagen zuzulassen. Die Standardeinstellung ist False (deaktiviert).

XML-Ereignisse

Wenn Benutzer mit einer Formularvorlage arbeiten, die mit Office InfoPath 2007 erstellt und auf einem Computer mit Office Forms Server 2007 oder Office SharePoint Server 2007 bereitgestellt wurde, werden Formulardaten von InfoPath im Speicher mithilfe einer von zwei Methoden gespeichert und bearbeitet. Dies hängt davon ab, wie die Formularvorlage geöffnet wurde:

  • Wenn die Formularvorlage in InfoPath geöffnet wird, wird das Microsoft XML Core Services 5.0 (MSXML5) DOMDocument-Objekt verwendet.

  • Wenn die Formularvorlage in einem Webbrowser geöffnet wird, wird die XmlDocument-Klasse von Microsoft .NET Framework 2.0 verwendet.

Mithilfe der Methoden der XPathNavigator-Klasse in Verbindung mit den Klassen und Membern des neuen Microsoft.Office.InfoPath-Objektmodells können Formularvorlagenentwickler Funktionen und Unterroutinen mit verwaltetem Code schreiben, die auf XML-Daten in diesen beiden Speichern zugreifen und sie aktualisieren. Mithilfe von XML-Ereignissen können Formularentwickler Vorgänge für XML-Knoten wie Insert, Delete und ValueChange programmgesteuert abbrechen sowie Überprüfungen dafür hinzufügen und Nebeneffekte definieren.

Office InfoPath 2007 bietet drei XML-Hauptereignisse beim Arbeiten mit dem neuen Objektmodell mit verwaltetem Code: Changing, Validating und Changed.

Hinweis

Das Changing-Ereignis wird nur in Geschäftslogik einer Formularvorlage unterstützt, die mit Office InfoPath 2007 geöffnet wird. Das Changing-Ereignis wird nicht in browserfähigen Formularvorlagen unterstützt, die in einem Webbrowser geöffnet werden.

Erstellen eines Ereignishandlers für das Ereignis "Changing", "Validating" oder "Changed" eines Steuerelements

  1. Öffnen Sie die Formularvorlage im Entwurfsmodus.

  2. Klicken Sie mit der rechten Maustaste auf das Steuerelement, klicken Sie auf Programmierung, und klicken Sie dann auf das Ereignis, mit dem Sie arbeiten möchten.

Dadurch wird die Microsoft Visual Studio Tools für Anwendungen (VSTA)-Umgebung geöffnet (bzw. Visual Studio 2005, sofern Visual Studio 2005 und Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System installiert ist oder in Visual Studio 2008 mit Visual Studio Tools für Office) und eine Ereignishandlervorlage erstellt, die ähnlich wie im folgenden Beispiel für das Changed-Ereignis in C# aussieht:

public void field1_Changed(object sender, XmlEventArgs e)
{
   // Write code here to change data outside the Main Data Object
   // such as other Data Objects and member variables.
   if (e.UndoRedo)
   {
      // InfoPath will handle all undo and redo operations that change
      // the Main Data Object, so there is nothing left for custom code
      // to do.
      return;
   }
    // Write code here to change the Main Data Object.
}

Weitere Informationen zum Erstellen von Ereignishandlern finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers. Weitere Informationen zum Arbeiten mit XML mithilfe des neuen Objektmodells mit verwaltetem Code finden Sie unter Vorgehensweise: Arbeiten mit den Klassen "XPathNavigator" und "XPathNodeIterator".

Binden von Ereignissen mithilfe von Delegaten

Beim Verwenden des neuen Objektmodells mit verwaltetem Code werden von Office InfoPath 2007 Ereignisse mithilfe von Delegaten an Ereignishandler gebunden. Obwohl von InfoPath Delegaten zum Binden von Ereignissen verwendet werden, ist die Funktionalität eines Subsets der Standardverwendung für verwalteten Code. InfoPath verwendet Delegaten speziell für die statische Ereignisbindung. Das Binden kann nur in der InternalStartup-Methode auftreten, die beim Laden des Formulars ausgeführt wird. Wenn Delegaten zum Binden von Ereignissen an einer anderen Stelle im Code deklariert werden, wird eine Ausnahme zur Laufzeit ausgelöst.

Im Folgenden wird der C#-Code angezeigt, der von InfoPath generiert wird, wenn Ereignishandler für das Changed-Ereignis von "field1" und das Validating-Ereignis von "field2" hinzugefügt werden. Ereignisbindungscode für den Ereignishandler wird der InternalStartup-Methode mithilfe der Delegaten XmlChangedEventHandler und XmlValidatingEventHandler hinzugefügt.

using System;
using Microsoft.Office.InfoPath;

namespace Template1
{
   public partial class FormCode
   {
      public void InternalStartup()
      {
         EventManager.XmlEvents["/my:myFields/my:field1"].Changed += new XmlChangedEventHandler(field1_Changed);
         EventManager.XmlEvents["/my:myFields/my:field2"].Validating += new XmlValidatingEventHandler(field2_Validating);
      }

      public void field1_Changed(object sender, XmlEventArgs e)
      {
         // Code for Changed event goes here.
      }

      public void field2_Validating(object sender, XmlValidatingEventArgs e)
      {
         // Code for Validating event goes here.
      }
   }
}

Wichtig

Die InternalStartup-Methode und der Ereignisbindungscode werden von InfoPath generiert, wenn Sie Ereignishandler mithilfe verschiedener Benutzeroberflächenbefehle hinzufügen. Sie dürfen die InternalStartup-Methode nicht selbst erstellen oder zusätzlichen Code hinzufügen. Weitere Informationen zum Hinzufügen von Ereignishandlern finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers.

Vorlagenparts

Von Formular-Designern können jetzt Bibliotheken aus Formularteilen erstellt werden, die als Vorlagenparts bezeichnet werden und Steuerelemente, Layout, Schema, Regeln und Berechnungen enthalten können. Sie können Vorlagenparts in einem freigegebenen Repository oder lokal in einer Gruppe von Computern bereitstellen, sodass sie von einem einzelnen oder einer Gruppe von Formular-Designern zum modularen Entwerfen neuer Formularvorlagen verwendet werden können. Wenn Sie z. B. eine Gruppe von Formularvorlagen haben, die denselben Headerabschnitt haben, können Sie mithilfe von Vorlagenparts den Headerabschnitt einmal entwerfen und ihn dann in die einzelnen Formularvorlagen einfügen.

Darüber hinaus können Sie später den Entwurf eines Vorlagenparts aktualisieren und wieder im freigegebenen Repository speichern. Wenn eine Formularvorlage, die die ältere Version des Vorlagenparts enthält, erneut vom Formular-Designer geöffnet wird, wird der Benutzer von InfoPath darüber benachrichtigt, dass eine aktualisierte Version des Vorlagenparts verfügbar ist. Der Benutzer kann das Part aktualisieren.

Da einige InfoPath-Entwurfsfeatures nicht in Vorlagenparts verwendet werden können, verfügen sie über einen eigenen Entwurfsmodus. Wenn Sie ein Vorlagenpart im freigegebenen Repository speichern, wird es im Aufgabenbereich Steuerelemente im Abschnitt Benutzerdefinierte Steuerelemente im Formularvorlagen-Entwurfsmodus verfügbar. Wenn Sie ein Vorlagenpart erstellen und lokal speichern, müssen Sie den Befehl Benutzerdefinierte Steuerelemente hinzufügen oder entfernen verwenden, um dem Aufgabenbereich Steuerelemente das Vorlagenpart hinzuzufügen.

Erstellen eines Vorlagenparts

  1. Klicken Sie im Menü Datei auf Ein Formular entwerfen.

  2. Klicken Sie im Dialogfeld Ein Formular entwerfen auf Vorlagenpart.

  3. Klicken Sie unter Basierend auf auf das Symbol für die Datenquelle, auf der das Vorlagenpart basieren soll, und klicken Sie dann auf OK.

  4. Gehen Sie beim Entwerfen eines Vorlagenparts genauso vor wie beim Entwerfen anderer Formularvorlagen, und fügen Sie Layout, Steuerelemente, Regeln und Datenüberprüfung ein. Sie können auch Datenverbindungen hinzufügen, um das automatische Auffüllen der Steuerelemente Dropdown-Listenfeld, Kombinationsfeld oder Listenfeld zuzulassen.

  5. Klicken Sie im Menü Datei auf Speichern, um das Vorlagenpart zu speichern. Der Anzeigename des Vorlagenparts ist mit dem Namen der Datei gleich, in der es gespeichert wird.

  6. Wenn Sie InfoPath und die Microsoft Visual Studio Tools für Anwendungen (VSTA)-Entwicklungsumgebung verwenden, klicken Sie im Aufgabenbereich Steuerelemente auf Benutzerdefinierte Steuerelemente hinzufügen oder entfernen. Klicken Sie dann auf Hinzufügen, und suchen Sie die InfoPath-Vorlagenpartsdatei (XTP), die Sie gespeichert haben.

    Wenn Sie Visual Studio mit InfoPath-Entwurfsmodusintegration verwenden, klicken Sie mit der rechten Maustaste auf die Toolbox. Klicken Sie dann auf Elemente auswählen, klicken Sie auf Hinzufügen, und suchen Sie die InfoPath-Vorlagenpartsdatei (XTP), die Sie gespeichert haben.

Verwenden eines Vorlagenparts

  1. Erstellen Sie eine neue Formularvorlage, und öffnen Sie den Aufgabenbereich Steuerelemente.

  2. Führen Sie einen Bildlauf nach unten zu den Steuerelementen Benutzerdefiniert durch, und ziehen Sie das Vorlagenpart auf das Formular.

    Hinweis

    Wenn Sie Visual Studio mit InfoPath-Entwurfsmodusintegration verwenden, sind die Vorlagenparts am Ende des Abschnitts InfoPath in der Toolbox aufgelistet.

Sie können jetzt mit Ihrer Formularvorlage und dem darin enthaltenen Vorlagenpart ebenso arbeiten wie beim Entwerfen eines Formulars ohne Vorlagenpart. Alle Steuerelemente und die zugeordnete Logik können bearbeitet werden. Sie können das Vorlagenpart auch in der ursprünglichen Datei bearbeiten. In diesem Fall erhalten Sie vom Vorlagenpart eine Benachrichtigung darüber, dass eine neue Version verfügbar ist, wenn es zuvor in andere Formularvorlagen eingefügt wurde.

Hinweis

Wenn Sie aktualisierte Vorlagenparts im freigegebenen Repository speichern, müssen Sie die Formularvorlage schließen und erneut öffnen, in die Sie ein Vorlagenpart eingefügt haben, bevor Sie eine Benachrichtigung darüber erhalten, dass eine neue Version verfügbar ist. Wenn Sie aktualisierte Vorlagenparts in einem lokalen Ordner speichern, müssen Sie das Vorlagenpart auf allen Computern neu installieren, von denen es gemeinsam verwendet wird.

Als Steuerelement gehosteter InfoPath-Editor

Die InfoPath-Formularbearbeitungsfunktionalität wurde als Gruppe von Eigenschaften und Methoden gestaltet, die durch das InfoPathEditorObject-Objekt der Dynamic Link Library IPEDITOR.DLL offen gelegt sind. Mithilfe dieser Eigenschaften und Methoden können Sie ein Subset von InfoPath-Bearbeitungsfeatures aus einer anderen Anwendung als ActiveX-Steuerelement oder verwaltetes Windows Form-Steuerelement hosten.

Durch das InfoPath-Setup wird auch die Microsoft.Office.InfoPath.FormControl.dll-Assembly im Ordner "C:\Programme\Microsoft Office\Office12" installiert, von der das COM-Objektmodell des InfoPathEditorObject-Objekts eingebunden wird, um das Steuerelement in Windows Form und anderen .NET-Anwendungen zu verwenden.

Die folgende Tabelle enthält eine Zusammenfassung der Eigenschaften und Methoden, die vom InfoPathEditor-Objekt bereitgestellt werden:

Member Beschreibung

CloseDocument-Methode

Schließt das geöffnete XML-Dokument.

DataConnectionBaseURL-Eigenschaft

Ruft die für Datenverbindungen verwendete URL ab oder legt sie fest.

FlushDocument-Methode

Speichert oder entlädt das geladene Dokument.

Host-Eigenschaft

Ruft das Objekt ab, mit dem auf das Objektmodell der Hostanwendung zugegriffen wird, oder legt es fest. Ist standardmäßig auf null festgelegt.

HostName-Eigenschaft

Ruft den Namen der Hostanwendung ab oder legt ihn fest.

Load-Methode

Lädt das angegebene XML-Dokument aus dem Dateisystem basierend auf einer URL zum Dateinamen. Die bereitgestellte XML-Datei muss Verarbeitungsanweisungen (href- und name-Attribute) enthalten, die auf die Formularvorlage verweisen, die zum Laden und Bearbeiten der XML-Datei verwendet werden.

LoadFromStream-Methode

Lädt das angegebene XML-Dokument aus einem Datenstrom (IStream).

NewFromSolution-Methode

Erstellt ein neues InfoPath-Formulardokument auf Basis einer URL zur angegebenen Formularvorlage.

NewFromSolutionWithData-Methode

Erstellt ein neues InfoPath-Formulardokument mithilfe der angegebenen XML-Daten als IStream und einen URL zu einer Formularvorlagendatei. Beim Verwenden dieser Methode braucht die XML-Datei keine Verarbeitungsanweisungen zu enthalten, die auf die Formularvorlage verweisen, die zum Laden und Bearbeiten der Datei verwendet wird.

SetInitEventHandler-Methode

Legt die Funktion in der Hostanwendung fest, die als Rückruffunktion für das Initialize-Ereignis verwendet wird, das vor dem InfoPath-OnLoad-Ereignis aufgerufen wird.

SetSubmitToHostEventHandler-Methode

Legt die Funktion in der Hostanwendung fest, die beim Zurücksenden von Daten an die Hostanwendung als Rückruffunktion verwendet wird. Öffnen Sie die Formularvorlage im InfoPath-Entwurfsmodus, klicken Sie im Menü Extras auf Absendeoptionen, aktivieren Sie das Kontrollkästchen Übermitteln dieses Formulars durch Benutzer zulassen, wählen Sie aus der Dropdownliste Hostumgebung aus, und klicken Sie dann auf Hinzufügen, um die Datenverbindung zum Senden an die Hostanwendung zu konfigurieren.

XDocument-Eigenschaft

Ruft ein XDocument-Objekt für Member des InfoPath-Objektmodells ab.

HinweisHinweis:
Wenn Sie mit der Microsoft.Office.InfoPath.FormControl-Assembly arbeiten, heißt diese Eigenschaft XmlForm und ruft ein XmlForm-Objekt für Member des InfoPath-Objektmodells ab.

InfoPath-Symbolleisten und -Menüs werden vom InfoPathEditor-Objekt nicht vorinstalliert bereitgestellt; jeder Befehl kann jedoch in den Menüs und Aufgabenbereichen des InfoPath-Editors über die IOLECommandTarget-Schnittstelle offen gelegt werden. Von der Hostanwendung können diese Befehle dann über diese Schnittstelle ausgeführt werden. Dadurch kann ein Entwickler diese Funktionalität bei Bedarf vollständig, teilweise oder gar nicht replizieren.

Weitere Informationen zum Arbeiten mit InfoPath-Befehlen mithilfe der IOLECommandTarget-Schnittstelle finden Sie im Artikel "Hosting the InfoPath Form Editing Environment in a Custom WinForm Application" im InfoPath-Entwicklerportal (in Englisch) auf MSDN. Der Artikel enthält einen Link zu einem Visual Studio-Beispielprojekt.

Hinzufügen des Steuerelements für den InfoPath-Editor zu einer Windows Form-Anwendung

  1. Starten Sie Microsoft Visual Studio.

  2. Erstellen Sie ein neues Projekt vom Typ Windows-Anwendung.

  3. Fügen Sie der Toolbox das InfoPath-Steuerelement "FormControl" als .NET Framework-Komponente hinzu. (Die "Microsoft.Office.InfoPath.FormControl.dll"-Assembly befindet sich im Ordner "C:\Programme\Microsoft Office\Office12".)

  4. Ziehen Sie das Steuerelement FormControl auf das Windows-Formular.

  5. Fügen Sie dem Windows-Formular ein Steuerelement vom Typ Schaltfläche hinzu.

  6. Schreiben Sie einen Click-Ereignishandler für das Steuerelement Schaltfläche, von dem eine InfoPath-Formulardatei im XML-Format in das Steuerelement "FormControl" geladen wird (z. B. formControl1.New(@"C:\hello.xml");)

  7. Erstellen Sie die Anwendung, und führen Sie sie aus.

Hierbei wird davon ausgegangen, dass eine InfoPath-XML-Datei mit dem Namen "hello.xml" unter "C:\hello.xml" vorhanden ist. Die XML-Datei muss über Verarbeitungsanweisungsverweise verfügen, die die Attribute href und name verwenden, die eine InfoPath-Formularvorlagendatei (XSN) im Header angeben, um die in diesem Beispiel verwendete New-Methode verwenden zu können. Wenn dies nicht möglich ist, kann die NewFromFormTemplate(string, System.IO.Stream,Microsoft.Office.InfoPath.XmlFormOpenMode)-Methode zum Laden von XML aus System.IO.Stream verwendet werden. Sie können auch die NewFromFormTemplate(string)-Methode verwenden, wenn Sie über eine XSN-Datei und eine entsprechend strukturierte XML-Datei verfügen, aber die XML-Datei enthält keine Verarbeitungsanweisungsverweise zum Angeben der XSN-Datei. Die NewFromFormTemplate-Methode des FormControl-Objekts stimmt mit den Methoden NewFromSolution und LoadFromStream des InfoPathEditorObject-Objekts überein.

Siehe auch

Sonstige Ressourcen

Entwickeln von InfoPath-Formularvorlagen mit verwaltetem Code
Entwickeln von Formularvorlagen mit verwaltetem Code mit dem InfoPath 2003-Objektmodell