Procedura: Accedere ai dati delle applicazioni tramite il modello a oggetti di InfoPath 2003
Il modello a oggetti compatibile con InfoPath 2003 implementa oggetti e insiemi che possono essere utilizzati per accedere alle informazioni sull'applicazione InfoPath, incluse le informazioni relative al documento XML sottostante del modulo e al file di definizione del modulo con estensione xsf. A tali dati si accede tramite l'oggetto di primo livello della gerarchia del modello a oggetti di InfoPath, inizializzato utilizzando l'interfaccia Application.
Un progetto modello di modulo con codice gestito compatibile con InfoPath 2003 creato utilizzando Microsoft Visual Studio Tools for Applications (VSTA), Visual Studio 2005 con Microsoft Visual Studio Tools per Microsoft Office System 2007 o Visual Studio 2008 con Visual Studio Tools per Office inizializza la variabile thisApplication
nel metodo_Startup
della classe del codice del modulo, che può essere utilizzata per accedere ai membri dell'interfaccia Application. Nell'esempio seguente vengono utilizzate le proprietà Name e Version dell'interfaccia Application per restituire il nome e il numero di versione dell'istanza di InfoPath in esecuzione. Tali informazioni vengono visualizzate in una finestra di messaggio utilizzando il metodo Alert dell'interfaccia UI2.
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
"\nApplication version: " + thisApplication.Version);
thisXDocument.UI.Alert("Application name: " & thisApplication.Name & _
vbNewLine & "Application version: " & thisApplication.Version)
Nell'esempio per Visual C# il riferimento al carattere \n
nella stringa per il messaggio di avviso viene reso dal codice non gestito di InfoPath come avanzamento di riga standard, che provoca l'interruzione del testo e il suo inserimento in una nuova riga nella finestra di messaggio. Per utilizzare in modo esplicito il valore di nuova riga definito per l'ambiente e la piattaforma correnti, utilizzare invece la proprietà Environment.NewLine, come illustrato nell'esempio seguente.
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
Environment.NewLine + "Application version: " +
thisApplication.Version);
Accesso ai dati dal documento XML sottostante di un modulo
Gli sviluppatori possono utilizzare l'interfaccia XDocument per accedere alle informazioni sul documento XML sottostante del modulo, incluso un riferimento a una proprietà del modello a oggetti DOM (Document Object Model) XML contenente i dati XML di origine del modulo.
Nell'esempio seguente, nella prima finestra di messaggio vengono visualizzati alcuni dei dati disponibili nell'interfaccia XDocument che indicano, ad esempio, se il documento XML sottostante è stato modificato (tramite la proprietà IsDirty) e se è stata aggiunta una firma digitale (tramite la proprietà IsSigned). La successiva finestra di messaggio utilizza la proprietà DOM dell'interfaccia XDocument per visualizzare il codice XML di origine del documento XML sottostante del modulo.
thisXDocument.UI.Alert("\nIsDirty: " + thisXDocument.IsDirty +
"\nIsDOMReadOnly: " + thisXDocument.IsDOMReadOnly +
"\nIsNew: " + thisXDocument.IsNew +
"\nIsReadOnly: " + thisXDocument.IsReadOnly +
"\nIsSigned: " + thisXDocument.IsSigned);
thisXDocument.UI.Alert(thisXDocument.DOM.xml);
thisXDocument.UI.Alert("IsDirty: " & thisXDocument.IsDirty & vbNewLine & _
"IsDOMReadOnly: " & thisXDocument.IsDOMReadOnly & vbNewLine & _
"IsNew: " & thisXDocument.IsNew & vbNewLine & _
"IsReadOnly: " & thisXDocument.IsReadOnly & vbNewLine & _
"IsSigned: " & thisXDocument.IsSigned)
thisXDocument.UI.Alert(thisXDocument.DOM.xml)
La proprietà xml utilizzata nell'esempio precedente è una proprietà del modello DOM XML. Per ulteriori informazioni su questo modello, vedere la documentazione di MSXML 5.0 SDK (informazioni in lingua inglese).
Accesso ai dati dal file di definizione di un modulo
Per accedere alle informazioni sul file con estensione xsf di un modulo, incluso un riferimento DOM XML ai dati XML di origine in esso contenuti, è possibile utilizzare l'interfaccia XDocument. Per accedere a tali informazioni, utilizzare la proprietà Solution, che restituisce un riferimento all'interfaccia SolutionObject.
Nell'esempio seguente, la prima finestra di messaggio visualizza alcuni dei dati disponibili tramite l'interfaccia SolutionObject, ad esempio il percorso URI (Uniform Resource Identifier) (tramite la proprietà URI) e il numero di versione (tramite la proprietà Version). Per la finestra di messaggio successiva viene utilizzata la proprietà DOM dell'interfaccia SolutionObject per visualizzare il codice XML di origine del file xsf.
thisXDocument.UI.Alert("PackageURL: " +
thisXDocument.Solution.PackageURL +
"\nURI: " + thisXDocument.Solution.URI +
"\nVersion: " + thisXDocument.Solution.Version);
thisXDocument.UI.Alert(thisXDocument.Solution.DOM.xml);
thisXDocument.UI.Alert("PackageURL: " & _
thisXDocument.Solution.PackageURL & vbNewLine & _
"URI: " & thisXDocument.Solution.URI & vbNewLine & _
"Version: " & thisXDocument.Solution.Version)
thisXDocument.UI.Alert(thisXDocument.Solution.DOM.xml)