Personalizzare un modello di modulo mediante uno script

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

Per coloro che hanno già acquisito familiarità con la scrittura di script, è possibile aggiungere uno script al modello di modulo di Microsoft Office InfoPath utilizzando il linguaggio di script Microsoft JScript o Microsoft Visual Basic Scripting Edition (VBScript). L'aggiunta di uno script è consente di personalizzare elementi del modello di modulo diversi da regole, formule, convalida di dati o formattazione condizionale. Ad esempio, è possibile aggiungere uno script che crea e invia un messaggio di posta elettronica quando si passa alla visualizzazione in un modulo basato sul modello di modulo. Un modello di modulo di questo genere può essere configurato solo mediante uno script.

Contenuto dell'articolo

Panoramica

Considerazioni sulla compatibilità

Impostare il linguaggio di script per un modello di modulo

Visualizzare un messaggio ogni volta che si verifica un evento

Aggiunta di uno script che viene eseguita quando si salva i dati del modulo

Aggiunta di uno script che viene eseguita quando si inviano i dati del modulo

Aggiunta di uno script che viene eseguita quando un utente fa clic su un pulsante

Aggiunta di uno script che viene eseguita quando vengono uniti moduli esistenti

Aggiunta di uno script per aggiornare i moduli esistenti

Aggiunta di uno script per altri eventi

Informazioni generali

È possibile personalizzare il modello di modulo InfoPath utilizzando regole, formule, convalida di dati e formattazione condizionale. Nonostante queste funzioni siano molto flessibili e consentano di gestire una vasta gamma di attività, alcune di queste richiedono altre caratteristiche. Ad esempio, non è possibile utilizzare le regole per inviare un messaggio di posta elettronica quando si immette un valore in una casella di testo in un modulo. Se è necessario personalizzare il modello di modulo aggiungendo altre caratteristiche e l'utente è esperto nella scrittura di script mediante il linguaggio JScript o VBScript, è possibile aggiungere uno script che viene eseguito quando si apre un nuovo modulo oppure che modifica un modulo esistente basato sul modello di modulo.

Durante l'aggiunta di uno script a un modello di modulo, in InfoPath viene avviato Microsoft Script Editor (MSE), che consente di aggiungere, modificare ed eseguire il debug dello script in un modello di modulo e posiziona il cursore nell'evento scelto. Viene quindi aggiunto automaticamente un gestore eventi allo script. Un gestore eventi è il codice della funzione in un modello di modulo InfoPath che risponde a una azione utente o a una modifica ai dati XML in un modulo. Ad esempio, se si desidera che i moduli vengano salvati su più percorsi di rete, è possibile aggiungere uno script al gestore eventi OnSaveRequest. Se si aggiunge uno script da eseguire quando viene salvato un modulo basato sul modello di modulo, in InfoPath viene avviato l'editor di script e viene aggiunto uno dei seguenti codici.

Nota : Il codice aggiunto da InfoPath dipende dal linguaggio di script scelto.

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::OnSaveRequest(eventObj)
{
// Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation();
// Write the code to be run after saving here.
eventObj.ReturnStatus = true;
}

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_OnSaveRequest(eventObj)
' Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation
' Write the code to be run after saving here.
eventObj.ReturnStatus = True
End Sub

È quindi possibile aggiungere il codice nelle posizioni corrette nel gestore eventi che salva il modulo nel diverso percorso di rete. Quando si salva un modulo basato su questo modello di modulo, viene eseguito il codice nel gestore eventi OnSaveRequest.

Nota : In questo articolo viene illustrato come creare gli script in un modello di modulo. Per ulteriori informazioni su Microsoft Script Editor e su oggetti, metodi, eventi e proprietà specifiche utilizzate in InfoPath, fare riferimento alla guida di riferimento per sviluppatori di InfoPath.

In InfoPath vengono aggiunti automaticamente gestori eventi per tutti i seguenti eventi tranne uno.

Event handler

Description

Steps for creating

OnAfterChange

This event runs after a user changes the value in the specified control bound to a field. For example, you can display a custom HTML task pane after a user selects an item in a list box control. This event runs after the OnValidate event.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Change Event.

OnAfterImport

This event runs after the user successfully merges several forms into one form.

Manually add the OnAfterImport event handler declaration directly to the script file by using MSE. This event handler cannot be created in design mode.

OnBeforeChange

This event runs after a user changes the value in a control and before the value is added to the specified field bound to that control. For example, you can prevent a user from adding an additional row before filling out the last row in a repeating table.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On Before Change Event.

OnClick

This event runs when a user clicks a button associated with this event. This event is available after you add a button to the form template. For example, you can perform a complex calculation by using the values in fields in the main data source when a user clicks the button.

Double-click the button control and then on the General tab of the Button Properties dialog box, click Edit Form Code.

OnContextChange

This event runs when the focus changes in the form. For example, this event runs when a user navigates from a text box to a date picker, or when a user switches views. This event occurs after all other events have occurred.

On the Tools menu, point to Programming, and then click On Context Change Event.

OnLoad

This event runs whenever a user creates a new form or opens an existing form based on your form template. For example, you can copy a list of items from a secondary data source to the main data source when a user opens the form.

On the Tools menu, point to Programming, and then click On Load Event.

OnMergeRequest

This event runs when forms based on your form template are merged. For example, you can display the number of forms that were merged to give a user a status during the merge operation.

On the Tools menu, click Form Options. In the Category list, click Advanced. Under Merge forms, select the Merge using custom code check box, and then click Edit.

OnSaveRequest

This event runs when a user saves a form based on your form template. For example, you can save the form based on this form template to more than one location when a user saves the form. InfoPath adds two additional lines of code to this event: a line that saves the form and another line that tells you if InfoPath successfully saved the form.

On the Tools menu, click Form Options. In the Category list, click Open and Save. Under Save behavior, select the Save using custom code check box, and then click Edit.

OnSign

This event runs when a user applies a digital signature to a form. For example, you can add additional data to the digital signature of an expense report form when a user signs it.

On the Tools menu, point to Programming, and then click On Sign Event.

OnSubmitRequest

This event runs when a user submits his or her form data. For example, you can submit the form data to a secure Web service when the user clicks Submit on the File menu. Since InfoPath does not support a data connection to a secure Web service, you need to add a custom data connection that works with your secure Web service.

On the Tools menu, click Submit Options. Select the Allow users to submit this form check box, click Perform custom action using Code, and then click Edit Code.

OnSwitchView

This event runs when a user opens a form based on your form template or switches to another view in the form. For example, when a user switches to a specific view, you can create an e-mail message that contains data from the fields in the form's main data source.

On the Tools menu, click Programming, and then click On Switch View Event.

OnValidate

This event runs when a user changes the value in a control bound to a field. For example, when the user changes the value in a specific control, you can calculate a new value for another control by using the number that the user entered and a number that is in the script. This event occurs after the OnBeforeChange event handler runs.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Validate Event.

OnVersionUpgrade

This event runs when a user opens an existing form and the version number of the form template used by the existing form is older than the version number of the form template in the publish location. When a user opens an existing form, InfoPath checks the version number of the form template associated with the existing form. If the form template has a newer version number, InfoPath runs the OnVersion event handler when the user opens the existing form. For example, imagine that you add a new field to an existing form template and republish it, and you want the new field to be added to the main data source if a user opens an existing form. This event adds the new field to the main data source when a user opens an existing form.

On the Tools menu, click Form Options. In the Category list, click Versioning. In the On version upgrade list, click Use custom event, and then click Edit.

Torna all'inizio

Considerazioni sulla compatibilità

Non è possibile aggiungere uno script a un modello di modulo compatibile con browser; è possibile aggiungere uno script solo a un modello di modulo i cui moduli verranno compilati in InfoPath. È possibile personalizzare un modello di modulo compatibile con browser solo se si utilizza un codice gestito.

Torna all'inizio

Impostare il linguaggio di script per un modello di modulo

Per personalizzare un modello di modulo mediante gli script, è possibile utilizzare Microsoft JScript o Microsoft Visual Basic, Scripting Edition (VBScript). Per impostazione predefinita, InfoPath è configurato per aggiungere script utilizzando JScript. Il modello di modulo non contiene script o codice gestito, se si preferisce utilizzare il linguaggio di script VBScript, è possibile modificare il linguaggio di script per il modello di modulo in VBScript. Non è possibile utilizzare entrambe le lingue scripting nello stesso modello di modulo.

Se il modello di modulo contiene già script in una lingua e si desidera utilizzare l'altra lingua, è necessario salvare lo script esistente, in modo che è possibile convertire lo script in tali lingue, rimuovere lo script dal modello di modulo tramite la finestra di dialogo Opzioni modulo e quindi aggiungere lo script convertito al modello di modulo. InfoPath non è possibile convertire gli script in un nuovo linguaggio di script. Modifica della lingua di script nella finestra di dialogo Opzioni modulo influisce solo su questo modello di modulo. Altri modelli di modulo avrà JScript come il linguaggio di script predefinito.

  1. Scegliere Opzioni modulo dal menu Strumenti.

  2. Nell'elenco categoria, nella finestra di dialogo Opzioni modulo, fare clic su programmazione.

  3. Nell'elenco linguaggio codice modello di modulo in linguaggio di programmazione, fare clic su VBScript.

    Note : 

    • Dopo aver impostato il linguaggio di script e creare uno o più gestori di eventi per un modello di modulo, non è possibile modificare il linguaggio di script per il modello di modulo.

    • Se è stato installato Microsoft Visual Studio 2005 Tools per le applicazioni, la lingua predefinita è Microsoft Visual Basic .NET. È comunque possibile utilizzare questa procedura per impostare il linguaggio di script VBScript.

Torna all'inizio

Visualizzare un messaggio ogni volta che si verifica un evento

Se si desidera conoscere i gestori eventi da eseguire in risposta a un'azione o a un altro evento, è possibile aggiungere un codice temporaneo per visualizzare una finestra di messaggio durante l'esecuzione del gestore eventi. Questo codice può essere utilizzato per determinare quando viene eseguito un gestore eventi. Dopo aver aggiunto il codice, è possibile utilizzare la funzione di anteprima per visualizzare un modulo in base al relativo modello oppure per pubblicare il modello di modulo e crearne uno nuovo. Alcuni gestori eventi vengono eseguiti solo se si crea un modulo dopo aver pubblicato il modello di modulo. È quindi possibile eseguire un'azione che potrebbe eseguire il gestore eventi e visualizzare la finestra di messaggio.

Dopo aver determinato le azioni o gli eventi che eseguono il gestore eventi, rimuovere il codice e riprendere la progettazione del modello di modulo. Se il codice non viene rimosso e il modello viene pubblicato, questa finestra di messaggio verrà visualizzata durante l'esecuzione del gestore eventi.

  1. Aggiungere il gestore eventi.

  2. Per aggiungere codice in JScript, digitare XDocument.UI.Alert ("The evento evento name appena eseguita"); Sostituire con il nome del gestore eventi. Ad esempio, se si aggiunge il codice per il gestore eventi OnValidate , sarà necessario immettere XDocument.UI.Alert ("The OnValidate gestore eventi appena eseguita");

  3. Per aggiungere codice in VBScript, digitare XDocument.UI.Alert ("The evento evento name appena eseguita") , ad esempio, se si aggiunge il codice al gestore eventi OnSaveRequest , sarà necessario immettere XDocument.UI.Alert ("The OnSaveRequest gestore eventi appena eseguita")

  4. Per verificare il codice, fare clic su Anteprima nel menu File oppure premere CTRL+MAIUSC+B ed eseguire un'azione che possa avviare l'evento. Quando si verifica l'evento con la riga di codice, verrà visualizzato il messaggio.

    Nota : Prima di poter eseguire questa azione utente, per alcuni eventi potrebbe essere richiesta la pubblicazione del modello di modulo e la creazione di un modulo in base a tale modello.

  5. Prima di pubblicare il modello di modulo e consentire agli utenti di compilare i moduli in base al modello, eliminare il codice utilizzato per visualizzare la finestra di messaggio.

Torna all'inizio

Aggiungere uno script che viene eseguito al salvataggio dei dati del modulo

  1. Scegliere Opzioni modulo dal menu Strumenti.

  2. Nell'elenco Categoria, nella finestra di dialogo Opzioni modulo, fare clic su Apertura e salvataggio.

  3. In Salvataggio selezionare la casella di controllo Salva con codice personalizzato, quindi fare clic su Modifica. Microsoft Script Editor verrà avviato con il cursore sul gestore eventi OnSaveRequest.

    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::OnSaveRequest(eventObj)
    {
    // Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation();
    // Write the code to be run after saving here.
    eventObj.ReturnStatus = true;
    }

    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_OnSaveRequest(eventObj)
    ' Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation
    ' Write the code to be run after saving here.
    eventObj.ReturnStatus = True
    End Sub
  4. Eseguire una o entrambe le operazioni seguenti:

    • Per aggiungere uno script che venga eseguito prima del salvataggio del modulo, sostituire il commento Write the code to be run before saving here. con il proprio codice.

    • Per aggiungere uno script che venga eseguito in seguito al salvataggio del modulo, sostituire il commento Write the code to be run after saving here. con il proprio codice.

  5. Per verificare le modifiche, fare clic su Anteprima nella barra degli strumenti Standard oppure premere CTRL+MAIUSC+B.

    Nota : Se il gestore eventi viene eseguito solo dopo aver creato un modulo basato sul modello di modulo, pubblicare il modello selezionando Pubblica nel menu File, quindi completare la Pubblicazione guidata. Una volta pubblicato il modello, creare un modulo ed eseguire un'azione per avviare il gestore eventi.

Torna all'inizio

Aggiungere uno script che viene eseguito all'invio dei dati del modulo

  1. Scegliere Opzioni invio dal menu Strumenti.

  2. Nella finestra di dialogo Opzioni invio selezionare la casella di controllo Consenti agli utenti di inviare il modulo.

  3. Fare clic su Esegui azione personalizzata tramite codice, quindi selezionare Modifica codice. Microsoft Script Editor verrà avviato con il cursore sul gestore eventi OnSubmitRequest.

    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::OnSubmitRequest(eventObj)
    {
    // If the submit operation is successful, set
    // eventObj.ReturnStatus = true;
    // 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_OnSubmitRequest(eventObj)
    ' If the submit operation is successful, set
    ' eventObj.ReturnStatus = True
    ' Write your code here
    End Sub
  4. Sostituire il commento If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here con il proprio codice.

  5. Per verificare le modifiche, fare clic su Anteprima nella barra degli strumenti Standard oppure premere CTRL+MAIUSC+B.

Torna all'inizio

Aggiungere uno script che viene eseguito quando si seleziona un pulsante

  1. Aggiungere un nuovo pulsante a una visualizzazione nel modello di modulo, quindi fare doppio clic su di esso.

    Nota : Durante l'aggiunta di uno script a un pulsante esistente, fare invece doppio clic sul pulsante.

  2. Fare clic sulla scheda Generale.

  3. Selezionare Modifica codice modulo. Microsoft Script Editor verrà avviato con il cursore sul gestore eventi OnClick per il pulsante specifico.

    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 Button Name::OnClick(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 Button Name_OnClick(eventObj)
    ' Write your code here
    End Sub
  4. Sostituire il commento Write your code here con il proprio codice.

  5. Per verificare le modifiche, fare clic su Anteprima nella barra degli strumenti Standard oppure premere CTRL+MAIUSC+B.

Torna all'inizio

Aggiungere uno script che viene eseguito quando vengono uniti moduli esistenti

  1. Scegliere Opzioni modulo dal menu Strumenti.

  2. Nell'elenco Categoria, nella finestra Opzioni modulo, fare clic su Avanzate.

  3. In Unisci moduli selezionare la casella di controllo Consenti unione moduli.

  4. Selezionare la casella di controllo Unisci con codice personalizzato, quindi fare clic su Modifica. Microsoft Script Editor verrà avviato con il cursore sul gestore eventi OnMergeRequest.

    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::OnMergeRequest(eventObj)
    {
    // Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM);
    eventObj.ReturnStatus = true;
    }

    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_OnMergeRequest(eventObj)
    ' Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM)
    eventObj.ReturnStatus = True
    End Sub
  5. Sostituire il commento Write the code that handles each form being merged here. con il proprio codice.

  6. Per verificare il codice in questo evento, pubblicare il modello di modulo, creare diversi moduli basati sul modello e unire quindi i modelli.

    Nota : Per ulteriori informazioni sulla pubblicazione del modello di modulo, fare riferimento ai collegamenti presenti nella sezione Vedere anche.

Torna all'inizio

Aggiungere uno script per aggiornare i moduli esistenti

Se è stato aggiornato un modello di modulo precedentemente pubblicato e si desidera aggiornare i moduli esistenti basati su tale modello, è possibile aggiungere uno script al modello aggiornato che viene eseguito ogni volta che viene aperto uno dei moduli esistenti. Quando si apre un modulo esistente, in InfoPath viene controllata la versione del modello di modulo associato nella posizione di pubblicazione. Se il numero di versione del modello alla posizione di pubblicazione è più recente del numero di versione nel modulo esistente, il che indica che è stato aggiornato, viene eseguito il codice in questo evento in modo da aggiornare il modulo esistente.

  1. Scegliere Opzioni modulo dal menu Strumenti.

  2. Nell'elenco Categoria, nella finestra di dialogo Opzioni modulo, fare clic su Controllo delle versioni.

  3. Nell'elenco All'aggiornamento della versione selezionare Utilizza evento personalizzato, quindi fare clic su Modifica. Microsoft Script Editor verrà avviato con il cursore sul gestore eventi OnVersionUpgrade.

    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::OnVersionUpgrade(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_OnVersionUpgrade(eventObj)
    ' Write your code here
    End Sub
  4. Sostituire il commento Write your code here con il proprio codice.

  5. Per verificare il codice in questo evento, pubblicare il modello di modulo, creare diversi moduli basati su questo modello, modificare e pubblicare una versione aggiornata del modello, quindi aprire un modulo esistente basato sulla versione precedente del modello.

    Nota : Per ulteriori informazioni sulla pubblicazione del modello di modulo, fare riferimento ai collegamenti presenti nella sezione Vedere anche.

Torna all'inizio

Aggiungere uno script per altri eventi

Questa procedura può essere utilizzata per aggiungere i seguenti gestori eventi al modello di modulo:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • Nel menu Strumenti selezionare Programmazione, quindi fare clic sull'evento da aggiungere al gestore eventi. Microsoft Script Editor verrà avviato con il cursore sul gestore eventi selezionato.

  • Sostituire il commento Write your code here con il proprio codice.

Torna all'inizio

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×