Tipi di dati compositi supportati per le formule di creazione di report elettronici

Questo articolo fornisce informazioni sui tipi di dati compositi supportati nelle espressioni di generazione di report elettronici (ER). I tipi di dati compositi sono classe, contenitore, record, elenco di record e oggetto.

Classe

Il tipo di dati classe fa riferimento a una classe di applicazioni pubbliche. In ER, è rappresentato come un record che contiene un campo separato per ogni metodo pubblico della classe di riferimento. Quando la chiamata del metodo è parametrizzata, è necessario specificare anche gli argomenti obbligatori dei tipi appropriati in un'espressione ER configurata per chiamare il metodo.

Nei componenti di mapping e formattazione di ER, è possibile aggiungere l'origine dati Classe presentata come origine dati e che restituisce un valore di tipo classe. Questa origine dati espone i metodi pubblici della classe che possono essere chiamati in runtime.

Nota

Solo i metodi che restituiscono un valore possono essere chiamati dalle espressioni ER.

Solo i metodi che hanno un intervallo da zero a otto argomenti possono essere chiamati dalle espressioni ER.

Il valore predefinito di una classe è null.

L'immagine seguente mostra come l'origine dati System information(xInfo) del tipo Classe viene aggiunto all'istanza della classe dell'applicazione xInfo e chiama il relativo metodo productName() per ricevere il nome dell'applicazione corrente. Il nome dell'applicazione corrente viene recuperato in runtime mediante l'esecuzione del binding xInfo.productName configurato per il campo Nome del software(SoftwareName) del modello dati ER. Questo binding chiama il metodo productName() della classe dell'applicazione xInfo rappresentata nel mapping del modello corrente come origine dati Informazioni di sistema(xInfo).

Configurazione di un'origine dati Classe nella finestra di progettazione mapping modello ER.

L'illustrazione seguente mostra come il formato ER sia configurato per inserire il nome dell'applicazione specificato nei documenti generati. Il campo Nome software(SoftwareName) del modello dati usato è stato associato al componente Stringa nidificato nell'elemento XML softwareUsed del formato ER. Quindi, il nome dell'applicazione corrente viene inserito in runtime nell'elemento XML softwareUsed di un documento generato in formato XML.

Configurazione della struttura di un documento elettronico in uscita nella finestra di progettazione formato ER.

Contenitore

Il tipo di dati contenitore include contenuto binario. Un valore contenitore può essere utilizzato per passare informazioni specifiche dall'archiviazione a un documento generato. Nel framework ER, questo tipo di dati viene spesso utilizzato per inserire contenuti multimediali quali il logo di un'azienda nei documenti generati.

Nota

Sebbene ogni elemento multimediale possa essere rappresentato come valore contenitore, non tutti i valori contenitore rappresentano un elemento multimediale. Pertanto, se si configura un formato ER in modo che utilizzi un contenitore per inserire un'immagine nei documenti generati, ma il contenitore di riferimento non restituisce il contenuto multimediale, potrebbe essere generata un'eccezione simile all'esempio seguente: "Errore durante l'esecuzione del codice: binario (oggetto), metodo constructFromContainer chiamato con parametri non validi".

Il valore predefinito di un contenitore è null.

L'illustrazione seguente mostra come il campo Bitmap(Image) del tipo Contenitore sia associato al campo Logo del modello dati del tipo Contenitore nel mapping del modello Sales invoice. Il binding rende disponibile il logo aziendale in qualsiasi formato ER progettato per la definizione radice SalesInvoice e che usa questo mapping di modello in runtime.

Binding di un campo di tipo Contenitore nella soluzione di progettazione del mapping del modello ER.

Registra

Un record è una raccolta di campi denominati, ognuno dei quali è associato a un valore di un tipo di dati primitivo o composito. In genere, un record viene utilizzato per rappresentare un singolo record di un elenco di record. In questo caso, ogni elemento rappresenta singoli campi, metodi e relazioni.

Il valore predefinito di un record è vuoto.

Nota

Quando ottieni il valore di un campo di un record vuoto, viene restituito il valore predefinito del tipo di dati appropriato.

Un record può essere ottenuto utilizzando le seguenti funzioni:

Per maggiori informazioni sulla trasformazione dei valori dei record, vedere Elenco delle funzioni ER nella categoria dell'elenco.

Elenco di record

Un elenco di record è un elenco di elementi di tipo record. In genere, un elenco di record viene utilizzato per rappresentare l'elenco dei record recuperato da una tabella di database.

Per impostazione predefinita, l'accesso ai record di un elenco di record avviene in modo sequenziale. Per accedere a un record specifico, è possibile utilizzare la funzione INDEX e specificare l'indice sotto forma di numero intero.

Il valore predefinito di un elenco di record è vuoto. È possibile usare la funzione ISEMPTY per valutare se un elenco di record è vuoto.

Nota

Se un elenco di record è vuoto, qualsiasi tentativo di ottenere un valore di campo per un record all'interno dello stesso determina la generazione di un'eccezione in runtime. Per sapere come prevenire eccezioni di runtime di questo tipo, vedere Considerazione dei casi di elenco vuoto.

Un elenco di record può essere inizializzato utilizzando le seguenti funzioni:

Per maggiori informazioni sulla trasformazione dei valori dei record, vedere Elenco delle funzioni ER nella categoria dell'elenco. Per sapere come inserire degli elementi in un elenco di record, compilarli con i dati dell'applicazione e quindi utilizzare i dati per generare documenti aziendali, vedere Progettare una nuova soluzione ER per stampare un report personalizzato.

Oggetto

Un oggetto fa riferimento a un'istanza stateful di una classe. Di solito, un oggetto viene inizializzato nel codice sorgente. Viene quindi passato a un mapping del modello ER e fornisce i dettagli del contesto di esecuzione.

Il valore predefinito di un oggetto è null.

La seguente illustrazione mostra come è stata aggiunta l'origine dati ReportDataContract del tipo Oggetto per passare le informazioni su una fattura generata dal codice sorgente al mapping del modello Fattura del progetto. Ad esempio, il testo dell'istanza della fattura viene passato come parte del contesto di esecuzione. Questo testo viene acquisito dal codice sorgente in runtime mediante l'esecuzione del binding ReportDataContract.parmInvoiceInstanceText configurato per il campo Nota del modello dati ER. Questo binding chiama il metodo parmInvoiceInstanceText() della classe dell'applicazione PSAProjInvoiceContract rappresentata nel mapping del modello corrente come origine dati ReportDataContract.

Configurazione di un'origine dati Oggetto nella finestra di progettazione mapping modello ER.

Per sapere come passare i dettagli del contesto di esecuzione dal codice sorgente alla soluzione ER in esecuzione, vedere Sviluppare artefatti di applicazioni per chiamare il report progettato.

Risorse aggiuntive