Freigeben über


Exemplarische Vorgehensweise: Erstellen und Debuggen einer einfachen Formularvorlage mit dem InfoPath 2003-Objektmodell

Dieses Thema enthält eine Anleitung zum Erstellen einer einfachen InfoPath-Formularvorlage mit verwaltetem Code, die das InfoPath 2003-kompatible Objektmodell verwendet, das vom Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace bereitgestellt wird.

Hello World

Im folgenden Beispiel erfahren Sie, wie ein einfaches Warnungsdialogfeld mithilfe der Alert-Methode des InfoPath 2003-kompatiblen Objektmodells angezeigt wird.

Erstellen einer neuen InfoPath-Formularvorlage, die das InfoPath 2003-kompatible Objektmodell verwendet

  1. Erstellen Sie eine neue Formularvorlage, die das InfoPath 2003-kompatible Objektmodell verwendet, wie in Vorgehensweise: Erstellen einer Formularvorlage mit verwaltetem Code mit dem InfoPath 2003-Objektmodell beschrieben.

  2. Geben Sie dem Formularvorlagenprojekt den Namen HelloWorld, und speichern Sie es.

    Das Projektsystem erstellt Code- und Projektdateien und öffnet dann eine leere Formularvorlage im InfoPath-Entwurfsmodus. Jetzt können Sie Ereignishandler hinzufügen.

Hinzufügen eines OnClick-Ereignishandlers

  1. Klicken Sie im Aufgabenbereich Formularentwurf auf Steuerelemente.

  2. Wenn Sie in InfoPath mit Microsoft Visual Studio Tools für Anwendungen (VSTA) arbeiten, klicken Sie im Abschnitt Standard auf das Steuerelement Schaltfläche, um dieses in die Ansicht einzufügen.

    Wenn Sie in Visual Studio 2005 mit Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System oder Visual Studio 2008 mit Visual Studio Tools für Office arbeiten, ziehen Sie das Steuerelement Schaltfläche aus der Toolbox auf den Formular-Designer manifest.xsf [Entwurf].

  3. Doppelklicken Sie auf die Schaltfläche, um das Dialogfeld Schaltflächeneigenschaften zu öffnen.

  4. Ändern Sie den Wert im Feld Bezeichnung in Alert.

  5. Ändern Sie den Wert im Feld ID in AlertID.

  6. Klicken Sie auf Formularcode bearbeiten.

    Eine Ereignishandlervorlage für das OnClick-Ereignis wird erstellt, und der Fokus wechselt zum Code-Editor in VSTA oder Visual Studio. Weitere Informationen zum Arbeiten mit Ereignishandlern finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers mit dem InfoPath 2003-Objektmodell.

    Jetzt können Sie dem Ereignishandler für die Schaltfläche Formularcode hinzufügen.

Hinzufügen von Formularcode zum Ereignishandler

  1. Geben Sie im OnClick-Ereignishandler den folgenden Code ein:

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    Beachten Sie, dass nach der Eingabe jedes Punktes in der Codezeile eine Microsoft IntelliSense-Dropdownliste angezeigt wird. Der gesamte Ereignishandler sollte wie folgt aussehen:

    [InfoPathEventHandler(MatchPath="AlertID", EventType=InfoPathEventType.OnClick)]
    public void AlertID_OnClick(DocActionEvent e)
    {
        thisXDocument.UI.Alert("Hello World!");
    }
    
    <InfoPathEventHandler(MatchPath:="AlertID", EventType:=InfoPathEventType.OnClick)>
    Public Sub AlertID_OnClick(ByVal e As DocActionEvent)
        thisXDocument.UI.Alert("Hello World!")
    End Sub
    

    Hinweis

    Alternativ zur Verwendung der Alert-Methode können Sie die MessageBox.Show-Methode des System.Windows.Forms-Namespace verwenden, um ein Meldungsfeld anzuzeigen. Dazu müssen Sie einen Verweis auf die "System.Windows.Forms"-Assembly hinzufügen, den Direktiven am Anfang der Codedatei using System.Windows.Forms; oder Imports System.Windows.Forms hinzufügen, und dann eine Codezeile wie die folgende eingeben: MessageBox.Show("Hello World!); or MessageBox.Show("Hello World!)

  2. Wenn Sie mit InfoPath und VSTA arbeiten, wechseln Sie zum InfoPath-Entwurfsfenster, und klicken Sie dann auf der Standardsymbolleiste auf die Schaltfläche Vorschau.

    Wenn Sie in Visual Studio arbeiten, klicken Sie im Menü Debuggen auf Debuggen starten (oder drücken Sie F5).

  3. Klicken Sie im Vorschaufenster auf die Schaltfläche Alert.

    Ein Meldungsfeld mit dem Text "Hello World!" wird angezeigt.

    Im nächsten Verfahren wird gezeigt, wie Sie dem Formularcode Haltepunkte für das Debuggen hinzufügen können.

Debuggen von Formularcode

  1. Klicken Sie im Code-Editor auf die graue Leiste links neben der Zeile:

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    Ein roter Kreis wird angezeigt, und die Codezeile wird hervorgehoben, um darauf hinzuweisen, dass die Laufzeit an diesem Haltepunkt im Formularcode angehalten wird.

  2. Klicken Sie im Menü Debuggen auf Debuggen starten (oder drücken Sie F5).

  3. Klicken Sie im Vorschaufenster von InfoPath auf die Schaltfläche Alert.

    Der Fokus wechselt zum Code-Editor, und die Haltepunktlinie wird hervorgehoben.

  4. Klicken Sie im Menü Debuggen auf Prozedurschritt (oder drücken Sie F10), um das schrittweise Durchlaufen des Codes fortzusetzen.

    Der Code der Alert-Methode wird ausgeführt und der Hinweis "Hello World!" im Vorschaufenster von InfoPath angezeigt.

Abrufen des aktuellen Benutzernamens

Mithilfe der .NET Framework-Klassen können Sie auf Funktionalität zugreifen, die in Skripts nicht ohne weiteres verfügbar war. In diesem Beispiel erfahren Sie, wie der Name des aktuellen Benutzers über die .NET Framework-Klassen abgerufen werden kann.

Hinzufügen eines OnLoad-Ereignishandlers

  1. Öffnen Sie das InfoPath-Projekt "HelloWorld", das Sie zuvor erstellt haben.

  2. Klicken Sie im Menü Ansicht auf Datenquelle.

  3. Klicken Sie mit der rechten Maustaste auf den Knoten myFields, und klicken Sie dann auf Hinzufügen.

  4. Geben Sie employee im Feld Name ein, und klicken Sie dann auf OK.

  5. Ziehen Sie den Knoten employee in die Ansicht.

  6. Wenn Sie in InfoPath mit VSTA arbeiten, klicken Sie im Menü Extras auf Programmierung, und klicken Sie dann auf On Load-Ereignis.

    Wenn Sie in Visual Studio arbeiten, klicken Sie im Menü Einfügen auf Ereignis, und klicken Sie dann auf On Load-Ereignis.

    Dadurch wird ein Ereignishandler für das OnLoad-Ereignis erstellt, und der Fokus wechselt zum Code-Editor. Der Code in diesem Ereignishandler wird bei jedem Laden des Formulars aufgerufen. Im nächsten Verfahren wird gezeigt, wie dem Ereignishandler Formularcode zum Abrufen des Benutzernamens hinzugefügt wird.

Hinzufügen von Formularcode

  1. Geben Sie im OnLoad-Ereignishandler den folgenden Code ein:

    // Store an XML DOM node as a local variable.
    IXMLDOMNode nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    if(nodeEmployee != null)
    {
        if(nodeEmployee.text == "")
        {
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName;
        }
    }
    
    // Store an XML DOM node as a local variable.
    Dim nodeEmployee As IXMLDOMNode
    nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    If Not(nodeEmployee Is Nothing) Then
        If(nodeEmployee.text = "") Then
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName
        End If
    End If
    
  2. Kompilieren Sie das Formular, und zeigen Sie eine Vorschau davon an.

    Das Textfeld employee sollte jetzt mit Ihrem Benutzername aufgefüllt sein.

Informationen zum Bereitstellen einer Formularvorlage mit verwaltetem Code finden Sie unter Vorgehensweise: Bereitstellen von InfoPath-Projekten. Informationen zum InfoPath-Objektmodell sowie zu allgemeinen Programmieraufgaben in Formularvorlagen mit verwaltetem Code, die das InfoPath 2003-kompatible Objektmodell verwenden, finden Sie unter Grundlegendes zum InfoPath 2003-Objektmodell.

Siehe auch

Aufgaben

Vorgehensweise: Hinzufügen eines Ereignishandlers mit dem InfoPath 2003-Objektmodell

Konzepte

Initialisierungs- und Bereinigungscode mit dem InfoPath 2003-Objektmodell
InfoPath 2003-kompatible Objektmodelle