Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per impostazione predefinita, il file FormCode.cs o FormCode.vb creato per un progetto modello di modulo compatibile con InfoPath 2003 contiene tutto il codice sorgente per la logica di programmazione del modulo. Il modello del progetto genera nel file FormCode.cs o FormCode.vb una classe molto simile a quelle degli esempi seguenti, nella quale è possibile definire il codice di inizializzazione e pulitura, nonché i gestori eventi del modulo. I file FormCode.cs e FormCode.vb applicano un attributo System.ComponentModel.DescriptionAttribute a livello di assembly, che identifica la classe come l'unica in cui sono implementati i gestori eventi. L'attributo InfoPathNamespace, implementato dal tipo InfoPathNamespaceAttribute, viene applicato a una classe per identificare gli spazi dei nomi della selezione DOM XML utilizzati nella classe. Gli spazi dei nomi a cui viene fatto riferimento nell'attributo InfoPathNamespace sono gestiti dal sistema di progetti InfoPath.
La classe FormCode stessa implementa i metodi _Startup e _Shutdown utilizzati per eseguire le routine di inizializzazione e pulitura per tutti i componenti necessari, oltre alle funzionalità standard di InfoPath, quando il modulo è aperto.
Importante: |
|---|
Evitare di chiamare i membri del modello a oggetti di InfoPath dai metodi |
using System;
using Microsoft.Office.Interop.InfoPath.SemiTrust;
// Office integration attribute. Identifies the startup class for the form. Do not
// modify.
[assembly: System.ComponentModel.DescriptionAttribute(
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")]
namespace Template1
{
// The namespace prefixes defined in this attribute must remain synchronized with
// those in the form definition file (.xsf).
[InfoPathNamespace(
"xmlns:my='https://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-29T22-27-27'")]
public partial class FormCode
{
private XDocument thisXDocument;
private Application thisApplication;
public void _Startup(Application app, XDocument doc)
{
thisXDocument = doc;
thisApplication = app;
// You can add additional initialization code here.
}
public void _Shutdown()
{
}
}
}
Imports System
Imports Microsoft.Office.Interop.InfoPath.SemiTrust
Imports Microsoft.VisualBasic
' Office integration attribute. Identifies the startup class for the form. Do not
' modify.
<Assembly: System.ComponentModel.DescriptionAttribute( _
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")>
Namespace Template1
' The namespace prefixes defined in this attribute must remain synchronized with
' those in the form definition file (.xsf).
<InfoPathNamespace( _
"xmlns:my='https://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-29T22-36-40'")> _
Public Class FormCode
Private thisXDocument As XDocument
Private thisApplication As Application
Public Sub _Startup(app As Application, doc As XDocument)
thisXDocument = doc
thisApplication = app
' You can add additional initialization code here.
End Sub
Public Sub _Shutdown()
End Sub
End Class
End Namespace
Metodo _Startup
Oltre a offrire lo spazio in cui scrivere il codice di inizializzazione per altri componenti, il metodo _Startup inizializza le variabili thisXDocument e thisApplication che è possibile utilizzare nel codice del modulo per accedere ai membri delle classi XDocument e Application del modello a oggetti di InfoPath. Il codice necessario per inizializzare le due variabili viene generato automaticamente dal modello di progetto di Visual Studio.
private XDocument thisXDocument;
private Application thisApplication;
public void _Startup(Application app, XDocument doc)
{
thisXDocument = doc;
thisApplication = app;
// You can add additional initialization code here.
}
Private thisXDocument As XDocument
Private thisApplication As Application
Public Sub _Startup(app As Application, doc As XDocument)
thisXDocument = doc
thisApplication = app
' You can add additional initialization code here.
End Sub
Negli esempi seguenti viene illustrato un semplice gestore eventi per un pulsante che utilizza la variabile thisXDocument per accedere al metodo Alert del tipo UIObject.
[InfoPathEventHandler(MatchPath="CTRL1_5", EventType=InfoPathEventType.OnClick)]
public void CTRL1_5_OnClick(DocActionEvent e)
{
// Write your code here.
thisXDocument.UI.Alert("Hello!");
}
<InfoPathEventHandler(MatchPath:="CTRL1_5", EventType:=InfoPathEventType.OnClick)> _
Public Sub CTRL1_5_OnClick(ByVal e As DocActionEvent)
' Write your code here.
thisXDocument.UI.Alert("Hello!")
End Sub
Per informazioni sulla creazione di un gestore eventi, vedere Procedura: Aggiungere un gestore eventi tramite il modello a oggetti di InfoPath 2003.
Metodo _ShutDown
Il metodo _Shutdown è l'ultimo metodo chiamato alla chiusura di un modulo. In questo metodo è possibile scrivere il codice necessario per pulire o completare i componenti utilizzati nel modulo.
public void _Shutdown()
{
}
Public Sub _Shutdown()
End Sub
Esempio di codice di inizializzazione e pulitura
Nell'esempio seguente vengono illustrate l'inizializzazione di una connessione a un database di Microsoft SQL Server™ nel metodo _Startup e la chiusura della connessione nel metodo _Shutdown. Per un corretto funzionamento dell'esempio, è necessario innanzitutto impostare un riferimento all'assembly System.Data di .NET Framework scegliendo Aggiungi riferimento dal menu Progetto e quindi selezionando il componente System.Data.dll nella scheda .NET. Si noti inoltre che all'inizio del file del codice del modulo è stata aggiunta la direttiva using System.Data.SqlClient (o Imports System.Data.SqlClient) per ridurre le sequenze di tasti da utilizzare.
Nota: |
|---|
Per gli utenti di un modulo di InfoPath contenente codice per la connessione a un database di SQL Server potrebbero essere necessarie autorizzazioni di protezione, a seconda della modalità di distribuzione del modulo e della definizione dei criteri di protezione. Per ulteriori informazioni sulla protezione, vedere Informazioni sul modello di protezione per i modelli di modulo con codice gestito e Procedura: Configurare le impostazioni di protezione per i modelli di modulo con codice gestito. |
using System;
using System.Data.SqlClient;
using Microsoft.Office.Interop.InfoPath.SemiTrust;
// Office integration attribute. Identifies the startup class for the form. Do not
// modify.
[assembly: System.ComponentModel.DescriptionAttribute(
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")]
namespace Template1
{
// The namespace prefixes defined in this attribute must remain synchronized with
// those in the form definition file (.xsf).
[InfoPathNamespace(
"xmlns:my='https://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-05T20-56-13'")]
public partial class Template1
{
private XDocument thisXDocument;
private Application thisApplication;
private SqlConnection sqlConnect;
public void _Startup(Application app, XDocument doc)
{
thisXDocument = doc;
thisApplication = app;
// Initialize variable for SQL Server connection.
sqlConnect= new SqlConnection("server=localhost;Trusted_Connection=yes;database=Northwind");
}
public void _Shutdown()
{
// Close SQL Server connection at shut down.
sqlConnect.Close();
}
}
}
Imports System
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop.InfoPath.SemiTrust
Imports Microsoft.VisualBasic
' Office integration attribute. Identifies the startup class for the form. Do not
' modify.
<Assembly: System.ComponentModel.DescriptionAttribute( _
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")>
Namespace Template1
' The namespace prefixes defined in this attribute must remain synchronized with
' those in the form definition file (.xsf).
<InfoPathNamespace( _
"xmlns:my='https://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-08T18-47-33'")> _
Public Class Template1
Private thisXDocument As XDocument
Private thisApplication As Application
Private sqlConnect As SqlConnection
Public Sub _Startup(app As Application, doc As XDocument)
thisXDocument = doc
thisApplication = app
' Initialize variable for SQL Server connection.
sqlConnect = New SqlConnection _("server=localhost;Trusted_Connection=yes;database=Northwind")
End Sub
Public Sub _Shutdown()
' Close SQL Server connection.
sqlConnect.Close()
End Sub
End Class
End Namespace
Vedere anche
Attività
Procedura: Aggiungere un gestore eventi tramite il modello a oggetti di InfoPath 2003
Importante: