Procedura dettagliata: Creazione e debug di un modello di modulo di base utilizzando il modello a oggetti di InfoPath 2003

In questo argomento è inclusa una procedura dettagliata per la creazione di un modello di modulo di base con codice gestito di InfoPath che utilizza il modello a oggetti compatibile con InfoPath 2003 reso disponibile dallo spazio dei nomi Microsoft.Office.Interop.InfoPath.SemiTrust.

Hello World

Nell'esempio seguente viene illustrato come visualizzare una semplice finestra di dialogo di avviso utilizzando il metodo Alert del modello a oggetti compatibile con InfoPath 2003.

Creare un nuovo modello di modulo che utilizza il modello a oggetti compatibile con InfoPath 2003

  1. Creare un nuovo modello di modulo che utilizza il modello a oggetti compatibile con InfoPath 2003, come illustrato in Procedura: Creare un modello di modulo con codice gestito tramite il modello a oggetti di InfoPath 2003.

  2. Assegnare al progetto modello di modulo il nome HelloWorld e salvarlo.

    Tramite il sistema di progetti vengono creati i file del codice e del progetto e quindi viene aperto un modello di modulo vuoto in modalità progettazione di InfoPath. A questo punto è possibile aggiungere gestori eventi.

Aggiungere un gestore eventi OnClick

  1. Fare clic su Controlli nel riquadro attività Attività di progettazione.

  2. Se si utilizza InfoPath con Microsoft Visual Studio Tools for Applications (VSTA), nella sezione dei controlli Standard fare clic sul controllo Pulsante per inserirlo nella visualizzazione.

    Se si utilizza Visual Studio 2005 con Microsoft Visual Studio Tools per Microsoft Office System 2007 o Visual Studio 2008 con Visual Studio Tools per Office, trascinare il controllo Pulsante dalla Casella degli strumenti al file di progettazione del modulo manifest.xsf [Progettazione].

  3. Fare doppio clic sul pulsante per aprire la finestra di dialogo Proprietà pulsante.

  4. Nel campo Etichetta specificare Alert.

  5. Nel campo ID specificare AlertID.

  6. Fare clic su Modifica codice modulo.

    Verrà creata una bozza di gestore eventi per l'evento OnClick e lo stato attivo passerà all'editor del codice in VSTA o Visual Studio. Per ulteriori informazioni sull'utilizzo dei gestori eventi, vedere Procedura: Aggiungere un gestore eventi tramite il modello a oggetti di InfoPath 2003.

    A questo punto è possibile aggiungere il codice del modulo al gestore eventi per il pulsante.

Aggiungere il codice del modulo al gestore eventi

  1. Nel gestore eventi OnClick digitare il codice seguente:

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

    Si noti che quando si digita un punto nella riga del codice viene visualizzato un elenco a discesa di Microsoft IntelliSense®. L'intero gestore eventi dovrebbe essere simile al seguente:

    [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
    
    Nota:

    Quale alternativa all'utilizzo del metodo Alert è possibile utilizzare il metodo MessageBox.Show dello spazio dei nomi System.Windows.Forms per visualizzare una finestra di messaggio. A tale scopo, è necessario aggiungere un riferimento all'assembly System.Windows.Forms, aggiungere using System.Windows.Forms; o Imports System.Windows.Forms alle direttive all'inizio del file del codice e quindi digitare una riga di codice come la seguente: MessageBox.Show("Hello World!); or MessageBox.Show("Hello World!)

  2. Se si utilizzano InfoPath e VSTA, passare alla finestra di progettazione di InfoPath e quindi fare clic sul pulsante Anteprima sulla barra degli strumenti Standard.

    Se si utilizza Visual Studio, scegliere Avvia debug dal menu Debug oppure premere F5.

  3. Nella finestra Anteprima fare clic sul pulsante Alert.

    Verrà visualizzata una finestra di messaggio contenente il testo "Hello World!"

    Nella procedura seguente viene descritto come aggiungere punti di interruzione per il debug al codice del modulo.

Eseguire il debug del codice del modulo

  1. Nell'editor del codice fare clic sulla barra grigia a sinistra della riga seguente:

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

    Verrà visualizzato un cerchio rosso e la riga del codice verrà evidenziata, a indicare che l'esecuzione verrà sospesa in corrispondenza di questo punto di interruzione.

  2. Scegliere Avvia debug dal menu Debug oppure premere F5.

  3. Nella finestra Anteprima di InfoPath fare clic sul pulsante Alert.

    Lo stato attivo passerà all'editor del codice e la riga con il punto di interruzione verrà evidenziata.

  4. Scegliere Esegui istruzione/routine dal menu Debug oppure premere F10 per continuare a eseguire il codice un'istruzione per volta.

    Verrà eseguito il metodo Alert e nella finestra Anteprima di InfoPath verrà visualizzato il messaggio "Hello World!".

Ottenere il nome dell'utente corrente

Con le classi di .NET Framework è possibile accedere a funzionalità che non erano facilmente accessibili tramite script. In questo esempio verrà illustrato come utilizzare le classi di .NET Framework per recuperare il nome dell'utente corrente.

Aggiungere un gestore eventi OnLoad

  1. Aprire il progetto HelloWorld di InfoPath creato in precedenza.

  2. Scegliere Origine dati dal menu Visualizza.

  3. Fare clic con il pulsante destro del mouse sul nodo myFields e quindi scegliere Aggiungi.

  4. Nella casella Nome digitare employee e quindi fare clic su OK.

  5. Trascinare il nodo employee nella visualizzazione.

  6. Se si utilizza InfoPath con VSTA, scegliere Programmazione dal menu Strumenti e quindi Evento di caricamento.

    Se si utilizza Visual Studio, scegliere Evento dal menu Inserisci e quindi Evento di caricamento.

    Verrà creato un gestore eventi per l'evento OnLoad e lo stato attivo passerà all'editor del codice. Il codice di questo gestore eventi verrà chiamato ogni volta che si carica il modulo. Nella procedura seguente viene illustrato come aggiungere il codice del modulo per recuperare il nome dell'utente nel gestore eventi.

Aggiungere il codice del modulo

  1. Nel gestore eventi OnLoad digitare il codice seguente:

    // 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. Compilare e visualizzare in anteprima il modulo.

    A questo punto la casella di testo employee dovrebbe includere il nome dell'utente.

Per informazioni su come distribuire un modello di modulo con codice gestito, vedere Procedura: Distribuire progetti di InfoPath. Per informazioni sul modello a oggetti di InfoPath e le attività di programmazione comuni in modelli di modulo con codice gestito che utilizzano il modello a oggetti compatibile con InfoPath 2003, vedere Informazioni sul modello a oggetti di InfoPath 2003.

Vedere anche

Attività

Procedura: Aggiungere un gestore eventi tramite il modello a oggetti di InfoPath 2003

Concetti

Codice di inizializzazione e pulitura tramite il modello a oggetti di InfoPath 2003
Modelli a oggetti compatibili con InfoPath 2003