Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bei der Arbeit mit einer InfoPath-Formularvorlage können Sie Code schreiben, um auf die Ansichten des Formulars zuzugreifen, und dann eine Vielzahl von Aktionen für die in den Ansichten enthaltenen Daten ausführen. Das vom Microsoft.Office.InfoPath-Namespace bereitgestellte InfoPath-Objektmodell unterstützt den Zugriff auf die Ansichten eines Formulars mithilfe der Member der View-Klasse .
Übersicht über die View-Klasse
Die View-Klasse stellt die folgenden Methoden und Eigenschaften bereit, die Formularentwickler für die Interaktion mit einer InfoPath-Ansicht verwenden können.
Hinweis
Die Methoden und Eigenschaften der View-Klasse sind während des Loading-Ereignisses nicht verfügbar.
Name | Beschreibung |
---|---|
DisableAutoUpdate-Methode |
Deaktiviert die automatische Synchronisierung zwischen dem einem Formular zugrunde liegenden XML-Dokument und der zugeordneten Ansicht. |
EnableAutoUpdate-Methode |
Aktiviert die automatische Synchronisierung zwischen dem einem Formular zugrunde liegenden XML-Dokument und der zugeordneten Ansicht. |
ExecuteAction(ActionType) -Methode |
Führt basierend auf den Daten, die zurzeit in der Ansicht ausgewählt sind, einen Bearbeitungsbefehl für das einem Formular zugrunde liegende XML-Dokument aus. |
ExecuteAction(ActionType, String)- Methode |
Führt basierend auf dem angegebenen Feld oder der angegebenen Gruppe einen Bearbeitungsbefehl für das einem Formular zugrunde liegende XML-Dokument aus. |
Exportmethode |
Exportiert die Ansicht in eine Datei des angegebenen Formats. |
ForceUpdate-Methode |
Erzwingt die Synchronisierung zwischen dem einem Formular zugrunde liegenden XML-Dokument und der zugeordneten Ansicht. |
GetContextNodes(XPathNavigator)- Methode |
Ruft einen Verweis auf ein XPathNodeIterator-Objekt zum Durchlaufen der zurückgegebenen XML-Knoten beginnend beim angegebenen Knoten ab. |
GetContextNodes(XPathNavigator, String)- Methode |
Ruft einen Verweis auf ein XPathNodeIterator-Objekt zum Durchlaufen der zurückgegebenen XML-Knoten in der aktuellen Auswahl innerhalb des an das angegebene Feld oder an die angegebene Gruppe gebundenen Steuerelements ab. |
GetSelectedNodes-Methode |
Ruft einen Verweis auf ein XPathNodeIterator-Objekt zum Durchlaufen aller XML-Knoten in der aktuellen Auswahl von Elementen in einer Ansicht ab. |
SelectNodes(XPathNavigator)- Methode |
Wählt basierend auf dem angegebenen XML-Startknoten einen Bereich von Knoten in einer Ansicht aus. |
SelectNodes(XPathNavigator, XPathNavigator)- Methode |
Wählt basierend auf dem angegebenen XML-Startknoten und XML-Endknoten einen Bereich von Knoten in einer Ansicht aus. |
SelectNodes(XPathNavigator, XPathNavigator, String) -Methode |
Wählt basierend auf dem angegebenen XML-Startknoten, dem XML-Endknoten und dem angegebenen Steuerelement einen Bereich von Knoten in der Ansicht aus. |
SelectText(XPathNavigator)- Methode |
Wählt den Text in einem bearbeitbaren Steuerelement aus, das an den Knoten gebunden ist, der durch das an diese Methode übergebene XPathNavigator-Objekt angegeben wird. |
SelectText(XPathNavigator, String)- Methode |
Wählt den Text in einem bearbeitbaren Steuerelement aus, das an den Knoten gebunden ist, der durch das an diese Methode übergebene XPathNavigator-Objekt angegeben wird, und das angegebene Steuerelement. |
ShowMailItem-Methode |
Erstellt eine E-Mail-Nachricht, die die aktuelle Ansicht enthält. |
ViewInfo-Eigenschaft |
Ruft einen Verweis auf ein ViewInfo-Objekt ab, das der Ansicht zugeordnet ist. |
Window-Eigenschaft |
Ruft einen Verweis auf ein Window-Objekt ab, das der Ansicht zugeordnet ist. |
Hinweis
Das InfoPath-Objektmodell stellt auch die Klassen ViewInfoCollection und ViewInfo bereit, mit denen Informationen zu allen in einem Formular implementierten Ansichten abgerufen werden können.
Verwenden der View-Klasse
Auf die View-Klasse wird über die CurrentView-Eigenschaft der XmlForm-Klasse zugegriffen, auf die mit dem Schlüsselwort this (C#) oder Me (Visual Basic) zugegriffen wird. Um auf den Namen der Ansicht zuzugreifen, müssen Sie auf das ViewInfo-Objekt zugreifen, das der Ansicht zugeordnet ist. Das folgende Beispiel zeigt, wie ein Meldungsfeld mit dem Namen der momentan aktiven Ansicht angezeigt werden kann.
MessageBox.Show("Current view name: " +
this.CurrentView.ViewInfo.Name);
MessageBox.Show("Current view name: " & _
Me.CurrentView.ViewInfo.Name)
Alle InfoPath-Formularvorlagen enthalten mindestens eine Standardansicht. InfoPath unterstützt jedoch auch die Erstellung mehrerer Ansichten des einem Formular zugrunde liegenden XML-Dokuments. Wenn Sie über mehrere Ansichten verfügen, kann die ViewInfoCollection verwendet werden, um mit allen Ansichten zu arbeiten, die in der Formularvorlage implementiert sind. Um auf die ViewInfoCollection einer Formularvorlage zuzugreifen, verwenden Sie die ViewInfos-Eigenschaft der XmlForm-Klasse . Sie können die aktuell aktive Ansicht programmgesteuert ändern, indem Sie die SwitchView-Methode der ViewInfoCollection verwenden, wie im folgenden Codebeispiel veranschaulicht.
this.ViewInfos.SwitchView("MySecondView");
Me.ViewInfos.SwitchView("MySecondView")
Das obige Beispiel für das Wechseln einer Ansicht funktioniert nur nach dem Öffnen des Formulars. Um eine Standardansicht während des Loading-Ereignisses festzulegen, verwenden Sie die Initial-Eigenschaft der ViewInfoCollection-Klasse , wie im folgenden Beispiel gezeigt. Beachten Sie jedoch, dass dieser Wert erst wirksam wird, nachdem das Formular gespeichert und erneut geöffnet wurde.
this.ViewInfos.Initial = this.ViewInfos["MyInitialView"];
Me.ViewInfos.Initial = Me.ViewInfos["MyInitialView"];
Auswählen von Steuerelementen in einer Ansicht
InfoPath stellt zwei Methoden der View-Klasse bereit, die beide überladen sind, um ein Steuerelement in der aktuellen Ansicht programmgesteuert auszuwählen: die Methoden SelectText() und SelectNodes(). Die SelectText(XPathNavigator)- Methode wird für Dateneingabesteuerelemente verwendet, z. B. ein Textfeld, während die SelectNodes-Methode für strukturelle Steuerelemente verwendet wird, z. B. für einen optionalen Abschnitt. Zum Auswählen eines bestimmten Steuerelements in der Ansicht müssen Sie den Knoten und optional den ViewContext-Bezeichner des Steuerelements bereitstellen. Den ViewContext-Bezeichner benötigen Sie, wenn Sie mehrere Steuerelemente haben, die an den gleichen Knoten in der Datenquelle gebunden sind. InfoPath stellt die Informationen für den ViewContext-Bezeichner bereit, wenn Sie das Formular entwerfen.
Die ViewContext-ID eines Steuerelements wird auf der Registerkarte Erweitert des Eigenschaftendialogfelds des Steuerelements angezeigt, auf das zugegriffen wird, indem Sie mit der rechten Maustaste auf das Steuerelement klicken, auf ControlName-Eigenschaften und dann auf die Registerkarte Erweitert klicken. Die ViewContext-ID des Steuerelements ist im Abschnitt Code der Registerkarte Erweitert aufgeführt.
Verwendungszweck von "SelectText" und "SelectNodes"
Sie können die folgenden Dateneingabesteuerelemente programmgesteuert mithilfe der SelectText(XPathNavigator) -Methode auswählen:
- Textfeld
- Rich-Text-Feld Box
- Datumsauswahl
Sie können die folgenden Struktursteuerelemente programmgesteuert mithilfe der SelectNodes(XPathNavigator) -Methode auswählen:
- Optionaler Abschnitt
- Auswahlabschnitt
- Wiederholter Abschnitt (Elemente)
- Wiederholte Tabelle (Zeilen)
- Wiederholter rekursiver Abschnitt (Elemente)
- Aufzählung, Nummerierte Liste und Einfache Liste
- Horizontale wiederholte Tabelle
Die folgenden Steuerelemente können nicht programmgesteuert ausgewählt werden, d. h. es ist nicht möglich, den Fokus programmgesteuert darauf zu setzen:
- Dropdown-Listenfeld
- Listenfeld
- Kontrollkästchen
- Optionsfeld
- Schaltfläche
- Bild (verknüpft oder eingeschlossen)
- Freihandzeichnung
- Hyperlink
- Ausdrucksfeld
- Vertikales Etikett
- ActiveX-Abschnitt
- Horizontaler Bereich
Verwenden der "SelectText"- und der "SelectNodes"-Methode
Im folgenden Beispiel wird die SelectText(XPathNavigator) -Überladung der SelectText-Methode , die einen xmlNode-Parameter bereitstellt, verwendet, um ein Textfeld auszuwählen, das an "my:field1" gebunden ist.
// Create XPathNavigator and select field.
XPathNavigator textNode =
CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1", NamespaceManager);
// Select text in specified field.
CurrentView.SelectText(textNode);
Wenn Mehrere Steuerelemente an "my:field1" gebunden sind, müssen Sie die SelectText(XPathNavigator, String) -Überladung der SelectText-Methode verwenden, die einen zusätzlichen viewContext-Parameter zum Auswählen eines bestimmten Steuerelements bereitstellt. Im folgenden Beispiel wird davon ausgegangen, dass zwei Textfeld-Steuerelemente an "my:field1" gebunden sind, wobei das erste Steuerelement die ViewContext-ID "STRG1" und das zweite Steuerelement die ViewContext-ID "STRG8" aufweist. Das zweite Steuerelement ist ausgewählt.
// Create XPathNavigator and select field.
XPathNavigator textNode =
CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1", NamespaceManager);
// Select text in specified field.
CurrentView.SelectText(textNode, "CTRL8");
Im folgenden Beispiel wird die SelectNodes(XPathNavigator) -Überladung der SelectNodes-Methode , die nur einen startNode-Parameter bereitstellt, verwendet, um die erste Zeile in einer wiederholten Tabelle auszuwählen, die an die wiederholte Gruppe "my:employee" gebunden ist.
// Create XPathNavigator and specify XPath for nodes.
XPathNavigator repeatingTableRow1 =
CreateNavigator().SelectSingleNode(
"/my:myFields/my:employees/my:employee[1]", NamespaceManager);
// Select nodes in specified XPathNavigator.
CurrentView.SelectNodes(repeatingTableRow1);
Sie können auch mehrere Zeilen in einer wiederholten Tabelle auswählen. Im folgenden Beispiel werden die ersten drei Zeilen einer wiederholten Tabelle, die an die wiederholte Gruppe "my:employee" gebunden ist, mithilfe der SelectNodes(XPathNavigator, XPathNavigator, String) -Überladung der SelectNodes-Methode ausgewählt, die die Parameter startNode und endNode bereitstellt:
// Create XPathNavigators to specify range of nodes.
XPathNavigator repeatingTableRow1 =
CreateNavigator().SelectSingleNode(
"/my:myFields/my:employees/my:employee[1]", NamespaceManager);
XPathNavigator repeatingTableRow3 =
CreateNavigator().SelectSingleNode(
"/my:myFields/my:employees/my:myemployee[3]", NamespaceManager);
// Select range of nodes in specified XPathNavigators.
CurrentView.SelectNodes(repeatingTableRow1, repeatingTableRow3);