Microsoft Office Online
Für Mein Office Online (Was ist das?) registrieren | Anmelden

 
 
Microsoft Office InfoPath
Suchen
Suchen
 
 
 
 
Warnung: Sie haben diese Webseite mit einem nicht unterstützten Browser geöffnet. Diese Webseite wird am besten angezeigt, wenn Sie Microsoft Internet Explorer 6.0 oder höher, Firefox 1.5 oder Netscape Navigator 6.0 oder höher verwenden. Hier finden Sie weitere Informationen über unterstützte Browser.

DruckversionDruckversion Lesezeichen und FreigabeFreigabe
Reagieren auf Formularereignisse mithilfe von Skript
 

Sie können ein Skript schreiben, um auf unterschiedliche Ereignisse zu reagieren, die beim Ausfüllen eines Microsoft Office InfoPath-Formulars möglicherweise auftreten. In InfoPath treten Ereignisse in Gestallt von Ereignishandlern (Ereignishandler: Der Funktionscode in einer InfoPath-Vorlage, der auf eine Benutzeraktion oder eine Änderung an XML-Daten reagiert.) auf, die beim Entwerfen einer Formularvorlage in Entwurfsmodus erstellt werden.

Zusätzlich zu den Skripterklärungen, die in der primären Skriptdatei einer Formularvorlage erstellt werden, müssen InfoPath-Ereignishandler zunächst in Entwurfsmodus erstellt werden, da Einträge auch in der Formulardefinitionsdatei (XSF) (Formulardefinitionsdatei: Eine XML-Datei mit der Erweiterung XSF, die Informationen zu allen anderen Dateien und Komponenten, z. B. Anpassungen der Benutzeroberfläche, XML-Schemas, Ansichten, Geschäftslogik, Ereignisse und Bereitstellungseinstellungen enthält, die in einem Formular verwendet werden.) gemacht werden. Nach Erstellen eines Ereignishandlers sollten Sie dessen Deklaration in der primären Skriptdatei nicht ändern.

Inhalt dieses Artikels


Übersicht über die Ereignisobjekte

Das InfoPath-Objektmodell implementiert neun Ereignisobjekte. Sie bestimmen das zu verwendende Ereignisbobjekt basierend auf dem Ereignishandler, den Sie verwenden möchten. In der folgenden Tabelle werden die InfoPath-Ereignisobjekte aufgelistet, die jedem Ereignisobjekt zugewiesenen Ereignishandler identifiziert und die von jedem Objekt bereitgestellte Funktionalität beschrieben.

Ereignisobjekt Ereignishandler Beschreibung
DataDOMEvent OnBeforeChange, OnValidate, OnAfterChange Gibt einen Verweis an das dem Formular zugrundeliegende XML-Dokument, den Rückgabestatus und andere Eigenschaften zurück, die Informationen über einen zu ändernden XML-DOM (Document Object Model) (DOM (Document Object Model): Eine Spezifikation des World Wide Web Consortium, die die Struktur von dynamischen HTML- und XML-Dokumenten so beschreibt, dass diese durch einen Webbrowser bearbeitet werden können.)-Knoten enthalten. Außerdem werden Eigenschaften zum Ausführen der Änderung zur Verfügung gestellt (z. B. das Ablehnen der Änderung und Erstellen einer Fehlermeldung.
DocActionEvent OnClick Gibt einen Verweis an das einem Formular zugrundeliegende XML-Dokument, den Rückgabestatus und den XML-Quellknoten zurück, wenn ein Benutzer auf eine Schaltfläche auf dem Formular klickt.
DocContextChangeEvent OnContextChange Gibt Informationen über den XML-DOM-Knoten zurück, der den aktuellen Kontext des dem Formular zugrundeliegenden XML-Dokuments darstellt.
DocEvent OnSwitchView, OnAfterImport Gibt einen Verweis an ein dem Formular zugrundeliegendes XML-Dokument zurück, wenn ein Benutzer die Ansicht wechselt oder Formular zusammenführt.
DocReturnEvent OnLoad, OnSubmitRequest Gibt einen Verweis an ein dem Formular zugrundeliegendes XML-Dokument und den Rückgabestatus zurück, wenn eine Benutzer ein Formular öffnet und absendet.
MergeEvent OnMergeRequest Gibt Eigenschaften und Methoden zurück, die während eines OnMergeRequest-Ereignisses verwendet werden können, um programmgesteuert mit einem dem Formular zugrundeliegenden XML-Dokument zu interagieren und Zusammenführungseigenschaften zu bestimmen (wie z. B. die Anzahl der zusammengeführten Dateien).
SaveEvent OnSaveRequest Gibt Eigenschaften und Methoden zurück, die während des Speichervorgangs des Ereignishandlers für OnSaveRequest verwendet werden kann, um programmgesteuert mit dem einem Formular zugrundeliegenden XML-Dokument zu interagieren, Eigenschaften zu speichern und den Speichervorgang auszuführen.
SignEvent OnSign Wird dazu verwendet, zusätzliche Daten zu einer digitalen Signatur hinzuzufügen.
VersionUpgradeEvent OnVersionUpgrade Gibt einen Verweis an das einem Formular zugrundeliegende XML-Dokument zurück sowie den Rückgabestatus, die Dokument- und Lösungsversionsnummer, wenn die dem Formular zugeordnete Formularvorlage aktualisiert wird.

Detaillierte Informationen über ein bestimmtes Ereignisobjekt oder einen Ereignishandler finden Sie in der InfoPath-Referenz für Entwickler in der MSE-Hilfe.

Seitenanfang Seitenanfang

Verwenden der Ereignisobjekte

Wenn Sie einen Ereignishandler erstellen, wird die Deklaration des Ereignishandlers in InfoPath in der primären Skriptdatei der Formularvorlage erstellt. In der Deklaration des Ereignishandlers verwendet InfoPath eventObj als Namen des Parameters, der an den Ereignishandler weitergeleitet wird. Dieser Parameter enthält das Ereignisobjekt, das dem Ereignishandler zugeordnet ist. Wenn Sie bspw. das OnLoad-Ereignis in Entwurfsmodus erstellen, wird der Ereignishandler für OnLoad in InfoPath in der Skriptdatei erstellt und anschließend der Microsoft Skript-Editor (MSE) (Microsoft Script Editor [MSE]: Eine Programmierumgebung, die zum Erstellen, Bearbeiten und Debuggen von Microsoft JScript- oder Microsoft VBScript-Code in einem InfoPath-Formular verwendet wird.) geöffnet, sodass Sie Ihr Skript der folgenden Ereignishandlerdeklaration hinzufügen können:

JScript

//=======
// 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.
}

VBScript

'=======
' 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

Beim Schreiben eines Skript für einen Ereignishandler können Sie die durch das Ereignisobjekt implementierten Eigenschaften und Methoden verwenden. Das Ereignisobjekt wird über den eventObj-Parameter weitergeleitet. Die NewValue-Eigenschaft des DataDOMEvent-Ereignisobjekts wird bspw. im Ereignishandler für OnBeforeChange verwendet, um den Wert des soeben geänderten Felds zu überprüfen. Ist das Feld leer, wird die ReturnMessage-Eigenschaft des DataDOMEvent-Ereignisobjekts zum Anzeigen eines Fehlers in einem Dialogfeld verwendet. Die ReturnStatus-Eigenschaft wird auf False festgelegt, um anzugeben, dass die vom Benutzer vorgenommenen Änderungen, nicht akzeptiert werden sollten.

JScript

function msoxd__myField_attr::OnBeforeChange(eventObj)
{

   // Determine whether there is a new value.
   if (eventObj.NewValue == "")
   {
      // The value is blank, so display an error message and roll back the changes.
      eventObj.ReturnMessage = "You must supply a value for this field.";
      eventObj.ReturnStatus = false;
      return;
   }
}

VBScript

Sub msoxd_myField_attr_OnBeforeChange(eventObj)

	' Determine whether there is a new value.
	If (eventObj.NewValue = "") then
		'The value is blank, so display an error message and roll back the changes.
		eventObj.ReturnMessage = "You must supply a value for this field."
	    eventObj.ReturnStatus = vbFalse
	End If
	
End Sub

Jedes der InfoPath-Ereignisobjekte implementiert unterschiedliche Eigenschaften und Methoden. Detaillierte Informationen über ein bestimmtes Ereignisobjekt finden Sie in der InfoPath-Referenz für Entwickler in der Hilfe für Microsoft Skript-Editor.

Seitenanfang Seitenanfang

Anzeige