Sei sulla pagina 1di 996

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual

Studio
Versione del documento: Support Package 10 - 2014-06-23

Manuale per gli sviluppatori dell'SDK di


SAP Crystal Reports per Visual
Studio .NET
Sommario
1 Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net. . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Definizione di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio
............................................................................ 3
1.1.2 Migrazione dell'applicazione SAP Crystal Reports .Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Configurazione dell'ambiente di sviluppo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Configurazione del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Impostazione di un progetto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Nozioni di base dell'SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.1 Architettura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
1.3.2 Controllo CrystalReportViewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.3.3 Approccio di persistenza da utilizzare con SAP Crystal Reports. . . . . . . . . . . . . . . . . . . . . . . 52
1.3.4 Scalabilità dell'applicazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.3.5 Utilizzo di SAP Crystal Reports in una Web farm o un Web garden. . . . . . . . . . . . . . . . . . . . . 73
1.3.6 Utilizzo di Crystal Reports come servizio Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
1.3.7 Considerazioni sulla protezione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
1.4 Utilizzo di SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
1.4.1 Stampa di un report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
1.4.2 Esportazione di un report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.4.3 Filtro dei dati con parametri o formule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
1.4.4 Impostazione dell'origine dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
1.4.5 Visualizzazione di un report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
1.4.6 Personalizzazione del controllo CrystalReportViewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
1.4.7 Utilizzo di report SAP Crystal Reports Solo lettura (RPTR). . . . . . . . . . . . . . . . . . . . . . . . . .238
1.5 Esercitazioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
1.5.1 Esercitazioni relative al modello a oggetti CrystalReportViewer. . . . . . . . . . . . . . . . . . . . . . 239
1.5.2 Esercitazioni relative al modello a oggetti ReportDocument. . . . . . . . . . . . . . . . . . . . . . . . . 334
1.5.3 Esercitazioni basate sull'uso di codice ridotto in Visual Studio. . . . . . . . . . . . . . . . . . . . . . . 500
1.5.4 Esercitazioni sulla connettività dei dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
1.5.5 Altre esercitazioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
1.6 Distribuzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
1.6.1 Componenti della distribuzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
1.6.2 Distribuzione di Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
1.7 Creazione di report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
1.7.1 Utilizzo di SAP Crystal Reports Designer incorporato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
1.7.2 Creazione di formule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
1.7.3 Riferimenti all'interfaccia utente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
1.8 Glossario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
2 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Sommario
1 Manuale per gli sviluppatori dell'SDK di
SAP Crystal Reports .Net

1.1 Introduzione

Questa guida in linea è progettata per favorire lo sviluppo delle applicazioni Web o Windows con l'SDK di SAP
Crystal Reports .NET. Comprende esercitazioni e riferimenti alla programmazione che possono risultare utili
nell'implementazione dell'SDK di SAP Crystal Reports .NET.

1.1.1 Definizione di SAP Crystal Reports, versione per


sviluppatori per Microsoft Visual Studio

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio consente di creare report complessi e
professionali in un programma basato su GUI. Quindi, si può connettere il report creato a quasi tutte le origini
database, nonché a dati proxy, come un insieme di risultati (ad esempio, un DataSet ADO.NET). Con le procedure
guidate disponibili nella finestra di progettazione GUI, è possibile impostare formattazione, raggruppamento,
grafici e altri criteri.

È possibile ospitare il report in un'applicazione Web o Windows, con uno dei controlli dei visualizzatori di SAP
Crystal Reports. La presentazione di report in client Windows e HTML 4.0 è altamente interattiva e offre
funzionalità come il drill down dei grafici, l'esplorazione dei report e la ricerca di testo.

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio viene fornito con un SDK completo. che
permette di interagire con il report a livello di codice in fase di esecuzione, utilizzando uno dei quattro modelli a
oggetti disponibili:

● CrystalReportViewer, il modello più semplice.


● ReportDocument, un modello con funzionalità potenziate rispetto al precedente.
● ReportClientDocument, il modello a oggetti più completo. Questo modello a oggetti è disponibile con un
server RAS.
● InfoObject, modello a oggetti avanzato per la pianificazione e la configurazione di report nella struttura della
piattaforma SAP BusinessObjects Business Intelligence o SAP Crystal Reports Server.

Nota
i modelli a oggetti CrystalReportViewer e ReportDocument sono disponibili con tutte le versioni di SAP
Crystal Reports, versione per sviluppatori per Microsoft Visual Studio. I modelli a oggetti
ReportClientDocument e InfoObject richiedono licenze aggiornate. Vedere Soluzioni di reporting per SAP
BusinessObjects Business Intelligence [pagina 64].

Esistono diversi modi per correlare i report al progetto Visual Studio in uso:

● Incorporare i report direttamente nel progetto.


● Accedere ai report da una directory di file.
● Accedere ai report come Servizio Web report da un server remoto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 3
● Connettere i report come Crystal Services.
● Con un aggiornamento a SAP Crystal Reports Server, è possibile accedere ai report tramite il server RAS.
● Con un aggiornamento alla piattaforma SAP BusinessObjects Business Intelligence, è possibile accedervi
attraverso Page Server o il server RAS contenuto in una struttura della piattaforma SAP BusinessObjects
Business Intelligence.

1.1.1.1 Funzionalità disponibili in SAP Crystal Reports


Designer

SAP Crystal Reports Designer fornisce numerose funzionalità che non sono disponibili in SAP Crystal Reports,
versione per sviluppatori per Microsoft Visual Studio:

Funzione Descrizione
Membri calcolati in grafici a campi incrociati È possibile aggiungere righe e colonne a un grafico a campi
incrociati inserendo un membro calcolato. Tali righe o
colonne possono contenere calcoli personalizzati (ad
esempio la differenza di vendite tra due regioni) oppure
possono essere utilizzate interamente a scopo di
formattazione (ad esempio inserendo una riga vuota ogni tre
per migliorare la leggibilità). Le formule di calcolo possono
essere progettate con la più completa flessibilità ed è
possibile scegliere se farle apparire solo una volta o se
ripeterle regolarmente nel campo incrociato.

Oggetti Flash incorporati È possibile incorporare un oggetto Flash o un collegamento a


un oggetto Flash in qualsiasi sezione di un report di SAP
Crystal Reports.

Riepiloghi incorporati nei campi incrociati È possibile aggiungere un calcolo aggiuntivo a un grafico a
campi incrociati inserendo un riepilogo incorporato. I
riepiloghi incorporati non aggiungono righe o colonne al
campo incrociato. Al contrario, implicano la visualizzazione di
calcoli aggiuntivi all'interno di ogni cella del campo incrociato.
Ad esempio, in un report che mostra le vendite regionali è
possibile inserire un calcolo per ogni regione che mostri la
percentuale rispetto alle vendite totali per il paese.

Anteprima modificabile Con SAP Crystal Reports Designer è possibile visualizzare un


report nella scheda di progettazione o in quella di anteprima.
Le capacità di formattazione sono le stesse sia nella scheda
di anteprima che in quella di progettazione. Tuttavia, la
scheda di anteprima consente di lavorare con i dati reali. Al
posto di una cornice di campo che rappresenta molti valori di
campo, nel report vengono visualizzati i valori reali.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
4 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Funzione Descrizione
Codici a barre formattati SAP Crystal Reports Designer include la formula e i caratteri
necessari per supportare i codici a barre Code39. È possibile
utilizzare l'opzione Formatta campo per cambiare l'aspetto di
un codice a barre.

Cambiare l'aspetto di un codice a barre può essere


necessario per:

● Ingrandire o ridurre le dimensioni del codice a barre per


permetterne la lettura con uno scanner.
● Visualizzare il codice a barre in colori diversi.

Campi di ordinamento interattivi È possibile progettare il proprio report in modo che gli utenti
possano modificare un campo di ordinamento o una
direzione di ordinamento senza aggiornare le informazioni
dal database. Questa operazione è possibile aggiungendo al
report un Controllo ordinamento.

Un Controllo ordinamento può risultare particolarmente utile


per diversi motivi:

● Consente agli utenti di ordinare i dati del report per


eseguire ulteriori analisi senza dover lasciare l'area di
disegno del report.
● Riduce l'elaborazione per il database.
● Riduce il tempo di attesa dell'ordinamento dei dati.
● Consente agli utenti di ordinare i campi del report anche
se non dispongono di una connessione o dei diritti di
accesso al database al momento della visualizzazione.

Workbench Nel workbench è possibile creare progetti contenenti uno o


più report. Le opzioni presenti sulla barra degli strumenti
consentono di aggiungere, rimuovere o rinominare cartelle,
report e pacchetti oggetti. È possibile riorganizzare i file in
una o più cartelle trascinandoli e rilasciandoli dove si desidera
farli apparire. È inoltre possibile trascinare un file di report da
Windows Explorer e rilasciarlo nella cartella desiderata nel
workbench.

1.1.2 Migrazione dell'applicazione SAP Crystal Reports .Net

Questa sezione contiene informazioni sulla migrazione dell'applicazione SAP Crystal Reports .Net a SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio.

Nota
SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio include una serie completa di
funzionalità ed è disponibile come download gratuito integrabile con Visual Studio 2010 o versione successiva.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 5
SAP Crystal Reports versione per sviluppatori per Microsoft Visual Studio non è incluso nell'applicazione SAP
Crystal Reports Designer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
6 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Opzioni di migrazione tra le versioni di SAP Crystal Reports

In questo diagramma vengono illustrati i vari percorsi di migrazione tra le versioni di SAP Crystal Reports.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 7
Migrazione a SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio aggiorna automaticamente i progetti
precedenti alla versione corrente. Se un progetto contiene riferimenti a componenti precedenti, verrà richiesto di
eseguire l'aggiornamento.

Quando si fa clic sul pulsante Sì, i progetti e i relativi file vengono aggiornati alla versione corrente di SAP Crystal
Reports. Quando si fa clic sul pulsante No, il progetto viene modificato affinché vengano utilizzati i riferimenti
originali. Alcune funzioni precedenti vengono disabilitate poiché questa funzionalità specifica non è supportata dai
componenti più vecchi.

Nota
Se il file di progetto (qualsiasi file ASPX che contenga componenti di SAP Crystal Reports o il file web.config) è
bloccato, l'aggiornamento o la modifica hanno esito negativo.

Informazioni correlate

Soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina 64]

1.1.2.1 Problemi di migrazione

Un report basato su un'origine dati ADO.NET non può essere utilizzato se la


destinazione del progetto è .NET 4.x Framework

I report basati su un'origine dati ADO.NET non possono essere utilizzati se la destinazione del progetto è .NET 4.x
Framework. Verrà visualizzato il seguente errore: "Informazioni aggiuntive: è stato generato un assembly in
modalità mista in contrasto con la versione 'v2.0.50727' del runtime. Impossibile caricare l'assembly nel runtime
4.x senza informazioni di configurazione aggiuntive".

Il problema può essere risolto aggiornando il file .config del progetto. Aggiungere le seguenti righe di codice
all'interno della sezione<configurazione></configurazione> del file:

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.x"/>
</startup>

1.1.2.2 Limitazioni a 64 bit

In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio x64 (AMD64) è supportata
l'architettura a 64 bit. Tuttavia, l'architettura IA64 (Itanium) non è attualmente supportata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
8 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Funzionalità attualmente non supportate in scenari a 64 bit:

● Esportazione di report in formato HTML.


● Componenti di mappatura geografica.
● Componenti dei caratteri del codice a barre Azalea.

1.2 Configurazione dell'ambiente di sviluppo

In questa sezione vengono fornite istruzioni dettagliate su come installare e configurare l'ambiente di sviluppo e
su come creare un sito Web o un progetto Windows in SAP Crystal Reports, versione per sviluppatori per
Microsoft Visual Studio.

1.2.1 Configurazione del sistema

In questa sezione vengono fornite informazioni generali su come impostare l'ambiente di sviluppo per il test e lo
sviluppo di applicazioni Windows e siti Web che utilizzano l'SDK di SAP Crystal Reports .Net.

1.2.1.1 Installazioni necessarie

Per poter creare applicazioni Web o Windows che utilizzino SAP Crystal Reports, è necessario prima installare
SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

1.2.1.1.1 Versioni supportate di Visual Studio

Se si intende utilizzare SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio, è necessario
verificare che la versione di Visual Studio installata supporti SAP Crystal Reports.

Sono supportate le versioni Visual Studio Ultimate, Premium e Professional per Visual Studio 2010 e versioni
successive. Le versioni Visual Studio Express non sono supportate da SAP Crystal Reports.

Informazioni correlate

Soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina 64]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 9
1.2.1.1.2 Versioni di SAP Crystal Reports

Sono disponibili diverse versioni di SAP Crystal Reports. Molte procedure descritte nel presente documento sono
specifiche della versione. Per utilizzare questo documento nel modo più adeguato alle proprie esigenze si
consiglia di determinare innanzitutto la versione di SAP Crystal Reports installata.

1.2.1.1.2.1 Per determinare la versione di SAP Crystal


Reports utilizzata

Procedura

1. Accedere alla cartella GAC (Global Assembly Cache) nel percorso C:\WINNT\Assembly o C:\Windows
\Assembly.
2. Individuare il file CrystalDecisions.CrystalReports.Engine.

Nota
Se sono state installate più versioni di SAP Crystal Reports, Cache assembly globale conterrà più versioni
di questi file. La selezione del file CrystalDecisions.CrystalReports.Engine è dovuta al fatto che questo file è
incluso in tutte le versioni di SAP Crystal Reports.

3. Prestare attenzione alla colonna Versione mostrata nella finestra,

che indica la "Versione assembly".


4. Individuare il numero più elevato relativo a un determinato assembly.
5. Confrontare la versione dell'assembly con il numero di versione indicato nel grafico Versioni di SAP Crystal
Reports.

1.2.1.1.2.2 Versioni di SAP Crystal Reports

Prodotto Versione assembly


SAP Crystal Reports, versione per sviluppatori per Microsoft 13.0.2000.0
Visual Studio (.NET 4.0 Framework)

SAP Crystal Reports 2008 (.NET 2.0 Framework) 12.0.2000.0

SAP Crystal Reports 2008 (.NET 1.1 Framework) 12.0.1100.0

SAP Crystal Reports XI Release 2 11.5.3300.0

SAP Crystal Reports XI Release 1 11.0.3300.0

SAP Crystal Reports Basic per Visual Studio 2008 10.5.3600.0

SAP Crystal Reports per Visual Studio 2005 10.2.3600.0

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
10 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Prodotto Versione assembly
SAP Crystal Reports 10 10.0.3300.0

SAP Crystal Reports 9 9.2.3300

SAP Crystal Reports per Visual Studio 2003 9.1.5000

Per SAP Crystal Reports 2008 e SAP Crystal Reports 2008 SP1 viene utilizzato lo stesso numero di versione
assembly. Per controllare se è stato installato SAP Crystal Reports 2008 SP1, verificare che la versione del file
inizi con 12.1 e non con 12.0.

1.2.1.1.3 Installazione del servizio di aggiornamento di SAP


Crystal Reports

Contesto

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio offre ora un Servizio di aggiornamento
supplementare per verificare aggiornamenti, hot fix e correzioni per SAP Crystal Reports.

Il Servizio di aggiornamento di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio non
viene fornito come parte del programma di installazione. È quindi necessario scaricarlo e procedere
all'installazione separatamente.

Procedura

1. Dopo aver installato SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio, avviare Visual
Studio e creare un sito Web o un progetto Windows.
2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto in grassetto e scegliere
Aggiungi Nuovo elemento .
3. Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Report Crystal.
4. Nel campo Nome immettere Test.rpt e quindi fare clic su Aggiungi.

Nota
Se si utilizza per la prima volta SAP Crystal Report Designer incorporato viene richiesto di accettare il
Contratto di licenza dell'utente finale. Dopo aver accettato il contratto si apre la finestra di dialogo Servizio
di aggiornamento. Se SAP Crystal Report Designer incorporato è già aperto, aprire manualmente la
finestra di dialogo Servizio di aggiornamento.

Si apre SAP Crystal Reports Designer incorporato, che visualizza il nuovo report.
5. Se la finestra di dialogo Servizio di aggiornamento non viene visualizzata, fare clic su Controlla aggiornamenti
nel menu Crystal Reports.

Se il Servizio di aggiornamento di SAP Crystal Reports non è installato, viene richiesto se si desidera
installarlo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 11
6. Nella finestra di dialogo Servizio di aggiornamento, fare clic su Sì.

Viene caricato il sito Web del Servizio di aggiornamento di SAP Crystal Reports, che fornisce un collegamento
per scaricare il Servizio di aggiornamento.
7. Scaricare e installare il Servizio di aggiornamento di SAP Crystal Reports.
8. Avviare nuovamente Visual Studio.
9. Aprire Test.rpt.

SAP Crystal Report Designer incorporato si avvia e visualizza il report.


10. Dal menu Crystal Reports, fare clic su Controlla aggiornamenti.

Il Servizio di aggiornamento si avvia e controlla gli aggiornamenti disponibili. È possibile accettare o rifiutare
gli aggiornamenti disponibili.

1.2.1.1.4 Codice prodotto SAP Crystal Reports

Il codice del prodotto è una stringa alfanumerica lunga 19 cifre o caratteri. Quando in SAP Crystal Reports,
versione per sviluppatori per Microsoft Visual Studio si creano progetti di distribuzione per cui viene utilizzato
Windows Installer, può essere necessario un codice prodotto per convalidare la licenza delle applicazioni Web o
Windows.

1.2.1.2 Verifiche necessarie

Per sviluppare un sito Web o un'applicazione Windows che utilizza l'SDK di SAP Crystal Reports .NET, è
necessario verificare che i componenti di Crystal Reports Developer siano stati correttamente installati e integrati
con Visual Studio. Per sviluppare un sito Web, è necessario verificare inoltre che la directory virtuale dei
visualizzatori sia stata correttamente installata nei server di sviluppo, di distribuzione e Web.

In questa sezione vengono fornite informazioni dettagliate sulle impostazioni da verificare prima di creare
un'applicazione SAP Crystal Reports .NET.

Informazioni correlate

Versioni supportate di Visual Studio [pagina 9]

1.2.1.2.1 Verifica dell'installazione di SAP Crystal Reports

Contesto

Per verificare che il componente SAP Crystal Reports di Visual Studio sia installato, controllare che venga
visualizzato nella finestra di dialogo relativa all'aggiunta di un nuovo elemento di Visual Studio.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
12 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Avviare Visual Studio.


2. Creare un nuovo progetto Web o Windows (in qualsiasi lingua) o aprirne uno già esistente.
3. Dal menu Progetto scegliere Aggiungi nuovo elemento.

Nota
è necessario aggiungere i nuovi file di report direttamente al progetto. Impossibile creare un nuovo report
Crystal in Visual Studio tramite il menu File.

4. Nella finestra di dialogo Aggiungi nuovo elemento, scorrere verso il basso e verificare che Crystal Reports sia
incluso tra gli elementi disponibili.

1.2.1.2.2 Directory dei visualizzatori

SAP Crystal Reports si basa su una directory virtuale che consente l’accesso ai visualizzatori. La directory virtuale
e il percorso di file sottostante sono esclusivi di ogni versione di SAP Crystal Reports; in tal modo, le versioni
successive di SAP Crystal Reports installate sullo stesso computer funzioneranno senza conflitti.

1.2.1.2.2.1 Percorso predefinito della directory dei


visualizzatori

Se SAP Crystal Reports è stato installato con le impostazioni e i percorsi di file predefiniti, la directory virtuale
visualizzatori verrà configurata come mostrato di seguito.

Versione Framework Percorso file

SAP Crystal Reports, 4.x Framework Percorso per il server di sviluppo ASP.NET:
versione per svilup­
\Windows\Microsoft.NET\Framework
patori per Microsoft
\v4.0.30319\ASP.NETClientFiles
Visual Studio
\crystalreportviewers13

Percorso per IIS:

\inetpub\wwwroot\aspnet_client\system_web
\4_0_30319\crystalreportviewers13

SAP Crystal Reports, 2.0 Framework Percorso per il server di sviluppo ASP.NET:
versione per svilup­
\Windows\Microsoft.NET\Framework
patori per Microsoft
\v2.0.50727\ASP.NETClientFiles
Visual Studio
\crystalreportviewers13

Percorso per IIS:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 13
Versione Framework Percorso file

\inetpub\wwwroot\aspnet_client\system_web
\2_0_50727\crystalreportviewers13

1.2.1.2.2.2 Per individuare la directory dei visualizzatori

Procedura

1. Nel Pannello di controllo, fare doppio clic su Strumenti di amministrazione, quindi su Internet Information
Services.
2. Nella finestra di dialogo Internet Information Services, espandere il nodo Siti Web, quindi il nodo Sito Web
predefinito.
3. Individuare tutte le cartelle contenenti una cartella crystalreportsviewers13.
4. Fare clic con il pulsante destro del mouse su ogni cartella crystalreportsviewers13 e scegliere Proprietà.
5. Nella finestra di dialogo Proprietà confermare che la configurazione del percorso locale è corretta per la
versione in uso di SAP Crystal Reports o Visual Studio.

1.2.1.2.3 Directory dei report di esempio

Alcuni degli esempi di funzionalità, degli scenari di collegamento report e delle esercitazioni si basano su report di
esempio disponibili con SAP Crystal Reports.

È possibile scaricare i report di esempio dal sito: http://www.sdn.sap.com/irj/boc/downloads .

1.2.2 Impostazione di un progetto

Questa sezione rappresenta un'area di apprendimento fondamentale per sviluppatori esperti e di livello
intermedio. Vengono illustrate le procedure consigliate da eseguire per creare e configurare un nuovo progetto
Windows o un nuovo sito/progetto Web con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio.

Il nuovo progetto creato costituisce anche un requisito preliminare per le esercitazioni fornite con questa Guida in
linea.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
14 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.2.2.1 Configurazione di un sito Web in Visual Studio

In questa sezione, viene descritta la procedura per la configurazione di siti Web in Visual Studio. Il sito Web che
verrà così creato fungerà da prerequisito per le esercitazioni sullo sviluppo di codice fornite con la presente Guida
in linea.

1.2.2.1.1 Creazione di un nuovo sito Web in Visual Studio

Procedura

1. Avviare Visual Studio.


2. Nel menu File, scegliere Nuovo sito Web.
3. Nella finestra di dialogo Nuovo sito Web, scegliere Sito Web ASP.NET.
4. Nell'elenco a discesa Percorso, selezionare File system.
5. Nell'elenco a discesa Lingua, selezionare la lingua del codice che si desidera utilizzare.
6. Nella campo di testo Percorso immettere il percorso di directory C:\WebSites\ seguito dal nome del
progetto.

C:\WebSites\NomeProgetto

7. Fare clic su OK.

1.2.2.1.2 Preparazione del Web Form

1.2.2.1.2.1 Creazione del Web Form

Contesto

In questa sezione viene configurata la classe di codice sottostante per il Web Form.

Nota
i termini "Web Form", "pagina ASPX" e "Default.aspx" vengono utilizzati in maniera intercambiabile.

Procedura

1. In Esplora soluzioni, fare doppio clic su Default.aspx per aprire il Web Form.
2. Dal menu Visualizza, scegliere Codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 15
Si apre la classe del codice sottostante chiamata _Default. Il file della classe si chiama Default.aspx.cs o
Default.aspx.vb.

Nota
se la pagina Default.aspx è stata creata con il codice inline, questo codice non viene posizionato in un file
separato. In questo caso, eliminare la pagina ASPX e ricrearla. Durante la creazione della pagina ASPX,
selezionare la casella di controllo "Inserisci codice in un file separato".

3. Se si sta scrivendo la classe con Visual Basic, digitare "Option Strict On" nella parte superiore della classe.

Nota
è consigliabile impostare Option Strict On all'inizio di qualsiasi classe Visual Basic all'interno del sito Web,
poiché impone l'utilizzo di procedure consigliate quando si crea il codice, con dichiarazioni di variabili con
tipizzazione forte e conversione valida, entrambe controllate in fase di compilazione. I controlli in fase di
compilazione obbligatori possono ridurre il numero delle eccezioni in fase di esecuzione.

1.2.2.1.2.2 Per aggiungere istruzioni Imports e using che


facciano riferimento a spazi dei nomi

Procedura

1. Aprire la pagina Default.aspx.


2. Dal menu Visualizza, scegliere Codice.
Verrà visualizzata la classe di codice sottostante relativa al Web Form.
3. Sopra la firma della classe aggiungere una dichiarazione "Imports" [Visual Basic] o "using" [C#] nella parte
superiore della classe contenente i seguenti spazi dei nomi SAP Crystal Reports.

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

Nota
le classi di questi due assembly vengono generalmente utilizzate in tutte le esercitazioni. L'aggiunta di
eventuali assembly occasionalmente richiesti verrà illustrata all'utente nell'ambito delle esercitazioni
specifiche.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
16 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.2.2.1.2.3 Per aggiungere un metodo di supporto privato
per il codice di configurazione di SAP Crystal Reports

Procedura

All'interno della classe aggiungere un nuovo metodo di supporto privato, senza valore restituito, denominato
ConfigureCrystalReports().

Private Sub ConfigureCrystalReports()

End Sub

private void ConfigureCrystalReports()


{
}

Il metodo ConfigureCrystalReports() consente agli utenti di interagire con il report in fase di esecuzione.
Controlla inoltre l'interazione a livello di programmazione con il report.

Passi successivi

Successivamente si aggiunge un gestore eventi Page_Init, che consente di richiamare il metodo


ConfigureCrystalReports(). Il richiamo del metodo ConfigureCrystalReports() da questo gestore
eventi garantisce l'esecuzione del codice di configurazione del report Crystal durante l'evento di inizializzazione
della pagina.

1.2.2.1.2.4 Per aggiungere un gestore eventi Page_Init alla


classe di codifica sottostante

Contesto

Il gestore eventi Page_Load viene di norma impiegato per immettere il codice di configurazione del Web Form in
un'applicazione Web ASP.NET per richiamare il codice durante l'evento Page.Load. Tuttavia, il codice di
configurazione del report Crystal deve essere richiamato con anticipo, durante l'evento Page.Init.

Procedura

1. Aggiungere l'evento Page_Init al codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 17
○ Se il codice viene scritto in Visual Basic, selezionare Page Events dall'elenco a discesa in alto a sinistra e
l'evento Init dall'elenco a discesa in alto a destra. Il gestore di eventi Page_Init viene aggiunto alla classe
di codice sottostante utilizzata.

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)


Handles Me.Init

End Sub

○ Se il codice viene scritto in C#, immettere il gestore eventi Page_Init utilizzando la sintassi esatta indicata.

private void Page_Init(object sender, EventArgs e)


{

Nota
in un Web form C# di Visual Studio 2005 o versioni successive, qualsiasi gestore eventi Page_Init,
Page_Load o Page_PreRender nella classe code-behind class viene automaticamente collegato
all'evento Init, Load o PreRender. Per poter richiamare la firma del gestore eventi è necessaria una
perfetta corrispondenza.

Questa funzione si utilizza quando il parametro AutoEventWireup dell'istruzione nella parte superiore
della pagina ASPX della visualizzazione HTML è impostato su True.

Nelle versioni precedenti di Visual Studio .NET la direttiva Page AutoEventWireup era sempre
impostata su False, mentre nei Web Form C# in Visual Studio 2005 e versioni successive la direttiva
Page AutoEventWireup è per impostazione predefinita impostata su True.

2. Nel gestore eventi Page_Init per Visual Basic o C#, immettere una chiamata al metodo di supporto
ConfigureCrystalReports().

ConfigureCrystalReports()

ConfigureCrystalReports();

3. Dal menu File, scegliere Salva tutto.

1.2.2.1.3 Aggiunta di un controllo CrystalReportViewer a un


sito Web

Procedura

1. Aprire la pagina Default.aspx.


2. Fare clic sul pulsante Progettazione in fondo alla vista del modulo.
3. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
18 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Nelle versioni precedenti di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio il
controllo CrystalReportViewer veniva visualizzato nel nodo Crystal Reports.

4. Trascinare il controllo CrystalReportViewer nel Web Form.


5. Dal menu File, scegliere Salva tutto.

Risultati

Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.

1.2.2.1.4 Configurazione del file Web.Config

Un Web.Config in un'applicazione Web ASP.NET archivia le impostazioni globali come le informazioni sulla
connessione del database, i riferimenti all'assembly e la gestione degli errori. Questo file è scritto in XML ed è
necessario che il suo elemento principale sia sempre <configurazione>. Questa è una configurazione avanzata ed
è facoltativa.

Gli elementi seguenti sono specifici di SAP Crystal Reports e possono essere aggiunti al file Web.Config.

Nota
è possibile che i numeri di versione cambino in base al prodotto di cui si dispone.

Nota
in .NET 2.0 o versione successiva, il tag section nel file Web.Config deve utilizzare la seguente sintassi:

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

CrystalImageCleaner

Il processo CrystalImageCleaner elimina automaticamente le immagini generate dinamicamente


rappresentate dal comando CrystalReportViewer. Questa impostazione consente di impostare l'intervallo di
tempo tra la scansione della directory delle immagini e il tempo minimo prima che i file vengano eliminati. Questo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 19
elemento viene aggiunto automaticamente al file Web.Config quando si aggiunge il comando CrystalReportViewer
al sito Web. Corrisponde alla classe CrystalImageCleaner.

● CrystalImageCleaner-Sleep inizializza la quantità di tempo in millisecondi durante la quale l'utilità di


eliminazione immagini rimane inattiva prima di eseguire la scansione e l'eliminazione dei file di immagine nella
directory delle immagini dinamiche.
● CrystalImageCleaner-Age inizializza la quantità di tempo in millisecondi prima che un file venga eliminato.
● CrystalImageCleaner-AutoStart controlla il processo CrystalImageCleaner. L'utilità di eliminazione
cancella le immagini temporanee create durante la visualizzazione di un report.

Nota
in un singolo processo di lavoro ASP.NET è possibile avviare una sola utilità di eliminazione.

<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true" />
<add key="CrystalImageCleaner-Sleep" value="60000" />
<add key="CrystalImageCleaner-Age" value="120000" />
</appSettings>

CrystalImageHandler

L'elemento CrystalImageHandler visualizza tutte le immagini dinamiche nel controllo CrystalReportViewer.


Questa impostazione configura il processo di lavoro ASP.NET per reindirizzare le richieste effettuate a
CrystalImageHandler.aspx a una classe di gestione immagini solo interna. Se non si dispone dell'impostazione
CrystalImageHandler nel file Web.Config, non verranno visualizzate le immagini nel sito Web. Questo elemento
viene aggiunto automaticamente al file Web.Config quando si aggiunge il comando CrystalReportViewer al sito
Web.

<system.web>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx"
type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>

documentView

L'elemento documentView controlla la modalità di visualizzazione del report nel canvas del report. Le
impostazioni disponibili sono due:

● Se si imposta il valore su printlayout vengono visualizzati un bordo grigio intorno al report e


un'ombreggiatura sull'area di disegno. Questo è il valore predefinito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
20 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Se si imposta il valore su weblayout l'area di disegno verrà riempita con il report.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="documentView" value="weblayout"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

EnableTextClipping

L'elemento EnableTextClipping controlla se il testo del campo viene tagliato. Se è impostato su true, il testo
contenuto in un campo non si sovrapporrà al testo presente nel campo accanto.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="EnableTextClipping" value="true"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

globalResourcePath

L'elemento globalResourcePath è il riferimento al percorso della directory di file per le risorse globali. Le
risorse relative alla lingua personalizzate contenute in questa directory del file si trovano in una posizione centrale
e possono essere condivise da più applicazioni Web. Questa impostazione consente di accedere alle risorse
globali in un sito Web specifico. In SAPCrystalReports.NET, i file predefiniti relativi alle risorse non sono forniti
all'installazione del prodotto, ma è possibile scaricarli dal sito Web del supporto tecnico di SAP BusinessObjects:
http://help.sap.com. È necessario aggiungere manualmente questo elemento al file Web.Config del sito Web.

<appSettings>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 21
<add key="globalResourcePath" value="c:\CrystalReportViewer_resource_files\"/>
</appSettings>

maxNumberListOfValues

L'elemento maxNumberListOfValues controlla il numero di elementi LOV che verranno inviati al client e quindi il
numero di valori visualizzati nel riquadro dei parametri. Quando è impostato questo valore, solo i primi n valori
verranno visualizzati in un elenco di valori. Sarà possibile scorrere più set di valori nella finestra di dialogo
Avanzate in base alla dimensione dell'elenco e al valore dell'elemento maxNumberListOfValues. Se si dispone,
ad esempio, di 180 valori e si imposta l'elemento maxNumberListOfValues su 50, nel riquadro dei parametri
verranno visualizzati solo i primi 50 valori. Sarà possibile scorrere tutti e 180 i valori nella finestra di dialogo
Avanzate, in cui saranno visualizzati tra gruppi di 50 valori e un gruppo di 30 valori.

È consigliabile che questo valore sia sempre maggiore di 0. Il valore predefinito è 200.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="maxNumberListOfValues" value="50"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

controllo di stampa

L'elemento printControl consente di stampare il report direttamente sulla stampante locale. La directory di
installazione predefinita è C:\Programmi (x86)\SAP BusinessObjects\Crystal Reports for .NET
Framework 4.0\Common\Crystal Reports 2011\crystalreportviewers.

Questa impostazione rende il file .cab visibile sul sito Web SAP Crystal Reports.NET. È necessario aggiungere
manualmente questo elemento al file Web.Config del sito Web.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
22 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
<crystalReports>
<printControl>
<add key="url" value="http://localhost/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>

processingIndicatorDelay

L'elemento processingIndicatorDelay controlla l'intervallo di tempo che trascorre prima della


visualizzazione dell'indicatore di elaborazione del report. Il valore è specificato in millisecondi. Se il valore viene
impostato su 0, l'indicatore di elaborazione del report viene disattivato. Il valore predefinito è 200 ms.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

processingIndicatorText

L'elemento processingIndicatorText controlla il testo visualizzato nell'indicatore di elaborazione del report. Il


testo predefinito è: Attendere il completamento dell'elaborazione del documento.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting."/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 23
reportMappings

L'elemento reportMappings aggiorna i siti Web creati in Visual Studio 2003 che utilizzano report incorporati in
siti Web non incorporati quando vengono aperti in Visual Studio 2005 o versioni successive. Questa impostazione
converte il file dll creato in Visual Studio 2003 in un file del disco. Visual Studio 2005 e 2008 non supportano i siti
Web incorporati ed è necessario modificare il file di configurazione Web per accertarsi che il report sia ancora
funzionale con la nuova versione di Visual Studio. È necessario aggiungere manualmente questo elemento al file
Web.Config del sito Web. L'impostazione reportMappings richiede un percorso assoluto.

Nota
questo elemento è valido solo per Visual Studio 2005 e Visual Studio 2008.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="reportMappings"
type="CrystalDecisions.Shared.ReportMappingHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<reportMappings>
<add reportName="World Sales Report.rpt" path="C:\Report\World Sales
Report.rpt" />
</reportMappings>
</crystalReports>
</businessObjects>

resourceURI

L'elemento resourceURI imposta il percorso della directory crystalreportviewers nell'applicazione Web. La


directory crystalreportviewers contiene tutti i file richiesti dal visualizzatore.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="resourceURI" value="~/crystalreportviewers12" />
</crystalReportViewer>
</crystalReports>
</businessObjects>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
24 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
serverFileReportManager

L'elemento serverFileReportManager è un servizio Web che enumera i file di server sul server. Questa
impostazione consente di ottenere un elenco di oggetti (cartelle e report) da un computer remoto. Questa
impostazione assegna la radice della directory del file per il server. In questo esempio, la radice è impostata su c:
\inetpub\wwroot. È necessario aggiungere manualmente questo elemento al file Web.Config del sito Web.

Nota
corrisponde alla classe serverFileReportManager.

<configSections>
<sectionGroup name="crystalDecisions">
<section name="serverFileReportManager"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</configSections>

<crystalDecisions>
<serverFileReportManager>
<add key="rootDirectory" value="c:\inetpub\wwwroot" />
</serverFileReportManager>
</crystalDecisions>

UseAsynchronousRequests

Per impostazione predefinita, le richieste asincrone sono consentite nel visualizzatore DHTML. Se si desidera
attivare il pulsante Indietro nel browser dell'utente, per utilizzare il visualizzatore DHTML, è necessario disattivare
le richieste asincrone impostando questo parametro su false.

Nota
è consigliabile non impostare l'elemento UseAsynchronousRequests su false. Così facendo infatti si
disattiverebbe la finestra Avanzate nel riquadro dei parametri, così come alcuni miglioramenti apportati alle
prestazioni del visualizzatore e alcune funzionalità avanzate relative all'aspetto.

<context-param>
<param-name>crystal_use_asynchronous_requests</param-name>
<param-value>false</param-value>
</context-param>

UseBrowserLocale

L'elemento UseBrowserLocale recupera le impostazioni relative alla lingua nel browser per il controllo
CrystalReportViewer. Se impostata su true, l'impostazione configura il comando CrystalReportViewer per
osservare le impostazioni internazionali del browser. Se impostata su false, l'impostazione limita le impostazioni

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 25
internazionali che vengono visualizzate pagina per pagina. È necessario aggiungere manualmente questo
elemento al file Web.Config del sito Web.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="UseBrowserLocale" value="true" />
</crystalReportViewer>
</crystalReports>
</businessObjects>

Esempio
File Web.Config campione

<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=13.0.2000,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=13.0.2000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx"
type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=12.1.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
</configuration>

Informazioni correlate

Stampa

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
26 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Web: Configurazione della localizzazione basata su browser

Web: Configurazione di risorse personalizzate globali o locali

Procedura: Aggiungere o rimuovere riferimenti in Visual Studio

Versioni di SAP Crystal Reports

1.2.2.2 Configurazione di un progetto Windows in Visual


Studio

Questa sezione rappresenta un'area di apprendimento fondamentale per sviluppatori esperti e di livello
intermedio. Vengono illustrate le procedure consigliate da eseguire per creare e configurare un nuovo progetto
Windows con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

Nello specifico, in questa sezione viene descritta la procedura per l'impostazione di un progetto Windows
mediante l'impiego di un modello di codifica standard. Nell'ambito di tale procedura, si entrerà nella classe Form1
e si immetterà il codice necessario. Il progetto Windows basato su codice che verrà così creato fungerà da
prerequisito per le esercitazioni sullo sviluppo di codice fornite con la presente Guida in linea.

1.2.2.2.1 Creazione di un nuovo progetto Windows in Visual


Studio

Procedura

1. Avviare Visual Studio.


2. Scegliere Nuovo dal menu File e quindi fare clic su Progetto.
3. Nella finestra di dialogo Nuovo progetto selezionare una cartella della lingua per C# o Visual Basic dall'elenco
Tipi progetto.
4. Nell'elenco Modelli, scegliere Applicazione Windows Form.
5. Nel campo Nome, sostituire il nome predefinito con il nome del progetto creato.

Utilizzare una convenzione di denominazione Pascal che prevede l'impostazione della prima lettera del nome
del progetto in caratteri maiuscoli, poiché il nome del progetto diventa anche il nome dello spazio dei nomi per
l'assembly generato dal progetto.
6. Fare clic su OK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 27
1.2.2.2.2 Applicazione di impostazioni standard dei progetti
Visual Basic (opzionale)

Contesto

È necessario apportare solo una modifica di lieve entità alle impostazioni di progetto in un progetto Visual Basic
per configurare quest'ultimo in modo da poterlo utilizzare nelle esercitazioni fornite con la presente
documentazione.

Procedura

1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto in grassetto situato sotto
il nome della soluzione, quindi selezionare Proprietà.
2. Nella visualizzazione Proprietà fare clic sulla scheda Compila.
3. Nell'elenco Option Strict fare clic su On.
4. Chiudere la visualizzazione Proprietà.
5. Dal menu File, scegliere Salva tutto.

Nota
è consigliabile abilitare OptionStrict all'inizio di qualsiasi progetto Visual Basic. poiché impone l'utilizzo
di procedure consigliate quando si crea il codice, con dichiarazioni di variabili con tipizzazione forte e
conversione valida, entrambe controllate in fase di compilazione. I controlli in fase di compilazione
obbligatori possono ridurre il numero delle eccezioni in fase di esecuzione.

1.2.2.2.3 Preparazione del Windows Form in Visual Studio

1.2.2.2.3.1 Creazione del Windows Form

Contesto

Nelle applicazioni Windows tradizionali in Visual Basic 6 in genere è presente un form predefinito denominato
Form1. In conformità a tale schema, in un progetto Windows si utilizza lo stesso nome di modulo predefinito,
Form1, con un'estensione .cs o .vb, a seconda del linguaggio impiegato.

Procedura

1. Se Form1 non è già visualizzato nella finestra principale, fare doppio clic su Form1 in Esplora soluzioni.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
28 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Form1 si apre nella finestra di progettazione.
2. Dal menu Visualizza, scegliere Codice.

Viene visualizzato il codice della classe Form1. L'aspetto di tale classe dipende dal linguaggio utilizzato per la
codifica dell'applicazione Windows, Visual Basic o C#.

In C#, la classe Form1 ha il seguente aspetto:

○ La firma della classe.


○ Un costruttore (Form1).

In Visual Basic, la classe Form1 ha il seguente aspetto:

○ La firma della classe (una classe Form1).

Nota
i metodi e le variabili aggiuntive della classe Form1 sono contenuti in una classe "parziale" separata (sia
in C# che in Visual Basic). Le classi parziali sono illustrate più avanti, in Impostazione di un progetto
Windows.

1.2.2.2.3.2 Per aggiungere un metodo di supporto privato


per il codice di configurazione di SAP Crystal Reports

Procedura

1. Aggiungere alla classe Form1 un nuovo metodo di supporto dell'ambito privato senza valore restituito,
denominato ConfigureCrystalReports().

Private Sub ConfigureCrystalReports()

End Sub

private void ConfigureCrystalReports()


{
}

Successivamente si aggiunge un gestore eventi Form_Load e si richiama ConfigureCrystalReports()


all'interno del gestore eventi Form_Load. In questo modo il metodo ConfigureCrystalReports() viene
automaticamente eseguito al caricamento del modulo.
2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic su Form1.
Ritornare alla visualizzazione Codice. Facendo doppio clic su Form1 viene automaticamente generato il
gestore eventi Form1_Load all'interno della classe Form1.
4. All'interno del gestore eventi Form1_Load immettere una chiamata al metodo
ConfigureCrystalReports().

ConfigureCrystalReports()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 29
ConfigureCrystalReports();

5. Dal menu File, scegliere Salva tutto.

1.2.2.2.4 Aggiunta di un controllo CrystalReportViewer

1.2.2.2.4.1 Aggiunta di un controllo CrystalReportViewer a


un'applicazione Windows

Procedura

1. Aprire un Windows Form in visualizzazione struttura.


2. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.

Nota
Nelle versioni precedenti di Visual Studio, il controllo CrystalReportViewer veniva visualizzato nel nodo
Crystal Reports.

3. Trascinare il controllo CrystalReportViewer nel form.


4. Dal menu File, scegliere Salva tutto.

Risultati

Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.

1.2.2.2.4.2 Per aggiungere istruzioni Imports e using che


facciano riferimento a spazi dei nomi

Procedura

1. Se la cartella Riferimenti non è visibile in Esplora soluzioni, nella barra degli strumenti Esplora soluzioni fare
clic su Mostra tutti i file per visualizzare tutti i file di progetto.
2. In Esplora soluzioni espandere la cartella Riferimenti.
3. Verificare che siano stati aggiunti i seguenti assembly SAP Crystal Reports:

○ CrystalDecisions.CrystalReports.Engine
○ CrystalDecisions.Shared

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
30 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. Selezionare Form1, quindi scegliere Codice dal menu Visualizza.
5. Sopra la firma della classe aggiungere una dichiarazione "Imports" [Visual Basic] o "using" [C#] nella parte
superiore della classe contenente i seguenti spazi dei nomi SAP Crystal Reports.

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

1.3 Nozioni di base dell'SDK

1.3.1 Architettura

1.3.1.1 Scelta del modello a oggetti appropriato al progetto

Per scegliere il modello a oggetti appropriato al progetto che si intende creare, è necessario comprendere appieno
le procedure consigliate relative alle modalità di utilizzo del controllo CrystalReportViewer e conoscere il modo in
cui CrystalReportViewer interagisce con gli altri modelli a oggetti.

Nota
Nella presente documentazione un modello a oggetti fa riferimento a una classe principale e alle classi
adiacenti, che costituiscono un modello di programmazione. In SAP Crystal Reports i modelli di oggetti sono
incentrati su una classe principale che incapsula un file di definizione del report. La classe principale e il
modello a oggetti adiacente consentono l'interazione con il report a livello di codice.

Procedure consigliate per l'utilizzo del controllo CrystalReportViewer

In un'applicazione Web efficace vengono nettamente distinti il livello della presentazione e la regola business
sottostante.

La progettazione del controllo ASP.NET favorisce in genere l'utilizzo di questo modello in quanto inserisce le
informazioni relative alla presentazione nel controllo e collega quest'ultimo a un oggetto o modello a oggetti
sottostante che esegue la regola business.

CrystalReportViewer è un controllo .NET che aderisce perfettamente a questa architettura. Funziona come
oggetto di visualizzazione in Web Form o Windows Form (livello della presentazione) e può essere collegato a uno
dei seguenti modelli a oggetti del report:

● Modello a oggetti ReportDocument


● modello a oggetti ReportClientDocument (Report Application Server)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 31
● Modello a oggetti InfoObject (SAP Crystal Reports Server o piattaforma SAP BusinessObjects Business
Intelligence)

Nell'ambito di uno scenario consigliato, il controllo CrystalReportViewer viene collegato a un modello a oggetti che
esegue la regola business, in genere per la manipolazione dei report.

In tale scenario, il controllo CrystalReportViewer limita la propria interazione a livello di codice alla semplice
modifica delle impostazioni di visualizzazione, ad esempio nascondendo o mostrando la barra degli strumenti del
visualizzatore o un pulsante della barra.

modello a oggetti CrystalReportViewer

Il controllo CrystalReportViewer contiene proprietà e metodi che consentono l'interazione con la propria modalità
di visualizzazione dei report. Tale controllo dispone inoltre di alcune proprietà e metodi per l'interazione con i
report a esso collegati. Tali proprietà e metodi costituiscono un modello a oggetti limitato.

Alcuni scenari di collegamento dei report si basano sul modello a oggetti CrystalReportViewer. In questi scenari, il
controllo CrystalReportViewer viene collegato a un report in modo diretto, ad esempio mediante l'inserimento di
una stringa di percorso nel report all'interno della directory di un file, senza il preventivo incapsulamento del
report in un modello a oggetti. In tal caso, poiché il controllo CrystalReportViewer incapsula il report in modo
diretto, sarà necessario basarsi sul modello a oggetti limitato del controllo per consentire l'interazione con il
report a livello di codice.

Tuttavia, nella maggior parte degli scenari di collegamento, viene sconsigliato l'utilizzo di CrystalReportViewer
come modello a oggetti. Si consiglia invece di utilizzare il modello a oggetti ReportDocument, per i seguenti
motivi:

● Il modello a oggetti CrystalReportViewer accresce il rischio di conflitto tra i modelli a oggetti. Non utilizzare il
modello a oggetti CrystalReportViewer insieme ad altri modelli a oggetti.
● Il modello a oggetti CrystalReportViewer offre un'interazione limitata con i report e contiene solo un piccolo
sottoinsieme delle funzioni disponibili nel modello a oggetti ReportDocument.
● Il modello a oggetti CrystalReportViewer rende confusa, all'interno del codice, la distinzione tra il livello della
presentazione e la regola business sottostante.

Il modello a oggetti ReportDocument

ReportDocument rappresenta un modello a oggetti più completo e potente rispetto a CrystalReportViewer. Viene
fornito con l'SDK .NET di SAP Crystal Reports e consente di modificare in modo sostanziale i report nel codice.

modello a oggetti da utilizzare

Se non si desidera effettuare l'aggiornamento a SAP Crystal Reports Server o alla piattaforma SAP
BusinessObjects Business Intelligence, il modello a oggetti consigliato per l'attività di sviluppo con l'SDK di SAP
Crystal Reports è ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
32 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
In SAP Crystal Reports 10 o versioni successive e in SAP Crystal Reports per Visual Studio 2005 e versioni
successive, il modello a oggetti ReportDocument è stato collegato al modello a oggetti ReportClientDocument
per semplificare l'aggiornamento a una soluzione di reporting gestita.

1.3.1.2 Suggerimenti per evitare l'utilizzo di più modelli a


oggetti
Non utilizzare il modello a oggetti CrystalReportViewer insieme ad altri modelli a oggetti.

L'utilizzo del controllo CrystalReportViewer nel suo ruolo di modello a oggetti limitato funziona correttamente, a
condizione che lo si colleghi direttamente al report con una semplice stringa di percorso.

Se invece si incapsula il report in un altro modello a oggetti, quale ReportDocument o ReportClientDocument, e si


collega il controllo a tale modello, interrompere immediatamente l'utilizzo del modello a oggetti
CrystalReportViewer. Il modello limitato fornito dal controllo CrystalReportViewer diventa ridondante rispetto al
modello a oggetti più potente a cui è collegato. Inoltre, poiché le impostazioni applicate al modello a oggetti
CrystalReportViewer sono visibili nell'altro modello a oggetti, potrebbero verificarsi eccezioni o comportamenti
imprevisti.

Ad esempio, è possibile utilizzare il modello a oggetti ReportDocument per esportare o stampare un report
mensile dal server. Se in questo report è stato impostato un parametro mese con il modello a oggetti
CrystalReportViewer, potrebbero verificarsi problemi in quanto il modello a oggetti ReportDocument non è in
grado di visualizzare le impostazioni dei parametri applicate al modello a oggetti CrystalReportViewer.
ReportDocument tenterà di esportare o stampare il report senza essere a conoscenza dell'impostazione del
parametro mese. Verrà pertanto visualizzato un mese errato oppure verrà generata un'eccezione.

La soluzione migliore consiste nell'utilizzare il controllo CrystalReportViewer nelle impostazioni di visualizzazione


del report solo se tale controllo è collegato a uno dei modelli a oggetti sottostanti.

1.3.1.3 SAP Crystal Reports Designer incorporato


SAP Crystal Reports Designer incorporato consente di creare o modificare report. ed è costituita da un'interfaccia
utente grafica per una progettazione di report WYSIWYG e da una serie di esperti che semplificano la connettività
dei dati nonché il raggruppamento e l'ordinamento dei dati stessi, insieme ad altre attività complesse correlate
alla progettazione di report. SAP Crystal Reports Developer comprende una versione potenziata della finestra di
progettazione incorporata che permette di creare report efficaci e applicazioni per il reporting. La finestra di
progettazione incorporata inclusa in SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio
offre molte delle funzionalità di SAP Crystal Reports Developer.

Ruolo nell'architettura di SAP Crystal Reports Designer incorporato

SAP Crystal Reports Designer incorporato è incluso nella descrizione dell'architettura poiché ricopre un ruolo
cruciale in SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio: esso crea infatti i file di

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 33
report da visualizzare. Tale ruolo, tuttavia, è legato alla fase di progettazione. Il ruolo relativo invece alla
visualizzazione e all'interazione con i report, in fase di runtime, appartiene all'SDK di SAP Crystal Reports.
Pertanto, la finestra di progettazione incorporata consente di creare report che vengono utilizzati
nell'architettura, ma non fa parte di quest'ultima.

Informazioni correlate

Utilizzo di SAP Crystal Reports Designer incorporato [pagina 638]

1.3.1.4 Controlli dei visualizzatori report

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio include controlli di moduli standard per
la visualizzazione dei report. Ogni controllo incapsula le informazioni sul layout di report complessi in un oggetto
GUI nella casella degli strumenti.

Sono disponibili due controlli:

Controllo CrystalReportViewer. Questo controllo visualizza il report in un layout basato su pagina con la
possibilità di spostarsi tra le pagine.

Controllo Questo controllo visualizza le informazioni di riepilogo del report in una piccola
CrystalReportPartsViewer. finestra simile a un portale, con la possibilità di analizzare più
dettagliatamente il report tramite una serie di parti collegate.

Ogni controllo viene utilizzato per visualizzare un report tramite un'operazione di trascinamento e rilascio del
controllo dalla casella degli strumenti nel Web Form o Windows Form e con l'assegnazione della proprietà
ReportSource del controllo a un report.

Informazioni correlate

Modalità di utilizzo dei controlli dei visualizzatori report [pagina 42]

1.3.1.5 Modelli a oggetti

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio offre un SDK contenente due modelli a
oggetti. Con una licenza supplementare, i modelli contenuti nell'SDK passano a quattro.

I controlli per il visualizzatore report forniscono il punto di ingresso all'SDK. Il visualizzatore report, infatti,
visualizza i report mediante il collegamento a un oggetto report e tutti i modelli a oggetti contenuti nell'SDK
espongono e modificano oggetti report.

I diversi modelli a oggetti offrono livelli crescenti di potenza e complessità:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
34 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Il modello a oggetti più semplice è CrystalReportViewer.
Il controllo CrystalReportViewer in un Web Form o un Windows Form presenta, per definizione, una classe
sottostante con lo stesso nome. La classe CrystalReportViewer espone proprietà e metodi per la modifica
della funzionalità di visualizzazione del controllo e per l'interazione con classi che gestiscono formule di
selezione, parametri e accessi ai database. Questo insieme di classi rappresenta il modello a oggetti più
semplice. La classe CrystalReportViewer è disponibile in due versioni differenti: una in uno spazio dei nomi
Windows e l'altra in uno spazio dei nomi Web. Di conseguenza, molti elementi di questo modello a oggetti
risultano duplicati nei due spazi dei nomi, con alcune variazioni per supportare le differenze tra le piattaforme
Windows e Web.
Le classi di questo modello a oggetti sono contenute nello spazio dei nomi CrystalDecisions.Web per la
versione Web Form di questo controllo oppure nello spazio dei nomi CrystalDecisions.Windows.Forms
per la versione Windows Form.
● Un modello a oggetti più completo è ReportDocument.
La classe ReportDocument consente di accedere a un insieme di classi nello spazio dei nomi Engine, tra cui
Database, DataDefinition, ExportOptions, PrintOptions, ReportDefinition, ReportOptions e
SummaryInfo. Si tratta di un gruppo piuttosto cospicuo di classi, in grado di offrire funzionalità più avanzate
di personalizzazione e interazione con il report.
Le classi di questo modello a oggetti sono contenute nello spazio dei nomi
CrystalDecisions.CrystalReports.Engine.
● I modelli a oggetti riportati di seguito sono disponibili mediante aggiornamento:

○ Un modello a oggetti con funzionalità più potenti e innovative per la modifica dei report denominato
ReportClientDocument.
Questa classe funge da punto di accesso per un modello a oggetti molto più esteso, costituito da
numerose classi in diversi spazi dei nomi. Espone l'intera struttura del report mediante l'SDK, in modo che
sia possibile creare o modificare a livello di codice ogni aspetto del report in fase di esecuzione.
Le classi di questo modello a oggetti sono contenute nel gruppo di spazi dei nomi
CrystalDecisions.ReportAppServer.
Il modello a oggetti ReportClientDocument viene fornito con RAS (Report Application Server) che
richiede l'acquisto di una licenza supplementare. Un RAS (Report Application Server) viene fornito con
SAP Crystal Reports Server e la piattaforma SAP BusinessObjects Business Intelligence.
○ InfoObject, un modello a oggetti completo per l'interazione con le funzioni a livello di piattaforma di SAP
Crystal Reports Server o della piattaforma SAP BusinessObjects Business Intelligence. Viene fornito con
la licenza di SAP Crystal Reports Server o della piattaforma SAP BusinessObjects Business Intelligence.
Questa classe funge da punto di accesso per il modello a oggetti completo della piattaforma disponibile in
SAP Crystal Reports Server o nella piattaforma SAP BusinessObjects Business Intelligence.
Le classi di questo modello a oggetti sono contenute nel gruppo di spazi dei nomi
CrystalDecisions.Enterprise.

Nota
Il modello a oggetti InfoObject viene fornito solo con SAP Crystal Reports Server e la piattaforma SAP
BusinessObjects Business Intelligence, che richiedono l'acquisto di una licenza supplementare.

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 35
Confronto tra le soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina 65]

1.3.1.5.1 Modello a oggetti CrystalReportViewer

La classe CrystalReportViewer ha due ruoli:

● Nel Web Form o nel Windows Form, viene esposta come controllo .NET che è possibile aggiungere al form per
visualizzare un report. Per informazioni specifiche su questo ruolo, vedere Controlli dei visualizzatori report
[pagina 34].
● Nel codice sottostante al Web Form o al Windows Form, fornisce il modello a oggetti più semplice per l'SDK,
che verrà preso in esame più avanti nel corso di questa sezione.

Il modo più facile e immediato per inserire un report all'interno del Web Form o del Windows Form in uso consiste
nell'aggiungervi il controllo CrystalReportViewer, assegnando quindi, nella classe di codice sottostante, il
percorso del report sotto forma di stringa alla proprietà ReportSource della classe CrystalReportViewer.

Assegnando il percorso del report direttamente al controllo, invece di inserire il report in un modello a oggetti più
complesso come, ad esempio, ReportDocument o ReportClientDocument, si limita l'interfaccia al solo modello a
oggetti più semplice: CrystalReportViewer.

Confronto del modello a oggetti CrystalReportViewer

I diagrammi relativi a questo modello sono due, poiché lo stesso nome del controllo e della classe (e dunque
anche del modello a oggetti sottostante) viene utilizzato sia per le applicazioni Windows che per le applicazioni
Web. Pertanto, il modello a oggetti CrystalReportViewer è ripetuto, con variazioni minime, in due spazi dei nomi
differenti.

La versione Windows del modello a oggetti CrystalReportViewer contiene le classi e gli eventi principali
condivisi da entrambe le versioni del modello, ovvero Windows e Web.

La versione Web del modello a oggetti CrystalReportViewer contiene le stesse classi e gli stessi eventi della
versione Windows, a cui si aggiungono però i seguenti eventi correlati alle modalità di caricamento della pagina
ASPX.

Informazioni correlate

Controlli dei visualizzatori report [pagina 34]


Collegamento dei report con il modello a oggetti CrystalReportViewer [pagina 168]

1.3.1.5.2 Modello a oggetti ReportDocument

La classe ReportDocument fornisce un modello a oggetti più completo per l'SDK rispetto al modello a oggetti
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
36 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
La classe ReportDocument fa parte dello spazio dei nomi CrystalDecisions.CrystalReports.Engine. e
consente di accedere a un insieme di classi nello spazio dei nomi Engine, che offrono un numero più elevato di
strumenti per la modifica di report a livello di codice.

Il modello a oggetti ReportDocument

Nella sezione precedente è stato descritto come utilizzare il modello a oggetti base CrystalReportViewer
assegnando una stringa con il percorso del report direttamente al controllo CrystalReportViewer.

Al livello successivo del modello a oggetti, si utilizza il modello a oggetti ReportDocument per incapsulare il
report all'interno di un'istanza ReportDocument prima che venga assegnato al controllo. In questo modo è
possibile accedere al più complesso e potente modello a oggetti fornito in ReportDocument.

Nota
Poiché entrambi i modelli a oggetti fanno parte di questo processo (CrystalReportViewer per il caricamento
e la visualizzazione del report, ReportDocument per l'incapsulamento e la modifica dello stesso), è facile
confonderne i ruoli. Se si utilizza il modello a oggetti ReportDocument per incapsulare il report, tutte le
modifiche che verranno apportate a quest'ultimo dovranno essere limitate al suddetto modello. Se si tenta di
utilizzare le proprietà e i metodi di CrystalReportViewer per modificare il report, i due modelli a oggetti
entrano in conflitto, generando modalità di funzionamento impreviste.

Dopo aver introdotto un modello a oggetti aggiuntivo, limitare l'utilizzo del codice di CrystalReportViewer
alla sola impostazione delle proprietà di visualizzazione.

ReportDocument e ReportClientDocument (RAS)

In SAP Crystal Reports 9 i due modelli a oggetti risultavano completamente separati, ma nella versione 10 e in
quelle successive del prodotto tale separazione è stata del tutto eliminata. Il modello a oggetti ReportDocument
funge ora da proxy per un sottoinsieme di funzionalità del modello ReportClientDocument.

SAP Crystal Reports 2008 consente di accedere a una versione limitata del modello a oggetti
ReportClientDocument attraverso la proprietà ReportDocument.ReportClientDocument.

Informazioni correlate

Esercitazioni relative al modello a oggetti ReportDocument [pagina 334]


In questa sezione sono contenute diverse esercitazioni relative al modello a oggetti ReportDocument.

Collegamento dei report con il modello a oggetti ReportDocument [pagina 196]


Modello a oggetti CrystalReportViewer [pagina 36]
Scelta del modello a oggetti appropriato al progetto [pagina 31]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 37
1.3.1.5.3 modello a oggetti ReportClientDocument (RAS)
ReportClientDocument è il modello a oggetti più potente e completo per la modifica dei report Questo modello
a oggetti è disponibile solo come parte di Report Application Server (RAS), disponibile come Report Application
Server non gestito o come Report Application Server gestito (BOE).

Il modello a oggetti ReportClientDocument è costituito da numerose classi in diversi spazi dei nomi. ciascuno
dei quali è preceduto dal prefisso CrystalDecisions.ReportAppServer, ed espone l'intera struttura del
report nell'SDK, in modo che sia possibile agire a livello di codice per creare, modificare e salvare le modifiche
apportate a qualsiasi aspetto del report in fase di esecuzione.

Un'istanza ReportClientDocument comprende un report che può essere modificato a livello di codice tramite le
relative proprietà di classe. Queste proprietà sono collegate a una serie di altre librerie dell'SDK che contengono
controller, modelli di definizione dei dati e modelli di definizione dei report:

● ReportDefinition corrisponde al layout del report, come illustrato in SAP Crystal Reports Designer.
● DataDefinition corrisponde all'Explorer Campo in SAP Crystal Reports Designer.
● RowsetController corrisponde ai valori dei dati elaborati di ciascuna riga dei dettagli quando si visualizza il
report in fase di esecuzione.

Le istanze di ReportClientDocument possono essere create per:

● Un file rpt esistente che è stato caricato da una directory e quindi modificato con le classi di definizione dei
report e dei dati dell'SDK di ReportClientDocument.
● Un report vuoto completamente nuovo, creato con le classi di definizione dei report e dei dati dell'SDK di
ReportClientDocument.

È possibile caricare questa istanza di classe ReportClientDocument solo per il tempo necessario per passarla
al visualizzatore per la visualizzazione, prima di interromperne l'amministrazione. L'istanza della classe può però
anche essere modificata e quindi salvata come report (.rpt) in una directory con una delle classi di controller.

Per informazioni dettagliate sul modello a oggetti ReportClientDocument, consultare la documentazione


dell'SDK di BusinessObjects RAS .NET.

ReportClientDocument in SAP Crystal Reports 9

SAP Crystal Reports 9 (versione avanzata) veniva fornito con RAS non gestito e gli assembly RAS .NET necessari
per programmare il modello a oggetti ReportClientDocument. Ciò consentiva agli sviluppatori di creare
progetti .NET che beneficiavano dei vantaggi offerti dal modello a oggetti ReportClientDocument.

Ciò significa, tuttavia, che i progetti creati in precedenza con il modello a oggetti ReportDocument fornito con
SAP Crystal Reports doveva essere completamente ricodificato per il modello a oggetti ReportClientDocument
fornito con RAS. La necessità della ricodifica era dovuta al fatto che i due modelli a oggetti erano completamente
separati.

ReportClientDocument in SAP Crystal Reports 10 e versioni successive

In SAP Crystal Reports 10 la separazione tra i due modelli a oggetti è stata del tutto eliminata Ciò è stato possibile
riscrivendo il modello a oggetti ReportDocument affinché funzionasse come proxy per un sottoinsieme di

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
38 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
funzionalità dal modello a oggetti ReportClientDocument. Le classi del modello a oggetti ReportDocument
espongono le stesse firme dei metodi e delle proprietà utilizzate in precedenza, ma la funzionalità sottostante è
stata modificata per reindirizzare ogni proprietà e metodo alle proprietà e ai metodi del più potente modello a
oggetti ReportClientDocument.

Questo non significa che una versione di base di SAP Crystal Reports Developer abbia accesso completo a un
server RAS non gestito o al modello a oggetti ReportClientDocument . La versione di base di SAP Crystal
Reports continua ad avere accesso unicamente al modello a oggetti ReportDocument, sebbene quest'ultimo
funzioni come proxy per un sottoinsieme di funzionalità del modello a oggetti ReportDocument. Il modulo per la
creazione di report originale contenuto nelle precedenti versioni di SAP Crystal Reports è stato sostituito con una
versione limitata e incorporata del modulo per la creazione di report RAS.

L'installazione e l'accesso diretto al modello ReportClientDocument sono possibili solo con una licenza
aggiornata per il server RAS non gestito. In questo modo, sarà possibile reindirizzare con facilità tutto il codice
esistente scritto per il modello a oggetti ReportDocument al server RAS separato, impostando due proprietà su
tutte le istanze del report fornite, nonché accedere direttamente al modello a oggetti ReportClientDocument
sottostante, quando verrà recuperato dalla proprietà ReportClientDocument della classe ReportDocument.

1.3.1.5.4 modello a oggetti InfoObject (BOE)

Il modello a oggetti InfoObject viene fornito con i prodotti di aggiornamento SAP Crystal Reports Server e la
piattaforma SAP BusinessObjects Business Intelligence.

Nota
Per ulteriori informazioni, vedere Soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina
64].

InfoObject offre un modello a oggetti a livello di piattaforma per l'SDK. InfoObject funziona come una classe
di base, in cui molti oggetti Enterprise vengono incapsulati in classi derivate. La classe derivata che rappresenta
i report è la classe CrystalDecisions.Enterprise.Desktop.Report.

L'SDK della piattaforma SAP BusinessObjects Business Intelligence si basa sulla classe di oggetti InfoObject e
sulle relative classi di supporto.

Classe InfoObject

La classe InfoObject viene utilizzata nell'SDK per rappresentare un'ampia gamma di entità informative. Tra
queste figurano sia le entità fisiche, quali i file di report o i file PDF, che le entità di rete, quali gli utenti, i server o le
connessioni FTP.

La classe InfoObject è la classe di base di una varietà di classi estese che corrispondono più dettagliatamente
alle entità informative. Le classi estese che ereditano da InfoObject includono: Report, User, Server, Folder,
Program, Ftp, Smtp, Word, Excel e Pdf.

Mediante la manipolazione delle istanze delle classi InfoObject ed estese è possibile creare un'applicazione
desktop client o amministrativa.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 39
Classi di supporto

La classe InfoObject prevede due classi di supporto aggiuntive.

Classe InfoStore La classe InfoStore funge da controller o punto di accesso per il repository del server di
gestione centrale (CMS), un database in cui sono archiviate tutte le istanze di InfoObject.
Viene utilizzata per creare istanze, recuperare e salvare tutte le istanze della classe
InfoObject che sono archiviate nel repository CMS.

Classe indicizzata La classe indicizzata InfoObjects contiene più istanze di InfoObject. Viene utilizzata da
InfoObjects InfoStore per spostare le istanze di InfoObject nel e dal repository CMS.

Le istanze di InfoObject non possono essere gestite direttamente dalla classe InfoStore, ma devono prima essere
racchiuse nella classe indicizzata InfoObjects, dove possono essere aggiunte, recuperate, aggiornate o pianificate.

Nota
Per ulteriori informazioni sull'SDK di SAP Crystal Reports Server o della piattaforma SAP BusinessObjects
Business Intelligence, consultare la documentazione dell'SDK di SAP Crystal Reports Server o della
piattaforma SAP BusinessObjects Business Intelligence.

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]

1.3.1.6 Confronto tra le architetture di tutte le soluzioni di


reporting per SAP Business Intelligence

Le soluzioni di reporting per SAP Business Intelligence disponibili sono quattro:

● SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio
● SAP Crystal Reports Developer
● RAS (Report Application Server) non gestito
● Piattaforma SAP BusinessObjects Business Intelligence o SAP Crystal Reports Server

Un elemento fondamentale di differenziazione a livello di architettura tra le diverse soluzioni di reporting è


rappresentato dal modo in cui ciascuna di esse inserisce e implementa il modulo di report.

Definizione del modulo report

Il modulo di report rappresenta il nucleo centrale di tutte le soluzioni di reporting. in quanto elabora tutte le
richieste degli utenti e restituisce informazioni sui report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
40 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
La velocità massima per l'elaborazione di richieste simultanee varia da una soluzione all'altra. In alcune soluzioni è
impostata in base alla progettazione dell'architettura o ai limiti relativi alle licenze.

Gli altri componenti principali di ogni soluzione di reporting sono i seguenti:

● Il file di definizione del report (.rpt).


● L'origine dati.
● Il visualizzatore report.
● L'SDK.
● Una struttura di piattaforma (disponibile in SAP Crystal Reports Server o nella piattaforma SAP
BusinessObjects Business Intelligence).

Interazione del modulo report con gli altri componenti principali

Il modulo report utilizza il file di definizione del report (.rpt) come modello, quindi recupera i dati dall'origine dati e,
mediante la definizione del report, esegue il rendering del report correntemente richiesto, che passa poi al
visualizzatore. Le informazioni ricevute da quest'ultimo, o codificate con l'SDK, attivano un'ulteriore elaborazione
da parte del modulo report che esegue altre operazioni sul report.

Modalità di configurazione del modulo di report nelle diverse soluzioni di


reporting per SAP Business Intelligence

● Il modulo report è incorporato.


In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio il modulo di report è incorporato
nell'applicazione.
Il modulo report incorporato non può elaborare più di tre richieste simultanee degli utenti. Si tratta di un limite
correlato all'architettura di questo tipo di modulo, non alle licenze di cui si dispone.
● Il modulo report viene estratto in un processo di server report separato.
Nella soluzione che utilizza Report Application Server (RAS) non gestito, il modulo report viene estratto in un
processo server separato. Tale processo può essere eseguito sullo stesso computer o su un hardware
distinto, in modo da incrementare le prestazioni liberando il server delle applicazioni dall'onere
dell'elaborazione. Poiché il server RAS non gestito non è più disponibile come opzione di aggiornamento, Si
consiglia di effettuare l'aggiornamento a SAP Crystal Reports Server. Per ulteriori informazioni, vedere
Soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina 64].
● Il processo di server report separato è incluso in un'architettura di piattaforme completa.
Nella soluzione SAP Crystal Reports Server o della piattaforma SAP BusinessObjects Business Intelligence
viene aggiunta un'intera architettura di piattaforme che include il processo di server report separato (RAS).
Report Application Server (RAS) gestito diventa un solo server tra molti altri nell'architettura di piattaforme
che fornisce un'ampia gamma di funzionalità aggiuntive quali, ad esempio, pianificazione, bilanciamento del
carico, failover e scalabilità verticale e orizzontale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 41
1.3.2 Controllo CrystalReportViewer

Per poter visualizzare un report Crystal, è necessario aggiungere un controllo CrystalReportViewer


all'applicazione in uso. Il controllo CrystalReportViewer viene utilizzato in .NET Framework per collegare e
visualizzare i report. Il controllo CrystalReportViewer predefinito include elementi dell'interfaccia utente che
semplificano le operazioni di visualizzazione, salvataggio e spostamento in un report.

I due controlli CrystalReportViewer utilizzati più di frequente sono il controllo CrystalReportViewer per le
applicazioni Windows, a cui si accede mediante la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer, e il controllo CrystalReportViewer per sito
Web, a cui si accede mediante la classe CrystalDecisions.Web.CrystalReportViewer. Per ulteriori
informazioni, vedere il manuale SAP Crystal Reports .NET API Reference.

Nota
Il controllo CrystalReportViewer è necessario solo se si intende visualizzare i report Crystal.

Personalizzazione del controllo CrystalReportViewer

In base al tipo di applicazione, potrebbe essere necessario modificare alcuni elementi del controllo predefinito.
SAP Crystal Reports consente di personalizzare l'aspetto del visualizzatore nell'applicazione in diversi modi, ad
esempio:

● la barra degli strumenti di CrystalReportViewer può essere rimossa dal visualizzatore


● i pulsanti della barra degli strumenti di CrystalReportViewer possono essere aggiunti o rimossi a livello di
codice
● il controllo CrystalReportViewer supporta la personalizzazione mediante CSS o temi.

Informazioni correlate

Personalizzazione del controllo CrystalReportViewer [pagina 221]


Visualizzazione di un report [pagina 161]

1.3.2.1 Modalità di utilizzo dei controlli dei visualizzatori


report

I controlli dei visualizzatori report sono controlli .NET che è possibile aggiungere a un form in un'applicazione
Windows o Web per poter visualizzare i report all'interno di tale form.

Quando si pianifica la creazione di un'applicazione con l'SDK di SAP Crystal Reports, uno degli aspetti più
importanti da considerare è la modalità di utilizzo dei controlli dei visualizzatori report. La conoscenza delle
nozioni di base dell'SDK che si riferiscono a questi controlli consente di scegliere la struttura più adeguata per il
progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
42 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Definizione dei controlli .NET

I controlli Microsoft .NET rappresentano uno speciale tipo di classi che vengono visualizzate nella casella degli
strumenti di Visual Studio. Tali controlli vengono aggiunti a un Web Form o a un Windows Form come oggetti GUI
ed ereditano da una classe di controlli di base comune. Tra i controlli .NET più diffusi figurano: Button,
DropDownList, CheckBox, TextBox e DataGrid.

I controlli Microsoft .NET si conformano alla seguente procedura consigliata: separare il livello della presentazione
dal livello della logica aziendale. Le informazioni relative alla visualizzazione vengono incapsulate all'interno del
controllo nel Web Form o nel Windows Form. Nella classe di codice sottostante viene creata un'istanza a livello di
classe per il controllo .NET. Questa variabile di istanza consente di accedere alle proprietà, ai metodi e agli eventi
del controllo.

Le funzionalità dei controlli Microsoft .NET sono identiche per i Windows Form e i Web Form. .NET Framework
consente di visualizzare ogni pagina Web sotto forma di form contenente controlli, come in un'applicazione
Windows.

Utilizzo dei controlli .NET per la visualizzazione dei report in SAP Crystal
Reports

Uno dei punti di forza degli strumenti per la creazione di report consiste nel fatto che incapsulano attività
complesse correlate alla struttura, alla progettazione e al rendering dei report all'interno di uno strumento GUI di
semplice utilizzo. In modo analogo, i controlli .NET incapsulano attività complesse correlate alla visualizzazione e
all'inserimento dei dati all'interno di un oggetto GUI di semplice utilizzo in un Web Form o in un Windows Form.

Grazie ai controlli .NET, è possibile svolgere difficili operazioni di visualizzazione e di creazione report. Tutte le
informazioni più complesse relative ai report, che venivano prima incapsulate solo nell'applicazione indipendente
SAP Crystal Reports, sono state ora inserite in un controllo .NET come in un visualizzatore report.

Controlli dei visualizzatori report disponibili

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio viene fornito con due versioni del
controllo CrystalReportViewer: una per le applicazioni Web e l'altra per le applicazioni Windows. Il controllo
CrystalReportViewer, situato all'interno dello spazio dei nomi CrystalDecisions.Web, è utilizzato dai progetti Web
ASP.NET. Il controllo CrystalReportViewer, situato all'interno dello spazio dei nomi
CrystalDecisions.Windows.Forms, è invece utilizzato dai progetti Windows.

Il controllo CrystalReportPartsViewer viene utilizzato per visualizzare solo alcune parti del report in una pagina
Web.

Visualizzazione di un report mediante il controllo CrystalReportViewer

Il controllo CrystalReportViewer consente di visualizzare un solo report alla volta, in base al report collegato al
codice in uso. Per indicare al controllo il report da visualizzare, collegare la proprietà ReportSource del controllo a

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 43
un report specifico. In fase di esecuzione, il controllo carica il report collegato alla proprietà ReportSource e lo
visualizza.

Nella sua forma più semplice, l'assegnazione si presenta come segue:

crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt"

crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";

In questo caso, il report è collegato al controllo direttamente dal percorso nella directory del file.

Si tratta di un esempio eloquente del metodo più elementare per collegare un report al controllo
CrystalReportViewer.

Anche il controllo CrystalReportViewer si collega a oggetti dati?

No, il controllo CrystalReportViewer si collega a un oggetto report, non a un oggetto dati.

La funzione di tale controllo è infatti differente da quella di altri controlli .NET, i quali si collegano ai dati ed
eseguono la formattazione dei dati non elaborati nella pagina. Poiché in SAP Crystal Reports Designer incorporato
tali operazioni vengono eseguite automaticamente ogni volta che viene creato un report (per definizione un report
incapsula recupero e visualizzazione dati), il controllo CrystalReportViewer si occupa solo della visualizzazione di
un oggetto report.

Nella tabella riportata di seguito viene confrontato il collegamento a un controllo dati .NET con il collegamento a
un controllo CrystalReportViewer.

Tipo di controllo Collegamento Connettività livello successivo

Controllo dati .NET (ad esempio Da­ Un oggetto dati (DataSet, DataRea­ Nessuno
taGrid) der, DataView, IDictionary, ICollec­
tion, DataTable).

Controllo del visualizzatorr di re­ Un oggetto report (che incapsula un Il file di report Crystal dispone di
port .NET (ad esempio CrystalRe­ file di report Crystal). una connettività dati incorporata,
portViewer) che consente la connessione a varie
origini dati, ad esempio ODBC e
OleDb, nonché oggetti DataReader
e DataSet.

Per aiutare l'utente a ricordare che un controllo CrystalReportViewer si collega a un oggetto report anziché a un
oggetto dati, la proprietà relativa all'origine del controllo del visualizzatore di report è denominata ReportSource
(non DataSource).

Collegamento automatico dei report

Un altro importante elemento di differenziazione di CrystalReportViewer rispetto alla maggior parte degli altri
controlli .NET, è che il collegamento per questo tipo di controllo non comporta la necessità di chiamare

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
44 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
manualmente un metodo di collegamento. CrystalReportViewer collega infatti automaticamente il visualizzatore
report all'oggetto report.

Informazioni correlate

Visualizzazione di un report [pagina 161]

1.3.2.1.1 Aggiunta di un controllo CrystalReportViewer a


un'applicazione Windows

Procedura

1. Aprire un Windows Form in visualizzazione struttura.


2. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.

Nota
Nelle versioni precedenti di Visual Studio, il controllo CrystalReportViewer veniva visualizzato nel nodo
Crystal Reports.

3. Trascinare il controllo CrystalReportViewer nel form.


4. Dal menu File, scegliere Salva tutto.

Risultati

Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.

1.3.2.1.2 Aggiunta di un controllo CrystalReportViewer a un


sito Web

Procedura

1. Aprire la pagina Default.aspx.


2. Fare clic sul pulsante Progettazione in fondo alla vista del modulo.
3. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 45
Nota
Nelle versioni precedenti di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio il
controllo CrystalReportViewer veniva visualizzato nel nodo Crystal Reports.

4. Trascinare il controllo CrystalReportViewer nel Web Form.


5. Dal menu File, scegliere Salva tutto.

Risultati

Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.

1.3.2.1.3 Collegamento del controllo CrystalReportViewer a


un file su disco

Contesto

Il modo più semplice per collegare un controllo CrystalReportViewer a un report Crystal è impostare la proprietà
ReportSource su un percorso su disco. Il report non incorporato viene visualizzato quando viene eseguita
l'applicazione.

Ciò consente di collegare il report direttamente al controllo. La completa interazione con il report a livello di codice
deve essere effettuata all'interno del modello a oggetti limitato CrystalReportViewer.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione Windows o al sito Web.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. Impostare la proprietà ReportSource sul percorso del report nel file system locale.

○ Quando si utilizzano applicazioni Windows Form o siti Web:

myCrystalReportViewer.ReportSource = "C:\MyReport.rpt"

crystalReportViewer.ReportSource = "C:\\MyReport.rpt";

○ Quando si utilizza un'applicazione WPF:

myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
46 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";

1.3.2.2 Riquadro Smart Task

In Visual Studio 2005 o versioni successive, quando si aggiunge un controllo .NET a un Web Form o a un Windows
Form, viene visualizzato un riquadro Smart Task. denominato Smart Task, ubicato nell'angolo superiore destro
del controllo .NET. Tale riquadro contiene caselle di controllo e caselle combinate che consentono agli sviluppatori
di selezionare la connettività e altre opzioni per il controllo. Questa funzione consente di ridurre notevolmente la
quantità di codice che deve essere scritta dallo sviluppatore.

In un sito Web le selezioni effettuate nel riquadro Smart Task producono XML generato automaticamente nella
pagina ASPX.

In un progetto Windows le selezioni effettuate nello stesso riquadro producono invece codice generato
automaticamente in un file di classe nascosto. Tale file rappresenta una classe "parziale", che costituisce
un'aggiunta alla classe del Windows Form esistente. Le classi parziali sono una nuova funzione di .NET Framework
versione 2.0.

Il riquadro Smart Task consente di collegare in modo rapido e semplice il controllo CrystalReportSource al
controllo CrystalReportViewer. Quando si aggiunge alla pagina il controllo CrystalReportViewer, viene visualizzato
automaticamente il riquadro Smart Task, nel quale viene indicata una procedura basata su una serie di passaggi
per creare e configurare un controllo CrystalReportSource.

Il controllo CrystalReportViewer fa ampio uso del riquadro Smart Task. Le selezioni disponibili nel riquadro
differiscono tra progetti Web e Windows.

Limiti delle Smart Task e del modello basato su codice ridotto

Le Smart Task agevolano l'utilizzo di un modello basato su codice ridotto che consente di generare
automaticamente codice, con un notevole risparmio di tempo rispetto alla scrittura manuale del codice stesso.

Se è vero che la generazione automatica di codice permette di risparmiare tempo in un primo momento, risulta
tuttavia difficile passare da un modello basato su codice ridotto a un modello di codifica standard, qualora si
desideri in un secondo momento incrementare la potenza e la flessibilità di un progetto.

1.3.2.2.1 Smart Task di CrystalReportViewer per progetti


Windows

Il riquadro Smart Task di CrystalReportViewer per Windows consente di creare, scegliere o modificare un
report Crystal. Sono inoltre disponibili le opzioni necessarie per la personalizzazione del controllo
CrystalReportViewer.

Per il riquadro Smart Task relativo ai progetti Windows sono disponibili le seguenti funzionalità.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 47
Crea un nuovo report Crystal...

Questo comando di menu consente di creare un report mediante SAP Crystal Reports Designer incorporato.

Al termine dell'operazione, il codice del report viene generato automaticamente in modo da collegare il report al
controllo CrystalReportViewer per una visualizzazione immediata.

Modifica il report Crystal corrente

Questo comando di menu consente di apportare ulteriori modifiche al report precedentemente selezionato o
creato per l'origine report.

Scegli un report Crystal

Questo comando di menu consente di selezionare un report Crystal o un oggetto ReportDocument per utilizzarlo
come origine del report per il controllo CrystalReportViewer.

Al termine dell'operazione, il codice del report viene generato automaticamente in modo da collegare il report al
controllo CrystalReportViewer per una visualizzazione immediata.

Cancella origine report

Questo comando di menu consente di cancellare la proprietà ReportSource per il controllo CrystalReportViewer.

Scegliere una vista del riquadro degli strumenti:

Questo comando di menu consente di selezionare il riquadro degli strumenti che verrà visualizzato per
impostazione predefinita al caricamento del report. È possibile selezionare l'albero dei gruppi o il riquadro del
parametro oppure lasciare il riquadro degli strumenti vuoto.

Visualizza barra degli strumenti

Questa casella di controllo consente di mostrare o nascondere la barra degli strumenti del controllo
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
48 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Visualizza barra di stato

Questa casella di controllo consente di mostrare o nascondere la barra di stato all'interno del controllo
CrystalReportViewer.

Disancora nel contenitore padre

Questo comando di menu consente di impostare la proprietà Dock su "None" o "Fill". Per impostazione
predefinita, quando un controllo CrystalReportViewer viene trascinato in un Windows Form, la proprietà Dock
viene impostata su "Fill". Se questo comando di menu è selezionato, la proprietà Dock "None" consente di
spostare e ridimensionare liberamente il controllo CrystalReportViewer all'interno del Windows Form o di altri
contenitori (ad esempio, un controllo Panel in un Windows Form).

1.3.2.2.2 Smart Task di CrystalReportViewer per siti Web

Il riquadro Smart Task di CrystalReportViewer per siti Web consente di creare, scegliere o modificare un report
Crystal. Include inoltre una serie di opzioni che consentono di personalizzare il controllo CrystalReportViewer e di
attivare la segnalazione degli errori per gli accessi al database e i valori di parametro.

Per il riquadro Smart Task relativo ai siti Web sono disponibili le seguenti funzionalità:

Scegli un'origine report

Questa casella combinata consente di selezionare un'origine report esistente o di crearne una nuova.

Al termine dell'operazione, il codice del report viene generato automaticamente in modo da collegare il report al
controllo CrystalReportViewer per una visualizzazione immediata.

Configura origine report...

Questo comando di menu consente di configurare ulteriormente l'origine report precedentemente selezionata o
creata.

Modifica report...

Questo comando di menu consente di apportare ulteriori modifiche al report precedentemente selezionato o
creato per l'origine report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 49
Scegliere una vista del riquadro degli strumenti:

Questo comando di menu consente di selezionare il riquadro degli strumenti che verrà visualizzato per
impostazione predefinita al caricamento del report. È possibile selezionare l'albero dei gruppi o il riquadro del
parametro oppure lasciare il riquadro degli strumenti vuoto.

Attiva la barra degli strumenti

Questa casella di controllo consente di mostrare o nascondere la barra degli strumenti del controllo
CrystalReportViewer.

Attiva visualizzazione report

Questa casella di controllo consente di mostrare o nascondere la visualizzazione report all'interno del controllo
CrystalReportViewer.

Nota
è possibile disattivare la visualizzazione report se si desidera utilizzare la struttura gruppi da sola in un Web
Form.

Attiva prompt per l'accesso al database

Questa casella di controllo consente di attivare o disattivare la segnalazione degli errori per gli accessi al
database. Quando un report non dispone delle informazioni necessarie per accedere a un database SQL Server,
viene generata un'eccezione di errore "Accesso non riuscito". Tuttavia, se la casella di controllo è selezionata,
verrà visualizzata una finestra di prompt in cui si richiedono le informazioni necessarie per l'accesso.

Attiva prompt al parametro report

Questa casella di controllo consente di attivare o disattivare la segnalazione degli errori per i valori di parametro.
Quando un report non dispone delle informazioni necessarie per richiamare un parametro utilizzato nei criteri di
selezione, viene generata un'eccezione di errore "Valori di parametro mancanti". Tuttavia, se la casella di controllo
è selezionata, verrà visualizzata una finestra di prompt in cui si richiedono le informazioni necessarie sul
parametro.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
50 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Riutilizza valore del parametro all'aggiornamento del report

Questa casella di controllo consente di attivare o disattivare la persistenza dei parametri al momento
dell'aggiornamento dei report. Se la casella di controllo è selezionata, i valori di parametro passati al report in
corrispondenza del primo caricamento vengono resi persistenti. Se invece la casella di controllo è deselezionata,
sarà necessario scrivere del codice per passare i valori di parametro al report a ogni successivo aggiornamento.

Informazioni correlate

Smart Task di CrystalReportViewer per progetti Windows [pagina 47]

1.3.2.3 Controllo CrystalReportPartsViewer

Il controllo CrystalReportPartsViewer viene utilizzato in .NET Framework per il collegamento e la


visualizzazione di un report Crystal come serie di parti collegate. Questo metodo consente di ridurre
notevolmente l'area richiesta per la visualizzazione delle informazioni del report, in quanto risulta ideale per
visualizzare piccole quantità di informazioni sul report in una pagina del portale Web.

Nota
Le parti di report vengono utilizzate solo nei siti Web e non sono disponibili per i progetti Windows.

Il controllo CrystalReportPartsViewer è stato migliorato in modo da supportare la struttura delle Web part,
una struttura di portale introdotta con ASP.NET versione 2.0.

La struttura delle Web part consente agli sviluppatori di incapsulare i controlli della pagina in Web part
configurabili.

Informazioni correlate

Esercitazione: Visualizzazione delle parti di report mediante il controllo CrystalReportPartsViewer [pagina 491]
In questa esercitazione viene descritto come suddividere un report in varie parti e visualizzare ciascuna parte
attraverso una serie di collegamenti ipertestuali consecutivi.

1.3.2.4 Controllo CrystalReportSource

Il controllo CrystalReportSource fa parte del nuovo modello per lo sviluppo di applicazioni basato su tag fornito
con ASP.NET versione 2.0.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 51
Nota
il controllo CrystalReportSource è disponibile solo per i siti Web.

Nella struttura del controllo DataSource, i controlli visivi .NET si connettono a controlli DataSource non visivi,
ovvero controlli che non gestiscono informazioni relative alla visualizzazione. Questa nuova struttura di
DataSource incapsula le informazioni sulla connettività dati scritte come righe di codice nei controlli .NET
all'interno del Web Form.

Nella finestra Progettazione di Visual Studio vengono visualizzati i nomi dei controlli connessi tra loro.

I provider di dati .NET forniscono implementazioni personalizzate del controllo DataSource. Ad esempio,
SqlDataSource accede a Microsoft SQL Server, mentre OracleDataSource accede a Oracle.

Nel caso di SAP Crystal Reports, il controllo viene implementato come controllo CrystalReportSource. Questo
tipo di progettazione è parallela a quella di ASP.NET versione 1.0, in cui il controllo CrystalReportViewer contiene
una proprietà ReportSource anziché la più usuale proprietà DataSource.

La differenza tra il controllo CrystalReportSource e i controlli DataSource consiste nel fatto che il primo contiene
un report che incapsula i dati, mentre i secondi, ad esempio SqlDataSource contengono direttamente i dati.

1.3.3 Approccio di persistenza da utilizzare con SAP Crystal


Reports

Quando si pianifica la creazione di un'applicazione Web con l'SDK di SAP Crystal Reports, uno degli aspetti più
importanti da considerare è l'approccio di persistenza da utilizzare.

Definizione di persistenza

Le pagine Web non conservano lo stato e le informazioni di un utente che si connette a un sito Web. Ogni pagina
Web viene richiesta da un server e inviata all'utente, quindi il processo viene terminato. Ciò non crea difficoltà
quando si leggono informazioni di testo, ma diventa problematico quando si progetta un'applicazione Web in cui
occorre conservare le informazioni sull'utente per l'uso durante più operazioni di ricaricamento e
reindirizzamento delle pagine.

Il concetto di persistenza si riferisce all'utilizzo di un meccanismo per mantenere inalterato lo stato di ciascun
utente, ad esempio la pagina di report attualmente visualizzata, durante le operazioni di ricaricamento e
reindirizzamento.

Procedure consigliate per la persistenza

In questa sezione vengono illustrate le procedure consigliate per rendere persistenti durante l'aggiornamento del
report in fase di ricaricamento della pagina le modifiche apportate a un report Crystal in una pagina Web. Può
essere necessario rendere persistenti modifiche semplici come il passaggio alla seconda pagina dopo che si è

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
52 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
fatto clic sul pulsante Pagina successiva del visualizzatore report oppure complesse come la visualizzazione di
dati completamente differenti dopo che sono state apportate modifiche ai parametri di un report.

La persistenza deve essere applicata nei seguenti casi:

● Controllo CrystalReportViewer.
● Report collegato al controllo CrystalReportViewer.

Metodi per garantire la persistenza dello stato in ASP e ASP.NET

In ASP e ASP.NET tradizionali lo stato viene mantenuto mediante il browser Web o il server Web nei seguenti
modi:

Ambiente Client o server Nome Metodo

ASP Browser client Campi form Passaggio di coppie


nome/valore tra pagine
Web mediante campi di in­
vio del form.

ASP* Browser client Argomenti URL Passaggio di coppie


nome/valore tra pagine
Web mediante argomenti
URL.

ASP* Browser client Cookie Assegnazione di coppie


nome/valore a un cookie
del browser client e recu­
pero del cookie in una
nuova pagina.

ASP* Server Web Oggetto Session Assegnazione di oggetti


istanziati all'oggetto Ses­
sion del server e recupero
da Session in una nuova
pagina.

ASP* Server Web Oggetto Application Assegnazione di oggetti


istanziati all'oggetto Appli­
cation del server e recu­
pero da Application in una
nuova pagina.

ASP.NET Browser client Oggetto ViewState Assegnazione di valori


stringa all'oggetto View­
State del Web Form
ASP.NET.

ASP.NET Server Web Oggetto Cache Analogo a quello dell'og­


getto Application, ma con
funzioni più potenti.

* Tutti gli approcci di persistenza ASP operano anche in ASP.NET.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 53
Approcci di persistenza più adatti per SAP Crystal Reports

Gli approcci di persistenza più appropriati da utilizzare con SAP Crystal Reports sono ViewState, Session o Cache.

Informazioni correlate

ViewState e persistenza del modello a oggetti CrystalReportViewer [pagina 54]

1.3.3.1 ViewState e persistenza del modello a oggetti


CrystalReportViewer

Definizione di ViewState

ViewState è un approccio basato su browser utilizzato in ASP.NET per rendere persistente lo stato della
visualizzazione, ossia il Web Form. La sua funzione principale consiste nel supportare la persistenza dei controlli
Web.

Questi ultimi (denominati anche controlli server Web) sono basati sui controlli Windows, introdotti in Visual Basic.
I controlli Windows sono oggetti del form che includono parti della funzionalità di visualizzazione, quali un campo
di testo, un pulsante o una tabella di dati.

I controlli Web sono simili ai controlli Windows Come questi, operano su due livelli: all'interno della pagina Web e
nella classe di codice sottostante che supporta la pagina Web. In modo analogo ai controlli tradizionali nei
Windows Form, i controlli Web includono parti della funzionalità di visualizzazione presente negli oggetti GUI:
Button, TextField, DropDownList, DataGrid e così via. Nella classe di codice sottostante questi stessi controlli
equivalgono alle classi che espongono proprietà e metodi.

La differenza tra una pagina Web e un Windows Form è data dal fatto che la pagina Web rappresenta un ambiente
senza informazioni sullo stato. Pertanto, è necessario l'uso di un meccanismo di persistenza per conservare lo
stato della pagina Web durante le operazioni di ricaricamento della pagina.

ViewState conserva lo stato dei controlli nella pagina Web, così come Session conserva lo stato degli oggetti
istanziati nel server.

Nota
ViewState conserva lo stato di tutti i controlli Web automaticamente, mediante la memorizzazione di ogni
controllo in base alla relativa proprietà EnableViewState, che utilizza True come impostazione predefinita.

Poiché ViewState archivia lo stato dei dati dei controlli Web nella pagina, è necessario racchiudere l'intero oggetto
ViewState all'interno della pagina, soggetta al trasferimento continuo tra il browser e il server Web. Tale
operazione viene eseguita crittografando l'intero oggetto ViewState come stringa e inserendo quest'ultima

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
54 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
all'interno del valore di un tag form nascosto della pagina. Ad esempio, l'oggetto ViewState di una pagina Web
ASP.NET contenente un solo controllo pulsante (Button) presenta il seguente codice HTML:

<input type="hidden" name="__VIEWSTATE"


value="dDwtNTMwNzcxMzI0Ozs+I7GfLyg3p44eTLFCiVEiRKUBzFw=" />

ViewState memorizza solo le informazioni che possono essere convertite in formato stringa.

Persistenza della visualizzazione report del controllo CrystalReportViewer

Il controllo CrystalReportViewer svolge il ruolo di strumento di visualizzazione di un report Crystal: consente di


effettuare il rendering del report in formato html sulla pagina e rende disponibili una barra degli strumenti e una
visualizzazione struttura per la modifica della visualizzazione del report. La barra degli strumenti contiene pulsanti
per l'esecuzione dello zoom, il passaggio alla pagina successiva, la stampa, l'esportazione e così via. La
visualizzazione struttura si espande per mostrare un raggruppamento nidificato di dati.

ViewState rende persistenti le informazioni del controllo. Rende pertanto persistente lo stato di tutte le
informazioni del controllo CrystalReportViewer relative alla visualizzazione dei report, inclusi gli eventi della barra
degli strumenti e della visualizzazione struttura, durante le operazioni di ricaricamento della pagina.

Se ad esempio un utente sta visualizzando la pagina 3 del report e fa clic sul pulsante per il passaggio alla pagina
successiva situato sulla barra degli strumenti del controllo CrystalReportViewer, ViewState renderà persistente lo
stato di entrambe le informazioni:

● Numero della pagina corrente.


● Stato del pulsante Pagina successiva (selezionato).

Durante il ricaricamento della pagina ViewState riporterà il controllo CrystalReportViewer a pagina 3, quindi
ripristinerà l'evento click relativo alla pagina successiva, inducendo il controllo ad avanzare alla pagina 4 del
report.

Persistenza del modello a oggetti del controllo CrystalReportViewer

Il controllo CrystalReportViewer svolge anche un altro ruolo: oltre a quello di strumento di visualizzazione dei
report, ovvero quello di modello a oggetti limitato contenuto nella classe del controllo CrystalReportViewer.
Questo modello a oggetti limitato può essere utilizzato per l'interazione con il report a livello di codice.

ViewState rende persistente lo stato di entrambi i ruoli:

● Visualizzazione dei report.


● modello a oggetti CrystalReportViewer.

Tuttavia, l'utilizzo del modello a oggetti CrystalReportViewer è in genere sconsigliato, a favore del più ampio
modello a oggetti ReportDocument. Questo modello a oggetti alternativo non è contenuto nel controllo, ma fa
parte delle librerie di classi dell'SDK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 55
Condivisione dei meccanismi di persistenza

Se il controllo CrystalReportViewer viene utilizzato per entrambi i ruoli (visualizzazione dei report e modello a
oggetti), ViewState li rende persistenti entrambi. Non sono pertanto necessari ulteriori meccanismi di
persistenza.

Nota
Un esempio potrebbe essere rappresentato dal collegamento del controllo CrystalReportViewer a un percorso
della directory di file. Vedere Collegamento a un percorso della directory di file tramite codice [pagina 169].

Se tuttavia si sceglie di utilizzare il controllo CrystalReportViewer solo nel ruolo di visualizzazione dei report e lo si
collega a un modello a oggetti esterno, quale ReportDocument, sarà necessario utilizzare un meccanismo
separato per rendere persistente tale modello a oggetti. In genere, questo secondo meccanismo di persistenza è
Session. In alcuni casi, è anche possibile utilizzare Cache.

Informazioni correlate

Approccio di persistenza da utilizzare con SAP Crystal Reports [pagina 52]


Session e persistenza del modello a oggetti ReportDocument [pagina 56]
Scelta del modello a oggetti appropriato al progetto [pagina 31]

1.3.3.2 Session e persistenza del modello a oggetti


ReportDocument

Definizione di Session

Session è un approccio basato su server Web, utilizzato in ASP e ASP.NET per consentire la conservazione dello
stato. Session consente infatti di rendere persistente qualsiasi oggetto per l'intera durata di una sessione utente,
mediante l'archiviazione di tale oggetto nella memoria del server Web.

Session viene in genere utilizzato per effettuare una delle seguenti operazioni:

● Archiviazione delle informazioni il cui stato deve essere reso persistente per l'intera durata di una sessione
utente, ad esempio informazioni di accesso o altre informazioni necessarie agli utenti durante l'esplorazione
dell'applicazione Web.
● Memorizzazione di un oggetto il cui stato deve essere reso persistente solo durante il ricaricamento di una
pagina o in un insieme di pagine raggruppate dal punto di vista funzionale.

L'elemento principale di Session consiste nella capacità di conservare le informazioni sullo stato dell'utente sul
server Web, consentendo l'accesso in qualunque momento e da qualsiasi pagina. Poiché le informazioni non
vengono memorizzate sul browser, è possibile utilizzare qualsiasi browser, inclusi dispositivi quali PDA o telefoni
cellulari.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
56 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Limiti di questo approccio di persistenza

● La quantità di memoria server richiesta da Session aumenta in modo proporzionale al numero di utenti che
effettuano l'accesso.
● Ogni utente che accede all'applicazione Web genera un oggetto Session distinto. Ogni oggetto Session ha una
durata pari a quella della sessione di un utente più un periodo di inattività.
● Se all'interno di ogni oggetto Session vengono resi persistenti molti oggetti e l'applicazione Web viene
utilizzata contemporaneamente da più utenti, implicando la creazione di numerosi oggetti Session, la quantità
di memoria server dedicata alla persistenza di Session può aumentare notevolmente, causando limitazioni
nella scalabilità.

Per approcci di persistenza alternativi, vedere:

● ViewState e persistenza del modello a oggetti CrystalReportViewer [pagina 54]


● Cache e persistenza del modello a oggetti ReportDocument [pagina 58]

Persistenza del modello a oggetti ReportDocument con Session

Se il report è stato incapsulato all'interno del modello a oggetti ReportDocument, quest'ultimo dovrà essere reso
persistente mediante un approccio basato su server, quale Session o Cache.

Per rendere persistente un report incluso nel modello a oggetti ReportDocument mediante Session, creare
un'istanza ReportDocument e assegnarla a Session.

Session rappresenta l'approccio più semplice e maggiormente utilizzato dagli utenti con poca esperienza
nell'ambito della creazione di un'applicazione Web ASP.NET mediante SAP Crystal Reports. Si tratta inoltre
dell'approccio consigliato per la memorizzazione delle istanze di ReportDocument in cui il report presenta scarsa
condivisibilità.

Limiti della persistenza del modello a oggetti ReportDocument con Session

Se un'istanza ReportDocument presenta un elevato livello di condivisibilità, prendere in considerazione l'utilizzo di


Cache anziché di Session.

Confronto tra Session e ViewState

Session ha come funzione principale quella di rendere persistente lo stato degli oggetti nella classe di codice
sottostante, mentre ViewState ha come funzione principale quella di rendere persistente lo stato dei controlli nella
pagina Web. Se un controllo della pagina Web viene collegato a un oggetto nella classe di codice sottostante ed
entrambi devono essere resi persistenti tra le operazioni di ricaricamento della pagina, Session e ViewState
condividono i ruoli di persistenza.

In questo caso, ViewState rende persistente un controllo CrystalReportViewer e Session un oggetto


ReportDocument collegato al controllo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 57
Informazioni correlate

Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334]
In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a
un report a livello di codice in fase di esecuzione.

1.3.3.3 Cache e persistenza del modello a oggetti


ReportDocument

Cache è un approccio basato su server utilizzato in ASP.NET per consentire la conservazione dello stato. Dal
punto di vista funzionale, Cache è simile all'oggetto Application presente in ASP e ASP.NET:

● Application consente di rendere persistente tutti gli oggetti nell'ambito dell'applicazione.


● Application non può essere utilizzato per conservare i dati specifici di un utente.

Oltre a condividere tali funzioni di Application, Cache aggiunge nuovi livelli di funzionalità per la gestione dei dati
temporanei:

● Un oggetto aggiunto a Cache può essere configurato con dipendenze basate su file, su chiavi o temporizzate.
Se la chiave o il file associato viene modificato o trascorre un determinato periodo di tempo, l'oggetto verrà
rimosso automaticamente da Cache. Alla successiva richiesta, verrà inoltre inserita una versione aggiornata
dell'oggetto in Cache.
● Un oggetto aggiunto alla cache scade automaticamente se non ha dipendenze e se è poco utilizzato.
● Quando un oggetto viene rimosso da Cache, viene attivato un evento. È possibile scrivere codice per
l'esecuzione in tale evento e per il caricamento di una versione aggiornata dell'oggetto in Cache.

Se viene aggiunta una versione alternativa di un oggetto mediante la stringa della chiave originale, tale versione
sostituirà quella precedente. Per evitare ciò, concatenare la definizione alternativa con la stringa della chiave, in
modo da rendere univoca ogni versione alternativa dell'oggetto.

Oltre a memorizzare le informazioni accessibili a tutti gli utenti, in modo analogo ad Application, Cache è in grado
di aggiornarsi in modo automatico in base alle modifiche apportate nelle relative dipendenze.

Comportamento di Cache in .Net 2.0 Framework

Cache in .Net 2.0 Framework è più efficiente e sicuro poiché viene gestito in base all'utente e alla sessione.

Ciò significa che, quando un utente visualizza un report, una copia del report viene salvata nella cache e
visualizzata per tale utente. Se l'utente apre nuovamente il report mentre la sessione corrente è attiva,
l'applicazione visualizza il report memorizzato nella cache. In questo modo non è necessario eseguire il report
ogni volta che viene visualizzato dallo stesso utente. Se un altro utente accede alo stesso report e lo apre,
l'applicazione esegue il report una seconda volta, salva una seconda copia del report nella cache e la visualizza per
l'utente. Tutti gli utenti dispongono di una copia del report nella cache per la propria sessione. Ciò evita che più
utenti condividano lo stesso report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
58 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Limiti di questo approccio di persistenza

Gli sviluppatori che non hanno una conoscenza approfondita di Cache potrebbero utilizzare tale oggetto in tutte le
situazioni in cui è richiesta la persistenza, sostituendo Session con Cache. Tuttavia, Cache non è progettato per
sostituire le funzionalità dell'oggetto Session. Il tentativo di emulare l'unicità di Session, concatenando i dati
specifici dell'utente con la chiave di Cache, comporta il caricamento in Cache degli oggetti utente. Diversamente
da quanto accade in Session, tali oggetti non scadono tuttavia dopo un periodo di inattività dell'utente. Di
conseguenza, Cache richiede una maggiore quantità di memoria del server Web rispetto a Session.

Se è necessario rendere persistenti dati specifici dell'utente, continuare a utilizzare l'oggetto Session.

Per approcci di persistenza alternativi, vedere:

● ViewState e persistenza del modello a oggetti CrystalReportViewer [pagina 54]


● Session e persistenza del modello a oggetti ReportDocument [pagina 56]

Persistenza del modello a oggetti ReportDocument con Cache

Se il report è stato incapsulato all'interno del modello a oggetti ReportDocument, quest'ultimo dovrà essere reso
persistente mediante un approccio basato su server, quale Session o Cache.

È possibile rendere persistente un report incluso nel modello a oggetti ReportDocument utilizzando Cache in uno
dei due modi seguenti:

● Creare un'istanza del report e assegnarla all'oggetto Cache, utilizzando la stessa sintassi dell'assegnazione di
un report all'oggetto Session.
Questo metodo è valido solo per un report dotato di elevata condivisibilità, in cui l'istanza ReportDocument
ricorre una sola volta, grazie all'utilizzo di un unico insieme di parametri e credenziali di accesso. Nel caso di
un'istanza ReportDocument che ricorre più volte a causa di una variazione dei parametri e delle informazioni
di accesso, la relativa riassegnazione all'oggetto Cache mediante la stessa stringa di chiave sovrascriverà la
versione precedente di tale istanza.
● Creare l'istanza di una versione della classe di report che implementa l'interfaccia ICachedReport.
L'SDK di SAP Crystal Reports include una struttura incorporata di memorizzazione nella cache per i report.
Tutti i report che implementano l'interfaccia ICachedReport vengono aggiunti automaticamente all'oggetto
Cache con una chiave univoca basata su parametri e credenziali di accesso dell'utente. Questo metodo è
valido per tutti i report con elevata condivisibilità. È possibile tuttavia che sia disponibile un numero ridotto di
versioni a causa delle variazioni minori che si verificano nei parametri e nelle credenziali di accesso. È
necessario assegnare i report con scarsa condivisibilità (specifici dell'utente) all'oggetto Session.

Limiti della persistenza del modello a oggetti ReportDocument con Cache

Cache rappresenta l'approccio più adatto da utilizzare per rendere persistenti le istanze di ReportDocument che
presentano un elevato grado di condivisibilità tra utenti. Se il report è specifico dell'utente, Cache utilizzerà
un'elevata quantità di memoria del server creando istanze basate sull'utente a livello di un'applicazione. Tali
istanze verranno conservate nella memoria del server anche dopo la scadenza dell'utente. Per questo motivo, i
report specifici dell'utente devono essere assegnati a Session.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 59
Nota
nella maggior parte dei casi, utilizzare Session per rendere persistenti le istanze di ReportDocument. Utilizzare
Cache o più specificamente l'interfaccia ICachedReport solo quando un report presenta elevata condivisibilità e
dimensioni molto grandi o quando è talmente complesso da richiedere diversi minuti per il recupero dei relativi
dati.

Confronto tra Cache e ViewState

Cache ha come funzione principale quella di rendere persistente lo stato degli oggetti nella classe di codice
sottostante. ViewState ha come funzione principale quella di rendere persistente lo stato dei controlli nella pagina
Web. Se un controllo della pagina Web viene collegato a un oggetto nella classe di codice sottostante ed entrambi
devono essere resi persistenti tra le operazioni di ricaricamento della pagina, Cache e ViewState condividono i
ruoli di persistenza.

In questo caso, ViewState rende persistente un controllo CrystalReportViewer e Cache un oggetto


ReportDocument collegato al controllo.

Informazioni correlate

Approccio di persistenza da utilizzare con SAP Crystal Reports [pagina 52]


Limiti di persistenza durante il collegamento dei report nel gestore dell'evento Page_Load [pagina 61]

1.3.3.3.1 Per rendere persistente un report incorporato che


implementa ICachedReport

Procedura

1. Aggiungere il report al progetto.

Vengono create una classe del report incorporato e una classe del report memorizzato nella cache che carica
e restituisce un'istanza memorizzata nella cache della classe del report incorporato.
2. Creare un'istanza della classe del report memorizzato nella cache.
3. Assegnare l'istanza di classe memorizzata nella cache al controllo CrystalReportViewer.

Informazioni correlate

Collegamento a una classe di report incorporati e memorizzati nella cache [pagina 201]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
60 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.3.3.2 Per rendere persistente un report non incorporato
mediante una classe di utilità che implementa ICachedReport

Procedura

1. Creare una classe di utilità per la gestione della cache personalizzata e impostarla in modo che implementi
ICachedReport.
2. All'interno di questa classe, caricare il report non incorporato da una stringa di percorso mediante il metodo
ReportDocument.Load().
3. Scrivere il codice del metodo di implementazione CreateReport() in modo che restituisca l'istanza
ReportDocument del report non incorporato.
4. Creare un'istanza della classe di utilità per la gestione della cache contenente il report.
5. Assegnare l'istanza di classe al controllo CrystalReportViewer.

Informazioni correlate

Collegamento a un report non incorporato caricato in una classe di utilità per la gestione della cache [pagina 203]

1.3.3.4 Limiti di persistenza durante il collegamento dei


report nel gestore dell'evento Page_Load

Nelle applicazioni Web ASP.NET è prassi diffusa inserire tutto il codice di avvio della pagina nel gestore dell'evento
Page_Load, che viene chiamato dall'evento Page.Load.

In particolare, il codice per il collegamento dei dati ai controlli viene solitamente memorizzato nel gestore
dell'evento Page_Load. Tuttavia, se si inserisce il codice per il collegamento in questo gestore dell'evento, si
verifica un problema con ViewState. Di seguito viene descritto tale problema e ne viene indicata la relativa
soluzione:

● ViewState viene utilizzato per rendere persistenti due cose nei successivi caricamenti delle pagine: i dati che
sono collegati al controllo e gli eventi clic del mouse eseguiti sul controllo.
● ViewState è una stringa. Pertanto sia i dati che gli eventi clic devono essere serializzati.
● Durante l'operazione di ricaricamento della pagina, i dati e gli eventi clic vengono entrambi ripristinati da
ViewState.
● L'evento Page.Load si verifica dopo il ripristino di ViewState. Se il gestore dell'evento Page_Load contiene un
codice per il collegamento ai controlli, durante il ricaricamento della pagina il codice sovrascrive ViewState.
Inoltre, i dati originali e gli eventi clic vanno persi.
● Questo problema è tipico dei controlli che non sono in grado di ricordare le azioni del clic del mouse (ad
esempio, una selezione di DropDownList) durante il ricaricamento della pagina.
● Per impedire la sovrascrittura dei dati e degli eventi clic del mouse, è necessario inserire del codice per il
collegamento presente nel gestore dell'evento Page_Load in un blocco condizionale Not IsPostBack. In
questo modo il codice per il collegamento non viene chiamato durante i postback.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 61
In questa soluzione si dà per scontato che sia i dati che gli eventi clic del mouse possano essere serializzati in
ViewState. Il controllo CrystalReportViewer viene tuttavia collegato a oggetti non serializzabili, in particolare la
classe ReportDocument, la classe ReportClientDocument o la classe InfoObject.

Nota
Vi è un'eccezione: quando il controllo CrystalReportViewer viene collegato a un report mediante il percorso
della directory di file, la stringa del percorso può essere resa persistente in ViewState. Solo in questo scenario il
controllo CrystalReportViewer può essere inserito in un blocco condizionale Not IsPostBack. Tuttavia questo
scenario di collegamento dei report è meno potente e meno comune rispetto al collegamento alle classi di
report elencate sopra.

Poiché solo gli eventi clic del mouse del controllo CrystalReportViewer possono essere serializzati in ViewState, il
collegamento a una classe di report non serializzabile crea un problema irrisolvibile durante le operazioni di
ricaricamento delle pagine:

● Se il codice per il collegamento dei report viene inserito in un blocco condizionale Not IsPostBack, gli eventi
clic del mouse di ViewState vengono conservati. Il collegamento dei report non ha tuttavia luogo e viene
generata un'eccezione.
● Se il codice per il collegamento dei report viene inserito al di fuori del blocco condizionale, il report viene
collegato correttamente. ViewState viene tuttavia sovrascritto e gli eventi clic del mouse vanno persi.

Nota
Questo approccio si osserva tipicamente quando si fa clic in un report a più pagine nel controllo
CrystalReportViewer. Per qualche strano motivo il report continua a visualizzare la pagina 1.

Soluzione consigliata: spostare il codice per il collegamento del controllo


CrystalReportViewer nell'evento Init

La soluzione per il controllo CrystalReportViewer consiste nello spostare il codice per il collegamento dei report
nell'evento Init, che si verifica prima del ripristino di ViewState.

Questa soluzione presenta una complicazione. Poiché la codifica dell'evento Init è meno comune rispetto
all'evento Load, l'accesso risulta più difficile. Nei progetti Web o Windows di Visual Studio .NET 2003 il codice per
la gestione dell'evento Init si trova nell'area relativa al codice generato da Progettazione Web Form, un'area che
solitamente è nascosta e riservata al codice generato.

Per risolvere questo problema, si consiglia di adottare il seguente approccio:

● Estrarre tutto il codice di collegamento e configurazione di CrystalReportViewer in un metodo di supporto


privato denominato ConfigureCrystalReports().
● Nell'area relativa al codice generato da Progettazione Web Form inserire un'unica riga di codice nel gestore
dell'evento Page_Init() o nel metodo di attivazione eventi OnInit() per chiamare il metodo di supporto
ConfigureCrystalReports().

Istruzioni dettagliate su come creare e compilare il metodo di supporto ConfigureCrystalReports() sono


disponibili in Impostazione di un progetto [pagina 14].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
62 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334]
In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a
un report a livello di codice in fase di esecuzione.

1.3.4 Scalabilità dell'applicazione

Quando si pianifica la creazione di un'applicazione con l'SDK di SAP Crystal Reports, uno degli aspetti più
importanti da considerare è come ottimizzarne la scalabilità. L'applicazione può essere scalata in due modi:

● Ottimizzando le prestazioni dell'applicazione.


● Ottimizzando le prestazioni del report.

L'implementazione di queste procedure consigliate viene descritta nelle sezioni riportate di seguito.

Scalabilità del codice dell'applicazione

Quando si utilizza l'SDK di SAP Crystal Reports .Net, seguire le procedure consigliate riportate di seguito per
migliorare le prestazioni e quindi la scalabilità:

● Ridurre l'utilizzo di DataSet.


● Sfruttare i vantaggi della memorizzazione nella cache dei report.
● Rilasciare il report dalla memoria dopo l'uso.
● Condivisione dell'elaborazione tra i server.

Scalabilità dell'applicazione mediante la riduzione della complessità dei report

Quando si progettano i report, e in particolare quando si progettano report per il Web, occorre tenere a mente il
fattore scalabilità. Prendere in considerazione le seguenti procedure consigliate per ottimizzare la scalabilità di un
report.

● Ridurre le dimensioni e la complessità dei report, se possibile.


● Trasferire la selezione dei record al server di database.
● Utilizzare sottoreport su richiesta.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 63
1.3.4.1 Opzioni di aggiornamento

1.3.4.1.1 Soluzioni di reporting per SAP BusinessObjects


Business Intelligence

La gamma di prodotti SAP BusinessObjects Business Intelligence include diverse soluzioni di reporting. La varietà
dei prodotti e le diverse licenze di distribuzione ad essi correlate mirano a soddisfare la gamma completa di
esigenze di scalabilità associate a una soluzione per la creazione di report.

Questa pagina contiene un breve riepilogo di tutte le soluzioni di reporting. Per ulteriori informazioni, visitare il sito
Web SAP BusinessObjects.

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio fornisce agli sviluppatori un modo
rapido e produttivo di creare e integrare nelle applicazioni report di qualità superiore, direttamente nell'ambiente
di sviluppo noto di Visual Studio.

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio presenta molte delle funzionalità di
SAP Crystal Reports. Queste includono, ad esempio, la possibilità di creare report, collegarli a un controllo
CrystalReportViewer e interagire con essi a livello di codice utilizzando l'SDK di SAP Crystal Reports.

Piattaforma SAP BusinessObjects Business Intelligence o SAP Crystal Server

Con SAP Crystal Reports Server e la piattaforma SAP BusinessObjects Business Intelligence viene fornito un
server RAS che garantisce un miglioramento significativo delle prestazioni e della scalabilità per creare,
modificare e gestire report.

SAP Crystal Reports Server offre tutte le funzionalità necessarie per creare, gestire e distribuire in modo sicuro i
report sul Web in un pacchetto economico. L'applicazione consente di effettuare tutte le operazioni normalmente
richieste per la creazione di report, compresi l'accesso ai dati e la progettazione di report, la gestione e la
distribuzione di report, e l'integrazione di report con portali e applicazioni, che consentono ai report Crystal nuovi
ed esistenti di essere distribuiti più facilmente sul Web.

La piattaforma SAP BusinessObjects Business Intelligence è una piattaforma di BI (Business Intelligence) multi-
server progettata per soddisfare i requisiti legati a BI e al reporting su vasta scala. Il suo ambiente multi-server
offre tutte le funzioni di fault tolerance, bilanciamento del carico, scalabilità e affidabilità necessarie per gestire le
applicazioni aziendali più complesse e critiche. La piattaforma SAP BusinessObjects Business Intelligence è
inoltre consigliata per le avanzate funzionalità di reporting, quali il controllo, SAP Crystal Reports Explorer,
Encyclopedia e Process Tracker.

SAP Crystal Reports Server è la soluzione ideale per creare, gestire e distribuire i report in modo sicuro nelle
piccole e medie aziende. Per applicazioni aziendali critiche, se sono richiesti massima scalabilità e ulteriori
strumenti di business intelligence, utilizzare la piattaforma SAP BusinessObjects Business Intelligence.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
64 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.4.1.2 Confronto tra le soluzioni di reporting per SAP
BusinessObjects Business Intelligence

Questa tabella fornisce informazioni che consentono di individuare la soluzione di reporting per SAP
BusinessObjects Business Intelligence più appropriata per il livello di scalabilità desiderato.

Funzione SAP Crystal Reports, ver­ SAP Crystal Reports Piattaforma SAP Busi­
sione per sviluppatori per nessObjects Business In­
Microsoft Visual Studio telligence o SAP Crystal
Reports Server

Supporto per ASP.NET X X X

Visualizzazione interattiva X X X
dei report

Single Sign-On X X X

Supporto per applicazioni X X X


Windows

Report Designer ottimiz­ X X


zato

Supporto per dispositivi X X


mobili

Driver dei database nativi X X

Origini dati OLAP X X

Controllo delle dipendenze X X


dei report

Modelli X X

Parametri di sovrapposi­ X X
zione dinamici

Distribuzione su più piat­ X


taforme

Sistema di gestione per X


l'erogazione delle informa­
zioni

Protezione integrata X

Bilanciamento del carico X

Repository degli oggetti X


report

Pianificazione dei report X

Creazione e modifica di re­ X X


port a livello di program­
mazione

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 65
Funzione SAP Crystal Reports, ver­ SAP Crystal Reports Piattaforma SAP Busi­
sione per sviluppatori per nessObjects Business In­
Microsoft Visual Studio telligence o SAP Crystal
Reports Server

Modello a oggetti Crystal­ X X X


ReportViewer

Modello a oggetti Report­ X X X


Document

Modello a oggetti Report­ X X


ClientDocument

Server RAS X

Modello a oggetti InfoOb­ X


ject

Scalabilità Bassa Bassa Da media a alta

Supporto per più versioni X X


di .Net Framework

Informazioni correlate

Confronto tra le architetture di tutte le soluzioni di reporting per SAP Business Intelligence [pagina 40]

1.3.4.1.3 Report Application Server (RAS)

È possibile usare un server RAS per creare e modificare report Crystal e per elaborare le richieste relative a
pagine.

Una delle tecnologie SAP BusinessObjects comprende Report Application Server (RAS). RAS è sia un SDK client
che un server. È possibile usare un server RAS per creare e modificare report Crystal e per elaborare le richieste
relative a pagine. Quando il server recupera il report richiesto, RAS lo passa al visualizzatore report.

Il server RAS è disponibile solo acquistando SAP Crystal Reports Server o la piattaforma SAP BusinessObjects
Business Intelligence.

Server RAS gestito

Un server RAS gestito da altri componenti di Enterprise Framework viene chiamato server RAS gestito. SAP
Crystal Reports Server e SAP BusinessObjects Enterprise offrono una struttura di server che semplifica la
gestione e la distribuzione dei report basata sul Web a livello aziendale. Il server RAS gestito è uno dei molti server
della struttura. Questo server è in grado di elaborare i report presenti sullo stesso computer del server Web e di
RAS SDK (report non gestiti) oppure i report presenti su server di repository di report diversi (report gestiti).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
66 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Il server RAS gestito può utilizzare i modelli a oggetti ReportClientDocument e InfoObject.

Utilizzo dell'API RAS senza un server RAS

In SAP Crystal Reports, è possibile accedere alla creazione report avanzata e alla funzionalità di modifica del
modello a oggetti ReportClientDocument da CR .NET SDK. Il pacchetto di distribuzione in questo scenario
richiede solo gli assembly .NET, il che significa che si sta il processo dell'API RAS.

Tuttavia, se si utilizza il processo dell'API RAS, si perdono i benefici di prestazione e stabilità di un sistema out-
process, orientato al server. Per usufruire di tali benefici, utilizzare l'API RAS in combinazione con un server RAS
in un ambiente SAP Crystal Reports Server o della piattaforma SAP BusinessObjects Business Intelligence.

Per ulteriori informazioni e codice di esempio, vedere la proprietà ReportClientDocument della classe
CrystalDecisions.CrystalReports.Engine.ReportDocument nel riferimento all'API.

Informazioni correlate

Confronto tra le architetture di tutte le soluzioni di reporting per SAP Business Intelligence [pagina 40]
modello a oggetti ReportClientDocument (RAS) [pagina 38]

1.3.4.2 Ottimizzazione del codice

1.3.4.2.1 Esclusione di DataSet dalle query semplici

La creazione di report mediante DataSet offre notevoli vantaggi. Se tuttavia la scalabilità è un aspetto importante,
non è indispensabile utilizzare i DataSet come meccanismo di accesso ai dati. L'uso dei DataSet non apporta
alcun vantaggio significativo se l'applicazione crea un DataSet destinato esclusivamente all'utilizzo da parte di un
report, in particolare se la query in questione è semplice come nel caso di SELECT field 1, field 2 FROM
table.

In tali casi, impostando SAP Crystal Reports per la connessione diretta al database e la successiva esecuzione
della query (comportamento predefinito per qualsiasi report creato in SAP Crystal Reports Designer), il processo
sarà più rapido e richiederà una quantità inferiore di memoria.

I DataSet sono utili nei seguenti casi:

● È necessario combinare dati di diverse origini dati.


● I dati all'interno del DataSet devono essere modificati dopo l'esecuzione della query.

Informazioni correlate

Esercitazione: Connessione ai DataSet ADO.NET [pagina 540]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 67
1.3.4.2.2 Memorizzazione nella cache di DataSet

Se memorizzati nella cache, i DataSet consentono di garantire ulteriormente la scalabilità.

Quando un report viene caricato in fase di runtime, il modulo report di SAP Crystal Reports tenta di creare il pool
di connessioni al database. Ad esempio, se tre utenti richiedono la stessa pagina ASPX mediante lo stesso report,
le tre query vengono inserite in un unico pool di connessioni al database. Tuttavia, la query di per sé non è gestita
nel pool. Anche se identica in tutti i tre casi, la query deve essere eseguita ogni volta che un report viene richiesto
dal modulo report. Nel caso di una query lenta o di un DataSet con volumi elevati, questa query specifica per
singoli utenti può causare problemi in un'applicazione.

Se questa query per singoli utenti viene ripetuta più volte per inserire dati in maniera ridondante in un DataSet, le
conseguenze possono essere ancora peggiori a causa del sovraccarico di memoria.

Per ridurre il numero di query al database, posizionare il DataSet in un oggetto Cache ASP.NET dopo la prima
query, in modo che tutti i processi report condividano il singolo DataSet nell'oggetto Cache.

Informazioni correlate

Connessione ai DataSet ADO.NET [pagina 155]


Creazione di report da set di dati ADO.NET [pagina 658]
Descrive le modalità di connessione del report a un set di dati ADO.NET.

1.3.4.2.3 Utilizzo del metodo Close() per liberare il report

Utilizzare uno dei metodi Close() disponibili per rilasciare la memoria utilizzata dal report.

Per ottimizzare la scalabilità in un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio è possibile anche utilizzare uno dei metodi Close() disponibili che consentono di liberare la memoria
utilizzata dal report.

Sono disponibili due metodi Close():

● ReportDocument.Close(), utilizzato con SAP Crystal Reports.


● ReportClientDocument.Close() utilizzato con RAS SDK.

Metodo ReportDocument.Close()

È possibile utilizzare il metodo ReportDocument.Close() per rendere disponibile la memoria utilizzata dal report
Crystal sul server Web.

L'accesso al metodo ReportDocument.Close() dipende dal tipo di report, ossia se si tratta di report incorporati o
non incorporati:

● Nel caso di report incorporati, viene generata una classe wrapper per rappresentare il report in codice. La
classe wrapper del report eredita da ReportDocument e l'accesso al metodo Close() avviene per ereditarietà.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
68 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● I report non incorporati vengono caricati in un'istanza ReportDocument dalla directory di file e l'accesso al
metodo Close() avviene direttamente dalla classe ReportDocument.

Il report Crystal e l'istanza ReportDocument implicano entrambi l'utilizzo della memoria. Il report continua a
utilizzare memoria anche quando ReportDocument viene eliminata.

Ad esempio, l'istanza ReportDocument risulta esterna all'ambito al termine del caricamento della pagina Web.
L'operazione di garbage collection per .NET rimuove l'istanza ReportDocument, liberando spazio nella memoria
del server Web.

Il report rimane tuttavia nella memoria del server Web e non può essere rimosso poiché l'istanza ReportDocument
necessaria per l'accesso al report non esiste più. Se queste circostanze si ripetono in condizioni di elevata
scalabilità, si verifica un uso eccessivo della memoria del server Web da parte di report a cui non è più possibile
accedere.

Per risolvere questo problema, chiamare il metodo ReportDocument.Close(), che consente di chiudere il report
sul server Web e di liberare la memoria per altri report.

Chiamata al metodo ReportDocument.Close()

Non chiamare il metodo ReportDocument.Close() nella pagina prima della visualizzazione del report: anche se il
report è stato chiuso, ReportDocument lo riapre non appena si fa nuovamente riferimento ad esso. Chiamare il
metodo Close() solo al termine del processo di visualizzazione.

Il momento ideale per chiamare il metodo Close() è durante l'evento Page_Unload.

Metodo ReportClientDocument.Close()

Quando si utilizza un server RAS gestito o RAS non gestito, i report vengono memorizzati nel server RAS, ma
vengono rappresentati nel server Web mediante un'istanza ReportClientDocument. Se l'istanza
ReportClientDocument esce dall'ambito senza chiamare il metodo ReportClientDocument.Close(), il server RAS
mantiene aperto il report in memoria anche se non è più possibile accedervi. Se queste circostanze si ripetono in
condizioni di elevata scalabilità, si verifica un uso eccessivo della memoria del server RAS da parte di report a cui
non è più possibile accedere sul server Web.

Per risolvere questo problema, chiamare il metodo ReportClientDocument.Close(), che consente di chiudere il
report sul server RAS e di liberare la memoria per altri report.

Chiamata al metodo ReportClientDocument.Close()

Non chiamare il metodo Close() nella pagina prima della visualizzazione del report: quest'ultimo infatti deve
rimanere aperto sul server fino al termine del processo di visualizzazione.

In un'istanza ReportClientDocument, il metodo Close() chiude immediatamente il report e non consente più di
aprirlo. Se il metodo Close() viene pertanto chiamato prima della visualizzazione del report, quest'ultimo
diventerà inaccessibile e sarà generata un'eccezione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 69
Il momento ideale per chiamare il metodo Close() è durante l'evento Page_Unload.

Informazioni correlate

Confronto tra i report incorporati e quelli non incorporati [pagina 162]

1.3.4.2.4 Impostazione di una Web farm o di un Web garden

Una Web farm consente di estendere un sito Web su più server. Un Web garden consente di estendere un sito
Web su più CPU all'interno di un unico server. Distribuire il carico di lavoro dovuto all'elaborazione dei report tra
più CPU o più server può migliorare le prestazioni dell'applicazione di reporting basata sul Web.

Informazioni correlate

Utilizzo di SAP Crystal Reports in una Web farm o un Web garden [pagina 73]

1.3.4.3 Ottimizzazione dei report

1.3.4.3.1 Utilizzo di report di dimensioni ridotte

Per ottimizzare la scalabilità in un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio, è possibile ridurre le dimensioni dei report.

Se possibile, non includere nel report più di 15 pagine. Nelle applicazioni Web gli utenti spesso desiderano
visualizzare solo le parti contenenti dati chiave anziché intere pagine di dati.

Di conseguenza i report utilizzati nelle applicazioni desktop potrebbero non essere più appropriati alle applicazioni
basate sul Web.

Per ridurre le dimensioni dei report, utilizzare la formula di selezione dei record allo scopo di limitare il numero di
record restituiti al report. Questa formula può essere implementata in tre modi:

● È possibile renderla hardcoded nel report mediante SAP Crystal Reports Designer incorporato.
● È possibile filtrare ulteriormente i record recuperati nel report a livello di codice.

○ Se si utilizza il modello a oggetti CrystalReportViewer, utilizzare la proprietà SelectionFormula o


ViewTimeSelectionFormula di CrystalReportViewer.
○ Se si utilizza il modello a oggetti ReportDocument, utilizzare la proprietà RecordSelectionFormula di
ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
70 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Esercitazione: Filtro di dati mediante formule di selezione [pagina 284]


In questa esercitazione viene descritto come utilizzare le formule di selezione per filtrare i record da visualizzare
in un report Crystal.

1.3.4.3.2 Utilizzo di elementi grafici di dimensioni ridotte

Per ottimizzare la scalabilità in un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio, è possibile utilizzare immagini di dimensioni ridotte nei report.

Se la scalabilità è un aspetto importante, non è necessario eliminare gli elementi grafici dai report. È tuttavia
opportuno adoperarli con moderazione a causa dell'elevato utilizzo di risorse di sistema.

Quando un report contenente un elemento grafico (un grafico o un'immagine) viene visualizzato in un controllo
CrystalReportViewer, è necessario che il modulo report crei un file JPG temporaneo nella cartella
dynamic_images e che il browser invii una richiesta specifica al server Web per recuperarlo.

Il controllo CrystalReportViewer esegue ricerche periodiche nella cartella dynamic_images per individuare ed
eliminare immagini obsolete. L'accesso al disco può infatti ridurre le prestazioni del report. Limitando l'utilizzo di
grafici e immagini è possibile ridurre al minimo l'accesso al disco.

Informazioni correlate

Configurazione del file Web.Config [pagina 19]


Directory dei visualizzatori [pagina 13]

1.3.4.3.3 Riprogettazione dei sottoreport per ridurre le


richieste

La modifica del modo in cui i sottoreport vengono utilizzati nell'applicazione può avere un impatto notevole sulle
prestazioni dell'applicazione.

Per ottimizzare la scalabilità in un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio, è possibile riprogettare le chiamate ai sottoreport per ridurre le richieste.

Informazioni sull'utilizzo dei sottoreport

I sottoreport vengono spesso utilizzati per creare report complessi, ma comportano un notevole sovraccarico. Ciò
non implica la necessità di evitarli, bensì di utilizzarli con parsimonia.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 71
Inoltre, quando i sottoreport sono posizionati in sezioni ripetute, ad esempio le intestazioni di gruppo o la sezione
dei dettagli, ogni istanza di tale sottoreport richiede un processo report specifico. Di conseguenza, un report
costituito da 100 record e contenente un sottoreport nella sezione dei dettagli esegue in realtà 101 processi
report.

Riprogettazione dei sottoreport come controllo DataGrid .NET collegato ai


report

I sottoreport vengono spesso utilizzati in un modello di riepilogo/dettagli:

● Il report principale contiene righe di riepilogo.


● Ogni riga è collegata a un sottoreport in cui è contenuto un report dettagliato.

Nel caso di dati di riepilogo che non devono essere stampati, è opportuno presentarli in un elenco di righe anziché
in un report. In altre parole, anziché utilizzare un report come riepilogo che rimandi a più sottoreport per i dettagli,
utilizzare un controllo DataGrid .NET come riepilogo che rimanda a più report normali per i dettagli. L'utilizzo di un
controllo DataGrid .NET come riepilogo consente di ottenere una soluzione più semplice e scalabile.

Per creare questo tipo di report, collegare un DataSet fornito come risultato a un controllo DataGrid, con un
collegamento al report per ogni ID di riga. Verrà quindi utilizzato un solo report (con un parametro che accetta un
ID univoco passato dall'URL dell'ID di riga del controllo DataGrid) per ogni riga.

In questo scenario, l'elaborazione del report non viene eseguita quando viene visualizzato il controllo DataGrid, ma
solo quando viene selezionato uno dei collegamenti all'interno del controllo DataGrid.

1.3.4.3.4 Esclusione di campi che bloccano l'elaborazione su


richiesta

Per ottimizzare la scalabilità in un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio è possibile anche evitare di utilizzare campi che bloccano l'elaborazione su richiesta.

SAP Crystal Reports elabora report su richiesta. Ad esempio, se deve essere visualizzata la prima pagina di un
report, viene elaborata solo tale pagina anziché l'intero report. Tuttavia, l'inserimento nella prima pagina di un
report di campi o formule che dipendono dal completamento dell'elaborazione del report impedisce l'elaborazione
su richiesta.

Ad esempio, se il campo speciale "Pagina N di M" è posizionato nella prima pagina, per poterne ottenere il valore
dovrà essere elaborato l'intero report, al fine di determinare il conteggio delle pagine. Di conseguenza, per poter
visualizzare la prima pagina sarà necessario attendere il completamento dell'elaborazione dell'intero report. La
stessa situazione si verifica quando si utilizza una percentuale di calcoli di riepilogo.

È quindi opportuno evitare questi tipi di campi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
72 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.4.3.5 Selezione dell'opzione Nessuna stampante nella
finestra Imposta stampante

Per ottimizzare la scalabilità in un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio è possibile anche selezionare l'opzione Nessuna stampante nella finestra Imposta stampante.

Opzione Nessuna stampante

In genere, quando si crea un report Crystal viene impostata una stampante predefinita sul computer di sviluppo.
La stampante predefinita determina il layout di immagini, tipi di carattere e campi del database sul report.

L'impostazione di una stampante predefinita offre il vantaggio di garantire la coerenza nella visualizzazione dei
report: i report vengono visualizzati nel layout della stampante predefinita. L'uso di una stampante predefinita ha
tuttavia lo svantaggio di presentare problemi di scalabilità.

Alcuni driver di stampa causano ad esempio perdite di memoria o di gestione dei file. Se un report viene
configurato per un driver di stampa caratterizzato da uno di questi problemi, le prestazioni potrebbero risentirne.

Una procedura ottimale ai fini della scalabilità consiste pertanto nel modificare il report in modo da non utilizzare
alcun driver di stampa.

Nota
Se il report viene impostato in modo da non utilizzare alcun driver di stampa, è possibile che il layout ottenuto
per il report non corrisponda perfettamente al risultato previsto mediante l'uso della stampante desiderata.
Dopo aver effettuato tale impostazione, è pertanto consigliabile verificarne l'aspetto che si ottiene dalla
stampante desiderata. Se necessario, modificare il layout del report.

Informazioni correlate

Rimozione del driver di stampante predefinito dal report [pagina 120]

1.3.5 Utilizzo di SAP Crystal Reports in una Web farm o un


Web garden

Questa sezione fornisce una panoramica sulle modalità di utilizzo del sito Web SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio in una Web farm o in un Web garden.

Una Web farm consente di estendere un sito Web su più server. Un Web garden consente di estendere un sito
Web su più CPU in un unico server. Distribuire il carico di lavoro dovuto all'elaborazione dei report tra più CPU o
più server può migliorare le prestazioni dell'applicazione di creazione di report basata sul Web.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 73
1.3.5.1 Architettura di una Web farm o un Web garden

Architettura di una Web farm

Una Web farm è costituita da più server esposti ai client del browser come singolo server virtuale, con una scheda
virtuale di accesso ai supporti e un indirizzo TCP/IP.

Dietro questo livello virtuale, ciascun server della Web farm riceve tutti i pacchetti di rete, ma ne elabora un solo
sottoinsieme. La capacità di condividere uniformemente il carico di lavoro conferisce alle Web farm una maggiore
potenza di elaborazione.

La distribuzione dei pacchetti viene gestita dalla funzione di bilanciamento del carico di rete. Questa funzionalità:

● Ripartisce uniformemente le richieste dei client tra i diversi server.


● Definisce il server per l'esecuzione di ciascuna richiesta specifica.
● Verifica l'utilizzo ottimale delle risorse del server e i tempi di attesa del client.
● Fornisce un'eccellente alternativa all'affinità del client.

Nota
in uno scenario di affinità del client, i client di collegamento tornano ogni volta allo stesso server.

L'affinità del client è in genere disattivata poiché può rallentare le richieste su un server specifico.

Ciascun server di una Web farm dispone di un driver del dispositivo di bilanciamento del carico di rete che
comunica con gli altri server; ciascun server utilizza in genere due schede di rete. La seconda scheda consente
l'esecuzione delle comunicazioni interne per il bilanciamento del carico di rete su una rete interna separata.

Il dispositivo di bilanciamento del carico di rete viene fornito con la famiglia di sistemi operativi di Windows Server.

Architettura di un Web garden

Il Web garden è simile alla Web farm, ma anziché utilizzare più server collegati tra loro utilizza un unico server con
più CPU.

Questo singolo server SMP (con supporto multiprocessore) utilizza la tecnologia ASP.NET per eseguire un
processo di lavoro ASP.NET separato su ciascuna CPU. Il server gestisce un numero maggiore di richieste client a
fronte delle diverse CPU disponibili.

1.3.5.2 Processo di lavoro ASP.NET

La tecnologia ASP.NET viene eseguita all'interno di un processo noto come processo di lavoro ASP.NET. Tutte le
funzionalità ASP.NET vengono eseguite nell'ambito di tale processo.

Un server Web standard contiene solo un singolo processo di lavoro ASP.NET, diversamente dalle Web farm e dai
Web garden:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
74 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Una Web farm contiene più processi di lavoro ASP.NET.
Ciascun server del gruppo gestisce un processo di lavoro ASP.NET separato.
● Un Web garden contiene più processi di lavoro ASP.NET.
Ciascuna CPU del server SMP gestisce un processo di lavoro ASP.NET separato.

Scelta di un processo di lavoro ASP.NET

Quando un client Web si connette a una Web farm o un Web garden, viene selezionato uno dei diversi processi di
lavoro ASP.NET disponibili per eseguire la richiesta.

● Il processo di lavoro ASP.NET selezionato in una Web farm dipende dal bilanciamento del carico di rete.
● Il processo di lavoro ASP.NET selezionato in un Web garden dipende dalla tecnologia ASP.NET.

Gestione dello stato con più processi di lavoro ASP.NET

Quando si passa da uno scenario con un unico processo di lavoro ASP.NET (server Web normale) a uno scenario
con più processi di lavoro ASP.NET (Web farm o Web garden), la gestione dello stato diviene più complessa.

Poiché le pagine Web sono senza stato, il server Web deve garantire la persistenza dello stato utilizzando altri
strumenti. Gli strumenti tipici per la gestione dello stato sul server Web includono Stato sessione e Cache di
ASP.NET.

Session e Cache sono entrambi contenuti nello spazio di memoria di un singolo processo di lavoro ASP.NET. In
una Web farm o in un Web garden vengono tuttavia utilizzati contemporaneamente più processi di lavoro
ASP.NET. L'oggetto Session o Cache all'interno di un singolo processo di lavoro ASP.NET non consente di gestire
lo stato su più processi.

Di conseguenza è necessario un livello aggiuntivo per la gestione di stato, ossia un Session State Server fuori
processo che memorizzi e recuperi le informazioni di stato per ciascun processo di lavoro ASP.NET in una Web
farm o in un Web garden.

Informazioni correlate

Stato sessione fuori processo [pagina 75]


Approccio di persistenza da utilizzare con SAP Crystal Reports [pagina 52]

1.3.5.3 Stato sessione fuori processo

Nelle Web farm e nei Web garden è necessario condividere Stato sessione su più server utilizzando alcuni form di
Stato sessione fuori processo.

In genere si utilizzano due soluzioni:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 75
● Distribuzione del server Stato sessione fuori processo fornito con ASP.NET.
● Configurazione manuale di ciascun server Web per memorizzare i dati di Stato sessione su un server SQL.

Requisiti di serializzazione

Tutti gli oggetti da memorizzare devono essere serializzabili in entrambe le soluzioni. Un oggetto può essere reso
persistente su un server dello stato fuori processo solo se è serializzabile.

Nota
non tutti i modelli a oggetti dell'SDK SAP Crystal Reports possono essere serializzati. SAP fornisce tuttavia una
soluzione di aggiornamento per la gestione dello stato dei report con un server fuori processo.

Informazioni correlate

Modelli a oggetti serializzabili in SAP Crystal Reports [pagina 76]

1.3.5.4 Modelli a oggetti serializzabili in SAP Crystal Reports

Per SAP Crystal Reports sono disponibili quattro modelli a oggetti, due forniti con SAP Crystal Reports e due
disponibili mediante aggiornamento.

In questa sezione vengono descritti i modelli a oggetti che possono essere serializzati e utilizzati con un server
Stato sessione fuori processo.

Nota
Per un'introduzione a Stato sessione fuori processo, vedere Stato sessione fuori processo [pagina 75].

Serializzazione e modello a oggetti CrystalReportViewer

CrystalReportViewer è un modello a oggetti limitato incluso nell'API del controllo CrystalReportViewer. A


causa dell'ambito di applicazione limitato che caratterizza tale modello a oggetti, ne viene in genere sconsigliato
l'utilizzo a favore del più potente modello a oggetti ReportDocument.

Il modello a oggetti CrystalReportViewer può tuttavia essere utilizzato su una Web farm o su un Web garden.
Ciò è dovuto al fatto che CrystalReportViewer è contenuto in un controllo Web; inoltre, la persistenza del
controllo Web viene gestita sul lato client mediante ViewState. La persistenza di ViewState imposta lo stato dei
controlli server Web ASP.NET in una stringa crittografata, quindi inserisce tale stringa come campo nascosto
all'interno della pagina ASPX durante i ricaricamenti di pagina. Le informazioni sullo stato possono essere fornite
a qualsiasi processo di lavoro ASP.NET.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
76 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Questo tipo di persistenza client funziona solo all'interno dei ricaricamenti di pagina. ViewState non può
rendere persistenti le informazioni tra le pagine.

Serializzazione e modello a oggetti ReportDocument

Il modello a oggetti ReportDocument è più potente di CrystalReportViewer. Per questo motivo, ne viene in
genere consigliato l'utilizzo in SAP Crystal Reports.

In SAP Crystal Reports 9 e versioni precedenti non è tuttavia possibile serializzare la classe ReportDocument, la
quale non può pertanto essere utilizzata con un server Stato sessione fuori processo nello scenario di una Web
farm o di un Web garden.

Questo limite è stato affrontato in SAP Crystal Reports 10 e versioni successive creando un ponte tra il modello a
oggetti ReportDocument e un modello a oggetti serializzabile, ReportClientDocument.

È possibile accedere al modello a oggetti ReportClientDocument in molti modi diversi.

Per utilizzare il modello a oggetti ReportDocument in una Web farm o in un Web garden è necessario utilizzare il
server Stato sessione fuori processo ASP.NET per memorizzare lo stato dell'istanza ReportDocument
serializzata e un server RAS non gestito per memorizzare il

Nota
È possibile serializzare il modello a oggetti ReportDocument solo se è stato installato il server RAS e se le
proprietà ReportDocument.ReportAppServer e ReportDocument.EnterpriseSession sono state
impostate per richiamare il server.

Serializzazione e modello a oggetti ReportClientDocument

Il modello a oggetti ReportClientDocument può essere serializzato. È possibile accedere al modello a oggetti
ReportClientDocument in molti modi diversi.

modello a oggetti InfoObject

Il modello a oggetti InfoObject fa parte della soluzione di aggiornamento Crystal, ossia SAP Crystal Reports
Server o la piattaforma SAP BusinessObjects Business Intelligence. SAP Crystal Reports Server e la piattaforma
SAP BusinessObjects Business Intelligence sono soluzioni Enterprise multiserver che rappresentano un tipico
approccio alternativo a una Web farm o un Web garden esistente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 77
Informazioni correlate

Utilizzo di SAP Crystal Reports in una Web farm o un Web garden [pagina 73]
Scelta del modello a oggetti appropriato al progetto [pagina 31]
ViewState e persistenza del modello a oggetti CrystalReportViewer [pagina 54]

1.3.5.5 Configurazione di SAP Crystal Reports per una Web


farm o un Web garden

Server aggiuntivi

Oltre ai server della Web farm o del Web garden è necessario utilizzare due server aggiuntivi:

● Il server Stato sessione fuori processo ASP.NET per memorizzare lo stato dell'istanza ReportDocument
serializzata.
● Un server RAS non gestito per memorizzare il file rpt del report Crystal.

Nota
Per ulteriori informazioni, vedere Soluzioni di reporting per SAP BusinessObjects Business Intelligence
[pagina 64].

Uso specifico di ReportDocument

La Web farm o il Web garden utilizza il server Stato sessione fuori processo ASP.NET per memorizzare l'oggetto
ReportDocument serializzato. In questo scenario l'oggetto ReportDocument viene utilizzato in modo diverso
rispetto all'installazione base di SAP Crystal Reports.

Il metodo ReportDocument.Load() o la proprietà ReportDocument.FileName collega l'istanza di ReportDocument


a un report out-process memorizzato nel server RAS non gestito. Per un esempio di utilizzo di questi approcci,
vedere le informazioni di configurazione riportate di seguito.

Nota
Se si memorizza il file rpt del report sul server RAS non gestito out-process, ciascun processo di lavoro
ASP.NET nella Web farm o nel Web garden può accedere allo stesso file rpt del report da una postazione
centrale.

Configurazione di ReportDocument per il server RAS non gestito

È possibile configurare la relazione tra l'istanza di ReportDocument e il server RAS non gestito nei seguenti modi:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
78 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Caricare il report Crystal locale incorporato nell'istanza di ReportDocument nel server RAS non gestito in fase
di esecuzione. Il file rpt del report viene temporaneamente memorizzato nel server RAS non gestito out-
process.
● Associare un report esterno memorizzato in modo permanente su un server RAS non gestito out-process
all'istanza di ReportDocument. A tale scopo, assegnare il percorso di directory del file di report sul server RAS
non gestito alla proprietà FileName dell'istanza di ReportDocument.

Istanza ReportDocument sul server Stato sessione, file rpt sul server RAS non
gestito

L'istanza di ReportDocument, che può essere serializzata se utilizzata con la soluzione di aggiornamento Crystal
RAS non gestita, viene memorizzata sul server Stato sessione out-process ASP.NET.

Poiché l'istanza di ReportDocument rimane attiva sul server Stato sessione, il file rpt del report Crystal associato
con tale istanza viene tenuto aperto sul server RAS non gestito.

Quando un altro processo di lavoro ASP.NET della Web farm o del Web garden recupera l'istanza di
ReportDocument dal server Stato sessione out-process, tale istanza accede al file rpt associato sul server RAS
non gestito.

Scrittura di immagini sulla condivisione di rete

Quando si utilizza una Web farm è necessario configurare un dettaglio aggiuntivo.

Le immagini scritte durante il processo di creazione dei report (ad esempio i grafici dinamici) devono essere
posizionate su una condivisione di rete comune ai fini dell'accesso da parte di un processo di lavoro ASP.NET.
Ogni computer deve essere configurato in modo da scrivere le immagini sulla stessa condivisione di rete e
garantire all'account di lavoro ASP.NET l'autorizzazione di scrittura su tale condivisione.

Per configurare un computer in modo che sia in grado di accedere a questa directory, aggiungere le seguenti
informazioni al registro.

[HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\Report Application Server


\Viewer]
"CrystalImageDir"="\\fileserver\images"

Istruzioni dettagliate di configurazione

Per istruzioni dettagliate sulle procedure e sui problemi di configurazione riguardanti l'esecuzione di SAP Crystal
Reports su una Web farm o un Web garden, visitare il sito Web del supporto tecnico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 79
1.3.6 Utilizzo di Crystal Reports come servizio Web

In questa sezione viene illustrato come utilizzare report Crystal che sono stati pubblicati come servizi Web report.

I servizi Web consentono ad applicazioni differenti di condividere dati e funzioni. Grazie a tali servizi, è possibile ad
esempio collegare un sistema di contabilità a un sistema per la gestione degli ordini dei clienti. Le società possono
inoltre utilizzare questo tipo di servizi per condividere dati e funzioni delle applicazioni con altre società.

I servizi Web sono indipendenti da qualsiasi particolare tecnologia di componenti o convenzione di chiamata degli
oggetti per le seguenti ragioni:

● Utilizzano il protocollo HTTP come protocollo Web.


● Sono basati su XML.
● Supportano il protocollo SSL (Secure Socket Layer).

Possono accedere ai servizi Web i programmi scritti in qualsiasi linguaggio di programmazione per qualsiasi
modello di componenti e sistema operativo.

SAP Crystal Reports permette di pubblicare e utilizzare facilmente i report come servizi Web report. Le
applicazioni Web e Windows possono connettersi a un servizio Web report e visualizzare il report Crystal esposto
dal suddetto servizio.

1.3.6.1 Pubblicazione e utilizzo di un report come servizio


Web

In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio è possibile pubblicare i report
Crystal come servizi Web.

Pubblicazione di un report come servizio Web report

Quando in SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio si seleziona l'opzione per la
pubblicazione di un report Crystal come servizio Web report, tale servizio viene compilato in un file DLL che
genera un file XML con l'estensione file dei servizi Web .NET, "asmx". Il file ASMX descrive le funzioni pubbliche, i
parametri di input, i tipi di dati e i tipi di dati restituiti esposti dal servizio Web report. La DLL e il file ASMX vengono
entrambi pubblicati sul server Web sotto forma di servizio Web report. A questo punto, un client in un browser
Web può richiamare il servizio Web report mediante il relativo URL. I dati verranno passati verso e dal servizio Web
tramite HTTP in formato XML.

Utilizzo del report come file del servizio Web report sul client

Per accedere da un'applicazione client al servizio Web report pubblicato, è necessario passare la stringa dell'URL
alla proprietà ReportSource del controllo CrystalReportViewer, da un sito Web o da un progetto Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
80 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Utilizzo di Crystal Services [pagina 82]


Utilizzo di Crystal Reports come servizio Web [pagina 80]

1.3.6.1.1 Per pubblicare un servizio Web report

Prerequisiti

Prima di iniziare, è necessario disporre di un report Crystal preesistente. Il report verrà pubblicato come servizio
Web per poter essere utilizzato dalla proprietà CrystalReportViewer.ReportSource.

Procedura

1. Avviare Visual Studio.


2. Dal menu File, scegliere Nuovo, quindi fare clic su Sito Web.
3. Nell'elenco Modelli Visual Studio installati fare clic su Servizio Web ASP.NET.
4. Nel campo Percorso immettere un percorso della directory di file e un nome per la directory dei servizi Web.

C:\WebServices\MyCrystalReportsWebServices

5. Fare clic su OK.


6. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto in grassetto e selezionare
Aggiungi elemento esistente....
7. Nella finestra di dialogo Aggiungi elemento esistente, impostare Tutti i file (*.*) in Tipo file.
8. Aggiungere un report Crystal esistente al progetto.
9. Fare clic con il pulsante destro del mouse sul report e selezionare Pubblica come servizio Web.

Viene creato un nuovo servizio.


10. Fare clic con il pulsante destro del mouse sul servizio Web e selezionare Imposta come pagina iniziale.

Quando si esegue l'applicazione, il nuovo servizio Web viene visualizzato nel browser Web. È possibile
utilizzare l'URL del servizio Web come origine del report per un controllo CrystalReportViewer.

Nota
In Visual Studio 2005 e versioni successive, IIS non viene utilizzato per impostazione predefinita per
visualizzare in anteprima siti Web e servizi Web. Per impostazione predefinita, viene utilizzato il server Web
di Visual Web Developer. Se si utilizza tale server Web, l'URL contiene solo un numero di porta casuale,
temporaneo, valido unicamente in fase di compilazione. Per poter accedere a questo URL del servizio Web
da un'applicazione client, è necessario in primo luogo configurare la directory di file relativa al progetto del
servizio Web come directory virtuale in IIS. Quest'ultima fornirà un URL coerente che potrà essere
chiamato dall'applicazione client.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 81
1.3.6.1.2 Per utilizzare il servizio Web report da un progetto
client

Prerequisiti

Prima di iniziare, è necessario accedere a un report che è già stato pubblicato come servizio Web.

Procedura

1. Aggiungere il controllo CrystalReportViewer al sito Web o all'applicazione Windows.


2. Dal menu Visualizza, scegliere Codice.
3. Assegnare la stringa URL del servizio Web report alla proprietà ReportSource della classe
CrystalReportViewer.

myCrystalReportViewer.ReportSource =
"http://localhost/MyCrystalReportsWebService/Hierarchical_GroupingService.asmx"

crystalReportViewer.ReportSource =
"http://localhost/MyCrystalReportsWebService/Hierarchical_GroupingService.asmx";

Risultati

Quando si esegue l'applicazione, il controllo CrystalReportViewer visualizza il report pubblicato dal servizio Web.

1.3.6.2 Utilizzo di Crystal Services

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio consente di connettersi ai report a
livello di codice tramite il servizio Web Crystal Services. Crystal Services semplifica la connessione ai report
esposti da diversi server nella rete.

Le origini report sottostanti ai nodi secondari e le classi che tali origini generano quando vengono trascinate nel
Web Form o nel Windows Form cambiano nelle versioni successive di SAP Crystal Reports.

Utilizzo di Crystal Services con SAP Crystal Reports 2005 o versione


successiva

In Visual Studio 2005 l'accesso a Crystal Services avviene a livello di codice. Crystal Reports consente di generare
un elenco di report disponibili su un computer locale o remoto e di accedervi tramite un servizio Web.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
82 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Il codice di connessione deve essere immesso manualmente in SAP Crystal Reports, versione per sviluppatori per
Microsoft Visual Studio.

Crystal Services utilizza il protocollo dei servizi Web report per accedere a una directory virtuale del server,
denominata "directory virtuale visualizzatori".

Utilizzo di Crystal Services con SAP Crystal Reports per Visual Studio .NET
2003

In SAP Crystal Reports per Visual Studio 2003 , l'accesso a Crystal Services veniva eseguito da Esplora server.

Il nodo secondario Crystal Services all'interno di ciascun server si espande per visualizzare altri nodi secondari, i
cui nomi cambiano da una versione all'altra di SAP Crystal Reports. Tali nodi secondari Crystal Services hanno
tuttavia in comune il fatto che ciascuno di essi si espande per visualizzare un elenco di report da una directory di
file sul computer locale o dai server sulla rete.

In alcuni casi, un nodo secondario Crystal Services utilizza il protocollo dei servizi Web report, il quale consente di
accedere a una directory virtuale del server denominata "directory virtuale visualizzatori".

In altri casi, viene stabilita una connessione diretta a un server RAS non gestito, a SAP Crystal Reports Server o
alla piattaforma SAP BusinessObjects Business Intelligence. In questi casi, non viene utilizzato il protocollo dei
servizi Web report.

Può essere necessario adeguare le impostazioni del firewall per poter accedere al CMS della piattaforma SAP
BusinessObjects Business Intelligence. La porta predefinita per il CMS è 6400. Rivolgersi all'amministratore del
sistema per ulteriori informazioni sull'impostazione dell'indirizzo di rete e della porta per il sistema della
piattaforma SAP BusinessObjects Business Intelligence. Per ulteriori informazioni sulla personalizzazione delle
porte, consultare il Manuale dell'amministratore della piattaforma Business Intelligence SAP BusinessObjects.

Nota
I nodi disponibili dipendono dalla configurazione e dal contratto di licenza.

Un report esposto mediante il nodo Crystal Services può essere trascinato nella barra dei componenti del Web
Form o del Windows Form in Visual Studio .NET 2003.

Informazioni correlate

Directory dei visualizzatori [pagina 13]

1.3.6.3 Configurazione di File di server in Crystal Services

Un gruppo di Crystal Services fornito con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio prende il nome di File di server. Si tratta di un insieme di servizi Web report esposti mediante una directory
virtuale da un percorso della directory di file nell'unità disco rigido.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 83
Per ogni versione di Visual Studio sono necessari requisiti di implementazione differenti.

1.3.6.3.1 Configurazione di File di server in Visual


Studio .NET 2003

File di server si riferisce a un insieme di servizi Web report esposti dalla directory virtuale visualizzatori in IIS. I File
di server erano forniti in origine come un nodo di Crystal Services all'interno di SAP Crystal Reports in Visual
Studio .NET 2002. Sebbene tale nodo sia stato in seguito rimosso, i File di server nell'SDK continuano a essere
supportati in tutte le versioni successive di SAP Crystal Reports. È tuttavia necessario impostare configurazioni
specifiche in ciascuna versione.

I File di server vengono generati da file di report sottostanti, memorizzati nella cartella dei report di esempio o in
un'altra cartella stabilita dall'utente nel percorso della directory di file del server Web.

L'accesso ai File di server può avvenire secondo due modalità:

● Come un nodo visibile in Crystal Services.


Questo metodo di accesso è disponibile solo in SAP Crystal Reports per Visual Studio 2003.
● Tramite la configurazione a livello di codice della classe ServerFileReport nell'SDK.
L'accesso ai File di server mediante l'SDK è disponibile in tutte le versioni di SAP Crystal Reports .NET.

I File di server sono esposti tramite una directory virtuale in IIS. La connessione ai file di report sottostanti richiede
la configurazione delle autorizzazioni di accesso alla cartella.

Le autorizzazioni di accesso vengono configurate mediante una voce del file web.config.

Configurazione di File di server in Visual Studio .NET 2003

In Visual Studio .NET 2003 la cartella di configurazione relativa a File di server è stata sostituita dall'aggiunta di
una voce di configurazione al file web.config.

È possibile aggiungere al file web.config di ogni progetto una voce di configurazione alla volta. Si consiglia tuttavia
di aggiungere tale voce al file web.config situato all'interno della directory virtuale visualizzatori di SAP Crystal
Reports, per rendere disponibile questa informazione a tutti i progetti Visual Studio .NET. Prima di eseguire
questa operazione, consultare la sezione che segue per ottenere ulteriori informazioni sulla "directory virtuale
visualizzatori".

File di server e directory virtuale visualizzatori

I File di server vengono eseguiti al di fuori di IIS (Internet Information Services) da un servizio Web centralizzato
ubicato in una speciale directory virtuale visualizzatori. Ogni successiva versione di SAP Crystal Reports crea una
directory virtuale visualizzatori aggiuntiva in IIS, in modo da consentire la gestione di più versioni di SAP Crystal
Reports.

Ciò può causare un problema di manutenzione se in un progetto sono stati codificati File di server con una
versione precedente di SAP Crystal Reports e si desidera eseguire l'aggiornamento a una versione successiva.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
84 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
All'interno del codice il nome della "directory virtuale visualizzatori" nella proprietà WebServiceURL di ogni istanza
ServerFileReport deve essere modificato in quello della "directory virtuale visualizzatori" corrente, per consentire
il corretto funzionamento delle istanze di ServerFileReport.

Informazioni correlate

Configurazione di File di server in Visual Studio 2005 e versioni successive [pagina 87]
Utilizzo di Crystal Reports come servizio Web [pagina 80]
Directory dei visualizzatori [pagina 13]

1.3.6.3.1.1 Per modificare la "directory virtuale


visualizzatori" nella proprietà WebServiceURL delle istanze di
ServerFileReport

Procedura

1. Individuare ogni occorrenza all'interno del progetto in cui viene assegnata la proprietà WebServiceURL di
un'istanza ServerFilesReport.
2. Confrontare il nome della directory virtuale visualizzatori attualmente assegnato nel codice con il nome della
stessa directory utilizzato nelle versioni precedenti.
3. Modificare il nome della directory virtuale visualizzatori utilizzato nella versione superiore di SAP Crystal
Reports installata.
4. Eseguire la ricompilazione e verificare che i report vengano caricati in modo corretto.

Passi successivi

Nella procedura che segue, verrà modificato il file web.config nella directory virtuale visualizzatori per consentire
la configurazione corretta dei File di server in tutte le versioni successive a Visual Studio .NET 2002.

1.3.6.3.1.2 Per aggiungere la voce di configurazione di File di


server nel file web.config della directory virtuale visualizzatori
(tutte le versioni successive a Visual Studio .NET 2002)

Procedura

1. Individuare la directory virtuale visualizzatori della versione superiore di SAP Crystal Reports installata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 85
2. Per verificare il corretto funzionamento della directory virtuale visualizzatori, aprire un browser e immettere
l'URL relativo al servizio Web report pubblicato nella suddetta directory.
Opzione Descrizione
Visual Studio 2003 http://localhost/CrystalReportWebFormViewer2/
ServerFileReportService.asmx?wsdl

SAP Crystal Reports 2008 http://localhost/crystalreportviewers12/


ServerFileReportService.asmx?wsdl

3. In un editor di testo aprire il file web.config situato all'interno della directory virtuale visualizzatori.

Nota
in alternativa è possibile scegliere di apportare tali modifiche solo nel file web.config dell'applicazione Web
client, utilizzata per accedere ai report File di server.

4. Nella parte superiore del file web.config, all'interno del tag di configurazione, aggiungere una voce
configSections che dichiari un nuovo tipo sectionGroup (crystalDecisions) e la relativa sezione
(serverFileReportManager).

<configSections>
<sectionGroup name="crystalDecisions">
<section name="serverFileReportManager"
type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089, Custom=null" />
</sectionGroup>
</configSections>

5. Aggiungere il nuovo sectionGroup e la relativa sezione dichiarati nel passaggio precedente dopo il tag di
chiusura di configSections.
Nel seguente esempio, modificare il valore della directory principale con la directory in cui sono memorizzati i
report. Ai fini di questo esempio, il percorso file è impostato su C:\programmi\Microsoft Visual
Studio .NET 2003\Crystal Reports\Samples\Reports\Feature Examples.

<crystalDecisions>
<serverFileReportManager>
<add key="rootDirectory"
value="C:\program files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples
\En\Reports\Feature Examples" />
</serverFileReportManager>
</crystalDecisions>

Nota
è necessario immettere il percorso della directory di file relativo alla cartella dei report nel campo dei valori.

6. Salvare le modifiche effettuate in web.config.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
86 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.3.2 Configurazione di File di server in Visual Studio
2005 e versioni successive

File di server si riferisce a un insieme di servizi Web report esposti sul server IIS. I File di server erano forniti in
origine come un nodo di Crystal Services all'interno di SAP Crystal Reports in Visual Studio .NET 2002. Sebbene
tale nodo sia stato in seguito rimosso, i File di server nell'SDK continuano a essere supportati in tutte le versioni
successive di SAP Crystal Reports. È tuttavia necessario impostare configurazioni specifiche in ciascuna versione.

I File di server vengono generati da file di report sottostanti, memorizzati nella cartella dei report di esempio o in
un'altra cartella stabilita dall'utente, nella directory file del server Web.

Configurazione di File di server

Per configurare File di server per Visual Studio 2005 o versione successiva, è necessario effettuare due
operazioni. È necessario in primo luogo creare il servizio Web report usato per l'esposizione dei report. Quindi,
modificare il file web.config che corrisponde al nuovo servizio Web. In Visual Studio 2005 la cartella di
configurazione relativa a File di server presente in Visual Studio .NET 2002 è stata sostituita dall'aggiunta di una
voce di configurazione nel file web.config.

È possibile aggiungere al file web.config di ogni progetto un voce di configurazione alla volta. Si consiglia tuttavia
di aggiungere tale voce al file web.config situato all'interno della directory virtuale che contiene i servizi Web
report.

Informazioni correlate

Connessione a servizi Web report da un sito Web protetto [pagina 91]


Utilizzo di Crystal Reports come servizio Web [pagina 80]

1.3.6.3.2.1 Per creare i servizi Web report richiesti per File di


server

Procedura

1. Avviare Visual Studio.


2. Dal menu File, scegliere Nuovo, quindi fare clic su Sito Web.
3. Nella finestra di dialogo Nuovo sito Web selezionare Visual C# nell'elenco Linguaggio.
4. Nell'elenco Modelli scegliere Servizio Web ASP.NET.
5. Nel campo Percorso sostituire il nome predefinito del progetto con il nome del progetto creato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 87
Ai fini di questo esempio, il progetto verrà salvato in C:\InetPub\wwwroot\ con il nome
CrystalReportsWebServices.

C:\InetPub\wwwroot\CrystalReportsWebServices\

6. Fare clic su OK.


7. Dal menu Debug, scegliere Avvia debug.

Viene visualizzata una finestra di dialogo in cui è indicato che il file Web.config deve essere modificato. Fare
clic sul pulsante OK per attivare il debug.
8. Al termine del debug, tornare all'applicazione.
9. In Esplora soluzioni fare clic con il pulsante destro del mouse su Service.asmx, quindi scegliere Elimina.
10. In Esplora soluzioni espandere la cartella App_Code, fare clic con il pulsante destro del mouse su Services.cs,
quindi scegliere Elimina.
11. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, quindi
scegliere Aggiungi nuovo elemento.
12. Nella finestra di dialogo Aggiungi nuovo elemento, effettuare le seguenti operazioni:
a) Nel campo Modelli installati selezionare Servizio Web.
b) Nel campo Nome immettere ServerFileReportService.asmx.
c) Deselezionare Inserisci codice in file separato.
d) Fare clic su Aggiungi.
13. Sostituire il contenuto del file ServerFileReportService.asmx con la seguente riga:

<%@ WebService language="C#"


class="CrystalDecisions.Web.Services.ServerFileReportService" %>

14. Dal menu File, scegliere Salva tutto.


15. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, quindi
scegliere Aggiungi nuovo elemento.
16. Nella finestra di dialogo Aggiungi nuovo elemento:
a) Nel campo Modelli installati selezionare Servizio Web.
b) Nel campo Nome immettere ServerFileReportManager.asmx
c) Deselezionare Inserisci codice in file separato.
d) Fare clic su Aggiungi.
17. Sostituire il contenuto del file ServerFileReportManager.asmx con la seguente riga:

<%@ WebService language="C#"


class="CrystalDecisions.Web.Services.ServerFileReportManager" %>

18. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
88 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.3.2.2 Per modificare la "directory virtuale
visualizzatori" nella proprietà WebServiceURL delle istanze di
ServerFileReport

Procedura

1. Individuare ogni occorrenza all'interno del progetto in cui viene assegnata la proprietà WebServiceURL di
un'istanza ServerFilesReport.
2. Confrontare il nome della directory virtuale visualizzatori attualmente assegnato nel codice con il nome della
stessa directory utilizzato nelle versioni precedenti.
3. Modificare il nome della directory virtuale visualizzatori utilizzato nella versione superiore di SAP Crystal
Reports installata.
Se la versione più recente di SAP Crystal Reports è SAP Crystal Reports per Visual Studio 2005, immettere il
percorso del servizio Web report creato nei passaggi precedenti dell'esercitazione.
4. Eseguire la ricompilazione e verificare che i report vengano caricati in modo corretto.

Informazioni correlate

Directory dei visualizzatori [pagina 13]

1.3.6.3.2.3 Per aggiungere la voce di configurazione di File di


server al file web.config

Procedura

1. In Esplora soluzioni aprire il file Web.Config.


2. Sostituire l'intero contenuto del file Web.Config con il codice XML mostrato di seguito.
Nel seguente esempio, modificare il valore della directory principale con la directory in cui sono memorizzati i
report. Ai fini di questo esempio, il percorso file è impostato su C:\programmi\Microsoft Visual
Studio 8\Crystal Reports\Samples\it\Reports\Feature Examples.

<?xml version="1.0"?>

<configuration
xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<sectionGroup name="crystalDecisions">
<section name="serverFileReportManager"
type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089, Custom=null"/>
</sectionGroup>
</configSections>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 89
<crystalDecisions>
<serverFileReportManager>
<add key="rootDirectory" value="C:\program files\Microsoft Visual
Studio 8\Crystal Reports\Samples\it\Reports\Feature Examples"/>
</serverFileReportManager>
</crystalDecisions>
<appSettings/>
<connectionStrings/>

<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=12.1.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
</system.web>
</configuration>

Nota
È necessario immettere il percorso alla directory dei report al posto di
PUT_FILE_DIRECTORY_PATH_TO_REPORTS_FOLDER_HERE.

3. Salvare le modifiche effettuate nel file web.config.


4. Per verificare il corretto funzionamento della directory virtuale visualizzatori, aprire un browser e immettere
l'URL relativo al servizio Web report pubblicato.

http://localhost/CrystalReportsWebServices/ServerFileReportService.asmx?wsdl

1.3.6.3.2.4 File di server esistenti e directory virtuale


visualizzatori

Nelle versioni precedenti di SAP Crystal Reports, i File di server venivano eseguiti al di fuori di IIS da un servizio
Web centralizzato ubicato nella directory virtuale visualizzatori. Ogni successiva versione di SAP Crystal Reports
crea una "directory virtuale visualizzatori" aggiuntiva in IIS, in modo da consentire la gestione di più versioni di
SAP Crystal Reports.

Ciò può causare un problema di manutenzione se in un progetto sono stati codificati File di server con una
versione precedente di SAP Crystal Reports e si desidera eseguire l'aggiornamento a una versione successiva.
All'interno del codice il nome della "directory virtuale visualizzatori" nella proprietà WebServiceURL di ogni istanza
ServerFileReport deve essere modificato in base al percorso corrente quello del servizio Web report, per
consentire il corretto funzionamento delle istanze di ServerFileReport.

Informazioni correlate

Directory dei visualizzatori [pagina 13]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
90 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.4 Connessione a servizi Web report da un sito Web
protetto

In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio è possibile pubblicare i report
Crystal come servizi Web.

Poiché i servizi Web sono accessibili tramite Web, è opportuno proteggere i servizi Web report dall'accesso
anonimo.

In questa sezione viene descritto come rimuovere l'accesso anonimo da una directory virtuale contenente un
servizio Web report. Viene quindi illustrato come scrivere codice per posizionare tale servizio in una classe
RemoteReportProxy, la quale può essere configurata per la gestione dell'autenticazione NT sul server IIS (Internet
Information Services).

Sono due i tipi di servizi Web report che richiedono codice di autenticazione: i servizi Web report normali e i File di
server.

Informazioni correlate

Pubblicazione e utilizzo di un report come servizio Web [pagina 80]


Configurazione di File di server in Crystal Services [pagina 83]

1.3.6.4.1 Servizi Web report e autenticazione NT

1.3.6.4.1.1 Aggiunta dell'autenticazione NT al servizio Web


report

Prima di aggiungere le modifiche necessarie per l'autenticazione NT, occorre creare un progetto per la
pubblicazione e l'utilizzo di un servizio Web report, come illustrato in Pubblicazione e utilizzo di un report come
servizio Web [pagina 80].

In questa sezione viene descritto come rimuovere l'accesso anonimo dalla directory contenente il servizio Web
report creato in precedenza.

Informazioni correlate

Connessione a servizi Web report da un sito Web protetto [pagina 91]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 91
1.3.6.4.1.1.1 Per rimuovere l'accesso anonimo dalla
directory contenente il servizio Web report

Procedura

1. Nel Pannello di controllo, fare doppio clic su Strumenti di amministrazione e quindi su Gestione servizi
Internet.
2. Nella finestra di dialogo Internet Information Services espandere i nodi superiori, quindi il nodo Sito Web
predefinito.
3. Individuare la cartella della directory virtuale relativa al Report Web Service creato precedentemente.
4. Fare clic con il pulsante destro del mouse sulla directory virtuale e selezionare Proprietà.
5. All'interno della scheda Protezione directory della finestra di dialogo Proprietà, scegliere Modifica.
6. Deselezionare la casella di controllo Accesso anonimo, quindi scegliere OK.
7. Scegliere OK per chiudere la finestra Proprietà.
8. Chiudere la finestra Internet Information Services.

Risultati

A questo punto, se si desidera che l'autenticazione relativa a questa directory sia impostata per un utente di rete
specifico, è necessario aggiungere alla cartella un'autorizzazione individuale per l'utente di rete da Esplora risorse.

1.3.6.4.1.1.2 Per aggiungere alla cartella autorizzazioni


relative a un utente di rete specifico

Procedura

1. In Esplora risorse individuare la cartella contenente il servizio Web.


2. Fare clic con il pulsante destro del mouse sulla cartella, quindi scegliere Proprietà.
3. All'interno della scheda Protezione della finestra di dialogo Proprietà, scegliere Aggiungi.
4. Nella finestra di dialogo Selezione utenti computer o gruppi, in <<Immettere i nomi separati da un punto e
virgola>> o sceglierne uno dall'elenco, digitare il nome dell'utente di rete.
5. Fare clic su Controlla nomi.
6. Verificare che il nome dell'utente sia stato aggiunto correttamente, quindi fare clic su OK.
7. Nel riquadro Autorizzazioni selezionare Consenti per l'autorizzazione di Lettura.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
92 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.4.1.2 Modifica dell'applicazione client per aggiungere
l'accesso protetto

In questa sezione si modifica l'applicazione client per poter accedere in modo protetto al servizio Web report
mediante l'autenticazione NT. A tale scopo, è necessario aggiungere assembly, spazi dei nomi e nuovo codice.

1.3.6.4.1.2.1 Verifica della possibilità di accedere


dall'applicazione client al servizio Web protetto

Procedura

1. Riaprire l'applicazione client creata per utilizzare il servizio Web report, in base a quanto indicato nella sezione
Pubblicazione e utilizzo di un report come servizio Web [pagina 80].
2. Eseguire l'applicazione per verificare che non si dispone più dell'autorizzazione per accedere in modo
anonimo al servizio Web report all'interno di questa directory.

Verrà visualizzato il seguente messaggio di errore: "Richiesta non riuscita con codice di stato HTTP 401:
Accesso negato."

1.3.6.4.1.2.2 Aggiunta di nuovi assembly e relativi riferimenti

Procedura

1. Fare clic con il pulsante destro del mouse sulla cartella References e selezionare Aggiungi riferimento....
2. Nella finestra di dialogo Add Reference, all'interno della scheda .NET, tenere premuto il tasto Ctrl e fare clic
sui seguenti assembly:

○ CrystalDecisions.ReportSource
○ System.Web.Services
3. Fare clic su Select nella parte destra della finestra di dialogo.
4. Verificare che entrambi gli assembly siano stati aggiunti nel riquadro Selected Components, quindi
scegliere OK.
5. Aprire il Web Form o il Windows Form creato in Impostazione di un progetto [pagina 14].
6. Dal menu View, fare clic su Code.
7. Sopra la firma della classe, aggiungere all'inizio della classe tre dichiarazioni "Imports" [Visual Basic] o
"using" [C#] per gli spazi dei nomi riportati di seguito.

Imports CrystalDecisions.ReportSource
Imports System.Net
Imports System.Web.Services

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 93
using CrystalDecisions.ReportSource;
using System.Net;
using System.Web.Services;

Passi successivi

Viene quindi descritto come aggiungere codice per configurare una classe RemoteReportProxy per il passaggio
delle credenziali utente alla directory protetta del servizio Web report.

1.3.6.4.1.2.3 Codifica del metodo


GetReportWebServiceWithAuthentication()

Contesto

Il metodo GetReportWebServiceWithAuthentication() viene utilizzato per configurare il proxy report


remoto e gestire l'autenticazione NT.

In questa sezione viene descritto come codificare il metodo GetReportWebServiceWithAuthentication()


per impostare i valori delle proprietà URL e Credentials. È necessario in primo luogo aggiungere il metodo
GetReportWebServiceWithAuthentication() alla proprietà ReportSource del controllo
CrystalReportViewer per dichiarare e creare un'istanza della classe RemoteReportProxy.

Tale metodo può anche aggiungere impostazioni relative al proxy firewall all'istanza RemoteReportProxy.

Procedura

1. Alla fine della classe, creare il metodo di supporto privato GetReportWebServiceWithAuthentication()


che restituisce una classe RemoteReportProxy.

Private Function GetReportWebServiceWithAuthentication() As


RemoteReportProxy
End Function

private RemoteReportProxy GetReportWebServiceWithAuthentication()


{
}

2. All'interno del metodo ConfigureCrystalReports(), selezionare la stringa dell'URL del servizio Web
attualmente assegnata alla proprietà ReportSource del controllo CrystalReportViewer . Copiare la
stringa negli Appunti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
94 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Più avanti, nel corso di questa procedura, si assegnerà un nuovo valore alla proprietà ReportSource del
controllo CrystalReportViewer.

3. Dichiarare una variabile di stringa reportWebServiceURL e incollare la stringa dell'URL.

Dim reportWebServiceURL As String =


"http://mywebserviceserver.com/MyWebServiceDirectory/Hierarchical
%20GroupingService.asmx"

string reportWebServiceURL =
"http://mywebserviceserver.com/MyWebServiceDirectory/Hierarchical
%20GroupingService.asmx";

4. Dichiarare e creare un'istanza della classe RemoteReportProxy.

Dim myRemoteReportProxy As RemoteReportProxy = New RemoteReportProxy()

RemoteReportProxy remoteReportProxy = new RemoteReportProxy();

5. Assegnare la variabile reportWebServiceURL alla proprietà URL dell'istanza RemoteReportProxy.

myRemoteReportProxy.Url = reportWebServiceURL

remoteReportProxy.Url = reportWebServiceURL;

6. Chiamare il metodo ConfigureAuthentication(), che verrà creato durante le procedure successive,


quindi passare un valore Boolean True e la variabile reportWebServiceURL . Assegnare questo metodo
alla proprietà Credentials dell'istanza RemoteReportProxy.

myRemoteReportProxy.Credentials = ConfigureAuthentication(True,
reportWebServiceURL)

remoteReportProxy.Credentials = ConfigureAuthentication(true,
reportWebServiceURL);

7. Chiamare il metodo AddFirewallProxySettings(), che verrà creato durante le procedure successive,


quindi passare un valore booleano False, la stringa URI per un server proxy firewall e l'istanza
RemoteReportProxy.

Nota
Sostituire la stringa URI con il server proxy firewall in uso.

myRemoteReportProxy = AddFirewallProxySettings(False, "<<


http://firewallproxyserver:8080>>",
myRemoteReportProxy)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 95
remoteReportProxy = AddFirewallProxySettings(false, "<<
http://firewallproxyserver:8080>>",
remoteReportProxy);

8. Restituire l'istanza RemoteReportProxy dal metodo.

Return myRemoteReportProxy

return remoteReportProxy;

1.3.6.4.1.2.4 Codifica del metodo ConfigureAuthentication()

Contesto

In questa sezione viene descritto come codificare il metodo ConfigureAuthentication() in modo da


consentire l'utilizzo di due approcci per la configurazione dell'autenticazione.

Il primo approccio prevede l'utilizzo di un nome utente, una password e un nome di dominio specifici per
soddisfare i requisiti delle autorizzazioni di protezione dell'utente aggiunte in Aggiunta dell'autenticazione NT al
servizio Web report [pagina 91]. Il secondo approccio si basa invece sull'autorizzazione NTLM.

Quando si passa un valore Boolean True a questo metodo, vengono fornite le credenziali specifiche dell'utente
per accedere ai servizi Web. Il passaggio di un valore Boolean False implica invece la chiamata al codice relativo
alle credenziali NTLM per accedere ai servizi Web.

Il metodo ConfigureAuthentication() viene chiamato dal metodo


GetReportWebServiceWithAuthentication().

Procedura

1. Alla fine della classe, creare il metodo di supporto privato ConfigureAuthentication() che restituisce
l'interfaccia ICredentials. Tale metodo accetta due parametri, un valore booleano denominato isUserSpecific
e la stringa reportWebServiceURL.

Private Function ConfigureAuthentication(ByVal isUserSpecific As


Boolean, ByVal reportWebServiceURL As String) As ICredentials
End Function

private ICredentials ConfigureAuthentication(bool isUserSpecific,


string reportWebServiceURL)
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
96 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. All'interno del metodo creare un blocco condizionale che verifichi il parametro Boolean isUserSpecific.

If isUserSpecific Then
Else
End If

if(isUserSpecific)
{
}
else
{
}

3. Raccogliere le seguenti informazioni: il nome dell'utente, la password e il nome del dominio di rete per cui
sono state concesse le autorizzazioni di accesso per la directory contenente il servizio Web report.
4. Nel blocco If dichiarare e assegnare i valori appropriati alle variabili di stringa di nome utente, password e
dominio.

Dim userName As String = "fchen"


<NonSerialized()> Dim password As String = "1234"
Dim domain As String = "Enterprise"

string userName = "fchen";


[NonSerialized()] string password = "1234";
string domain = "Enterprise";

5. Dichiarare e creare un'istanza della classe NetworkCredential e passare le variabili di stringa di nome
utente (username), password e dominio (domain).

Dim myNetworkCredential As NetworkCredential = New


NetworkCredential(userName, password, domain)

NetworkCredential networkCredential = new


NetworkCredential(userName, password, domain);

6. Restituire l'istanza di NetworkCredential dal blocco If.

Nel blocco Else occorre ora creare tre valori alternativi: un URI per il servizio Web report, una stringa che
indichi che il tipo di autenticazione è NTLM e un'istanza NetworkCredential. Ciascuno di questi valori viene
passato alla cache delle credenziali.

Return myNetworkCredential

return networkCredential;

7. All'interno del blocco Else, dichiarare e creare un'istanza della classe CredentialCache.

Dim myCredentialCache As CredentialCache = New CredentialCache()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 97
CredentialCache credentialCache = new CredentialCache();

8. Dichiarare e creare un'istanza della classe Uri e passare il parametro reportWebServiceURL dal metodo
ConfigureAuthentication().

Dim myUri As Uri = New Uri(reportWebServiceURL)

Uri uri = new Uri(reportWebServiceURL);

9. Assegnare il valore di stringa "NTLM" a una variabile di stringa denominata "ntlmAuthorization".

Dim ntlmAuthorization As String = "NTLM"

string ntlmAuthorization = "NTLM";

10. Dichiarare e creare un'istanza della classe NetworkCredential.

Dim myNetworkCredential As NetworkCredential = New


NetworkCredential()

NetworkCredential networkCredential = new NetworkCredential();

11. Passare l'istanza Uri, la stringa ntlmAuthorization e l'istanza NetworkCredential al metodo Add() dell'istanza
CredentialCache.

myCredentialCache.Add(myUri, ntlmAuthorization,
myNetworkCredential)

credentialCache.Add(uri, ntlmAuthorization, networkCredential);

12. Restituire l'istanza ICredentials dalla proprietà DefaultCredentials della classe CredentialCache
del blocco Else.

Return CredentialCache.DefaultCredentials

return CredentialCache.DefaultCredentials;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
98 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.4.1.2.5 Codifica del metodo
AddFirewallProxySettings()

Contesto

In questa sezione viene descritto come codificare il metodo AddFirewallProxySettings() con l'istanza
RemoteReportProxy utilizzata come parametro. Viene inoltre illustrato come aggiungere impostazioni relative al
proxy Web all'istanza RemoteReportProxy.

Il metodo AddFirewallProxySettings() viene chiamato dal metodo


GetReportWebServiceWithAuthentication().

Questo metodo viene eseguito solo se è necessario accedere al servizio Web report mediante un proxy firewall.

Procedura

1. Alla fine della classe, creare il metodo di supporto privato AddFirewallProxySettings() che restituisce la
classe RemoteReportProxy, quindi passare una variabile booleana, una variabile di stringa e l'istanza
RemoteReportProxy.

Private Function AddFirewallProxySettings(ByVal isFirewallProxy As


Boolean, ByVal webProxyURI As String, ByVal remoteReportProxy As
RemoteReportProxy) As RemoteReportProxy
End Function

private RemoteReportProxy AddFirewallProxySettings(bool


isFirewallProxy, string webProxyURI, RemoteReportProxy
remoteReportProxy)
{
}

2. All'interno del metodo creare un blocco condizionale che verifichi la variabile Boolean isFirewallProxy.

If isFirewallProxy Then
End If

if(isFirewallProxy)
{
}

3. Nel blocco condizionale dichiarare e creare un'istanza della classe WebProxy, quindi passare la stringa
webProxyURI e un valore True Boolean.

Dim myWebProxy As WebProxy = New WebProxy(webProxyURI, True)

WebProxy webProxy = new WebProxy(webProxyURI, true);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 99
4. Assegnare l'istanza WebProxy alla proprietà Proxy dell'istanza RemoteReportProxy passata al metodo
come parametro.

myRemoteReportProxy.Proxy = myWebProxy

remoteReportProxy.Proxy = webProxy;

5. All'esterno del blocco condizionale restituire l'istanza RemoteReportProxy.

Return myRemoteReportProxy

return remoteReportProxy;

Risultati

Se si passa un valore booleano False al parametro isFireWallProxy, le impostazioni relative al proxy firewall
non verranno aggiunte. È possibile verificare questa versione del progetto con la configurazione più semplice
dell'autenticazione NT e senza firewall tra il client di prova e il servizio Web.

Se si verifica il progetto con un firewall, spostare l'applicazione client all'esterno del firewall, quindi modificare il
valore del parametro booleano isFireWallProxy in True. È necessario assegnare un valore URI di proxy Web
preciso al parametro stringa webProxyURI, quindi procedere con la verifica del codice mediante un firewall.

Informazioni correlate

Connessione a servizi Web report da un sito Web protetto [pagina 91]

1.3.6.4.1.3 Verifica del codice di autenticazione NT e delle


credenziali NTLM

1.3.6.4.1.3.1 Test dell'autenticazione NT

Prerequisiti

Per poter verificare il codice, occorre prima modificare il codice per il collegamento dei report nel metodo
ConfigureCrystalReports().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
100 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● All'interno del metodo ConfigureCrystalReports() assegnare una chiamata al metodo
GetReportWebServiceWithAuthentication() alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource =
GetReportWebServiceWithAuthentication()

crystalReportViewer.ReportSource =
GetReportWebServiceWithAuthentication();

A questo punto è possibile verificare il codice di autenticazione NT aggiunto al progetto client del servizio Web.

Contesto

Per verificare il codice di autenticazione NT nel progetto client del servizio Web:

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

L'applicazione client si connette al servizio Web e, se il nome utente, la password e il dominio sono corretti, il
report viene visualizzato nel modo appropriato.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

È stata effettuata una connessione alla directory protetta con le credenziali di rete specifiche di un utente. Di
seguito viene descritto come verificare la connessione utilizzando credenziali NTLM.

Nota
Per configurare le impostazioni relative al proxy firewall, è possibile modificare il valore Boolean passato al
metodo AddFirewallProxySettings() come parametro.

Informazioni correlate

File di server e autenticazione NT [pagina 102]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 101
1.3.6.4.1.3.2 Per verificare le credenziali NTLM nel progetto
client del servizio Web

Procedura

1. Individuare la chiamata al metodo ConfigureAuthentication() all'interno del metodo


GetReportWebServiceWithAuthentication().
2. Nella chiamata a ConfigureAuthentication() modificare il valore booleano del primo parametro del
metodo da True a False.
3. Dal menu Genera, scegliere Genera soluzione.
4. Dal menu Debug, scegliere Avvia.
5. L'applicazione client si connette al servizio Web mediante l'autenticazione NTLM.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

È ora possibile collegarsi correttamente dal client del servizio Web a un servizio Web report ubicato in una
directory protetta. Si è ottenuto tale risultato configurando i valori necessari nell'istanza RemoteReportProxy e
passando tale istanza alla proprietà ReportSource del controllo CrystalReportViewer.

1.3.6.4.2 File di server e autenticazione NT

È possibile usare File di server per connettersi rapidamente ai report ubicati su un computer remoto.

Tuttavia, se la directory virtuale che fornisce i report memorizzati in File di server è protetta con l'autenticazione
NT, occorrerà aggiungere codice supplementare nell'applicazione client per richiamare tali report e fornire le
credenziali di rete necessarie.

Informazioni correlate

Configurazione di File di server in Crystal Services [pagina 83]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
102 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.4.2.1 Creazione di un progetto per richiamare una
directory non protetta di File di server

Prerequisiti

Per creare un progetto che richiami una directory non protetta, occorre aver configurato File di server per la
versione in uso di Visual Studio.

Seguire le istruzioni nella sezione appropriata e prendere nota del percorso della directory di file relativo alla
directory dei report in uso, utile per le procedure successive:

● Configurazione di File di server in Visual Studio .NET 2003 [pagina 84]


● Configurazione di File di server in Visual Studio 2005 e versioni successive [pagina 87]

Accedere alla directory dei report relativa al progetto in uso e individuare il nome di un report che si desidera
visualizzare mediante File di server.

Nelle fasi successive il report utilizzato è il report di esempio Hierarchical Grouping.rpt.

Nota
Le istruzioni riportate di seguito sono valide solo per un nuovo progetto creato in Impostazione di un progetto
[pagina 14].

Contesto

In questa sezione viene descritto come impostare le credenziali di rete necessarie.

Per iniziare, viene creata un'applicazione client che accede ai report memorizzati in File di server e consente di
accedere in maniera non protetta alla directory dei servizi Web. Una volta verificato il corretto funzionamento
dell'applicazione client, è quindi possibile aggiungere l'accesso protetto alla directory virtuale e scrivere codice
supplementare nella suddetta applicazione per fornire le credenziali necessarie per l'autenticazione NT.

Per creare un'applicazione client per l'accesso ai report File di server:

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Individuare il metodo ConfigureCrystalReports() creato in Impostazione di un progetto [pagina 14].
4. All'interno del metodo dichiarare e creare un'istanza della classe ServerFileReport.

Dim myServerFileReport As ServerFileReport = New ServerFileReport()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 103
ServerFileReport serverFileReport = new ServerFileReport();

5. Assegnare il nome del report che si desidera visualizzare dalla directory dei report alla proprietà ReportPath
dell'istanza di ServerFileReport.

Nota
La directory è quella configurata per i report File di server nel file Web.config.

Al momento della configurazione della directory virtuale visualizzatori eseguita in precedenza, è stata
effettuata la verifica del wsdl, mediante l'immissione di un URL relativo al servizio Web
ServerFileReportServer.asmx ubicato all'interno della suddetta directory. Nel prossimo passaggio tale URL
verrà immesso come valore all'interno del codice.

Nell'esempio di codice che segue viene utilizzato il report Hierarchical Grouping contenuto nella
sottodirectory Feature Examples della cartella dei report di esempio (Samples\…\Reports). Accertarsi di
includere il nome della sottodirectory seguito da una barra rovesciata.

myServerFileReport.ReportPath = "Feature Examples\Hierarchical


Grouping.rpt"

serverFileReport.ReportPath = "Feature Examples\\Hierarchical


Grouping.rpt";

6. Individuare la versione corretta dell'URL relativo al servizio Web ServerFileReportService.asmx per la


versione di SAP Crystal Reports in uso.

Se è installato SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio, la posizione
corrisponde alla directory virtuale visualizzatori della versione installata di SAP Crystal Reports.

Se è installato SAP Crystal Reports ma non SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio, questo sarà l'URL del Servizio Web report creato in Configurazione di File di server in Visual
Studio 2005 e versioni successive [pagina 87].
7. Assegnare l'URL del servizio Web alla proprietà WebService dell'istanza di ServerFileReport.

myServerFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices/ServerFileReportService.asmx"

serverFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices/ServerFileReport.asmx";

L'istanza di ServerFileReport è ora configurata e pronta per essere passata al controllo


CrystalReportViewer.
8. Assegnare l'istanza di ServerFileReport alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = myServerFileReport

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
104 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.ReportSource = serverFileReport;

Informazioni correlate

Directory dei visualizzatori [pagina 13]

1.3.6.4.2.2 Riconfigurazione di File di server per richiamare


una directory protetta

In questa sezione viene descritto come riconfigurare la directory e l'applicazione client in modo da richiamare una
directory protetta.

Per iniziare, disattivare l'accesso anonimo per la directory virtuale visualizzatori in IIS (Internet Information
Services).

1.3.6.4.2.2.1 Per disattivare l'accesso anonimo per la


directory virtuale visualizzatori in IIS

Procedura

1. Nel Pannello di controllo fare doppio clic su Strumenti di amministrazione, quindi su Gestione servizi Internet.
2. Nella finestra di dialogo Internet Information Services espandere i nodi superiori, quindi il nodo Sito Web
predefinito.
3. Individuare la cartella della directory virtuale prevista, quindi fare clic su di essa con il pulsante destro del
mouse e selezionare Proprietà.
4. Nella finestra di dialogo Properties, nella scheda Protezione directory fare clic su Modifica…
5. Deselezionare la casella di controllo Accesso anonimo, quindi scegliere OK.
6. Scegliere OK per chiudere la finestra Proprietà.
7. Chiudere la finestra Internet Information Services.

Risultati

A questo punto è necessario aggiungere un <identity>tag al file Web.config.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 105
Nota
Web.config è il file che è stato modificato in precedenza, durante l'esecuzione delle istruzioni relative alla
configurazione di File di server.

Informazioni correlate

Directory dei visualizzatori [pagina 13]

1.3.6.4.2.2.2 Aggiunta del tag identity al file Web.config

Procedura

1. Riaprire il file Web.config nella directory virtuale visualizzatori.

Nota
Esistono due file Web.config, uno nella directory virtuale visualizzatori e l'altro nell'applicazione Web locale.
Il tag identity dovrà essere aggiunto al file Web.config situato nella directory virtuale visualizzatori. in
quanto è richiesto quando viene disattivato l'accesso anonimo a una directory virtuale.

2. All'interno del tag <system.web>, in alto, immettere il tag identity come mostrato di seguito.

<identity impersonate='true' />

3. Salvare il file Web.config.


4. Se è stato disattivato anche l'accesso anonimo a una directory virtuale del progetto Web client, aggiungere il
tag identity anche al file Web.config nel progetto Web client.

Passi successivi

Modificare quindi il progetto client Web o Windows per accedere al servizio Web report protetto mediante
l'autenticazione NT.

Informazioni correlate

Directory dei visualizzatori [pagina 13]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
106 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.3.6.4.2.2.3 Per modificare il progetto client in modo da
richiamare la directory virtuale visualizzatori protetta

Procedura

1. Aprire il progetto Web o Windows client in Visual Studio.


2. Fare clic con il pulsante destro del mouse sulla cartella Riferimenti e selezionare Aggiungi riferimento….
3. Nella finestra di dialogo Aggiungi riferimento, all'interno della scheda .NET, tenere premuto Ctrl e fare clic su
due assembly per selezionarli:

○ CrystalDecisions.ReportSource
○ System.Web.Services
4. Fare clic su Seleziona nella parte destra della finestra di dialogo.
5. Verificare che entrambi gli assembly siano stati aggiunti nel riquadro Componenti selezionati, quindi scegliere
OK.
6. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, scegliere
Aggiungi, quindi Aggiungi classe.
7. Nel campo Nome immettere il nome di classe "NTServerFileRemoteReportSource", quindi fare clic su
Aggiungi.
8. Sopra la firma della classe, aggiungere all'inizio della classe una dichiarazione "Imports" [Visual Basic] o
"using" [C#] per tre spazi dei nomi.

Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports System.Net

using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
using System.Net;

9. Modificare la firma della classe NTServerFileRemoteReportSource in modo da estendere la classe


RemoteReportSource.

Public Class NTServerFileRemoteReportSource : Inherits RemoteReportSource

End Class

public class NTServerFileRemoteReportSource : RemoteReportSource


{
}

Poiché la classe base RemoteReportSource non è in grado di contenere un costruttore senza argomenti, è
necessario crearne uno con argomenti che sostituisca un costruttore della suddetta classe.
10. Se il codice del progetto viene scritto nel linguaggio C#, eliminare il costruttore predefinito creato in questa
classe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 107
11. Creare un costruttore che includa un parametro del metodo di ServerFileReport e chiamare il costruttore
della classe base, passando il suddetto parametro del report e il valore booleano False.

Public Sub New(ByVal report As ServerFileReport)


MyBase.New(report, False)
End Sub

public NTServerFileRemoteReportSource(ServerFileReport report) : base(report,


false)
{
}

12. All'interno del costruttore, assegnare la proprietà statica DefaultCredentials della classe CredentialCache alla
proprietà Credentials della proprietà m_proxy della classe base.

MyBase.m_proxy.Credentials = CredentialCache.DefaultCredentials

base.m_proxy.Credentials = CredentialCache.DefaultCredentials;

13. Dal menu File, scegliere Salva tutto.

Risultati

A questo punto è possibile modificare la classe di codice sottostante per il Web Form o il Windows Form specifico.

1.3.6.4.2.2.4 Per modificare la classe di codice sottostante e


gestire l'origine report remota

Procedura

1. Ritornare al Web o Windows Form originale.


2. Dal menu Visualizza, scegliere Codice.
3. Nel metodo ConfigureCrystalReports() aggiungere una nuova riga tra l'impostazione della proprietà
serverFileReport.WebServiceUrl e l'impostazione di ReportSource del controllo
CrystalReportViewer. Nella riga aggiunta dichiarare e creare un'istanza della nuova classe estesa
precedentemente creata e passare l'istanza di ServerFileReport come parametro del metodo.

Dim myNTServerFileRemoteReportSource As NTServerFileRemoteReportSource = New


NTServerFileRemoteReportSource(myServerFileReport)

NTServerFileRemoteReportSource ntServerFileRRS = new


NTServerFileRemoteReportSource(serverFileReport);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
108 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. Modificare la riga finale del codice di questo metodo: sostituire l'istanza di ServerFileReport assegnata alla
proprietà ReportSource del controllo CrystalReportViewer con la nuova istanza di
NTServerFileRemoteReportSource.

myCrystalReportViewer.ReportSource = myNTServerFileRemoteReportSource

crystalReportViewer.ReportSource = ntServerFileRRS;

Risultati

A questo punto è possibile verificare l'applicazione client che è stata modificata per passare le informazioni sulle
credenziali da un'origine report remota. L'applicazione modificata richiama il servizio report File di server
mediante la directory virtuale dei visualizzatori che ora richiede l'autenticazione NT.

1.3.6.4.2.2.5 Per verificare l'origine report remota con


credenziali che richiamano la directory virtuale visualizzatori
protetta

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Dal menu Debug, scegliere Avvia.
L'applicazione client si connette alla directory virtuale visualizzatori protetta e, se la nuova istanza di
NTServerFileRemoteReportSource è configurata con le credenziali corrette, il report viene visualizzato in
modo appropriato.
3. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.3.7 Considerazioni sulla protezione

È necessario prendere in considerazione i seguenti scenari quando si progetta un'applicazione protetta.

Archiviazione dei dati nella cache di frontend

I report visualizzati in un browser Web potrebbero contenere dati sensibili che il browser potrebbe memorizzare
nella cache. Per informazioni su come disabilitare la memorizzazione nella cache nei diversi browser, consultare la
documentazione Microsoft.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 109
Protezione del file di report

I file .rpt SAP Crystal Reports possono contenere dati aziendali riservati. È consigliabile proteggere l'accesso ai
report gestendo questi ultimi con il server della piattaforma SAP BusinessObjects Business Intelligence mediante
la protezione file o la crittografia a livello di sistema operativo.

Convalida dell'input dell'utente con i campi parametro

I campi parametro richiedono all'utente di fornire le informazioni utilizzate per elaborare un report. La finestra di
dialogo di prompt convalida i dati, tuttavia è possibile effettuare ulteriori passaggi per assicurarsi che vengano
forniti i valori previsti.

1. Utilizzare il testo del prompt per descrivere il tipo di dati previsti.


2. Specificare un valore minimo e massimo per limitare l'intervallo di numeri da inserire quando si utilizzano dati
numerici.
3. Utilizzare una maschera di modifica per richiedere dati in un formato specifico.
4. Creare una finestra di dialogo di prompt personalizzata. L'SDK di SAP Crystal Reports .NET fornisce
numerose API per creare finestre di dialogo di prompt personalizzate. Tali finestre personalizzate consentono
di controllare totalmente le modalità con cui l'utente fornisce i valori per i campi parametro.

Utilizzo del controllo di stampa ActiveX per la stampa di report da un


visualizzatore Web Form .NET

Il visualizzatore Web Form .NET di SAP Crystal Reports consente di stampare i report in formato PDF oppure
utilizzando il controllo di stampa ActiveX. L'opzione PDF è quella predefinita e consigliata. Il controllo di stampa
ActiveX è stato fornito come soluzione alternativa per la stampa con un clic. L'installazione di questa opzione
richiede privilegi da amministratore e pertanto non è consigliata. Inoltre, poiché il controllo ActiveX viene utilizzato
in un browser Web, non è impostato alcun killbit e il controllo è considerato meno sicuro.

Creazione di un'applicazione per la visualizzazione di report dalla piattaforma


SAP BusinessObjects Business Intelligence

È possibile utilizzare SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio per creare
applicazioni che consentono di visualizzare i report archiviati in un sistema della piattaforma SAP
BusinessObjects Business Intelligence. Quando si crea questo tipo di applicazioni, è necessario tenere in
considerazione l'impatto che questa operazione può avere sulla protezione. Per ulteriori informazioni, consultare
il Manuale dell'amministratore della piattaforma Business Intelligence SAP BusinessObjects.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
110 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Filtro dei dati con parametri o formule [pagina 133]

1.4 Utilizzo di SDK

In questa sezione vengono fornite istruzioni dettagliate sulle modalità di utilizzo delle funzionalità specifiche
dell'SDK di SAP Crystal Reports .Net.

1.4.1 Stampa di un report

L'SDK di SAP Crystal Reports .NET consente di creare applicazioni Windows o siti Web in grado di stampare sulla
stampante locale di un utente finale o su una stampante configurata sul server Web.

Il modo più semplice per aggiungere funzioni di stampa all'applicazione SAP Crystal Reports .NET è utilizzare il
pulsante di stampa sul controllo CrystalReportViewer. Quando gli utenti fanno clic sul pulsante di stampa della
barra degli strumenti, viene visualizzata la finestra di dialogo di stampa standard del sistema. Nella finestra di
dialogo è possibile specificare le impostazioni di stampa personalizzate.

L'SDK di SAP Crystal Reports .NET consente di configurare le opzioni di stampa e chiamare una stampante dal
codice, anziché dall'interfaccia utente di SAP Crystal Reports. Utilizzare la classe PrintOptions e il metodo
PrintToPrinter del modello a oggetti ReportDocument.

Classi utilizzate per la stampa dei report

● CrystalDecisions.CrystalReports.Engine.ReportDocument
Rappresenta un report e contiene le proprietà e i metodi per definire, formattare, caricare, esportare e
stampare il report.
● CrystalDecisions.CrystalReports.Engine.PrintOptions
Fornisce proprietà e metodi per l'impostazione delle opzioni per la stampa di un report.
● CrystalDecisions.Windows.Forms.CrystalReportViewer
Rappresenta il controllo CrystalReportViewer in un Windows Form. Il controllo CrystalReportViewer viene
utilizzato per stampare i report dall'interfaccia utente.
● CrystalDecisions.Web.CrystalReportViewer
Fornisce le proprietà, i metodi e gli eventi che modificano o recuperano le informazioni relative all'aspetto del
controllo CrystalReportViewer e alle relative funzioni. Il controllo CrystalReportViewer viene utilizzato per
stampare i report dall'interfaccia utente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 111
Informazioni correlate

Esportazione di un report [pagina 121]

1.4.1.1 Stampa di un report dal controllo


CrystalReportViewer

Il modo più semplice per aggiungere funzioni di stampa all'applicazione SAP Crystal Reports .NET è utilizzare il
pulsante di stampa sul controllo CrystalReportViewer. Il pulsante di stampa è attivato sulla barra degli strumenti
di CrystalReportViewer per impostazione predefinita.

Esistono due controlli CrystalReportViewer nell'SDK di SAP Crystal Reports .NET. Per un sito Web, si utilizza la
classe CrystalDecisions.Web.CrystalReportViewer. Per un'applicazione Windows, si utilizza la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer.

Stampa mediante la classe


CrystalDecisions.Windows.Forms.CrystalReportViewer

Quando si fa clic sul pulsante di stampa della barra degli strumenti di CrystalReportViewer in un'applicazione
Windows, viene visualizzata la finestra di dialogo di stampa standard di Windows. È possibile richiamare a livello di
codice la finestra di dialogo di stampa mediante il metodo CrystalReportViewer.PrintReport.

Il pulsante di stampa può essere disattivato in un'applicazione Windows impostando la proprietà


CrystalReportViewer.ShowPrintButton su False.

Stampa mediante la classe CrystalDecisions.Web.CrystalReportViewer

Il controllo CrystalReportViewer per i siti Web supporta due metodi di stampa: PDF e ActiveX.

La stampa PDF è l'impostazione predefinita per un sito Web. Quando si fa clic sul pulsante di stampa della barra
degli strumenti di CrystalReportViewer in un sito Web, viene visualizzata la finestra di dialogo Opzioni di stampa.
Immettere eventuali opzioni di stampa personalizzate e fare clic su OK. SAP Crystal Reports aprirà una nuova
finestra con un file PDF del report. Stampare il file PDF sulla stampante locale.

Se la stampa ActiveX è attivata, viene visualizzata la finestra di dialogo di stampa standard di Windows quando si
fa clic sul pulsante di stampa. La stampa ActiveX richiede un'ulteriore impostazione e talvolta l'installazione del
plug-in PrintControl.cab di ActiveX sul computer client.

Il pulsante di stampa può essere disattivato in un sito Web impostando la proprietà


CrystalReportViewer.HasPrintButton su False.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
112 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Stampa di un report a livello di codice [pagina 116]

1.4.1.1.1 Rimozione del pulsante di stampa dal controllo


CrystalReportViewer

Contesto

È possibile utilizzare l'SDK per stampare un report anche se il pulsante di stampa non è visibile.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione.


2. Impostare su False la proprietà che controlla la visibilità del pulsante di stampa.

○ Per un'applicazione Windows, impostare la proprietà CrystalReportViewer.ShowPrintButton su


False.
○ Per un sito Web, impostare la proprietà CrystalReportViewer.HasPrintButton su False.

Risultati

Quando si esegue l'applicazione, il pulsante di stampa non è più visibile sul controllo CrystalReportViewer.

Esempio
Disattivazione del pulsante Stampa in un'applicazione Windows

Private Sub ConfigureCrystalReports()


CrystalReportViewer1.ShowPrintButton = False
End Sub

private void ConfigureCrystalReports()


{
InitializeComponent();
crystalReportViewer1.ShowPrintButton = false;
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 113
Informazioni correlate

Stampa di un report [pagina 111]

1.4.1.1.2 Stampa di un report con il metodo


CrystalReportViewer.PrintReport

Prerequisiti

Assicurarsi che sia configurata una stampante sul computer client prima di provare a stampare.

Contesto

È possibile chiamare a livello di codice la finestra di dialogo di stampa tramite il metodo


CrystalReportViewer.PrintReport in un'applicazione Windows. Utilizzare questo metodo per stampare
quando la barra degli strumenti di CrystalReportViewer è nascosta o in un'applicazione che utilizza i pulsanti
personalizzati della barra degli strumenti.

Procedura

1. Aggiungere un controllo CrystalReportViewer al Windows Form.


2. Configurare un'origine valida per il report e collegare l'origine del report al controllo CrystalReportViewer.
3. Chiamare il metodo PrintReport per aprire la finestra di dialogo di stampa predefinita.

Esempio

Private Sub PrintReport()


CrystalReportViewer.PrintReport()
End Sub

private void PrintReport()


{
crystalReportViewer.PrintReport();
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
114 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.1.1.3 Attivazione della stampa ActiveX in un sito Web

Contesto

Se la stampa ActiveX è attivata, viene visualizzata la finestra di dialogo di stampa standard del sistema quando gli
utenti fanno clic sul pulsante di stampa. La stampa ActiveX richiede un'ulteriore impostazione e talvolta
l'installazione del plug-in PrintControl.cab di ActiveX sul computer client.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione.


2. Impostare la proprietà della modalità di stampa del controllo CrystalReportViewer su ActiveX.

CrystalReportViewer1.PrintMode = PrintMode.ActiveX

CrystalReportViewer1.PrintMode = PrintMode.ActiveX;

3. Nel file Web.Config aggiungere un riferimento al controllo ActiveX PrintControl.cab.

<configSections>
<section group name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://localhost/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>

Sostituire localhost con l'indirizzo del server Web.


L'elemento PrintControl consente di stampare il report direttamente sulla stampante locale. Per
impostazione predefinita, questo controllo non è installato nella stampante locale ed è necessario scaricarlo
separatamente. Questa impostazione rende il file .cab visibile sul sito Web SAP Crystal Reports .NET.

Risultati

Il controllo CrystalReportViewer a questo punto deve utilizzare la finestra di dialogo di stampa di Windows anziché
la stampa PDF. Al primo tentativo di stampare dal sito Web SAP Crystal Reports, può essere richiesto all'utente di
installare il plug-in PrintControl.cab di ActiveX.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 115
Informazioni correlate

Configurazione del file Web.Config [pagina 19]

1.4.1.2 Stampa di un report a livello di codice

È possibile configurare le opzioni di stampa e chiamare una stampante a livello di codice. A tale scopo, utilizzare la
classe PrintOptions e il metodo PrintToPrinter del modello a oggetti ReportDocument.

Se il pulsante Stampa della barra degli strumenti del controllo CrystalReportViewer soddisfa le esigenze di
stampa, non sarà necessario scrivere codice per configurare opzioni di stampa supplementari.

Tuttavia la stampa dei report tramite codice risulta utile in alcune situazioni specifiche:

● È possibile controllare quando, dove e come si verifica la stampa. Disattivare il pulsante Stampa nella barra
degli strumenti del controllo CrystalReportViewer e gestire completamente la stampa mediante il codice.
● È possibile stampare un report in background, senza visualizzarlo. L'accesso alle impostazioni di stampa
viene eseguito mediante la classe ReportDocument, per la quale è possibile gestire istanze e configurazioni
senza dovere ogni volta visualizzare il report con un controllo CrystalReportViewer.
● È possibile centralizzare tutte le operazioni di stampa sul server Web per un client Web. Utilizzare il metodo
PrintToPrinter() per inviare i lavori di stampa a una stampante collegata al server Web anziché inviarli a
una stampante locale collegata al client Web.

Nota
La stampa a livello di codice effettuata utilizzando il modello a oggetti ReportDocument è meno completa
rispetto alla struttura di pianificazione dei report fornita con SAP Crystal Reports Server o con la piattaforma
SAP BusinessObjects Business Intelligence.

Stampa a livello di codice da un'applicazione Web

Se si utilizza il metodo ReportDocument.PrintToPrinter in un'applicazione Web, il report verrà stampato dal


server Web anziché dal computer client. Per tutte le operazioni di stampa sul lato client viene utilizzato il controllo
CrystalReportViewer.

Informazioni correlate

Stampa di un report dal controllo CrystalReportViewer [pagina 112]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
116 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.1.2.1 Impostazione delle opzioni di stampa
personalizzate con il modello a oggetti ReportDocument

La classe PrintOptions consente di specificare informazioni supplementari prima di stampare un report a livello
di codice. La classe PrintOptions consente di:

● Modificare l'alimentazione della carta corrente.


● Determinare l'altezza, o la larghezza, dell'output stampato.
● Regolare i margini della pagina..
● Forzare la stampa normale o fronte/retro.
● Modificare la stampante predefinita.

Per apportare modifiche alle opzioni di stampa per un report, è necessario recuperare un oggetto PrintOptions
mediante la proprietà PrintOptions della classe ReportDocument.

Copia delle opzioni di stampa

Le opzioni di stampa possono essere copiate dai o nei valori predefiniti per il sistema locale utilizzando il metodo
PrintOptions.CopyFrom o PrintOptions.CopyTo.

Per ulteriori informazioni sulla classe PrintOptions, vedere SAP Crystal Reports .NET API Reference.

Esempio
Stampa fronte/retro forzata

In questo esempio la stampa fronte/retro viene impostata come modalità di stampa predefinita.

Private Sub enableDuplex(ByVal rd As ReportDocument)


rd.PrintOptions.PrinterDuplex = PrinterDuplex.Vertical
End Sub

private void enableDuplex(ReportDocument rd)


{
rd.PrintOptions.PrinterDuplex = PrinterDuplex.Vertical;
}

1.4.1.2.2 Stampa di un report sulla stampante predefinita

Contesto

Il metodo ReportDocument.PrintToPrinter invia un report alla stampante predefinita specificata nel file del
report. Per inviare il report alla stampante predefinita specificata sul computer client, è necessario impostare la
proprietà PrintOptions.PrinterName prima di stampare il report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 117
Procedura

1. Creare una nuova istanza della classe PrintDocument.


La stampante predefinita per il computer client è specificata nella proprietà
PrinterSettings.PrinterName di ogni nuova classe PrintDocument.

Dim localPrinter As System.Drawing.Printing.PrintDocument = New PrintDocument()

System.Drawing.Printing.PrintDocument localPrinter = new PrintDocument();

2. Impostare la proprietà PrinterName dell'oggetto ReportDocument sul valore specificato in


PrinterSettings.PrinterName.

rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName

rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName;

3. Chiamare il metodo ReportDocument.PrintToPrinter per stampare il report.

rd.PrintToPrinter(1, False, 0, 0)

rd.PrintToPrinter(1, false, 0, 0);

Questo metodo PrintToPrinter utilizza quattro parametri: il numero di copie da stampare, se fascicolare o
meno le pagine, la pagina iniziale e la pagina finale.

Suggerimento
Per stampare tutte le pagine, impostare su zero i parametri della pagina iniziale e della pagina finale.

Esempio

Private Sub printReport(ByVal rd As ReportDocument)


Dim localPrinter As System.Drawing.Printing.PrintDocument = New
PrintDocument()
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName
rd.PrintToPrinter(1, False, 0, 0)
End Sub

private void printReport(ReportDocument rd) {


System.Drawing.Printing.PrintDocument localPrinter = new PrintDocument();
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName;
rd.PrintToPrinter(1, false, 0, 0);
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
118 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.1.2.3 Stampa di un report su file

Contesto

È possibile stampare un report su un file nel sistema locale modificando le proprietà PrinterSettings
predefinite e chiamando il metodo ReportDocument.PrintToPrinter. Per salvare un report su disco per
visualizzarlo in un secondo tempo o per salvare un report in un altro formato, esportare il report anziché eseguire
la stampa su file.

Procedura

1. Creare una nuova istanza delle classi PrinterSettings e PageSettings.

Dim printerSettings As New PrinterSettings()


Dim pageSettings As New PageSettings()

PrinterSettings printerSettings = new PrinterSettings();


PageSettings pageSettings = new PageSettings();

2. Copiare le impostazioni dall'oggetto ReportDocument negli oggetti PrinterSettings e PageSettings.

rd.PrintOptions.CopyTo(printerSettings, pageSettings)

rd.PrintOptions.CopyTo(printerSettings, pageSettings);

3. Impostare la proprietà PrintToFile dell'oggetto PrinterSettings su True.

printerSettings.PrintToFile = True

printerSettings.PrintToFile = true;

4. Impostare il percorso del file di output.

printerSettings.PrintFileName = "c:\outputFile.prn"

printerSettings.PrintFileName = "c:\\outputFile.prn";

Nota
quando si stampa su file, il formato del file di output è determinato dalla stampante. La stampante può
creare file XPS, PS o in altro formato. Per ulteriori informazioni, consultare il manuale dei produttori.

5. Chiamare il metodo ReportDocument.PrintToPrinter per stampare il report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 119
Questo metodo PrintToPrinter utilizza tre parametri: le opzioni di stampa, le impostazioni di pagina e un
valore booleano che indica se il report deve essere riformattato per essere adeguato alle impostazioni della
pagina.

rd.PrintToPrinter(printerSettings, pageSettings, False)

rd.PrintToPrinter(printerSettings, pageSettings, false);

Esempio

Private Sub printToFile(ByVal rd As ReportDocument)


Dim printerSettings As New PrinterSettings()
Dim pageSettings As New PageSettings()
rd.PrintOptions.CopyTo(printerSettings, pageSettings)
printerSettings.PrintToFile = True
printerSettings.PrintFileName = "c:\outputFile.prn"
rd.PrintToPrinter(printerSettings, pageSettings, False)
End Sub

private void printToFile(ReportDocument rd)


{
PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = new PageSettings();
rd.PrintOptions.CopyTo(printerSettings, pageSettings);
printerSettings.PrintToFile = true;
printerSettings.PrintFileName = "c:\\outputFile.prn";
rd.PrintToPrinter(printerSettings, pageSettings, false);
}

Informazioni correlate

Esportazione di un report [pagina 121]

1.4.1.3 Rimozione del driver di stampante predefinito dal


report

Procedura

1. In Esplora soluzioni, fare doppio clic sul report.

2. Fare clic con il pulsante destro del mouse su un'area aperta del report e selezionare Designer Imposta
stampante .
3. Nella finestra di dialogo Imposta stampante, selezionare Nessuna stampante, quindi fare clic su OK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
120 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. Fare clic su File Salva tutto .

Informazioni correlate

Selezione dell'opzione Nessuna stampante nella finestra Imposta stampante [pagina 73]

1.4.2 Esportazione di un report

SAP Crystal Reports consente di esportare un report in diversi formati. I formati disponibili dipendono dalla
versione di SAP Crystal Reports installata e dal metodo utilizzato per esportare il report.

Un report può essere esportato in un disco, nella finestra di un browser o nel flusso di input/output come
sequenza di byte.

Classi utilizzate per l'esportazione dei report

● CrystalDecisions.CrystalReports.Engine.ReportDocument
Rappresenta un report e contiene le proprietà e i metodi per definire, formattare, caricare, esportare e
stampare il report.
● CrystalDecisions.Shared
Contiene alcune classi utilizzate per opzioni di esportazione specifiche per diversi formati di output.
● CrystalDecisions.Shared.ExportOptions
Fornisce le proprietà per il recupero e l'impostazione delle opzioni per eseguire l'esportazione del report.

Informazioni correlate

Stampa di un report [pagina 111]


finestra di dialogo Esporta [pagina 892]

1.4.2.1 Formati di esportazione disponibili

I formati di esportazione supportati da SAP Crystal Reports possono essere suddivisi in due gruppi: formati basati
su pagine e formati basati su record. I formati basati su pagine danno maggiore importanza all'aspetto e quindi
tendono a produrre un output che corrisponde con precisione al layout e alla formattazione dell'originale. I formati
basati su record si focalizzano invece sulla rappresentazione accurata dei dati, piuttosto che sul layout e la
formattazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 121
Formato Descrizione
SAP Crystal Reports (RPT) L'esportazione nel formato SAP Crystal Reports assomiglia
all'utilizzo della funzionalità Salva con nome con l'opzione
Salva dati con report selezionata. Questo formato consente di
esportare (salvare) il report con i dati correnti, senza
modificare l'originale. Se l'origine di un report è un file SAP
Crystal Reports Solo lettura (RPTR) non è possibile eseguire
esportazioni nel formato SAP Crystal Reports (RPT).

SAP Crystal Reports Solo lettura (RPTR) Consente di esportare (salvare) il report con i dati correnti,
senza modificare l'originale. I file RPTR sono report Crystal
che possono essere visualizzati con applicazioni di
visualizzazione report, ma non possono essere modificati con
l'SDK né aperti con applicazioni di progettazione report. La
definizione di un report RPTR non può essere modificata, così
come non è possibile utilizzare questo SDK per impostare il
percorso di origine dei dati di un file RPTR tramite il controller
del database. È tuttavia possibile aggiornare i dati di un
report RPTR in fase di esecuzione aggiornando il report in un
visualizzatore.

HTML 4.0 Consente di esportare il report in HTML 4.0. Questo formato


preserva il layout e la formattazione del report utilizzando
DHTML.

Microsoft Excel (97-2003) Questo formato consente di convertire il contenuto del report
in celle di Excel pagina per pagina. Il contenuto di più pagine
viene esportato nello stesso foglio di lavoro di Excel. Se un
foglio di lavoro si riempie totalmente e sono presenti altri dati
da esportare, il programma di esportazione crea più fogli di
lavoro per accogliere i dati. Se un oggetto report riguarda più
celle, il programma di esportazione unisce le celle per
rappresentare l'oggetto report. I fogli di lavoro di Microsoft
Excel possono contenere fino a 256 colonne; pertanto, gli
oggetti report, o le parti di essi, aggiunti a celle oltre il limite di
256 colonne non vengono esportati. Questo formato di
esportazione conserva la maggior parte della formattazione,
ma non prevede l'esportazione di oggetti riga e casella dal
report.

Microsoft Excel (97-2003) Solo dati Microsoft Excel Solo dati, come suggerisce il nome, è un
formato basato su record destinato alla rappresentazione
accurata dei dati, che prevede tuttavia anche l'esportazione
della maggior parte della formattazione. A differenza del
formato Microsoft Excel, Microsoft Excel Solo dati non
prevede l'unione di celle. Ogni oggetto viene aggiunto a una
sola cella. Questo formato consente di esportare anche
determinati tipi di riepiloghi in report Crystal come funzioni di
Excel. I riepiloghi supportati sono SUM, AVERAGE, COUNT,
MIN e MAX.

Microsoft Excel 2007 (XLSX) Solo dati Il formato XLSX ha le stesse proprietà di Microsoft Excel
(97-2003) Solo dati, ma consente di utilizzare fino a 16.385
colonne e 1.048.576 di righe in un sola cartella di lavoro.

Microsoft Word (97-2003) Produce un file RTF (Rich Text Format) che contiene oggetti
di testo e disegno per rappresentare gli oggetti report. In
questo formato di esportazione viene conservata quasi tutta

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
122 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Formato Descrizione
la formattazione. Gli oggetti di testo non possono, però,
essere posizionati oltre il bordo sinistro della pagina. Quindi,
se nel report sono presenti oggetti di testo posizionati prima
del bordo sinistro dell'area di stampa, verranno spostati
verso destra (questo comportamento è particolarmente
evidente nei report con ampie pagine).

Microsoft Word (97-2003) - Modificabile Microsoft Word - Modificabile è diverso dal formato Microsoft
Word: si tratta infatti di un formato basato su pagine in cui
però non vengono conservati tutto il layout e la formattazione
nell'output. Questo formato prevede la conversione di tutto il
contenuto degli oggetti report in righe di testo. A differenza di
Microsoft Word, questo formato non prevede l'utilizzo di
riquadri di testo. La formattazione del testo viene conservata,
ma gli attributi, quali il colore di sfondo, il motivo di
riempimento e così via, potrebbero non esserlo. Tutte le
immagini del report sono in linea con il contenuto testuale e,
quindi, si spostano automaticamente per contenere testo
quando il documento viene modificato in Microsoft Word.
Questo formato non prevede l'esportazione di oggetti riga e
casella dal report. I campi speciali Numero di pagina e Pagina
N di M non funzionano quando vengono esportati in questo
formato.

ODBC ODBC è un formato per lo scambio dei dati basato su record.


Quando si utilizza questo formato, è possibile esportare i dati
del report in qualsiasi database compatibile con ODBC.

PDF I documenti esportati sono destinati alla stampa e alla


ridistribuzione. Il formato PDF prevede l'esportazione sia del
layout che della formattazione in modo coerente con
l'aspetto del report nella scheda Anteprima. Il formato PDF
incorpora i caratteri TrueType visualizzati nel documento
(non sono invece supportati i caratteri non TrueType).
Questo formato di esportazione non supporta la tecnologia
Microsoft di collegamento dei caratteri, utilizzata per
assicurare il supporto di alcuni set di caratteri estesi come
Cinese (Hong Kong). I caratteri utilizzati nel report devono
quindi contenere tutti i glifi necessari. Per i collegamenti
ipertestuali sono supportati i seguenti tipi di URI: http, https e
mailto.

Stile record - Colonne con spazi Consente di esportare i dati del report come testo. Questo
formato prevede l'inserimento di spazi tra le colonne.

Stile record - Colonne senza spazi Consente di esportare i dati del report come testo. Non
prevede l'inserimento di spazi tra le colonne.

Definizione report Il formato Definizione report consente di esportare il report


come file di testo contenente una breve descrizione della
visualizzazione struttura del report. Questo formato viene
mantenuto solo per la compatibilità con SAP Crystal Reports
5.0.

Rich Text Format (RTF) Produce un file RTF che contiene oggetti di testo e disegno.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 123
Formato Descrizione
Valori separati da virgola (CSV) Valori separati da virgola è un formato per lo scambio di dati
basato su record. Consente l'esportazione del contenuto
degli oggetti report come serie di valori separati da caratteri
di separazione e delimitazione specificati dall'utente.
Quando, per separare i campi, viene utilizzata una virgola (,),
il formato prende il nome di Valori separati da virgola (CSV),
un formato molto noto tra gli utenti di Microsoft Excel.

Testo separato da tabulazione (TTX) Preserva il layout del report ma con alcune differenze: gli
oggetti di testo su più righe vengono esportati in una sola
riga, tutti i valori stringa vengono racchiusi tra virgolette
doppie ("") e i valori stessi vengono separati da tabulazioni. I
file TTX possono essere aperti in Microsoft Excel.

Testo Genera ouput in testo normale (non conserva la


formattazione).

XML Formato utilizzato principalmente per lo scambio di dati.


Produce output XML mediante lo schema XML di SAP Crystal
Reports.

Scelta di un formato di esportazione

I formati disponibili dipendono dalla versione di SAP Crystal Reports installata e dal metodo utilizzato per
esportare il report. Il controllo CrystalReportViewer offre la maggior parte dei formati di esportazione per
impostazione predefinita. Alcuni formati sono disponibili solo quando si utilizza l'SDK di SAP Crystal Reports .NET
o l'applicazione autonoma SAP Crystal Reports Designer.

Formato Controllo SDK di SAP Crystal SAP Crystal Reports


CrystalReportViewer Reports .NET Designer
SAP Crystal Reports (RPT) x x x

SAP Crystal Reports Solo x x x


lettura (RPTR)

HTML 4.0 x x

Microsoft Excel (97-2003) x x x

Microsoft Excel (97-2003) x x x


Solo dati

Microsoft Excel 2007(XLSX) x x x


Solo dati

Microsoft Word (97-2003) x x x

Microsoft Word (97-2003) - x x x


Modificabile

ODBC x

PDF x x x

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
124 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Formato Controllo SDK di SAP Crystal SAP Crystal Reports
CrystalReportViewer Reports .NET Designer
Stile record - Colonne con x
spazi

Stile record - Colonne senza x


spazi

Definizione report x

Rich Text Format (RTF) x x x

Valori separati da virgola x x


(CSV)

Testo separato da x x
tabulazione (TTX)

Testo x x

XML x x x

1.4.2.2 Esportazione di un report dal controllo


CrystalReportViewer

Il modo più semplice per aggiungere funzioni di esportazione all'applicazione SAP Crystal Reports .NET è
utilizzare il pulsante di esportazione del controllo CrystalReportViewer. Il pulsante Esporta è attivato sulla barra
degli strumenti di CrystalReportViewer per impostazione predefinita.

Per visualizzare la finestra di dialogo di esportazione predefinita, è sufficiente fare clic sul pulsante Esporta. Le
opzioni di esportazione disponibili per l'utente sono determinate in base ai driver inclusi nella distribuzione.

Disattivazione della funzionalità di esportazione dei report dal visualizzatore

L'esportazione è attivata in tutte le applicazioni SAP Crystal Reports per impostazione predefinita. È possibile
limitare l'esportazione in due modi:

● Rimuovere il pulsante Esporta dal visualizzatore.


Sarà comunque possibile utilizzare l'SDK per esportare un report anche se il pulsante di esportazione non è
visibile.
● Disattivazione di driver di esportazione specifici nei moduli di unione di SAP Crystal Reports.
Quando si distribuisce un'applicazione SAP Crystal Reports a un computer di destinazione, è necessario
includere il runtime di SAP Crystal Reports sotto forma di MSI o modulo di unione. Se si sceglie di utilizzare i
moduli di unione per la distribuzione, è possibile specificare i driver di esportazione da includere o escludere.

Informazioni correlate

finestra di dialogo Esporta [pagina 892]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 125
1.4.2.2.1 Rimozione del pulsante di esportazione dal
controllo CrystalReportViewer

Contesto

Sarà comunque possibile utilizzare l'SDK per esportare un report anche se il pulsante di esportazione non è
visibile.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione.


2. Impostare su False la proprietà che controlla la visibilità del pulsante di esportazione.

○ Per un'applicazione Windows, impostare la proprietà CrystalReportViewer.ShowExportButton su


False.
○ Per un sito Web, impostare la proprietà CrystalReportViewer.HasExportButton su False.

Risultati

Quando si esegue l'applicazione, il pulsante di esportazione non deve essere più visibile sul controllo
CrystalReportViewer.

Esempio
Disattivazione del pulsante di esportazione in un'applicazione Web

Private Sub ConfigureCrystalReports()


CrystalReportViewer1.HasExportButton = False
End Sub

private void ConfigureCrystalReports()


{
InitializeComponent();
crystalReportViewer1.HasExportButton = false;
}

1.4.2.3 Esportazione di un report a livello di codice

L'SDK di SAP Crystal Reports .NET consente di esportare un report a livello di codice e di usufruire di un maggior
numero di formati e di destinazioni rispetto al controllo CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
126 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Se il pulsante Esporta della barra degli strumenti del controllo CrystalReportViewer soddisfa le esigenze di
esportazione, non è necessario scrivere codice per configurare ulteriori opzioni di esportazione.

Tuttavia la stampa dei report tramite codice risulta utile in alcune situazioni specifiche:

● È possibile controllare quando, dove e come si verifica l'esportazione. Disattivare il pulsante Esporta nella
barra degli strumenti del controllo CrystalReportViewer e gestire completamente l'esportazione mediante il
codice.
● È possibile esportare un report in background, senza visualizzarlo.
● Il report può essere esportato nella risposta HTTP o nel flusso. Il controllo CrystalReportViewer supporta solo
l'esportazione di un report in un disco.

Esistono quattro metodi per esportare un report. Per tutti i metodi l'accesso viene eseguito attraverso la classe
ReportDocument.

● ReportDocument.Export
● ReportDocument.ExportToHTTPResponse
● ReportDocument.ExportToDisk
● ReportDocument.ExportToStream

Il metodo più generale, ReportDocument.Export, consente di esportare il report in qualsiasi formato o percorso
supportato dall'SDK di SAP Crystal Reports .NET. Per utilizzare il metodo ReportDocument.Export è
necessario innanzitutto impostare alcuni parametri mediante la classe ExportOptions.

Ciascuno degli altri tre metodi consente di esportare con facilità un report in un modo particolare. L'utilizzo degli
altri metodi normalmente riduce la quantità di codice ma offre un controllo più limitato sul file generato.

1.4.2.3.1 Impostazione di opzioni di esportazione


personalizzate

Per utilizzare il metodo ReportDocument.Export è necessario innanzitutto impostare alcuni parametri


mediante la classe ExportOptions. Questi parametri controllano il percorso di esportazione, il formato di
esportazione e diverse opzioni di stile specifiche dell'output.

Per esportare un report utilizzando il metodo ReportDocument.Export è necessario impostare quattro opzioni.

Opzione di esportazione Descrizione


ExportDestinationType Determina come esportare il report.

ExportDestinationOptions Determina il percorso e il nome del file risultante.

ExportFormatOptions Determina opzioni di formattazione specifiche dell'output.

ExportFormatType Determina il tipo di file di destinazione.

Impostazione della proprietà ExportDestinationType

La proprietà ExportOptions.ExportDestinationType determina come esportare il report. I valori disponibili


sono memorizzati nell'enumerazione ExportDestinationType. Il valore più comune è

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 127
ExportDestinationType.DiskFile. Tra gli altri valori supportati sono inclusi ExchangeFolder,
MicrosoftMail e NoDestination.

Impostazione della proprietà ExportDestinationOptions

La proprietà ExportOptions.ExportDestinationOptions imposta opzioni specifiche del percorso di


destinazione del file di output. Il valore della proprietà ExportDestinationOptions dipende da quello della
proprietà ExportOptions.ExportDestinationType.

ExportDestinationType ExportDestinationOptions Imposta i seguenti valori


DiskFile Un oggetto ● Imposta il nome e il percorso del file
DiskFileDestinationOptions di output.

ExchangeFolder Un oggetto ● Profilo utente e password per il


ExchangeFolderDestinationOp server Exchange.
tions ● Percorso della cartella di Exchange.

MicrosoftMail Un oggetto ● Nome utente e password


MicrosoftMailDestinationOpt dell'account di posta elettronica.
ions ● Oggetto e corpo del messaggio di
posta elettronica.
● Destinatari del messaggio di posta
elettronica.

Impostazione della proprietà ExportFormatType

Questa proprietà determina il formato del file di output. I valori disponibili sono memorizzati nell'enumerazione
ExportFormatType. Le opzioni disponibili sono determinate dalla versione di SAP Crystal Reports in uso.

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio supporta le opzioni di esportazione
seguenti:

● SAP Crystal Reports (RPT)


● SAP Crystal Reports Solo lettura (RPTR)
● PDF
● Rich Text Format (RTF)
● Microsoft Word (97-2003)
● Microsoft Excel (97-2003)
● Microsoft Excel (97-2003) Solo dati
● Microsoft Excel (2007) Solo dati
● HTML 4.0
● Valori separati da virgola (CSV)
● Microsoft Word - Modificabile (RTF)
● Testo separato da tabulazione (TTX)
● Testo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
128 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Impostazione della proprietà ExportFormatOptions

La proprietà ExportOptions.ExportFormatOptions imposta opzioni specifiche del formato del file di output.
Il valore della proprietà ExportFormatOptions dipende da quello della proprietà
ExportOptions.ExportFormatType.

ExportFormatOptions Formato di esportazione Imposta i seguenti valori


Un oggetto ExcelFormatOptions ● Microsoft Excel (97-2003) ● Prima e ultima pagina del report da
● Microsoft Excel (97-2003) Solo dati esportare.
● Larghezza predefinita della
colonna.
● Se includere o meno intestazioni di
colonna.

Un oggetto HTMLFormatOptions ● HTML 4.0 ● Prima e ultima pagina del report da


esportare.
● Nome della pagina HTML
predefinita.
● Nome della cartella contenente i file
di supporto necessari per l'output
HTML, ad esempio le immagini
utilizzate nel report.

Un oggetto ● PDF ● Prima e ultima pagina del report da


PdfRtfWordFormatOptions ● Rich Text Format (RTF) esportare.
● Microsoft Word (97-2003)
● Microsoft Word - Modificabile (RTF)

Esempio
Impostazione delle opzioni di esportazione per Microsoft Excel - Solo dati

Nel seguente esempio vengono impostate le opzioni di esportazione necessarie per esportare un report nel
formato “Microsoft Excel - Solo dati”.

Il metodo crea un'istanza della nuova classe DiskFileDestinationOptions e assegna un percorso file alla
proprietà DiskFileDestinationOptions.DiskFileName. Per esportare il file sul disco, è necessario
impostare la proprietà ExportOptions.ExportDestinationType su
ExportDestinationType.DiskFile e la proprietà ExportOptions.DestinationOptions su un oggetto
DiskFileDestinationOptions valido.

Se non è richiesta una formattazione speciale, ExportOptions.ExportFormatOptions può essere


impostata su null.

Private Function ConfigureExportToExcelRecord(ByVal filepath As String) As


ExportOptions
Dim exOptions As New ExportOptions()

Dim dfDestinationOptions As New DiskFileDestinationOptions()


dfDestinationOptions.DiskFileName = filepath

exOptions.ExportDestinationType = ExportDestinationType.DiskFile
exOptions.DestinationOptions = dfDestinationOptions
exOptions.ExportFormatType = ExportFormatType.ExcelRecord
exOptions.ExportFormatOptions = Nothing

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 129
Return exOptions
End Function

private ExportOptions ConfigureExportToExcelRecord(String filepath)


{
ExportOptions exOptions = new ExportOptions();

DiskFileDestinationOptions dfDestinationOptions = new


DiskFileDestinationOptions();
dfDestinationOptions.DiskFileName = filepath;

exOptions.ExportDestinationType = ExportDestinationType.DiskFile;
exOptions.DestinationOptions = dfDestinationOptions;
exOptions.ExportFormatType = ExportFormatType.ExcelRecord;
exOptions.ExportFormatOptions = null;
return exOptions;
}

Esempio
Impostazione delle opzioni di esportazione per l'output HTML 4.0

Nel seguente esempio vengono impostate le opzioni di esportazione necessarie per esportare un report nel
formato “HTML 4.0”.

Quando si esegue un'esportazione in formato HTML, non è necessario creare un'istanza della classe
DiskFileDestinationOptions. Queste opzioni vengono invece impostate tramite la classe
HTMLFormatOptions.

Questo metodo crea un'istanza della nuova classe HTMLFormatOptions e assegna il nome file predefinito alla
proprietà HTMLFormatOptions.HTMLFileName e il percorso di esportazione predefinito alla proprietà
HTMLFormatOptions.HTMLBaseFolderName. La cartella di base contiene ciascuna delle pagine HTML
esportate dal report, nonché tutte le immagini necessarie.

Impostare la proprietà ExportOptions.ExportFormatOptions su un oggetto HTMLFormatOptions valido.

Private Function ConfigureExportToHtml40(ByVal exportpath As String) As


ExportOptions
Dim exOptions As New ExportOptions()

Dim html40FormatOptions As New HTMLFormatOptions()


html40FormatOptions.HTMLBaseFolderName = exportpath
html40FormatOptions.HTMLFileName = "default.html"
html40FormatOptions.HTMLEnableSeparatedPages = True
html40FormatOptions.HTMLHasPageNavigator = True

exOptions.ExportFormatType = ExportFormatType.HTML40
exOptions.ExportFormatOptions = html40FormatOptions

Return exOptions
End Function

private ExportOptions ConfigureExportToHtml40(String exportpath)


{
ExportOptions exOptions = new ExportOptions();

HTMLFormatOptions html40FormatOptions = new HTMLFormatOptions();


html40FormatOptions.HTMLBaseFolderName = exportpath;
html40FormatOptions.HTMLFileName = "default.html";
html40FormatOptions.HTMLEnableSeparatedPages = true;
html40FormatOptions.HTMLHasPageNavigator = true;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
130 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
exOptions.ExportFormatType = ExportFormatType.HTML40;
exOptions.ExportFormatOptions = html40FormatOptions;

return exOptions;
}

Informazioni correlate

Formati di esportazione disponibili [pagina 121]

1.4.2.3.2 Esportazione su disco con opzioni personalizzate

Contesto

Illustra inoltre la procedura di esportazione di un report Crystal in formato Microsoft Word. L'SDK di SAP Crystal
Reports 2008 consente di esportare i report in un formato specifico, ad esempio Excel, PDF o RTF. Il modello a
oggetti ReportDocument consente di esportare i report in vari formati.

In questo esempio viene impostata la proprietà ReportDocument.ExportOptions e si utilizza il metodo


ReportDocument.Export per esportare il report.

Procedura

1. Creare un metodo che utilizzi un oggetto ReportDocument e un percorso file come parametri.
2. Creare una nuova istanza della classe DiskFileDestinationOptions e impostare il valore della proprietà
DiskFileDestinationOptions.DiskFileName sul percorso del file di output.

Dim dfDestinationOptions As New DiskFileDestinationOptions()


dfDestinationOptions.DiskFileName = filepath

DiskFileDestinationOptions dfDestinationOptions = new


DiskFileDestinationOptions();
dfDestinationOptions.DiskFileName = filepath;

3. Creare una nuova istanza della classe ExportOptions e impostare le proprietà richieste.
a) Impostare la proprietà ExportDestinationType su ExportDestinationType.DiskFile.
b) Impostare la proprietà ExportDestinationOptions sull'oggetto DiskFileDestinationOptions.
c) Impostare la proprietà ExportFormatType su ExportFormatType.WordForWindows.
d) Se non è richiesta una formattazione speciale, ExportOptions.ExportFormatOptions può essere
impostata su null.

Dim wordExportOptions As New ExportOptions()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 131
wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
wordExportOptions.ExportDestinationOptions = dfDestinationOptions
wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows
wordExportOptions.ExportFormatOptions = Nothing

ExportOptions wordExportOptions = new ExportOptions();


wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
wordExportOptions.ExportDestinationOptions = dfDestinationOptions;
wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows;
wordExportOptions.ExportFormatOptions = null;

4. Chiamare il metodo Export e passare l'oggetto ExportOptions come parametro.

Esempio

Private Sub ExportToWord_RD(ByVal rd As ReportDocument, ByVal filepath As String)


Dim dfDestinationOptions As New DiskFileDestinationOptions()
dfDestinationOptions.DiskFileName = filepath

Dim wordExportOptions As New ExportOptions()


wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
wordExportOptions.ExportDestinationOptions = dfDestinationOptions
wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows
wordExportOptions.ExportFormatOptions = Nothing

rd.Export(wordExportOptions)
End Sub

private void ExportToWord_RD(ReportDocument rd, String filepath)


{
DiskFileDestinationOptions dfDestinationOptions = new
DiskFileDestinationOptions();
dfDestinationOptions.DiskFileName = filepath;

ExportOptions wordExportOptions = new ExportOptions();


wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
wordExportOptions.ExportDestinationOptions = dfDestinationOptions;
wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows;
wordExportOptions.ExportFormatOptions = null;

rd.Export(wordExportOptions);
}

1.4.2.3.3 Esportazione su disco come PDF mediante il


metodo ReportDocument.ExportToDisk

Contesto

Questo esempio illustra come esportare un report Crystal nel formato PDF. L'SDK di SAP Crystal Reports 2008
consente di esportare i report in un formato specifico, ad esempio Excel, PDF o RTF. Il modello a oggetti
ReportDocument consente di esportare i report in vari formati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
132 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Creare un metodo che utilizzi un oggetto ReportDocument come parametro.


2. Specificare una directory di output e verificare che esista. Se la directory non esiste, crearla.
3. Chiamare il metodo ExportToDisk e specificare il formato di output e il nome del file di output.

Esempio

Private Shared Sub ExportToPDF_RD(ByVal rd As ReportDocument)


Dim exportPath As String = "C:\\Exported\\"
If Not System.IO.Directory.Exists(exportPath) Then
System.IO.Directory.CreateDirectory(exportPath)
End If
rd.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath +
"PortableDoc.pdf")
End Sub

private static void ExportToPDF_RD(ReportDocument rd) {


String exportPath = "C:\\Exported\\";
if (!System.IO.Directory.Exists(exportPath))
{
System.IO.Directory.CreateDirectory(exportPath);
}
rd.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath +
"PortableDoc.pdf");
}

Informazioni correlate

Modello a oggetti ReportDocument [pagina 36]

1.4.3 Filtro dei dati con parametri o formule

SAP Crystal Reports consente di personalizzare i dati contenuti nel report mediante l'uso dei parametri del report
o la modifica della formula di selezione.

Un parametro è una variabile del report impostata dall'utente e applicata quando il report viene aggiornato.
Quando si utilizza un parametro in una formula di selezione, è possibile modificare i dati inclusi nel report in fase di
esecuzione. I parametri possono inoltre essere utilizzati per personalizzare l'aspetto del report.

Le formule di selezione consentono di definire e filtrare i record e i gruppi che appaiono in un report. Modificando
la formula di selezione, si modifica la query utilizzata per recuperare i dati dall'origine dati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 133
Classi utilizzate per impostare parametri o formule

● CrystalDecisions.CrystalReports.Engine.DataDefinition
Contiene tutte le informazioni relative alla manipolazione dei dati basata sull'origine dati del report.
● CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition
Rappresenta un campo di parametro del report. Questo oggetto fornisce proprietà e metodi per il recupero
delle informazioni e l'impostazione delle opzioni per un campo di parametro di un report.
● CrystalDecisions.Web.Parameter
Fornisce proprietà per la modifica o il recupero di informazioni su un parametro in un sito Web.

1.4.3.1 Parametri

Un parametro è una variabile del report impostata dall'utente e applicata quando il report viene aggiornato.
Esistono molti tipi di parametri e l'impostazione a livello di codice dei diversi tipi può implicare comportamenti ed
esperienze differenti per gli utenti dell'applicazione.

Procedure ottimali per l'utilizzo dei parametri

Per evitare errori di runtime quando si impostano i parametri a livello di codice, osservare quanto segue:

● I valori di un parametro devono essere dello stesso tipo del parametro.


● Se per il parametro si utilizza una maschera di modifica, i valori del parametro devono rispettare la maschera.
● Per la lettura dei valori del parametro, accertarsi di conoscere i tipi di valori letti, ovvero di sapere se sono
discreti o di intervallo.
● Impostare il tipo di limite su un valore di intervallo prima di aggiungerlo a un parametro.
● Assicurarsi che il limite superiore di un intervallo di valori sia maggiore del limite inferiore.

Informazioni correlate

Impostazione dei parametri [pagina 689]


Parametri di dati e parametri non di dati [pagina 692]
Progettazione dei campi di parametro [pagina 691]

1.4.3.1.1 Proprietà dei valori dei parametri

I parametri supportano molte più funzionalità rispetto a quelle menzionate qui. Per un elenco completo delle
funzionalità, vedere la classe ParameterField.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
134 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Parametri di valori singoli o multipli

Se un parametro supporta valori multipli, è possibile selezionare più di un valore per un parametro quando il
report viene aggiornato. Se un parametro supporta valori singoli, è possibile selezionare solo un valore per un
parametro quando il report viene aggiornato. Se un parametro supporta più valori, passa da una singola variabile
a una matrice contenente molti valori.

Valori discreti o di intervallo dei parametri

I valori dei parametri discreti rappresentano un solo valore, ad esempio 1, "Jill", 3.141 o True. I valori di intervallo
rappresentano un intervallo particolare di valori da un punto a un altro, ad esempio [1..45], (4..6],
["Monday","Thursday"]. Il valore del limite inferiore dell'intervallo deve essere più piccolo del limite superiore.

Inoltre, i parametri possono essere sia discreti che di intervallo se il parametro supporta i valori multipli.

Valori predefiniti

È possibile specificare i valori predefiniti per un parametro e forzare la selezione di uno o molti valori oppure
fornire valori del parametro predefiniti ma consentire all'utente di immettere valori personalizzati. I valori
predefiniti sono memorizzati nella proprietà DefaultValues dell'oggetto ParameterField. Dopo che l'utente
ha selezionato un insieme di valori per i parametri del report, tali valori vengono memorizzati nella proprietà
CurrentValues.

Nota
i valori predefiniti possono essere solo discreti.

Valori facoltativi dei parametri

Se un valore del parametro viene impostato come facoltativo, alla richiesta di immissione di un valore l'operazione
non verrà forzata.

Valori statici o dinamici dei parametri

I valori statici dei parametri sono memorizzati nel report. I valori dinamici dei parametri vengono recuperati da
un'origine dati esterna al report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 135
Valori dei parametri con sovrapposizione dinamica

Un prompt dinamico può includere un elenco di valori sovrapposti che porta l'utente a seguire una sequenza di
prompt dinamici per determinare un valore finale per il parametro. Ad esempio, è possibile che agli utenti venga
richiesto prima di tutto di selezionare un paese prima che vengano visualizzate le opzioni relative all'area.

Valori interattivi dei parametri

I valori dei parametri possono essere manipolati in fase di esecuzione utilizzando la proprietà
CrystalReportViewer.ViewTimeSelectionFormula. La formula di selezione del tempo di visualizzazione
viene applicata dopo l'applicazione dei risultati delle formule di selezione salvate con il report.

Tipi di valori dei parametri

Un campo di parametro deve contenere un determinato valore ParameterType.

Un valore del parametro deve corrispondere a uno dei seguenti tipi di parametro:

● ReportParameter
● StoredProcedureParameter
● QueryParameter

1.4.3.1.2 Riquadro del parametro

Il riquadro del parametro consente di formattare e filtrare in modo interattivo i dati del report.

Il nuovo riquadro del parametro di SAP Crystal Reports 2008 consente agli utenti di impostare parametri statici e
dinamici e di aggiornare il report. Gli utenti possono inoltre formattare e filtrare i dati del report in modo
interattivo. Il riquadro del parametro viene visualizzato dal riquadro degli strumenti. Per accedere al riquadro dei
parametri, fare clic sul pulsante Parametri sulla barra degli strumenti o utilizzare il seguente codice:

myCrystalReportViewer.ToolPanelView = ToolPanelViewType.ParameterPanel

crystalReportViewer.ToolPanelView = ToolPanelViewType.ParameterPanel;

Per nascondere il pulsante Parametri utilizzare il seguente codice:

myCrystalReportViewer.ShowParameterPanelButton = False

crystalReportViewer.ShowParameterPanelButton = false;

Nel riquadro vengono visualizzati tutti i parametri impostati su Modificabile o Sola lettura. Se un parametro viene
impostato su Modificabile, è possibile aggiungere, eliminare o modificare i valori del parametro facendo clic sul
pulsante Mostra la finestra di dialogo Avanzate. Se i valori del parametro vengono modificati ma non applicati,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
136 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
viene visualizzato un asterisco accanto al campo del parametro per indicare che i valori non sono stati applicati al
report.

Nota
se il parametro accetta i valori personalizzati, è possibile modificare direttamente il valore del parametro nella
casella di testo nel riquadro del parametro.

Verrà visualizzata un'icona di database accanto ai parametri dei dati. Quando si modifica il valore di un parametro
di dati, il report viene aggiornato e accede al database per apportare le modifiche corrispondenti. Se si modifica il
valore di un parametro non di dati, il report viene formattato o filtrato in base ai dati salvati nel report. Il report non
accede al database.

Informazioni correlate

Filtro dei dati del report con le formule di selezione [pagina 145]

1.4.3.1.3 Impostazione di parametri nella pagina ASPX

Quando si crea un report Crystal, la selezione dei dati per il report è controllata dai criteri "where". Per questo tipo
di criteri può essere utilizzato un valore hardcoded. Se è tuttavia necessario che il valore sia dinamico, viene
creato un parametro, al quale viene assegnata la clausola "where". I parametri vengono gestiti in maniera
differente, a seconda se il processo di sviluppo viene eseguito con un modello di codifica standard o un modello
basato su codice ridotto.

Quando si sviluppa con un modello di codice, Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio accede ai parametri e interagisce con gli stessi mediante un gruppo di classi correlate ai parametri
nell'SDK di SAP Crystal Reports.

Nel secondo caso, ossia quando si utilizza il modello per lo sviluppo di applicazioni basato su tag, il controllo
CrystalReportSource accede ai parametri e interagisce con essi mediante la struttura Parameters. La
struttura Parameters è stata introdotta in ASP.NET versione 2.0. Consente di assegnare i parametri a qualsiasi
controllo DataSource (in questo caso un controllo CrystalReportSource). Questi parametri possono essere
assegnati al report principale e a qualsiasi sottoreport, qualora fossero richiesti parametri.

Un parametro viene assegnato da uno dei tipi seguenti:

● ControlParameter
● QueryStringParameter
● SessionParameter
● FormParameter
● CookieParameter

Tale assegnazione di parametri consente di creare una soluzione basata su codice ridotto, in cui i parametri di un
report possono essere impostati in base a selezioni effettuate in controlli DropDownList o di altro tipo, valori della
stringa di query di un URL, valori recuperati da Session, valori inviati da campi form o valori provenienti da un
Cookie.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 137
Impostazione dei parametri direttamente nell'XML

In XML il tag <Parameters> è nidificato all'interno del tag <CrystalReportSource>. Nel tag <Parameters>
nidificato è possibile configurare collegamenti a un parametro predefinito o a un parametro di un controllo.

Esempio
Impostazione di un parametro nell'XML

In questo esempio il valore predefinito del parametro City viene impostato su Tokyo.

<CR:CrystalReportSource ID="CrystalReportSource1"
runat="server">
<Report FileName="SalesReport.rpt">
<Parameters>
<CR:Parameter ConvertEmptyStringToNull="False"
DefaultValue="Tokyo" Name="City" ReportName="" />
</Parameters>
</Report>
</CR:CrystalReportSource>

Esempio
Collegamento di un parametro a un controllo

È possibile collegare il valore di un parametro a un altro controllo all'interno del Web Form. Nel seguente
esempio, il valore di un parametro denominato City viene impostato sul valore di un controllo casella di testo
denominato Location.

<CR:CrystalReportSource ID="CrystalReportSource1"
runat="server">
<Report FileName="SalesReport.rpt">
<Parameters>
<CR:ControlParameter ControlID="Location"
ConvertEmptyStringToNull="False"
Name="city" PropertyName="Text" ReportName="" />
</Parameters>
</Report>
</CR:CrystalReportSource>

Informazioni correlate

Impostazione dei parametri [pagina 689]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
138 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.3.1.3.1 Accesso alla finestra di dialogo Editor
dell'insieme dei parametri

Contesto

I parametri vengono configurati nella finestra di dialogo Editor dell'insieme dei parametri.

Procedura

1. Selezionare il controllo CrystalReportSource.


2. Da Proprietà, espandere Report.
3. Nella proprietà Report, fare clic sui puntini di sospensione (...) a destra di Parameters (Insieme).
4. Nella finestra di dialogo Editor dell'insieme dei parametri immettere uno o più parametri per il report principale
e per gli eventuali sottoreport.

1.4.3.1.4 Impostazione di parametri discreti in un report

In questo esempio i parametri vengono impostati su valori specifici utilizzati dal report di esempio.

Prerequisiti

È necessario utilizzare un report con un campo di parametro già specificato.

Contesto

Il modello a oggetti ReportDocument consente di impostare i valori per i parametri già esistenti in un report. Per
accedere ai parametri, utilizzare il nome o un valore numerico di indice. Per aggiungere un nuovo parametro a un
report, è necessario utilizzare il modello a oggetti ReportClientDocument.

Procedura

1. Creare una nuova costante di stringa, PARAMETER_FIELD_NAME, e impostarne il valore sul nome di un
parametro esistente.
2. Creare un'istanza della classe ArrayList.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 139
3. Per ogni valore da assegnare al parametro, aggiungere un valore all'istanza di ArrayList.
4. Chiamare il metodo ReportDocument.SetParameterValue e passare il nome del parametro e l'elenco dei
valori.
Il metodo ReportDocument.SetParameterValue consente di impostare il valore corrente di un campo di
parametro. Il valore può essere un valore primitive, ParameterValue, una matrice di altro tipo o un insieme
ParameterValues.

Esempio
Impostazione di parametri discreti in un report

Private Sub SettingParameters_RD(ByVal TestReport As ReportDocument)


Dim PARAMETER_FIELD_NAME As String = "Country"
Dim countries As New ArrayList()
countries.Add("Canada")
countries.Add("USA")
TestReport.SetParameterValue(PARAMETER_FIELD_NAME, countries.ToArray())
crystalReportViewer.ReportSource = TestReport
End Sub

private void SettingParameters_RD(ReportDocument TestReport)


{
string PARAMETER_FIELD_NAME = "Country";
ArrayList countries = new ArrayList();
countries.Add("Canada");
countries.Add("USA");
TestReport.SetParameterValue(PARAMETER_FIELD_NAME, countries.ToArray());
crystalReportViewer.ReportSource = TestReport;
}

Passi successivi

Un sito Web Crystal Reports può richiedere ulteriore codice per gestire lo stato della sessione tra le visualizzazioni
di pagina.

Informazioni correlate

Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334]
In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a
un report a livello di codice in fase di esecuzione.

Esercitazione: Lettura e impostazione di parametri discreti [pagina 381]


In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
140 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.3.1.5 Impostazione di parametri discreti in un
sottoreport

Nel seguente esempio, un parametro di un sottoreport viene impostato su un valore specifico.

Prerequisiti

È necessario utilizzare un report con un campo di parametro già specificato.

Contesto

Per impostare un valore discreto in un report, è necessario chiamare il metodo


ReportDocument.SetParameterValue con il nome del parametro e il valore del parametro. Questo metodo
non è supportato per i sottoreport. Eseguire l'accesso al parametro nel sottoreport mediante l'insieme
ParameterFields del report principale e impostarlo su un nuovo oggetto ParameterDiscreteValue.

Procedura

1. Creare un'istanza della classe ParameterDiscreteValue.

Suggerimento
utilizzare la classe ParameterRangeValue per i parametri di intervallo.

2. Impostare la proprietà ParameterDiscreteValue.Value sul nuovo valore del parametro.

Dim dv As New ParameterDiscreteValue()


dv.Value = parameterValue

ParameterDiscreteValue dv = new ParameterDiscreteValue();


dv.Value = parameterValue;

3. Creare un'istanza dell'insieme ParameterFields e assegnare alla stessa il valore della proprietà
ReportDocument.ParameterFields del report principale.

Dim parameterFields As ParameterFields = testReport.ParameterFields

ParameterFields parameterFields = testReport.ParameterFields;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 141
4. Accedere al parametro nel sottoreport mediante un indice con nome dell'istanza ParameterFields.

Dim parameterField As ParameterField = parameterFields(parameterFieldName,


subreportName)

ParameterField parameterField = parameterFields[parameterFieldName,


subreportName];

L'insieme ParameterFields richiede due indici, uno per il nome del parametro e uno per il nome del
sottoreport.
5. Cancellare il valore presente nel campo di parametro e aggiungere l'oggetto ParameterDiscreteValue creato
in precedenza.

parameterField.CurrentValues.Clear()
parameterField.CurrentValues.Add(dv)

parameterField.CurrentValues.Clear();
parameterField.CurrentValues.Add(dv);

6. Collegare il report a un controllo CrystalReportViewer.

Nota
impostare ParameterFields prima della proprietà ReportSource del controllo CrystalReportViewer, in
caso contrario il controllo richiederà le informazioni sul parametro.

Esempio
Impostazione di parametri discreti in un sottoreport

Private Sub SubreportSettingParameters_RD(ByVal testReport As ReportDocument,


ByVal subreportName As String, ByVal parameterFieldName As String, ByVal
parameterValue As String)
Dim dv As New ParameterDiscreteValue()
dv.Value = parameterValue

Dim parameterFields As ParameterFields = testReport.ParameterFields


Dim parameterField As ParameterField = parameterFields(parameterFieldName,
subreportName)
parameterField.CurrentValues.Clear()
parameterField.CurrentValues.Add(dv)
crystalReportViewer1.ReportSource = TestReport
End Sub

private void SubreportSettingParameters_RD(ReportDocument testReport,


String subreportName, String parameterFieldName, String
parameterValue)
{
ParameterDiscreteValue dv = new ParameterDiscreteValue();
dv.Value = parameterValue;

ParameterFields parameterFields = testReport.ParameterFields;


ParameterField parameterField = parameterFields[parameterFieldName,
subreportName];

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
142 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
parameterField.CurrentValues.Clear();
parameterField.CurrentValues.Add(dv);
crystalReportViewer1.ReportSource = TestReport;
}

Passi successivi

Un sito Web Crystal Reports può richiedere ulteriore codice per gestire lo stato della sessione tra le visualizzazioni
di pagina.

Informazioni correlate

Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334]
In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a
un report a livello di codice in fase di esecuzione.

Esercitazione: Lettura e impostazione di parametri di intervallo per un sottoreport [pagina 272]


In questa esercitazione verrà esaminata un'ulteriore complicazione: cosa accade quando il report che richiede
determinati parametri contiene un sottoreport che richiede parametri diversi da quelli del report.

1.4.3.1.6 Impostazione di parametri di intervallo in un report

Prerequisiti

È necessario utilizzare un report con un campo di parametro già specificato.

Contesto

Il modello a oggetti ReportDocument consente di impostare i valori per i parametri già esistenti in un report. Per
accedere ai parametri, utilizzare il nome o un valore numerico di indice. Per aggiungere un nuovo parametro a un
report, è necessario utilizzare il modello a oggetti ReportClientDocument.

Per impostare un parametro di intervallo, è necessario creare un'istanza della classe ParameterRangeValue e
passarla al metodo ReportDocument.SetParameterValue.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 143
Procedura

1. Creare una nuova costante di stringa, PARAMETER_FIELD_NAME, e impostarne il valore sul nome di un
parametro esistente.
2. Creare un'istanza della classe ParameterRangeValue.

Dim dateRange As New ParameterRangeValue()

ParameterRangeValue dateRange = new ParameterRangeValue();

3. Impostare i valori iniziale e finale per l'oggetto ParameterRangeValue.

dateRange.StartValue = startDate
dateRange.EndValue = endDate

dateRange.StartValue = startDate;
dateRange.EndValue = endDate;

4. Impostare i limiti superiore e inferiore dell'intervallo.


Opzione Descrizione
RangeBoundType.BoundExclusive I valori dell'intervallo inferiore e superiore non sono inclusi nell'intervallo.

RangeBoundType.BoundInclusive I valori dell'intervallo inferiore e superiore sono inclusi nell'intervallo.

RangeBoundType.NoBound Non è selezionato alcun tipo di limite per l'intervallo.

dateRange.LowerBoundType = RangeBoundType.BoundInclusive
dateRange.UpperBoundType = RangeBoundType.BoundInclusive

dateRange.LowerBoundType = RangeBoundType.BoundInclusive;
dateRange.UpperBoundType = RangeBoundType.BoundInclusive;

5. Chiamare il metodo ReportDocument.SetParameterValue e passare il nome del parametro e l'oggetto


ParameterRangeValue.
Il metodo ReportDocument.SetParameterValue consente di impostare il valore corrente di un campo di
parametro. Il valore può essere un valore primitive, ParameterValue, una matrice di altro tipo o un insieme
ParameterValues.

Esempio

Private Sub SettingParameters_RD(ByVal testReport As ReportDocument, ByVal


startDate As String, ByVal endDate As String)
Dim PARAMETER_FIELD_NAME As String = "SalesDates"

Dim dateRange As New ParameterRangeValue()


dateRange.StartValue = startDate
dateRange.EndValue = endDate
dateRange.LowerBoundType = RangeBoundType.BoundInclusive

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
144 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
dateRange.UpperBoundType = RangeBoundType.BoundInclusive

testReport.SetParameterValue(PARAMETER_FIELD_NAME, dateRange)
crystalReportViewer1.ReportSource = testReport
End Sub

private void SettingParameters_RD(ReportDocument testReport, String startDate,


String endDate)
{
string PARAMETER_FIELD_NAME = "SalesDates";

ParameterRangeValue dateRange = new ParameterRangeValue();


dateRange.StartValue = startDate;
dateRange.EndValue = endDate;
dateRange.LowerBoundType = RangeBoundType.BoundInclusive;
dateRange.UpperBoundType = RangeBoundType.BoundInclusive;

testReport.SetParameterValue(PARAMETER_FIELD_NAME, dateRange);
crystalReportViewer1.ReportSource = testReport;
}

Passi successivi

Un sito Web Crystal Reports può richiedere ulteriore codice per gestire lo stato della sessione tra le visualizzazioni
di pagina.

Informazioni correlate

Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334]
In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a
un report a livello di codice in fase di esecuzione.

1.4.3.2 Filtro dei dati del report con le formule di selezione

Le formule di selezione consentono di definire e filtrare i record e i gruppi che appaiono in un report. Per filtrare i
dati sono disponibili tre tipi di formule di selezione:

● Formula di selezione dei record


● Formula di selezione dei dati salvati
● Formula di selezione dei gruppi

Nella tabella che segue sono riportati i tipi di campi consentiti nei diversi filtri dei report:

Formula di selezione dei Formula di selezione dei Formula di selezione dei


record dati salvati gruppi

Parametri X X X

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 145
Formula di selezione dei Formula di selezione dei Formula di selezione dei
record dati salvati gruppi

Riepiloghi - - X

Formule ora di stampa/ - - -


totali cumulativi

La tabella che segue mostra le differenze di comportamento associate ai diversi filtri dei report:

Formula di selezione dei Formula di selezione dei Formula di selezione dei


record dati salvati gruppi

Può riferirsi al riepilogo? No, Sì. Sì.

Quando viene valutata la Durante la lettura dei re­ Se si utilizza un riepilogo, In fase di stampa
formula? cord in fase di stampa, altri­
menti durante la lettura
dei record.

Quando viene aggiornato il Se il risultato della valuta­ Se i record vengono letti, N/D
report? zione è falso, quando i re­ durante la valutazione. Se
cord vengono scartati. il risultato della valuta­
zione è falso, quando i re­
cord vengono scartati.

Influisce sul calcolo del rie­ Sì, i record filtrati non ven­ No, se il filtro viene valu­ No, i record vengono con­
pilogo? gono conteggiati. tato durante la lettura dei teggiati anche se filtrati.
record, altrimenti sì.

È possibile applicare la formula di selezione dei dati salvati all'output della formula di selezione dei record. Lo
schema che segue indica la procedura con cui le formule di selezione dei record e di selezione dei dati salvati
vengono utilizzate:

Formula di selezione dei record

La formula di selezione dei record specifica i record che costituiscono i dati salvati del report. Questa formula di
selezione consente due livelli di filtro:

● In base al database
● In base al motore di elaborazione del report

Formula di selezione dei dati salvati

SavedDataFilter consente agli utenti di visualizzare un sottoinsieme dei dati salvati in un report. La modifica di
SavedDataFilter non implica l'eliminazione dei dati salvati in un report o una chiamata al database.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
146 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Formula di selezione dei gruppi

La formula di selezione dei gruppi specifica i record che verranno presi in considerazione durante il rendering delle
pagine del report. Normalmente questa formula utilizza i valori generati nelle fasi precedenti dell'elaborazione del
report, ad esempio i riepiloghi.

Nota
La formula di selezione dei gruppi filtra i record e non i gruppi.

1.4.3.2.1 Filtro dei dati con le formule di selezione

Contesto

In questo esempio viene applicato un filtro a uno dei parametri di database utilizzati per il report di esempio. Il
filtro consente agli utenti di personalizzare i valori visualizzati in un report.

Procedura

1. Creare un metodo che utilizzi un oggetto ReportDocument e una stringa che contenga una formula di
selezione.
L'SDK di SAP Crystal Reports .NET utilizza per la formula di selezione la stessa sintassi dell'interfaccia SAP
Crystal Reports Designer incorporata.
2. Assegnare la formula di selezione alla proprietà DataDefinition.RecordSelectionFormula dell'oggetto
ReportDocument corrente.
La classe DataDefinition contiene tutte le informazioni relative alla manipolazione dei dati basata sull'origine
dati del report. La classe DataDefinition per ogni report è accessibile tramite la proprietà
ReportDocument.DataDefinition.
3. Collegare la proprietà ReportSource del controllo CrystalReportViewer all'istanza di ReportDocument.

Risultati

Il report verrà aggiornato con i nuovi risultati in base alla formula di selezione specificata.

Esempio
In questo esempio vengono accettati un oggetto ReportDocument e un parametro intero. Il parametro intero
viene concatenato a una stringa preesistente per creare una formula di selezione completa. La formula di

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 147
selezione viene applicata al report prima del collegamento del controllo CrystalReportViewer all'oggetto
ReportDocument.

Private Sub FilterData_RD(ByVal TestReport As ReportDocument, ByVal sales As


Integer)
Dim selectFormula As String = "{Customer.Last Year's Sales} > " + sales
TestReport.DataDefinition.RecordSelectionFormula = selectionFormula
crystalReportViewer.ReportSource = TestReport
End Sub

private void FilterData_RD(ReportDocument TestReport, int sales)


{
string selectFormula = "{Customer.Last Year's Sales} > " + sales;
TestReport.DataDefinition.RecordSelectionFormula = selectionFormula;
crystalReportViewer.ReportSource = TestReport;
}

Passi successivi

Un sito Web SAP Crystal Reports può richiedere ulteriore codice per gestire lo stato della sessione tra le
visualizzazioni di pagina.

Informazioni correlate

Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334]
In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a
un report a livello di codice in fase di esecuzione.

Inserimento dei parametri nelle formule [pagina 694]

1.4.4 Impostazione dell'origine dati

In SAP Crystal Reports è possibile generare report praticamente da qualsiasi tipo di origine dati, comprese le
origini permanenti quali i database e i file XML e le origini di runtime quali le raccolte di oggetti.

Se si utilizza il modello a oggetti ReportDocument, è possibile accedere e modificare a livello di codice le


informazioni di connessione alle origini dati per il file del report durante l'esecuzione.

Esistono diverse procedure di impostazione di un'origine dati:

● Utilizzare il metodo ReportDocument.DatasourceConnections[0].SetConnection.


Questo metodo consente di accedere a un report o un sottoreport.
● Aggiornare la proprietà ReportDocument.Table.LogOnInfo e chiamare il metodo
ReportDocument.Table.ApplyLogOnInfo.
Questo metodo consente di accedere a un report o un sottoreport. Consente inoltre di specificare la posizione
completa della tabella.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
148 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Utilizzare il metodo CrystalReportViewer.LogOnInfo.
Questo metodo consente di accedere a un report ma non di impostare la posizione del database.

Classi utilizzate per l'impostazione dell'origine dati

● CrystalDecisions.Shared.ConnectionInfo
Fornisce le proprietà per il recupero e l'impostazione delle opzioni per eseguire la connessione ai server o alle
origini dati ODBC (Open Database Connectivity) del database.
● CrystalDecisions.CrystalReports.Engine.Table
Rappresenta la tabella di un database al quale il report ha avuto accesso. Questa classe fornisce proprietà e
metodi per ottenere informazioni sulla tabella e per l'accesso alla tabella stessa.
● CrystalDecisions.CrystalReports.Engine.ReportDocument
Rappresenta un report e contiene proprietà e metodi per specificare un'origine dati in fase di esecuzione.

Informazioni correlate

Origini dati supportate [pagina 657]


Accesso e aggiunta di dati [pagina 657]

1.4.4.1 Connessione a un database

L'origine dati più comune per un report Crystal è un database. L'accesso a un database viene eseguito da una
delle seguenti origini:

● Direttamente dal file di report, utilizzando le informazioni di connessione al database memorizzate nel file.
Le informazioni di connessione al database vengono configurate nell'interfaccia SAP Crystal Report Designer
incorporata al momento della creazione o della modifica del report. Le informazioni vengono
automaticamente passate dal modulo report al database quando il report viene visualizzato.
Le credenziali per l'accesso possono essere salvate con il report o passate in fase di esecuzione.
● Dal codice API SAP Crystal Reports .NET.
Le informazioni di connessione al database possono essere riconfigurate con il codice che interagisce con il
report a livello di codice in fase di esecuzione.

Lo scenario più comune per la creazione di una connessione a un database è l'impostazione dei parametri di
connessione del database in SAP Crystal Reports Designer seguita dall'indicazione delle informazioni di accesso a
livello di codice in fase di esecuzione.

Informazioni correlate

Accesso e aggiunta di dati [pagina 657]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 149
1.4.4.1.1 Ottimizzazione della protezione della connessione a
un database SQL Server

A prescindere dalle origini dei report, il problema della sicurezza resta invariato: proteggere il database dagli
attacchi dannosi.

uso dell'autenticazione Windows con protezione integrata

Per ottenere la massima protezione, Microsoft consiglia di utilizzare la protezione integrata dell'autenticazione
Windows. Secondo tale configurazione non è richiesto l'utilizzo dell'ID utente e della password per l'applicazione.

uso dell'autenticazione SQL Server con un account di database con accesso


limitato

Se è necessario utilizzare l'autenticazione SQL Server con il database in uso, sarà necessario intraprendere azioni
supplementari per raggiungere un livello di protezione efficacie.

Non utilizzare l'ID e la password dell'amministratore di sistema nel codice perché costituisce un effettivo rischio
alla protezione. Effettuare invece quanto descritto di seguito:

● Creare un account di database con accesso limitato.


● Configurare l'account in modo da consentire l'accesso solo alle tabelle richieste.
● Per ogni tabella accessibile, concedere l'autorizzazione per l'esecuzione della sola istruzione SELECT.

Microsoft consiglia di crittografare comunque l'ID e la password utilizzati. Per informazioni su come crittografare
l'ID utente e la password, vedere le informazioni di protezione in MSDN.

1.4.4.1.2 Accesso a un database SQL Server protetto con un


sottoreport

Prerequisiti

Per eseguire questo esempio, è necessario utilizzare un report che includa un sottoreport che richiede
l'autenticazione SQL protetta. È necessario inserire il nome utente e la password per accedere al database SQL
Server.

Contesto

In questo esempio si cambia il database di un sottoreport a livello di codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
150 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Recuperare l'istanza DataSourceConnections dalla proprietà DataSourceConnections delle istanze del


report e del sottoreport.
2. Recuperare IConnectionInfo al livello di indice 0 dell'istanza DataSourceConnections.
3. Chiamare il metodo SetConnection con il nome del server, il nome del database, il nome utente e la
password.
4. Chiamare il metodo SetLogon con il nome utente e la password in uso.

Esempio

Private Function SubreportLogon_RD(ByVal TestReport As ReportDocument) As


ReportDocument
Dim dataSourceConnections As DataSourceConnections =
TestReport.DataSourceConnections
Dim connectInfo As IConnectionInfo = dataSourceConnections(0)
connectInfo.SetConnection("ServerName", "DatabaseName", "UserName",
"Password")

Dim TestSubreport As ReportDocument = TestReport.Subreports("Subreport1")


Dim subreportDataSourceConnections As DataSourceConnections =
TestSubreport.DataSourceConnections
Dim connectInfo As IConnectionInfo = subreportDataSourceConnections(0)
connectInfo.SetLogon("UserName", "Password")
End Function

private ReportDocument SubreportLogon_RD(ReportDocument TestReport)


{
DataSourceConnections dataSourceConnections =
TestReport.DataSourceConnections;
IConnectionInfo connectInfo = dataSourceConnections[0];
connectInfo.SetConnection("ServerName", "DatabaseName", "UserName",
"Password");

ReportDocument TestSubreport = TestReport.Subreports["Subreport1"];


DataSourceConnections subreportDataSourceConnections =
TestSubreport.DataSourceConnections;
IConnectionInfo connectInfo = subreportDataSourceConnections[0];
connectInfo.SetLogon("UserName", "Password");
}

1.4.4.1.3 Accesso a un database SQL Server protetto con il


modello a oggetti ReportDocument

Questo esempio indica come accedere a un database utilizzando l'autenticazione SQL protetta.

Prerequisiti

Prima di iniziare è necessario disporre di un report che richieda l'autenticazione SQL protetta.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 151
Contesto

Per aggiornare le informazioni di connessione per un report mediante il modello a oggetti ReportDocument, è
necessario aggiornare la proprietà ConnectionInfo per ogni oggetto Table dell'insieme
ReportDocument.Database.Tables. Dopo avere aggiornato tutte le proprietà, è necessario chiamare il
metodo Table.ApplyLogOnInfo per salvare le modifiche.

Procedura

1. Creare un nuovo oggetto ConnectionInfo.


2. Impostare le proprietà DatabaseName, UserID e Password dell'oggetto ConnectionInfo sui valori richiesti
per l'accesso.

Nota
se si sceglie di impostare solo le proprietà DatabaseName, UserID e Password, l'accesso verrà eseguito
al server predefinito del database specificato all'interno del report. Se invece si sceglie di assegnare una
proprietà ServerName alternativa, in fase di esecuzione è possibile reindirizzare il report a un server
diverso.

3. Recuperare l'istanza Tables dalla proprietà Database della classe ReportDocument.

Nota
Tables è una classe indicizzata che contiene istanze della classe Table.

4. Per ogni oggetto Table dell'insieme:


a) Recuperare l'istanza TableLogOnInfo dalla proprietà LogOnInfo della classe Table.
b) Aggiornare la proprietà ConnectionInfo dell'oggetto TableLogOnInfo.
c) Chiamare il metodo ApplyLogOnInfo per salvare la modifica.

Esempio

Private Sub setDatabaseLogon(ByVal rd As ReportDocument, ByVal databaseName As


String, ByVal userName As String, ByVal password As String)
Dim myConnectionInfo As New ConnectionInfo()
myConnectionInfo.DatabaseName = databaseName
myConnectionInfo.UserID = userName
myConnectionInfo.Password = password

Dim myTables As Tables = rd.Database.Tables


For Each myTable As Table In myTables
Dim newLogonInfo As TableLogOnInfo = myTable.LogOnInfo
newLogonInfo.ConnectionInfo = myConnectionInfo
myTable.ApplyLogOnInfo(newLogonInfo)
Next
End Sub

private void setDatabaseLogon(ReportDocument rd, String databaseName, String

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
152 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
userName, String password)
{
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.DatabaseName = databaseName;
connectionInfo.UserID = userName;
connectionInfo.Password = password;

Tables tables = rd.Database.Tables;


foreach (Table table in tables)
{
TableLogOnInfo newLogonInfo = table.LogOnInfo;
newLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(newLogonInfo);
}
}

Passi successivi

Dopo avere impostato le informazioni di accesso al database per l'istanza ReportDocument, aggiornare la
proprietà ReportSource dell'oggetto CrystalReportViewer.

1.4.4.1.4 Accesso a un database SQL Server protetto con il


controllo CrystalReportViewer

Contesto

Quando si accede a un database SQL Server protetto mediante il modello a oggetti CrystalReportViewer, è
necessario utilizzare classi dello spazio dei nomi CrystalDecisions.Shared.

Per effettuare la connessione al server di database o alle origini dati ODBC vengono utilizzate le proprietà della
classe ConnectionInfo.

Procedura

1. Creare un nuovo oggetto ConnectionInfo.


2. Impostare le proprietà DatabaseName, UserID e Password dell'oggetto ConnectionInfo sui valori richiesti
per l'accesso.

Nota
se si sceglie di impostare solo le proprietà DatabaseName, UserID e Password, l'accesso verrà eseguito
al server predefinito del database specificato all'interno del report. Se invece si sceglie di assegnare la
proprietà ServerName, in fase di esecuzione è possibile reindirizzare il report a un server diverso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 153
3. Recuperare l'istanza TableLogOnInfos dalla proprietà LogOnInfo della classe CrystalReportViewer.

Nota
TableLogOnInfos è una classe indicizzata che contiene istanze della classe TableLogOnInfo.

4. Per ogni oggetto TableLogOnInfo dell'insieme, impostare la proprietà ConnectionInfo dell'oggetto


TableLogOnInfo sull'oggetto ConnectionInfo.

Esempio

Private Sub setDatabaseLogon(ByVal databaseName As String, ByVal userName As


String, ByVal password As String)
Dim myCconnectionInfo As New ConnectionInfo()
Dim logOnInfos As TableLogOnInfos = crystalReportViewer.LogOnInfo
For Each logOnInfo As TableLogOnInfo In logOnInfos
logOnInfo.ConnectionInfo = myCconnectionInfo
Next
myCconnectionInfo.DatabaseName = databaseName
myCconnectionInfo.UserID = userName
myCconnectionInfo.Password = password
End Sub

private void setDatabaseLogon(String databaseName, String userName, String


password){
ConnectionInfo connectionInfo = new ConnectionInfo();
TableLogOnInfos logOnInfos = crystalReportViewer.LogOnInfo;
foreach(TableLogOnInfo logOnInfo in logOnInfos) {
logOnInfo.ConnectionInfo = connectionInfo;
}
connectionInfo.DatabaseName = databaseName;
connectionInfo.UserID = userName;
connectionInfo.Password = password;
}

1.4.4.2 Connessione a IDataReader

Molti progetti .NET utilizzano DataReader anziché DataSet per recuperare i dati. Ad esempio, un modo tipico per
collegare un controllo (ad esempio GridView) ai dati consiste nel creare un metodo che recupera i dati tramite un
DataReader e quindi restituisce i dati dal metodo tramite un'interfaccia IDataReader.

Il componente incorporato SAP Crystal Report Designer può accedere a IDataReader se sono soddisfatte alcune
condizioni:

● I dati devono essere restituiti da un metodo, tramite l'interfacciaIDataReader.


● Il provider dei dati utilizzato nel metodo deve essere OleDb .NET.

Nota
le classi per questo provider di dati si trovano nello spazio dei nomi System.Data.OleDb.

● Il metodo deve essere condiviso [Visual Basic] oppure statico [C#].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
154 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● La classe che contiene il metodo deve far parte di un progetto di libreria di classi ed essere compilato in un
assembly.

Per creare un report Crystal che utilizzi un'istanza di IDataReader come origine dati, è necessario creare una
libreria di classi con un metodo statico che restituisca un oggetto IDataReader. Dopo la compilazione della
libreria di classi, l'assembly così ottenuto potrà essere utilizzato come origine dati per il report.

Nota
non sarà possibile impostare l'origine dati del report su IDataReader finché la libreria di classi non viene
creata e compilata.

Informazioni correlate

Esercitazione: Connessione a IdataReader [pagina 554]


In questa esercitazione sulla connettività dei dati viene descritto come collegarsi a un'istanza IDataReader.

1.4.4.3 Connessione ai DataSet ADO.NET

Un oggetto set di dati ADO.NET è un insieme di classi di set di dati create nella memoria. È possibile creare un set
di dati ADO.NET da diverse origini dati, inclusi i database Access, Oracle e SQL Server, utilizzando Visual Studio
ADO.NET Data Set Designer, che fornisce una visualizzazione grafica del database con relative tabelle, campi e
tipi. È possibile trascinare le tabelle da Esplora server in un file di schema sulla scheda Schema del designer.

Per creare un report Crystal che utilizzi un set di dati ADO.Net come origine dati, è necessario creare una libreria
di classi con un metodo o una proprietà statica che restituisca un oggetto DataSet. Dopo la compilazione della
libreria di classi, l'assembly così ottenuto potrà essere utilizzato come origine dati per il report.

Nota
non sarà possibile impostare l'origine dati del report su DataSet finché la libreria di classi non viene creata e
compilata.

Utilizzo di un DataSet

I DataSet sono utili nei seguenti casi:

● I dati all'interno del DataSet devono essere modificati dopo l'esecuzione della query.
● È necessario unire tramite join dati di diverse origini dati.

Nota
i DataSet sono una rappresentazione XML dei dati, provenienti in genere da un database. Un DataSet non è
equivalente a una singola tabella di un database, bensì a un gruppo di tabelle. Ciò comporta un potenziale

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 155
problema di scalabilità per i report. Se un report recupera più tabelle in un DataSet ed è richiesto un join tra
tali tabelle, il report deve eseguire l'elaborazione del join mentre interagisce con ogni singola tabella.
Questo processo non è efficiente. È pertanto sempre consigliabile inserire le istruzioni di join nella query
utilizzata per compilare il DataSet. Il risultato sarà costituito da una singola pseudo tabella costituita dai
dati precedentemente uniti tramite join nel DataSet. In questo modo il report potrà gestire esclusivamente
la visualizzazione dei dati.

Informazioni correlate

Esclusione di DataSet dalle query semplici [pagina 67]


Memorizzazione nella cache di DataSet [pagina 68]
Esercitazione: Connessione ai DataSet ADO.NET [pagina 540]

1.4.4.4 Connessione agli insiemi di oggetti

SAP Crystal Reports 2008 consente di creare report da dati oggetto. I dati oggetto possono essere semplici, ad
esempio una stringa o un valore intero, oppure complessi, come una classe o un insieme. Gli insiemi devono
essere una matrice semplice o un oggetto IEnumerable. SAP Crystal Reports accede a tali insiemi di oggetti
come a una normale origine dati, consentendo l'uso di una origine dati versatile per i report Crystal.

All’interno di un insieme di oggetti è possibile scrivere una classe personalizzata che compili un oggetto con i dati
sia a livello di codice che dinamicamente. È inoltre possibile scrivere i propri oggetti di accesso ai dati ampliando il
numero di origini dati fornite con un'installazione predefinita di SAP Crystal Reports, versione per sviluppatori per
Microsoft Visual Studio.

Per utilizzare un insieme di oggetti come origine dati, è necessario creare una classe che esponga almeno una
proprietà pubblica. Se la proprietà restituisce dati semplici, ad esempio una stringa o valori interi, SAP Crystal
Reports tratterà tali dati come un campo di database. Se la proprietà restituisce dati complessi, ad esempio un
oggetto ArrayList, ciascun oggetto dell'insieme di oggetti fornirà una riga di dettagli nel report.

Accesso ai dati negli oggetti

Le versioni precedenti di SAP Crystal Reports consentono di accedere alle proprietà che restituiscono solo dati di
tipo semplice. Ad esempio, se un oggetti contiene una proprietà che restituisce una stringa, tale stringa viene
esposta come campo regolare in fase di progettazione. Ma se l'oggetto contiene una proprietà che restituisce un
oggetto, i dati contenuti nell'oggetto restituito non verranno esposti anche se contengono dati semplici.

SAP Crystal Reports 2008 e le versioni successive consentono di accedere ai dati contenuti nei dati complessi
mediante espansioni di tipo complesso. In fase di progettazione l'oggetto restituito apparirà come origine dati
gerarchica. I dati complessi possono essere espansi in modo tale da visualizzare i dati di tipo semplice esposti,
che potranno quindi essere aggiunti al report.

Per consentire l'espansione dei tipi complessi, aggiungere l'attributo CrystalComplexTypeExpansionLevels


alla proprietà che restituisce l'oggetto che si desidera espandere. L'attributo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
156 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
CrystalComplexTypeExpansionLevels deve essere impostato su un valore maggiore di 1 per consentire il drill
down sui dati della classe. Se l'attributo CrystalComplexTypeExpansionLevels non viene impostato, SAP
Crystal Reports non sarà in grado di accedere ai dati del campo all'interno della classe.

Esempio
Esposizione di dati semplici

In questo esempio vengono utilizzati due oggetti: Employee e Person. Quando l'oggetto Employee viene
aggiunto al report come origine dati, la proprietà Employee.EmployeeID viene esposta come campo valido.
Tuttavia, la proprietà Employee.Person non è visibile poiché restituisce dati di tipo complesso.

Class Employee
Private _employeeID As Integer
Private _person As New Person()

Public Property EmployeeID() As Integer


Get
Return _employeeID
End Get
Set(ByVal value As Integer)
_employeeID = value
End Set
End Property

Public ReadOnly Property Person() As Person


Get
Return _person
End Get
End Property
End Class

Class Person
Private _name As String

Public Property Name() As String


Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
End Class

class Employee
{
int _employeeID;
Person _person = new Person();

public int EmployeeID


{
get { return _employeeID; }
set { _employeeID = value; }
}

public Person Person


{
get { return _person; }
}
}

class Person

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 157
{
private String _name;

public String Name


{
get { return _name; }
set { _name = value; }
}
}

Esempio
Espansione dei tipi complessi

Nell'esempio precedente la proprietà Employee.Person non è visibile poiché restituisce dati di tipo
complesso.

In questo esempio l'attributo CrystalComplexTypeExpansionLevels è stato aggiunto alla proprietà


Employee.Person, che in fase di progettazione del report consentirà di visualizzare un nuovo campo in
Explorer Campo: Person-Name.

Class Employee
Private _employeeID As Integer
Private _person As New Person()

Public Property EmployeeID() As Integer


Get
Return _employeeID
End Get
Set(ByVal value As Integer)
_employeeID = value
End Set
End Property

<CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(1)>
_
Public ReadOnly Property Person() As Person
Get
Return _person
End Get
End Property
End Class

Class Person
Private _name As String

Public Property Name() As String


Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
End Class

class Employee
{
int _employeeID;
Person _person = new Person();

public int EmployeeID

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
158 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
{
get { return _employeeID; }
set { _employeeID = value; }
}

[CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(1)]
public Person Person
{
get { return _person; }
}
}

class Person
{
private String _name;

public String Name


{
get { return _name; }
set { _name = value; }
}
}

Informazioni correlate

Esercitazione: Connessione agli insiemi di oggetti [pagina 565]


In questa esercitazione sulla connettività dei dati viene descritto come utilizzare un insieme di oggetti come
origine dati per un report Crystal.

1.4.4.5 Per attivare la memorizzazione dei report nella cache


in un sito Web SAP Crystal Reports

Prerequisiti

Queste operazioni richiedono l'utilizzo della funzionalità Smart Task. La funzionalità Smart Task è disponibile in
Visual Studio 2005 e versioni successive.

Contesto

I progetti Windows che utilizzano Crystal Reports, versione per sviluppatori per Microsoft Visual Studio
continuano a servirsi della stessa struttura per la memorizzazione nella cache utilizzata in Visual Studio .NET
2003. Ciò significa che quando si aggiunge un report a un progetto, vengono create due classi wrapper per il
report: una classe report normale e una classe report memorizzata nella cache.

Se per un report non vengono generate classi wrapper, la memorizzazione nella cache viene controllata
attraverso la proprietà EnableCaching del controllo CrystalReportSource.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 159
Procedura

1. Creare un sito Web di Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.
2. Nella pagina Default.aspx selezionare la visualizzazione Origine.
3. Individuare il tag XML relativo al controllo CrystalReportSource.
4. Modificare il valore della proprietà EnableCaching da False a True.

Nota
Per informazioni dettagliate sulla memorizzazione dei report nella cache, sulla versione memorizzata nella
cache della classe wrapper di un report e su quando è opportuno o meno utilizzare la memorizzazione nella
cache, vedere Cache e persistenza del modello a oggetti ReportDocument [pagina 58].

Esempio

<CR:CrystalReportSource ID="myCrystalReportSource" runat="server"


EnableCaching="True">
<Report FileName="CrystalReport1.rpt">
</Report>
</CR:CrystalReportSource>

1.4.4.6 Utilizzo di LINQ

LINQ (Language Integrated Query) è un componente di Microsoft Framework che consente di eseguire query su
qualsiasi origine dati.

In SAP Crystal Reports è possibile creare report per un insieme di oggetti personalizzati. Ciò consente di avere
maggior controllo sulle modalità di visualizzazione delle informazioni in un report. Tuttavia, l'organizzazione di un
insieme di oggetti può diventare complicata se l'insieme contiene dati aggregati provenienti da più origini dati.

LINQ semplifica il processo di creazione di report per un insieme di oggetti e consente di eseguire query di tipo
SQL sugli oggetti personalizzati. Si supponga ad esempio di utilizzare un database SQL, un file XML e un file di
Microsoft Access contenente dati relativi alle vendite. LINQ consente di eseguire query da tutte e tre le origini dati
e di visualizzare i dati in un unico report.

Con LINQ è possibile effettuare le seguenti operazioni:

● Assemblare un insieme di oggetti provenienti da più origini dati.


● Unire due insiemi di oggetti.
● Raggruppare gli elementi di un insieme.

Per utilizzare LINQ con SAP Crystal Reports è necessario che i seguenti prodotti software siano installati:

● Visual Studio 2008 o versione successiva.


● Microsoft .NET Framework versione 3.5
● SAP Crystal Reports Basic per Visual Studio 2008 o versione successiva.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
160 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Impostazione dell'origine dati [pagina 148]

1.4.5 Visualizzazione di un report

Il controllo CrystalReportViewer viene utilizzato per visualizzare i report Crystal. Esistono due controlli
CrystalReportViewer nell'SDK di SAP Crystal Reports .NET. Per un sito Web si utilizza la classe
CrystalDecisions.Web.CrystalReportViewer. Per un'applicazione Windows si utilizza la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer.

Per poter visualizzare un report, è necessario innanzitutto aggiungere un controllo CrystalReportViewer


all'applicazione e quindi assegnare la proprietà ReportSource di tale controllo a un report. Il processo di
assegnazione di un report a un controllo CrystalReportViewer è definito collegamento del report.

Esistono diversi modi per collegare un controllo CrystalReportViewer a un report. Questa sezione fornisce una
descrizione dettagliata di ogni scenario di collegamento del report nonché considerazioni generali sulla
visualizzazione dei report.

Classi utilizzate per la visualizzazione dei report

● CrystalDecisions.Windows.Forms.CrystalReportViewer
Fornisce le proprietà, i metodi e gli eventi che modificano o recuperano le informazioni relative all'aspetto del
controllo CrystalReportViewer e alle relative funzioni.
● CrystalDecisions.Web.CrystalReportViewer
Fornisce le proprietà, i metodi e gli eventi che modificano o recuperano le informazioni relative all'aspetto del
controllo CrystalReportViewer e alle relative funzioni.
● CrystalDecisions.CrystalReports.Engine.ReportDocument
Rappresenta un report e contiene le proprietà e i metodi per definire, formattare, caricare, esportare e
stampare il report.

Informazioni correlate

Modalità di utilizzo dei controlli dei visualizzatori report [pagina 42]


Controllo CrystalReportViewer [pagina 42]
Scenari di collegamento dei report [pagina 167]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 161
1.4.5.1 Confronto tra i report incorporati e quelli non
incorporati

Differenza tra i report incorporati e i report non incorporati

Un report incorporato è un report che è stato importato o creato all'interno di un progetto Visual Studio. Quando
un report viene incorporato nel progetto, viene generata automaticamente una classe wrapper appropriata.
Questo consente di accedere al report in base al nome, invece che tramite un'istanza di ReportDocument
separata.

Un report non incorporato è invece un report esterno al progetto Visual Studio. Sono disponibili diversi modi per
accedere al report e per caricarlo in un modello a oggetti, al fine di consentirne l'interazione a livello di codice.
Tuttavia, il report resterà sempre esterno al progetto Visual Studio.

Funzionamento di un report incorporato

Quando il report viene importato o creato all'interno del progetto, viene creata una classe wrapper con lo stesso
nome del report. Tale classe wrapper racchiude o rappresenta il report nel progetto. In questi casi, il codice
presente nel progetto interagisce con la classe di report creata per rappresentare il report anziché con il file di
report originale.

Durante la compilazione del progetto sia il report che la relativa classe wrapper vengono incorporati
nell'assembly, come avviene con qualsiasi altra risorsa del progetto.

Nota
.Net Framework prevede restrizioni di dimensione per i file DLL. Il progetto non può quindi essere compilato se
contiene report incorporati di grandi dimensioni. Per i progetti che includono report di grandi dimensioni,
disattivare i dati salvati nel report o modificare il progetto per utilizzare report non incorporati. Il limite di
dimensione varia per ciascuna versione di .Net Framework. Per ulteriori informazioni, consultare la
documentazione di .Net Framework.

La classe wrapper di un report deriva dalla classe base comune ReportDocument e ne eredita tutte le proprietà e i
metodi.

ReportDocument rappresenta la classe principale del modello a oggetti ReportDocument.

Funzionamento di un report non incorporato

L'accesso a un report non incorporato viene effettuato sempre dall'esterno. Inoltre, esistono diversi modi per
rendere accessibile tale report all'SDK:

● Il report potrebbe trovarsi sul disco rigido nel percorso directory di un file.
● Il report potrebbe essere esposto come Servizio Web report.
● Il report potrebbe appartenere a un gruppo di report esposti tramite Crystal Services.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
162 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Poiché i report non incorporati non vengono mai importati nel progetto, non viene mai creata una classe wrapper
del report, come invece accade per i report incorporati. Il report non incorporato viene caricato in fase di
esecuzione in uno dei modelli a oggetti, con il rispettivo metodo utilizzato da ciascuno di essi:

● Il modello a oggetti ReportDocument utilizza il metodo ReportDocument.Load() per caricare il report al suo
interno.
● Il modello a oggetti CrystalReportViewer utilizza la proprietà CrystalReportViewer.ReportSource per collegare
il report direttamente al controllo.

Scelta dei report incorporati o non incorporati

Se si desidera semplificare la distribuzione del progetto, è necessario utilizzare report incorporati. Ciò implica
l'utilizzo di un numero minore di file ed evita eventuali problemi di collocazione dei report in un percorso della
directory di file non corretto. Questa soluzione offre anche maggiore protezione, in quanto i report non sono
esposti a modifiche.

I report incorporati offrono semplicità e protezione, ma richiedono anche l'esecuzione di operazioni aggiuntive, in
quanto non possono essere modificati senza ricompilare l'intero progetto. Nel caso in cui i report debbano essere
modificati periodicamente, è necessario non incorporarli, al fine di semplificarne l'accesso e la modifica ed evitare
problemi legati alla necessità di ricompilare ogni volta l'assembly. Esiste inoltre un limite alle dimensioni di un
report incorporato. Non è possibile compilare report di dimensioni molto grandi come risorsa incorporata.

Nell'ambito della descrizione degli scenari di collegamento dei report vengono illustrati i diversi metodi per
collegare report incorporati e non incorporati. Viene inoltre descritta la modalità di utilizzo di ReportDocument
come classe generica per i diversi tipi di report. Ciò consente di ridurre notevolmente le modifiche apportate al
codice, nel caso si decida di cambiare approccio.

Incorporamento di report in un progetto Web

Il supporto dei report incorporati viene attivato tramite l'uso di un provider di build che compila i report in un file
DLL. Per incorporare il report in un file DLL in fase di compilazione, è necessario impostare
embedRptInResource su true nel file web.config. Per accedere alla classe wrapper tramite Intellisense, è
necessario posizionare il report nella cartella App_Code/Global della soluzione.

Nota
se il report si trova nella directory App_Code/Global e embedRptInResource è impostata su false, il file di
report non verrà copiato nel percorso di destinazione quando si pubblica il sito Web. Per evitare il problema,
copiare il sito Web nella destinazione.

embedRptInResour Posizione del report Intellisense Pubblicazione per la Copia per la


ce disponibile distribuzione distribuzione

True App_Code/Global X X X

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 163
embedRptInResour Posizione del report Intellisense Pubblicazione per la Copia per la
ce disponibile distribuzione distribuzione

True All'esterno di X X
App_Code/Global,
ma nel progetto

False App_Code/Global X X X

False All'esterno di X
App_Code/Global,
ma nel progetto

Informazioni correlate

Configurazione del file Web.Config [pagina 19]

1.4.5.2 Impostazione dell'origine del report

Il controllo CrystalReportViewer consente di visualizzare un solo report alla volta, Per indicare al controllo il report
da visualizzare, collegare la proprietà ReportSource del controllo a un report specifico. In fase di esecuzione, il
controllo carica il report collegato alla proprietà ReportSource e lo visualizza.

Un controllo CrystalReportViewer può essere collegato a un file su disco, a un oggetto ReportDocument o a un


oggetto ReportClientDocument. Il collegamento a un oggetto fornisce ulteriori funzionalità attraverso i modelli a
oggetti ReportDocument e ReportClientDocument. Questa è la procedura migliore per impostare la proprietà
ReportSource.

Nella sua forma più semplice, l'assegnazione si presenta come segue:

crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt"

crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";

In questo caso, il report è collegato al controllo direttamente dal percorso nella directory del file.

Controllo CrystalReportSource

Il controllo CrystalReportSource fa parte del nuovo modello per lo sviluppo di applicazioni basato su tag fornito
con ASP.NET versione 2.0.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
164 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
il controllo CrystalReportSource è disponibile solo per i siti Web.

Nella struttura del controllo DataSource, i controlli visivi .NET si connettono a controlli DataSource non visivi,
ovvero controlli che non gestiscono informazioni relative alla visualizzazione. Questa nuova struttura di
DataSource incapsula le informazioni sulla connettività dati scritte come righe di codice nei controlli .NET
all'interno del Web Form.

1.4.5.2.1 Collegamento del controllo CrystalReportViewer a


un file su disco

Contesto

Il modo più semplice per collegare un controllo CrystalReportViewer a un report Crystal è impostare la proprietà
ReportSource su un percorso su disco. Il report non incorporato viene visualizzato quando viene eseguita
l'applicazione.

Ciò consente di collegare il report direttamente al controllo. La completa interazione con il report a livello di codice
deve essere effettuata all'interno del modello a oggetti limitato CrystalReportViewer.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione Windows o al sito Web.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. Impostare la proprietà ReportSource sul percorso del report nel file system locale.

○ Quando si utilizzano applicazioni Windows Form o siti Web:

myCrystalReportViewer.ReportSource = "C:\MyReport.rpt"

crystalReportViewer.ReportSource = "C:\\MyReport.rpt";

○ Quando si utilizza un'applicazione WPF:

myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt"

crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 165
1.4.5.2.2 Collegamento del controllo CrystalReportViewer a
un oggetto ReportDocument

Contesto

Questo scenario di collegamento dei report consente di utilizzare il modello a oggetti più potente, ovvero
ReportDocument, con report non incorporati, ossia esterni al progetto.

Anziché essere collegati direttamente al visualizzatore, i percorsi delle directory vengono passati nel metodo
ReportDocument.Load(). Il controllo CrystalReportViewer viene quindi collegato all'oggetto ReportDocument.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione Windows o al sito Web.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. Creare un'istanza di un nuovo oggetto ReportDocument e caricare un report dal disco utilizzando il metodo
ReportDocument.Load.

Dim rd As ReportDocument = New ReportDocument()


rd.Load(reportPath)

ReportDocument rd = new ReportDocument();


rd.Load(reportPath);

5. Impostare la proprietà ReportSource sull'oggetto ReportDocument.

○ Quando si utilizzano applicazioni Windows Form o siti Web:

myCrystalReportViewer.ReportSource = rd

crystalReportViewer.ReportSource = rd;

○ Quando si utilizza un'applicazione WPF:

myCrystalReportViewer.ViewerCore.ReportSource = rd

crystalReportViewer.ViewerCore.ReportSource = rd;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
166 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.5.3 Scenari di collegamento dei report

In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio sono disponibili diversi modi per
collegare un controllo CrystalReportViewer a un report. In questa sezione vengono riepilogati i vantaggi e gli
svantaggi degli scenari consigliati e vengono illustrati i motivi per cui alcuni sono più utilizzati, per consentire di
scegliere lo scenario di collegamento dei report più adatto alla propria applicazione.

Nota
La maggior parte dei siti Web o dei progetti Windows si basa sui due scenari di collegamento più semplici, il
collegamento a un report incorporato e il collegamento a un report non incorporato.

Dopo la lettura di questa sezione è possibile visualizzare l'elenco dettagliato di tutti gli scenari per esaminare in
modo approfondito tutte le opzioni disponibili nell'SDK.

Scenari di collegamento consigliati per SAP Crystal Reports

Gli scenari che prevedono il collegamento dei report con il modello a oggetti ReportDocument vengono in genere
preferiti rispetto agli scenari in cui è utilizzato il modello a oggetti CrystalReportViewer. Ciò accade perché il
modello a oggetti ReportDocument fornisce un'API più completa per l'interazione con il report a livello di codice.

La maggior parte degli utenti preferisce lo scenario Collegamento a una classe di report incorporati [pagina 196].
Sebbene non rappresenti la soluzione migliore per ottimizzare le prestazioni, il metodo più semplice da utilizzare è
il seguente: aggiungere un report al progetto in modo da creare una classe wrapper del report, creare un'istanza di
tale classe e passarla al controllo CrystalReportViewer. Poiché la classe wrapper del report eredita dalla
classe base ReportDocument, si ha accesso alla funzionalità completa del modello a oggetti ReportDocument.

Un'altra procedura eseguita di frequente per collegare i report è descritta in Collegamento a un report non
incorporato caricato nella classe ReportDocument [pagina 198]. Anche questa procedura garantisce l'accesso
alla funzionalità completa del modello a oggetti ReportDocument ma offre il vantaggio ulteriore derivante dai
report non incorporati, ossia la possibilità di modificare i report senza dover ricompilare l'applicazione.

Scenari di collegamento consigliati per Report Application Server (RAS)

Per RAS è possibile utilizzare ulteriori scenari di collegamento dei report, in base alla configurazione del progetto.

● Se si utilizza SAP Crystal Reports 10 con RAS 10, è possibile trasferire i progetti creati originariamente con
SAP Crystal Reports (utilizzando report incorporati) in RAS e nel modello a oggetti ReportClientDocument,
con l'aggiunta solo di altre due righe di codice richieste per ogni report.
● Per ottimizzare il suddetto scenario, eseguire copie dei report incorporati sul server RAS e fare in modo che il
server utilizzi tali copie.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 167
Scenari di collegamento consigliati per SAP Crystal Reports Server o la
piattaforma SAP BusinessObjects Business Intelligence

Se è stato eseguito l'aggiornamento a SAP Crystal Reports Server o alla piattaforma SAP BusinessObjects
Business Intelligence, sono disponibili quattro scenari consigliati per il collegamento dei report. Lo scenario da
utilizzare è determinato dalle diverse esigenze di scalabilità e modifica dei report:

● È possibile visualizzare un report, senza apportare alcuna modifica a livello di codice, per ottenere la massima
velocità e il massimo livello di prestazioni.
● È possibile modificare il report a livello di codice nell'ambito del processo di visualizzazione, mediante
l'accesso al modello a oggetti ReportClientDocument.
● Se si utilizza SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio con SAP Crystal
Reports Server o con la piattaforma SAP BusinessObjects Business Intelligence, è possibile trasferire i
progetti creati originariamente con SAP Crystal Reports (utilizzando report incorporati) in SAP Crystal
Reports Server o nella piattaforma SAP BusinessObjects Business Intelligence conservando il codice dei
report esistente. Questa operazione può essere eseguita mediante la pubblicazione dei report incorporati in
SAP Crystal Reports Server o nella piattaforma SAP BusinessObjects Business Intelligence.
● È possibile accedere al report come a un'istanza di InfoObject nella struttura di piattaforma, con la
possibilità di pianificare il report e di modificarne i parametri.

Informazioni correlate

Controlli dei visualizzatori report [pagina 34]

1.4.5.3.1 Collegamento dei report con il modello a oggetti


CrystalReportViewer

Il modello CrystalReportViewer è il più semplice dei modelli a oggetti. A causa delle funzionalità limitate, a questo
modello a oggetti viene in genere preferito il modello a oggetti ReportDocument, che risulta più completo.

Informazioni correlate

Modello a oggetti CrystalReportViewer [pagina 36]


Collegamento a un percorso della directory di file tramite codice [pagina 169]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
168 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.5.3.1.1 Collegamento a un percorso della directory di file
tramite codice

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti CrystalReportViewer.

Posizione dei report

I report si trovano nella directory di un file.

Descrizione

Si tratta dello scenario di collegamento dei report più semplice: un report situato nella directory di un file viene
collegato al controllo CrystalReportViewer mediante la relativa stringa di percorso.

Vantaggi

● Bassa manutenzione: è possibile aggiungere, rimuovere o modificare i report senza ricompilare l'applicazione.
● Implementazione semplificata: non è necessario dichiarare le classi né crearne istanze. Consente di evitare
l'utilizzo del modello a oggetti ReportDocument, passando un report direttamente al controllo
CrystalReportViewer.

Svantaggi

● Distribuzione limitata: in genere i report risiedono nello stesso computer dell'applicazione, a causa delle
complicazioni che si verificano quando vengono concesse all'account utente ASPNET autorizzazioni per
l'accesso a un altro computer della rete.
● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte di CrystalReportViewer.

Informazioni correlate

Collegamento a un percorso della directory di file mediante la finestra Proprietà [pagina 170]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 169
1.4.5.3.1.1.1 Collegamento del controllo
CrystalReportViewer a un file su disco

Contesto

Il modo più semplice per collegare un controllo CrystalReportViewer a un report Crystal è impostare la proprietà
ReportSource su un percorso su disco. Il report non incorporato viene visualizzato quando viene eseguita
l'applicazione.

Ciò consente di collegare il report direttamente al controllo. La completa interazione con il report a livello di codice
deve essere effettuata all'interno del modello a oggetti limitato CrystalReportViewer.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione Windows o al sito Web.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. Impostare la proprietà ReportSource sul percorso del report nel file system locale.

○ Quando si utilizzano applicazioni Windows Form o siti Web:

myCrystalReportViewer.ReportSource = "C:\MyReport.rpt"

crystalReportViewer.ReportSource = "C:\\MyReport.rpt";

○ Quando si utilizza un'applicazione WPF:

myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt"

crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";

1.4.5.3.1.2 Collegamento a un percorso della directory di file


mediante la finestra Proprietà

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
170 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Posizione dei report

I report vengono memorizzati in una directory di file.

Descrizione

Si tratta di una versione alternativa dello scenario più semplice di collegamento dei report descritto in
Collegamento a un percorso della directory di file tramite codice [pagina 169]. Un report situato nella directory di
file viene collegato al controllo CrystalReportViewer in base alla relativa stringa di percorso. Nella finestra
Proprietà viene tuttavia impostata direttamente la proprietà ReportSource oppure la proprietà
DataBindings>ReportSource.

Nel caso di un progetto Web, la stringa di percorso del report viene inserita direttamente nell'HTML della pagina
ASPX anziché nel codice della classe di codice sottostante.

Vantaggi

● Anteprima in fase di progettazione: il report può essere visualizzato in anteprima durante la fase di
progettazione, all'interno del Web Form o del Windows Form.

Nota
La funzione per la visualizzazione in anteprima in fase di progettazione è già da tempo disponibile per i siti
Web, ma rappresenta una novità per i progetti Windows.

● Bassa manutenzione: è possibile aggiungere, rimuovere o modificare i report senza ricompilare l'applicazione.
● Implementazione semplificata: non è necessario dichiarare le classi né crearne istanze. Consente di evitare
l'utilizzo del modello a oggetti ReportDocument, passando un report direttamente al controllo
CrystalReportViewer.

Svantaggi

● Nel caso di un'applicazione Web, poiché il collegamento avviene nella pagina HTML, è necessario chiamare il
metodo DataBind() per il controllo CrystalReportViewer nella classe di codice sottostante.

Nota
Questa limitazione è stata eliminata in SAP Crystal Reports per Visual Studio 2005.

● Distribuzione limitata: in genere i report risiedono nello stesso computer dell'applicazione, a causa delle
complicazioni che si verificano quando vengono concesse all'account utente ASPNET autorizzazioni per
l'accesso a un altro computer della rete.
● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte di CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 171
Informazioni correlate

Collegamento a un controllo CrystalReportSource (siti Web in Visual Studio) [pagina 172]

1.4.5.3.1.2.1 Per eseguire il collegamento a un percorso della


directory di file mediante la finestra Proprietà

Procedura

1. Creare un nuovo progetto Web o Windows.


2. Dalla casella degli strumenti trascinare un controllo CrystalReportViewer nel Web Form o nel Windows
Form.
3. Fare clic sul controllo CrystalReportViewer per selezionarlo.
4. Nella finestra Proprietà assegnare la stringa di un percorso della directory di file alla proprietà
ReportSource.

Nota
Il percorso della directory di file punta ai report di esempio forniti con Visual Studio 2005.

La funzione per l'anteprima in fase di progettazione determinerà la visualizzazione del report in modalità
anteprima.

C:\Programmi\Microsoft Visual Studio 8.0\Crystal Reports\Samples\En\Reports


\Feature Examples\Hierarchical Grouping.rpt

5. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.1.3 Collegamento a un controllo


CrystalReportSource (siti Web in Visual Studio)

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti CrystalReportViewer.

Posizione dei report

I report vengono memorizzati in una directory di file.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
172 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Descrizione

Si tratta di una versione alternativa dello scenario più semplice di collegamento dei report descritto in
Collegamento a un percorso della directory di file tramite codice [pagina 169]. In questo scenario il report viene
collegato mediante il nuovo modello per lo sviluppo di applicazioni basato su tag e codice ridotto disponibile in
ASP.NET versione 2.0.

Nota
Questo scenario di collegamento dei report è disponibile solo per i siti Web.

In questo scenario si utilizzano Smart Task per creare un controllo CrystalReportSource, quindi si seleziona un
report per il controllo creato.

Anziché scrivere manualmente il codice per interagire con il report e consentirne l'accesso al modello a oggetti
CrystalReportViewer, si effettuano selezioni dal riquadro Smart Task (in visualizzazione Progettazione) oppure si
immette direttamente codice XML dichiarativo (in visualizzazione Origine).

Grazie al codice XML dichiarativo, è possibile associare i tag <Parameters> e <DataSources> nidificati all'interno
del tag <Report> a un'ampia gamma di controlli non visivi disponibili nelle strutture Parameter e DataSource.

Nota
Le strutture Parameter e DataSource sono nuove funzioni di ASP.NET 2.0 e includono una serie di controlli tra
cui: ControlParameter o QueryStringParameter e SqlDataSource o JetDataSource.

Il modello per lo sviluppo di applicazioni basato su tag offre un metodo semplice e rapido per un'interazione
limitata con il report, che non implica la necessità di scrivere codice.

Vantaggi

● Anteprima in fase di progettazione: il report può essere visualizzato in anteprima durante la fase di
progettazione, all'interno del Web Form o del Windows Form.
● Maggiore facilità nella creazione di un'interazione con i report: l'approccio semplificato, associato all'impiego
di una quantità ridotta di codice che caratterizza il modello per lo sviluppo di applicazioni basato su tag può
essere utilizzato per interag
● Stessi vantaggi elencati in Collegamento a un percorso della directory di file tramite codice [pagina 169].

Svantaggi

● Distribuzione limitata: in genere i report risiedono nello stesso computer dell'applicazione, a causa delle
complicazioni che si verificano quando vengono concesse all'account utente ASPNET autorizzazioni per
l'accesso a un altro computer della rete.
● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte di CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 173
1.4.5.3.1.3.1 Collegamento di un controllo
CrystalReportSource mediante il modello Reduced Code

Procedura

1. Trascinare un controllo CrystalReportViewer nel Web Form.


2. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene aperto il riquadro Smart Task CrystalReportViewer Tasks. Nell'elenco Scegli un'origine report è
visualizzata l'opzione <Nessuno>.
3. Fare clic sull'elenco Scegli un'origine report e selezionare <Nuova origine report...>.
Viene visualizzata la finestra di dialogo Crea un'origine report.
4. Nella casella di testo Specifica un nome per il controllo, lasciare impostata la voce predefinita
CrystalReportSource1.
5. Fare clic sull'elenco Specifica un report per il controllo CrystalReportSource e selezionare <Sfoglia…> .
In alternativa, selezionare <Nuovo report>. Questa opzione consente di creare un nuovo report Crystal.
6. Selezionare un report da visualizzare nel controllo CrystalReportViewer e fare clic su OK.
7. Fare nuovamente clic su OK per chiudere la finestra di dialogo Scegli un'origine report.

Informazioni correlate

Esercitazione: Impostazione di un sito Web con codice ridotto con SAP Crystal Reports mediante Smart Task
[pagina 500]
In questa esercitazione viene illustrato come utilizzare il nuovo modello di sviluppo di applicazioni basato su tag
in Visual Studio. Per impostare un sito Web con SAP Crystal Reports mediante Smart Task, viene utilizzato un
modello di sviluppo basato su codice ridotto.

1.4.5.3.1.4 Collegamento all'URL di un servizio Web report

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti CrystalReportViewer.

Posizione dei report

La posizione dei report corrisponde a quella di un servizio Web report, ospitato su un server Web (in genere,
remoto).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
174 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Descrizione

Un report, memorizzato su un altro server ed eseguito come servizio Web report, viene collegato al controllo
CrystalReportViewer mediante il relativi URL.

Vantaggi

● Ampia distribuzione: i report possono essere distribuiti ovunque su Internet.


● Estrema facilità di distribuzione: i servizi Web report si trovano sulla porta 80. È pertanto possibile accedervi
anche mediante firewall.

Svantaggi

● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte di CrystalReportViewer.

Implementazione

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

● All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un


progetto [pagina 14], assegnare una stringa dell'URL del servizio Web report alla proprietà ReportSource della
classe CrystalReportViewer.
Ciò consente di collegare il report direttamente al controllo. La completa interazione con il report a livello di
codice deve essere effettuata all'interno del modello a oggetti limitato CrystalReportViewer.

myCrystalReportViewer.ReportSource = _
"http://localhost/TestProject/World_Sales_ReportService.asmx"

crystalReportViewer.ReportSource =
"http://localhost/TestProject/World_Sales_ReportService.asmx";

Nota
Per utilizzare questo scenario di collegamento, creare un progetto Servizi Web report in Visual Studio.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 175
Informazioni correlate

Utilizzo di Crystal Reports come servizio Web [pagina 80]

1.4.5.3.1.5 Scenari di collegamento a CrystalReportViewer


basati sull'utilizzo di Crystal Services

Utilizzo di Crystal Services in Visual Studio

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio consente l'accesso a livello di codice a
File di server mediante Crystal Services.

Utilizzo di Crystal Services in Visual Studio 2003

In Visual Studio 2003 è possibile accedere ai report Crystal tramite il nodo Crystal Services in Esplora server. Se
SAP Crystal Reports e Crystal Services sono entrambi installati, quest'ultimo viene visualizzato come nodo
secondario all'interno di ciascun server elencato in Esplora server.

Il nodo Crystal Services si espande in modo da visualizzare gli elenchi di report situati in diverse posizioni:

● Directory dei file locali sul disco rigido.


● Report Application Server (RAS)
● Crystal Enterprise (CE)

È possibile trascinare tutti i report di questi elenchi su un Web Form o un Windows Form.

Crystal Services espone in genere due nodi secondari che possono essere espandibili, in base alla versione di SAP
Crystal Reports attualmente installata e a eventuali altre licenze di cui si dispone per RAS (Report Application
Server) o Crystal Enterprise. Nella tabella contenuta nella sezione che segue vengono descritti i requisiti necessari
per accedere a un particolare nodo.

Può essere necessario adeguare le impostazioni del firewall per poter accedere al CMS della piattaforma SAP
BusinessObjects Business Intelligence. La porta predefinita per il CMS è 6400. Rivolgersi all'amministratore del
sistema per ulteriori informazioni sull'impostazione dell'indirizzo di rete e della porta per il sistema della
piattaforma SAP BusinessObjects Business Intelligence. Per ulteriori informazioni sulla personalizzazione delle
porte, consultare il Manuale dell'amministratore della piattaforma Business Intelligence SAP BusinessObjects.

Classi wrapper

Quando si trascina un report da Crystal Services in un Web Form o Windows Form, viene creata l'istanza di una
classe wrapper che fa riferimento al report nell'area relativa al codice generato da Progettazione Web Form o
Progettazione Windows Form della classe di codice sottostante.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
176 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Il tipo di classe wrapper varia nelle diverse versioni di SAP Crystal Reports. Fare riferimento alla tabella
riportata di seguito.

Gli esempi di Crystal Services elencati nella tabella seguente espongono tipi di classe wrapper non contenenti un
modello a oggetti, in quanto dipendono dal modello a oggetti limitato fornito con il controllo CrystalReportViewer.

Nella tabella che segue sono indicati gli esempi di Crystal Services inclusi in SAP Crystal Reports per Visual Studio
2003. i quali espongono gruppi di report situati nella directory dei file locali o nel server WCS (Web Component
Server) di Crystal Enterprise. I report sono contenuti in due diverse classi wrapper: ServerFileReport per i report
della directory dei file locali o EnterpriseReport per i report del server WCS di Crystal Enterprise.

Classe wrapper Nome del nodo in Versioni di SAP Cry­ Descrizione Requisiti per acce­
esposta mediante Crystal Services stal Reports dere al nodo
Crystal Services

ServerFileReport File di server SAP Crystal Reports Espone i report della Configurare le auto­
per Visual Stu­ directory dei file lo­ rizzazioni per gli
dio .NET 2003 cali tramite un servi­ utenti ASPNET. (ve­
zio Web comune, dere Collegamento a
(il nodo viene sosti­
ServerFileReport­ File di server
tuito quando si in­
Service. Per ulteriori (VS .NET 2003) [pa­
stalla SAP Crystal
informazioni, vedere gina 177]).
Reports 9 o 10)
Collegamento a File
di server (VS .NET
2003) [pagina 177].

EnterpriseReport Crystal Enterprise SAP Crystal Reports Accede ai servizi È necessario acce­
per Visual Stu­ Web report esposti dere all'installazione
dio .NET 2003 dal server WCS di di Crystal Enterprise
Crystal Enterprise 8, (che espone i report
(il nodo viene sosti­
8.5, 9 o 10 tramite un Enterprise tramite il
tuito quando si in­
servizio Web co­ server WCS).
stalla SAP Crystal
mune, EnterpriseRe­
Reports 9 o 10)
portService. Per ul­
teriori informazioni,
vedere Collegamento
a Crystal Enterprise
(VS .NET 2003) [pa­
gina 182].

1.4.5.3.1.5.1 Collegamento a File di server (VS .NET 2003)

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 177
Posizione dei report

I report si trovano in una cartella di report nella directory dei file locali. I report situati in questa posizione vengono
esposti come servizi Web report.

Panoramica di Crystal Services

Questo scenario di collegamento dei report si applica ai report a cui si accede dal nodo Crystal Services in Esplora
server.

In questa sezione viene descritto il nodo secondario File di server di Crystal Services all'interno di Visual
Studio .NET 2003.

[SERVERNAME]

● Crystal Services

○ File di server

Descrizione

Il nodo secondario File di server accede ai report esposti come servizi Web report da una directory dei file locali e li
visualizza. Tali report vengono esposti con il protocollo dei servizi Web report. In Visual Studio .NET 2003, per
accedere a File di Server, fare clic sul relativo nodo in Crystal Services.

Vantaggi

● Accesso centrale ai report: offre un unico punto di accesso a tutti i report della directory dei report di
esempio, che consente di creare un efficace repository di report nel disco rigido locale.

Svantaggi

● Sostituito in SAP Crystal Reports 9 e 10 con un nodo Crystal Services RAS non gestito. Per ulteriori dettagli,
vedere la precedente sezione Descrizione.
● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte di CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
178 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Configurazione di File di server

File di server viene fornito come nodo di Crystal Services in SAP Crystal Reports per Visual Studio 2003. Quando
SAP Crystal Reports 9 o 10 (versioni complete) viene installato sulla versione inclusa con Visual Studio 2003, il
nodo File di server non è più visibile.

Tutte le versioni di SAP Crystal Reports Developer continuano a supportare File di server nell'SDK. È tuttavia
necessaria la scrittura manuale di codice per utilizzare File di server in questa versione.

Informazioni correlate

Configurazione di File di server in Crystal Services [pagina 83]


Collegamento a Crystal Enterprise (VS .NET 2003) [pagina 182]
Utilizzo di Crystal Services [pagina 82]

1.4.5.3.1.5.1.1 Per installare Crystal Services

Prerequisiti

È necessario che sia installato SAP Crystal Reports per Visual Studio 2003 sia installato.

Contesto

Crystal Services non viene installato per impostazione predefinita durante l'installazione di Visual Studio .NET
2003. In questa procedura si installerà Crystal Services dal CD di installazione di Visual Studio .Net 2003.

Procedura

1. Nel CD di installazione di Microsoft Visual Studio .NET, individuare Crystal Reports.


2. Selezionare Servizio Web Crystal.
3. Fare clic sul pulsante Aggiorna.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 179
1.4.5.3.1.5.1.2 Per utilizzare il nodo Crystal Services>File di
server

Prerequisiti

● Installazione di SAP Crystal Reports per Visual Studio 2003 e verifica del relativo funzionamento.
● Oppure, installazione di SAP Crystal Reports 9 o versione successiva è installato e verifica del relativo
funzionamento.

Nota
In SAP Crystal Reports 9 e 10 File di server è sostituito: non viene più visualizzato come nodo sotto Crystal
Services. Tuttavia, è sempre possibile scrivere manualmente il codice di File di server.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. Dal menu Visualizza scegliere Altre finestre, quindi Esplora server.


2. Espandere Crystal Services, quindi File di server.
3. Selezionare un report nella struttura File di server e trascinarlo nel form.

Nota
Quando un report File di server viene inserito nel form, viene aggiunta un'istanza della classe
ServerFileReport nell'area del form relativa al codice generato dalla finestra di progettazione.

In seguito alla creazione di un'istanza e della configurazione delle classi che ereditano da
System.ComponentModel.Component (ad esempio, ServerFileReport) all'interno dell'area di codice
generato dalla finestra di progettazione, nella parte inferiore del form in visualizzazione Progettazione

Nella parte inferiore del form visualizzazione Progettazione, viene visualizzato un oggetto
serverFileReport1.
4. Passare alla visualizzazione del codice e aprire l'area relativa al codice generato da Progettazione Web Form o
Progettazione Windows Form.
All'interno di quest'area è stata creata un'istanza della classe ServerFileReport. È stata inoltre eseguita la
configurazione di tale classe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
180 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un
progetto, assegnare l'istanza di ServerFileReport alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = serverFileReport1

crystalReportViewer.ReportSource = serverFileReport1;

Passi successivi

Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.1.5.1.3 Scrittura manuale del codice di File di server

Prerequisiti

● Installazione di SAP Crystal Reports per Visual Studio 2003 e verifica del relativo funzionamento.
● Oppure, installazione di SAP Crystal Reports 9 o versione successiva è installato e verifica del relativo
funzionamento.

Nota
In SAP Crystal Reports 9 e 10 File di server è sostituito: non viene più visualizzato come nodo sotto Crystal
Services. Tuttavia, è sempre possibile scrivere manualmente il codice di File di server.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un


progetto, dichiarare un'istanza di ServerFileReport.

Dim myServerFileReport As CrystalDecisions.Shared.ServerFileReport = _


New CrystalDecisions.Shared.ServerFileReport()

CrystalDecisions.Shared.ServerFileReport serverFileReport = new


CrystalDecisions.Shared.ServerFileReport();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 181
2. Impostare la proprietà ObjectType di ServerFileReport su REPORT.

myServerFileReport.ObjectType = CrystalDecisions.
[Shared].EnumServerFileType.REPORT

serverFileReport.ObjectType = CrystalDecisions.Shared.EnumServerFileType.REPORT;

3. Impostare la proprietà ReportPath di ServerFileReport sul report e sulla relativa sottodirectory.

myServerFileReport.ReportPath = "\General Business\World Sales Report.rpt"

serverFileReport.ReportPath = "\\General Business\\World Sales Report.rpt";

4. Impostare la proprietà WebServiceURL di ServerFileReport sulla directory virtuale visualizzatori per la


versione installata di SAP Crystal Reports.

Nota
In questo codice di esempio, la directory virtuale visualizzatori viene configurata per SAP Crystal Reports
10.

myServerFileReport.WebServiceUrl = "http://localhost/crystalreportviewers10/
ServerFileReportService.asmx"

serverFileReport.WebServiceUrl = "http://localhost/crystalreportviewers10/
ServerFileReportService.asmx";

5. Impostare la proprietà ReportSource del controllo CrystalReportViewersull'istanza di


ServerFileReport.

myCrystalReportViewer.ReportSource = myServerFileReport

crystalReportViewer.ReportSource = serverFileReport1;

1.4.5.3.1.5.2 Collegamento a Crystal Enterprise (VS .NET


2003)

Lo scenario di collegamento fa riferimento a tecnologia esistente ed è indirizzato a utenti che già dispongono di
un'installazione di Crystal Enterprise. Crystal Enterprise è stato sostituito da SAP Crystal Reports Server e dalla
piattaforma SAP BusinessObjects Business Intelligence.

modello a oggetti

In questo scenario di collegamento dei report viene utilizzato CrystalReportViewer. Vedere Collegamento dei
report con il modello a oggetti CrystalReportViewer [pagina 168].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
182 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Posizione dei report

Il report è situato nel server WCS (Web Component Server) di Crystal Enterprise 8, 8.5, 9 o 10. I report del server
WCS vengono esposti come servizi Web report tramite il servizio Web EnterpriseReportService.asmx. Questo
servizio Web è situato nella directory virtuale visualizzatori di Web Component Server.

Panoramica di Crystal Services

Questo scenario di collegamento dei report si applica ai report a cui si accede dal nodo Crystal Services in Esplora
server.

In questa sezione viene descritto il nodo secondario Crystal Enterprise di Crystal Services. all'interno di Visual
Studio .NET 2003.

[SERVERNAME]

● Crystal Services

○ Crystal Enterprise

Descrizione

Il nodo secondario Crystal Enterprise accede ai report esposti come servizi Web report da un server WCS e li
visualizza.

Affinché il nodo secondario Crystal Enterprise possa accedere e visualizzare correttamente un elenco di report dal
server WCS di Crystal Enterprise è necessario che vengano soddisfatte le seguenti condizioni:

● Sul server attualmente visualizzato in Esplora server è in esecuzione Crystal Enterprise 8 o 8.5.

Nota
Per connettersi a Crystal Enterprise 9 o versioni successive, è necessario aggiornare SAP Crystal Reports
per Visual Studio 2003 a SAP Crystal Reports Developer (versione 9 o successiva).

● Il server WCS (Web Component Server) di Crystal Enterprise è installato sul server Crystal Enterprise.

Nota
Il server WCS è installato per impostazione predefinita in Crystal Enterprise 9 e 10. In Crystal Enterprise 8 e
8.5 il server WCS deve essere installato separatamente.

● Per configurare i servizi Web report sul server Crystal Enterprise 10, è necessario installare Visual Studio .NET
2003 sul server Crystal Enterprise, quindi eseguire la procedura di installazione personalizzata per
aggiungere Crystal Services.
Se l'amministratore di Crystal Enterprise non desidera installare una versione completa di Visual Studio .NET
2003 sul server Crystal Enterprise, è possibile procedere come segue:

○ Installare il modulo di unione managed.msm.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 183
○ Individuare la directory virtuale visualizzatori sul computer di sviluppo e copiare il file
EnterpriseReportService.asmx da questa directory alla directory virtuale visualizzatori del server.

Dopo aver visualizzato correttamente i report in Crystal Services, selezionare un report, trascinarlo e rilasciarlo
sul Web Form o il Windows Form. Una volta rilasciato sul form, il report viene racchiuso in una classe wrapper e
visualizzato come istanza del report nella barra dei componenti.

Nota
Sono disponibili diversi tipi di classi wrapper del report a seconda dell'origine del report sul server e del
protocollo di connessione. Essi variano in base alle diverse versioni di SAP Crystal Reports.

Installazione di Crystal Services

Crystal Services non viene installato per impostazione predefinita durante l'installazione di Visual Studio .NET
2003. Per aggiungerlo è necessario caricare il CD di installazione di Microsoft Visual Studio .NET, individuare
Crystal Reports, selezionare Servizio Web Crystal e fare clic sul pulsante di aggiornamento.

Vantaggi

● Semplicità di accesso ai report Crystal Enterprise da un'applicazione Web o Windows.

Svantaggi

● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte del controllo CrystalReportViewer.

Nota
In SAP Crystal Reports 9 e 10 Crystal Services viene aggiornato a una classe wrapper e un protocollo di
connessione diversi.

Informazioni correlate

Directory dei visualizzatori [pagina 13]


Utilizzo di Crystal Services [pagina 82]
Collegamento a File di server (Visual Studio 2005 e versioni successive) [pagina 186]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
184 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.5.3.1.5.2.1 Per accedere a Crystal Services>Crystal
Enterprise in Esplora server

Procedura

1. Dal menu Visualizza scegliere Altre finestre, quindi Esplora server.


2. Se il server Crystal Enterprise utilizzato risiede su un computer diverso dal computer locale (configurazione
consigliata):
a) Fare clic con il pulsante destro del mouse su Server, quindi fare clic su Aggiungi server.
b) Nel campo Computer della finestra di dialogo Aggiungi server, immettere il nome di rete del server Crystal
Enterprise e fare clic su OK.
c) All'interno del nodo Server, espandere il nodo secondario per il nuovo server aggiunto, quindi il nodo
secondario Crystal Services in esso contenuto.
d) Nella finestra di dialogo Connessione a Enterprise, immettere i valori nei campi Nome utente e Password,
quindi fare clic su OK.
3. Se il server Crystal Enterprise risiede sul computer locale:
a) All'interno del nodo Server, espandere il nodo secondario per il computer locale, quindi il nodo secondario
Crystal Services in esso contenuto.
b) Nella finestra di dialogo Connessione a Enterprise, immettere i valori nei campi Nome utente e Password,
quindi fare clic su OK.

Risultati

Ora è possibile configurare Crystal Services>Crystal Enterprise nel progetto Web o Windows.

1.4.5.3.1.5.2.2 Per configurare un report Crystal


Services>Crystal Enterprise

Prerequisiti

questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice richiesta
per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. Selezionare un report dal nodo secondario Crystal Enterprise e trascinarlo nel Web Form o nel Windows Form.
Nella parte inferiore del form all'interno della barra dei componenti verrà visualizzato un oggetto
enterpriseReport1.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 185
2. Passare alla visualizzazione del codice e aprire l'area relativa al codice generato di Progettazione Web Form o
Progettazione Windows Form.

Nota
All'interno di quest'area è stata creata un'istanza della classe EnterpriseReport. È stata inoltre eseguita la
configurazione di tale classe.

3. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un


progetto [pagina 14], assegnare l'istanza di EnterpriseReport alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = enterpriseReport1

crystalReportViewer.ReportSource = enterpriseReport1;

4. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.1.5.3 Collegamento a File di server (Visual Studio


2005 e versioni successive)

Modello a oggetti

In questo scenario di collegamento viene utilizzato il modello a oggetti CrystalReportViewer.

Posizione dei report

I report si trovano in una cartella di report nella directory dei file locali. I report situati in questa posizione vengono
esposti come servizi Web report.

Panoramica di File di server

Questo scenario di collegamento dei report si applica ai report a cui si accede come File di server tramite un
servizio Web.

Descrizione

Il servizio Web Server di file accede ai report che sono stati esposti come servizi Web report da una directory di file
locale e li visualizza. In Visual Studio 2005 e versioni successive, è possibile accedere a File di server a livello di
codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
186 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Vantaggi

● Accesso centrale ai report: offre un unico punto di accesso a tutti i report della directory dei report di
esempio, che consente di creare un efficace repository di report nel disco rigido locale.

Svantaggi

● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte di CrystalReportViewer.

Configurazione di File di server

L'accesso a File di server in SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio viene
eseguito a livello di codice. Tutte le versioni di SAP Crystal Reports Developer continuano a fornire supporto a
livello di codice per File di server nell'SDK.

Informazioni correlate

Configurazione di File di server in Visual Studio 2005 e versioni successive [pagina 87]

1.4.5.3.1.5.3.1 Per scrivere manualmente il codice di File di


server

Prerequisiti

● Configurazione di un servizio Web report che consente l'accesso ai File di server a livello di codice e verifica
del relativo funzionamento.
● Oppure, installazione di SAP Crystal Reports Developer e verifica del funzionamento.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 187
Procedura

1. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un


progetto [pagina 14], dichiarare un'istanza di ServerFileReport.

Dim myServerFileReport As CrystalDecisions.Shared.ServerFileReport = _New


CrystalDecisions.Shared.ServerFileReport()

CrystalDecisions.Shared.ServerFileReport serverFileReport = new


CrystalDecisions.Shared.ServerFileReport();

2. Impostare la proprietà ObjectType di ServerFileReport su REPORT.

myServerFileReport.ObjectType = CrystalDecisions.
[Shared].EnumServerFileType.REPORT

serverFileReport.ObjectType = CrystalDecisions.Shared.EnumServerFileType.REPORT;

3. Impostare la proprietà ReportPath di ServerFileReport sul report e sulla relativa sottodirectory.

myServerFileReport.ReportPath = "\General Business\World Sales


Report.rpt"

serverFileReport.ReportPath = "\\General Business\\World Sales


Report.rpt";

4. Impostare la proprietà WebServiceURL di ServerFileReport sulla posizione del servizio Web report.

Se SAP Crystal Reports Developer è installato, la posizione corrisponde alla directory virtuale visualizzatori
della versione installata di SAP Crystal Reports. Vedere Directory dei visualizzatori [pagina 13]. Se SAP Crystal
Reports Developer non è installato, la posizione corrisponde all'URL del servizio Web report creato in
Configurazione di File di server in Visual Studio 2005 e versioni successive [pagina 87].

Nota
Nel codice seguente la directory virtuale visualizzatori viene configurata per SAP Crystal Reports per Visual
Studio 2005.

myServerFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices2005/ServerFileReportService.asmx"

serverFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices2005/ServerFileReportService.asmx";

5. Impostare la proprietà ReportSource del controllo CrystalReportViewersull'istanza di


ServerFileReport.

myCrystalReportViewer.ReportSource = myServerFileReport

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
188 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.ReportSource = serverFileReport1;

1.4.5.3.1.5.4 Collegamento a SAP Crystal Reports Server o


alla piattaforma SAP BusinessObjects Business Intelligence
(Visual Studio)

modello a oggetti

In questo scenario di collegamento dei report viene utilizzato CrystalReportViewer. Vedere Collegamento dei
report con il modello a oggetti CrystalReportViewer [pagina 168].

Posizione dei report

Il report è situato nel server WCS (Web Component Server) in SAP Crystal Reports Server o nella piattaforma SAP
BusinessObjects Business Intelligence. I report del server WCS vengono esposti come servizi Web report tramite
il servizio Web EnterpriseReportService.asmx. Questo servizio Web è situato nella directory virtuale visualizzatori
di Web Component Server.

Panoramica di Crystal Services

Questo scenario di collegamento dei report si applica ai report a cui si accede dal nodo Crystal Services in Esplora
server.

In questa sezione viene descritto il nodo secondario SAP Crystal Reports Services di Crystal Services all'interno di
Visual Studio.

[SERVERNAME]

● SAP Crystal Reports Services

○ Report del server

Descrizione

Il nodo secondario della piattaforma SAP BusinessObjects Business Intelligence accede ai report esposti come
servizi Web report da un server WCS di una piattaforma SAP BusinessObjects Business Intelligence e li visualizza.

Affinché il nodo secondario della piattaforma SAP BusinessObjects Business Intelligence possa accedere a un
elenco di report dal server WCS della piattaforma SAP BusinessObjects Business Intelligence e visualizzarlo
correttamente, è necessario che vengano soddisfatte le condizioni seguenti:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 189
● Sul server attualmente visualizzato in Esplora server è in esecuzione la piattaforma SAP BusinessObjects
Business Intelligence.
● Per configurare i servizi Web report nella piattaforma SAP BusinessObjects Business Intelligence è necessario
installare Visual Studio nel server della piattaforma SAP BusinessObjects Business Intelligence, quindi
eseguire la procedura di installazione personalizzata per aggiungere Crystal Services.

Nota
l'installazione del server della piattaforma SAP BusinessObjects Business Intelligence di Visual Studio e
l'installazione personalizzata di Crystal Services sono operazioni necessarie per la corretta installazione e
configurazione del file EnterpriseReportService.asmx nella directory virtuale dei visualizzatori.

Se invece l'amministratore di Crystal Enterprise non desidera installare la versione completa di Visual Studio
nel server della piattaforma SAP BusinessObjects Business Intelligence, è possibile procedere come segue:

○ Installare il modulo di unione managed.msm.


○ Individuare la directory virtuale visualizzatori sul computer di sviluppo e copiare il file
EnterpriseReportService.asmx da questa directory alla directory virtuale visualizzatori del server.

Dopo aver visualizzato correttamente i report in Servizi SAP BusinessObjects, è possibile collegare un
controllo CrystalReportsViewer a uno qualsiasi dei report dell'elenco. Per ulteriori informazioni, consultare la
documentazione relativa alla piattaforma SAP BusinessObjects Business Intelligence.

Vantaggi

● Facilità di accesso ai report della piattaforma SAP BusinessObjects Business Intelligence da un'applicazione
Web o Windows.

Svantaggi

● Modello a oggetti limitato: questo scenario di collegamento rende disponibile solo il modello a oggetti limitato
che fa parte del controllo CrystalReportViewer.

Nota
In SAP Crystal Reports 9 e 10 Crystal Services viene aggiornato a una classe wrapper e un protocollo di
connessione diversi.

Informazioni correlate

Directory dei visualizzatori [pagina 13]


Utilizzo di Crystal Services [pagina 82]
Scelta del modello a oggetti appropriato al progetto [pagina 31]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
190 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.5.3.1.5.4.1 Per eseguire il collegamento a un percorso
della directory di file mediante la finestra Proprietà

Procedura

1. Creare un nuovo progetto Web o Windows.


2. Dalla casella degli strumenti trascinare un controllo CrystalReportViewer nel Web Form o nel Windows
Form.
3. Fare clic sul controllo CrystalReportViewer per selezionarlo.
4. Nella finestra Proprietà assegnare la stringa di un percorso della directory di file alla proprietà
ReportSource.

Nota
Il percorso della directory di file punta ai report di esempio forniti con Visual Studio 2005.

La funzione per l'anteprima in fase di progettazione determinerà la visualizzazione del report in modalità
anteprima.

C:\Programmi\Microsoft Visual Studio 8.0\Crystal Reports\Samples\En\Reports


\Feature Examples\Hierarchical Grouping.rpt

5. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.1.6 Collegamento a ReportSource (SAP Crystal


Reports Server o SAP BusinessObjects Enterprise 11)

Nota
Questa pagina descrive una funzionalità che non è disponibile in SAP Crystal Reports, versione per sviluppatori
per Microsoft Visual Studio ma che è invece disponibile in una delle versioni aggiornate.

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti CrystalReportViewer.

Posizione dei report

L'accesso ai report avviene da Page Server nella piattaforma SAP BusinessObjects Business Intelligence.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 191
Descrizione

SAP Crystal Reports Server o la piattaforma SAP BusinessObjects Business Intelligence consente la distribuzione
di report dai server situati nel framework Enterprise. Un report memorizzato in SAP Crystal Reports Server o nella
piattaforma SAP BusinessObjects Business Intelligence può essere visualizzato da server differenti in momenti
diversi, a seconda delle necessità. Se si desidera ottenere prestazioni ottimali durante la visualizzazione di un
report e non sono necessarie modifiche significative a livello di codice, in SAP Crystal Reports Server o nella
piattaforma SAP BusinessObjects Business Intelligence visualizzare il report direttamente da Page Server con la
classe ReportSource.

La classe ReportSource class non è associata a un modello a oggetti. Se si desidera modificare i parametri o le
impostazioni del database, è possibile utilizzare il modello a oggetti limitato fornito con il controllo
CrystalReportViewer. Tuttavia, per un'interazione a livello di codice più complessa con il report, utilizzare uno
degli altri scenari di collegamento dei report di SAP Crystal Reports Server o della piattaforma SAP
BusinessObjects Business Intelligence.

Nota
Per un confronto tra diversi scenari che utilizzano server differenti in SAP Crystal Reports Server o nella
piattaforma SAP BusinessObjects Business Intelligence, vedere gli scenari di collegamento consigliati per SAP
Crystal Reports Server o per la piattaforma SAP BusinessObjects Business Intelligence nella sezione Scenari di
collegamento dei report [pagina 167].

Può essere necessario adeguare le impostazioni del firewall per poter accedere al CMS della piattaforma SAP
BusinessObjects Business Intelligence. La porta predefinita per il CMS è 6400. Rivolgersi all'amministratore del
sistema per ulteriori informazioni sull'impostazione dell'indirizzo di rete e della porta per il sistema della
piattaforma SAP BusinessObjects Business Intelligence. Per ulteriori informazioni sulla personalizzazione delle
porte, consultare il Manuale dell'amministratore della piattaforma Business Intelligence SAP BusinessObjects.

Vantaggi

● Estrema rapidità: prestazioni ottimali per la visualizzazione di un report di SAP Crystal Reports Server o della
piattaforma SAP BusinessObjects Business Intelligence.

Svantaggi

● Modello a oggetti limitato: la modifica a livello programmatico dell'accesso al database o delle impostazioni
dei parametri è limitata al modello a oggetti CrystalReportViewer.
● Disponibilità limitata: questo scenario è disponibile solo in Crystal Enterprise versione 10, SAP Crystal Reports
Server o SAP BusinessObjects Enterprise XI.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
192 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Collegamento dei report con il modello a oggetti ReportDocument [pagina 196]

1.4.5.3.1.6.1 Per collegare il controllo CrystalReportViewer a


un report eseguito all'esterno di Page Server di SAP Crystal
Reports Server o della piattaforma SAP BusinessObjects
Business Intelligence

Prerequisiti

● Installazione di SAP Crystal Reports Server o della piattaforma SAP BusinessObjects Business Intelligence e
verifica del relativo funzionamento.
● Installazione dell'SDK di SAP Crystal Reports Server o della piattaforma SAP BusinessObjects Business
Intelligence(inclusi gli assembly .NET) e verifica del relativo funzionamento.

Nota
Se nel computer di sviluppo è stata eseguita l'installazione di SAP Crystal Reports Server o della
piattaforma SAP BusinessObjects Business Intelligence, l'SDK sarà incluso nell'installazione.

Procedura

1. Individuare e scrivere il nome di un server SAP Crystal Reports Server o della piattaforma SAP
BusinessObjects Business Intelligence. Ai fini di questo esempio, il nome del server è "BOE01".
a) Per individuare il nome del server fare clic con il pulsante destro del mouse sull'icona Risorse del
computer, quindi selezionare Proprietà.
b) Nella finestra di dialogo Proprietà del sistema, fare clic sulla scheda ID della rete.
c) Il nome del computer si trova nel campo "Nome computer completo".
2. Utilizzare Pubblicazione guidata per pubblicare la classe Chart.rpt nel server SAP Crystal Reports Server o
della piattaforma SAP BusinessObjects Business Intelligence.

Nota
Per informazioni su come utilizzare Pubblicazione guidata, consultare la documentazione per l'utente di
SAP Crystal Reports Server o della piattaforma SAP BusinessObjects Business Intelligence.

3. Aggiungere al progetto i seguenti riferimenti relativi agli assembly:

○ CrystalDecisions.Enterprise.Framework
○ CrystalDecisions.Enterprise.InfoStore
○ CrystalDecisions.Enterprise.Viewing.ReportSource

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 193
○ CrystalDecisions.ReportAppServer.Controllers
4. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante relativa al Web Form o al
Windows Form. Sopra la classe, aggiungere una dichiarazione "Imports" [Visual Basic] o "using"
[C#] per lo spazio dei nomi CrystalDecisions.Enterprise.

Imports CrystalDecisions.Enterprise
Imports CrystalDecisions.Enterprise.Viewing
Imports CrystalDecisions.ReportAppServer.Controllers

using CrystalDecisions.Enterprise;
using CrystalDecisions.Enterprise.Viewing;
using CrystalDecisions.ReportAppServer.Controllers;

1.4.5.3.1.6.2 Per accedere a SAP Crystal Reports Server o


SAP BusinessObjects Enterprise

Procedura

1. Nel metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14] ) dichiarare


una variabile di stringa serverName e impostarla sul nome del server SAP Crystal Reports Server o SAP
BusinessObjects Enterprise.

Dim serverName As String = "BOE01"

string serverName = "BOE01";

2. Dichiarare e creare un'istanza della classe SessionMgr.

Dim mySessionMgr As SessionMgr = New SessionMgr()

SessionMgr sessionMgr = new SessionMgr();

3. Passare il nome utente (Administrator), la password (vuota), la variabile serverName e il tipo di accesso
(secEnterprise) al metodo Logon dell'istanza di SessionMgr e recuperarla come un'istanza di
EnterpriseSession.

Dim myEnterpriseSession As EnterpriseSession = mySessionMgr.Logon( _


"Administrator", "", serverName, "secEnterprise")

EnterpriseSession enterpriseSession = sessionMgr.Logon(


"Administrator", "", serverName, "secEnterprise");

4. Recuperare il servizio InfoStore (come EnterpriseService) dal metodo GetService di


EnterpriseSession.

Dim myEnterpriseService As EnterpriseService = _


myEnterpriseSession.GetService("InfoStore")

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
194 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
EnterpriseService enterpriseService = enterpriseSession.GetService("InfoStore");

5. Dichiarare e creare un'istanza di InfoStore e passare il servizio EnterpriseService recuperato a


InfoStore come parametro.

Dim myInfoStore As InfoStore = New InfoStore(myEnterpriseService)

InfoStore infoStore = new InfoStore(enterpriseService);

1.4.5.3.1.6.3 Per recuperare il report di raggruppamento


gerarchico da SAP Crystal Reports Server o SAP
BusinessObjects Enterprise

Procedura

1. Per riassegnare il valore dell'istanza di EnterpriseService al servizio factory dei report di Page Server, passare
la stringa "PSReportFactory" al metodo GetService() di EnterpriseService.

myEnterpriseService = myEnterpriseSession.GetService("PSReportFactory")

enterpriseService = enterpriseSession.GetService("PSReportFactory");

2. Impostare di nuovo la proprietà Interface di EnterpriseService come variabile oggetto.

Dim psrfObject As Object = myEnterpriseService.Interface

Object psrfObject = enterpriseService.Interface;

3. Eseguire il cast della variabile oggetto in un'istanza di PSReportFactory.

Dim myPSReportFactory As PSReportFactory = CType(psrfObject, PSReportFactory)

PSReportFactory psReportFactory = (PSReportFactory)psrfObject;

4. Inserire la stringa di query riportata di seguito per ricercare il report in SAP Crystal Reports Server o SAP
BusinessObjects Enterprise.

Dim queryString As String = "Select SI_ID, SI_NAME, SI_PARENTID From


CI_INFOOBJECTS " _
& "Where SI_PROGID='CrystalEnterprise.Report' " _
& "And SI_NAME Like 'Chart'"

string queryString = "Select SI_ID, SI_NAME, SI_PARENTID From CI_INFOOBJECTS "


+ "Where SI_PROGID='CrystalEnterprise.Report' "
+ "And SI_NAME Like 'Chart'";

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 195
5. Passare la stringa di query al metodo Query di InfoStore per recuperare una classe indicizzata
InfoObjectscontenente il risultato della query.

Dim myInfoObjects As InfoObjects = myInfoStore.Query(queryString)

InfoObjects infoObjects = infoStore.Query(queryString);

6. Recuperare InfoObject dalla prima colonna della classe indicizzata InfoObjects.

Dim myInfoObject As InfoObject = myInfoObjects(1)

InfoObject infoObject = infoObjects[1];

7. Dichiarare e compilare un'istanza di ReportSource dal metodo OpenReportSource() dell'istanza di


PSReportFactory, passando la proprietà ID di InfoObject.

Dim myReportSource As ReportSource =


myPSReportFactory.OpenReportSource(myInfoObject.ID)

ReportSource reportSource = psReportFactory.OpenReportSource(infoObject.ID);

8. Collegare l'istanza di ReportSource alla proprietà ReportSource del controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = myReportSource

crystalReportViewer.ReportSource = reportSource;

9. Per visualizzare il report, creare ed eseguire il progetto.


Il report è ora visualizzato da Page Server di SAP Crystal Reports Server o SAP BusinessObjects Enterprise in
base al relativo ID. Se si utilizza un metodo alternativo per accedere a reportID (ad esempio la scelta dell'ID
da un elenco di report in un controllo DropDownList), non sarà necessario eseguire una query di InfoStore
e generare un InfoObject per recuperare reportID.

1.4.5.3.2 Collegamento dei report con il modello a oggetti


ReportDocument

ReportDocument rappresenta il modello a oggetti più efficace e completo fornito con SAP Crystal Reports,
versione per sviluppatori per Microsoft Visual Studio. Si tratta del modello a oggetti più appropriato da utilizzare
per lo sviluppo di un progetto con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

1.4.5.3.2.1 Collegamento a una classe di report incorporati

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
196 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Posizione dei report

I report vengono incorporati nel progetto.

Nota
nelle versioni precedenti della presente documentazione i report incorporati venivano denominati report "con
tipizzazione forte". Un report aggiunto o importato in un progetto Visual Studio è attualmente definito
"incorporato".

Descrizione

In questo scenario un report viene incorporato nel progetto. Per incorporare un report, è possibile creare un
nuovo report con SAP Crystal Reports Designer incorporato (contenuto in Visual Studio) oppure importare un
report esistente nel progetto. Quando il report viene creato o importato, viene generata automaticamente una
classe wrapper che ha la funzione di rappresentarlo. Questa classe è associata allo stesso nome del report. Poiché
deriva dalla classe base ReportDocument, ne eredita tutte le proprietà e tutti i metodi: fa pertanto parte del
modello a oggetti ReportDocument.

Vantaggi

● Maggiore sicurezza: il report viene incorporato e distribuito pertanto come parte dell'applicazione.
● Ampia interazione a livello di programmazione: consente di accedere al potente modello a oggetti
ReportDocument.
● Maggiore sicurezza: offre il massimo controllo sull'accesso alle origini report.
● Utilizzo diffuso: la maggior parte degli sviluppatori ritiene che questo scenario offra moltissimi vantaggi.

Svantaggi

● Ulteriore attività di gestione: le modifiche apportate ai report richiedono la ricompilazione e la ridistribuzione


dell'applicazione.

1.4.5.3.2.1.1 Per eseguire il collegamento a una classe di


report incorporati

Contesto

Quando si crea o si importa un report, viene generata automaticamente una classe wrapper che ha la funzione di
rappresentarlo. Questa classe è associata allo stesso nome del report. Poiché deriva dalla classe base

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 197
ReportDocument, ne eredita tutte le proprietà e tutti i metodi: fa pertanto parte del modello a oggetti
ReportDocument.

Procedura

1. Aggiungere un controllo CrystalReportViewer a un Windows Form.

Nota
Tutte le versioni di SAP Crystal Reports supportano il collegamento a una classe di report incorporati per le
applicazioni Windows. Alcune configurazioni forniscono il supporto per questo scenario di collegamento
per i siti Web tramite un compilatore avanzato.

2. Aggiungere un report al progetto. In questo modo viene generata automaticamente una classe wrapper del
report con lo stesso nome del report.
3. Creare un'istanza di tale classe.

Dim myReport As New QuarterlySalesReport()

QuarterlySalesReport myReport = new QuarterlySalesReport();

4. Assegnarla alla proprietà ReportSource del controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = myReport

crystalReportViewer.ReportSource = myReport;

1.4.5.3.2.2 Collegamento a un report non incorporato


caricato nella classe ReportDocument

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Posizione dei report

I report sono situati nella directory dei file.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
198 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Descrizione

Questo scenario di collegamento dei report consente di utilizzare il modello a oggetti più potente, ovvero
ReportDocument, con report non incorporati, ossia esterni al progetto.

In Collegamento a un percorso della directory di file tramite codice [pagina 169] viene eseguito il collegamento ai
report in base alle rispettive stringhe di percorso della directory di file; tuttavia, anziché collegare i percorsi di
directory direttamente al visualizzatore, effettuarne il passaggio al metodo ReportDocument.Load(). Ciò
consente di utilizzare il modello a oggetti ReportDocument.

Inoltre, poiché ogni report esterno viene caricato nella classe comune ReportDocument, è possibile sviluppare un
processo di selezione dei report che condivida il codice comune di collegamento per tutti i report.

Vantaggi

● Bassa manutenzione: è possibile aggiungere, rimuovere o modificare i report senza ricompilare l'applicazione.
● Ampia interazione a livello di programmazione: consente di accedere al potente modello a oggetti
ReportDocument.
● Riduzione della scrittura di codice grazie alla condivisione: i report possono condividere il codice poiché sono
situati tutti nella classe comune ReportDocument.

Svantaggi

● Distribuzione limitata: i report devono trovarsi sullo stesso computer dell'applicazione. L'accesso da parte
dell'account utente ASPNET del server Web ad altri server della rete è in genere limitato.
● Attività di distribuzione supplementare: i report devono essere distribuiti insieme all'applicazione nel percorso
relativo corretto.
● Origine report meno sicura: esiste il rischio che i report vengano riposizionati o rimossi in fase di esecuzione
dal computer di distribuzione.

1.4.5.3.2.2.1 Per eseguire il collegamento a un report non


incorporato mediante il modello a oggetti ReportDocument

Prerequisiti

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 199
Procedura

1. All'inizio della classe aggiungere un'istruzione "Imports" [Visual Basic] o "using" [C#]] per lo spazio
dei nomi CrystalDecisions.CrystalReports.Engine.

Nota
La dichiarazione di questo spazio dei nomi è necessaria per poter accedere alla classe ReportDocument
senza un prefisso dello spazio dei nomi.

Imports CrystalDecisions.CrystalReports.Engine

using CrystalDecisions.CrystalReports.Engine;

2. Individuare il file World Sales Report.rpt nella sottodirectory General Business della versione in uso di SAP
Crystal Reports.
3. Copiare il percorso completo della directory di file negli Appunti, incluso World Sales Report.rpt.
4. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un
progetto [pagina 14], dichiarare una variabile di stringa reportPath e assegnare una stringa che contiene il
percorso della directory del file World Sales Report copiato nel precedente passaggio.

Dim reportPath As String = _


"C:\Programmi\Microsoft Visual Studio 9.0\" _ & "Crystal Reports\Samples\En
\Reports\General Business\" _ & "World Sales Report.rpt"

string reportPath =
"C:\\Programmi\\Microsoft Visual Studio 9.0\\" + "Crystal Reports\\Samples\\En
\\Reports\\General Business\\" + "World Sales Report.rpt";

5. Sotto la dichiarazione della stringa, dichiarare un'istanza di ReportDocument.

Dim myReportDocument As ReportDocument = New ReportDocument()

ReportDocument reportDocument = new ReportDocument();

6. Caricare la variabile di stringa. che contiene il percorso della directory di file, al report non incorporato in
ReportDocument.

myReportDocument.Load(reportPath)

reportDocument.Load(reportPath);

7. Assegnare l'istanza di ReportDocument (contenente ora il report non incorporato caricato) alla proprietà
ReportSource del controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = myReportDocument

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
200 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.ReportSource = reportDocument;

8. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.2.3 Collegamento a una classe di report incorporati e


memorizzati nella cache

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Posizione dei report

I report vengono incorporati nel progetto.

Descrizione

Quando un report viene incorporato in un progetto Visual Studio, viene generata automaticamente una classe
wrapper del report che rappresenta il file di report nel progetto. Contemporaneamente, viene generata
automaticamente anche una classe di utilità per la gestione della cache per tale report.

In questo scenario il controllo CrystalReportViewer viene collegato alla classe di utilità per la gestione della cache,
in modo che la memorizzazione nella cache del report all'interno dell'oggetto Cache di ASP.NET venga gestita
automaticamente.

Memorizzazione nella cache

L'operazione di memorizzazione nella cache ha un utilizzo limitato e specifico: se non viene gestita con attenzione
può comportare un eccessivo sfruttamento delle risorse di sistema.

Memorizzazione nella cache di report non incorporati

Se si desidera gestire la memorizzazione nella cache di report non incorporati, è necessario creare una classe di
utilità per la gestione della cache personalizzata. Per ulteriori informazioni, vedere Collegamento a un report non
incorporato caricato in una classe di utilità per la gestione della cache [pagina 203].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 201
Vantaggi

● Appositamente studiato per la condivisibilità: ideale per la memorizzazione dei report che presentano elevata
condivisibilità e poche permutazioni nei parametri o nelle informazioni di accesso.
● Consente di ottimizzare l'accesso ai dati: se i report con elevata condivisibilità sono di dimensioni molto
grandi o presentano una query talmente complessa da richiedere diversi minuti per il recupero, l'uso della
classe di utilità per la gestione della

Svantaggi

● Affaticamento del server: i report che rimangono nell'oggetto Cache di ASP.NET possono implicare un utilizzo
eccessivo delle risorse di memoria del server.
● Problemi di persistenza: la cache dispone di alcune dipendenze che consentono di verificare le modifiche
apportate in un'istanza del report e memorizzare nuovamente tale istanza nella cache. Tuttavia, l'istanza del
report nell'oggetto Cache non viene aggiornata in base a eventuali modifiche apportate al database.
● Consumo di risorse: un report dotato di parametri che vengono chiamati frequentemente con differenti
stringhe di parametro comporta ogni volta una nuova memorizzazione nella cache, in particolare se uno di tali
parametri corrisponde all'ID utente. Tale operazione richiede un elevato utilizzo delle risorse di sistema. Se il
report non presenta un alto livello di condivisione, la relativa istanza dovrà essere assegnata a un oggetto
Session.

Informazioni correlate

Utilizzo di report normali o memorizzati nella cache [pagina 217]


Modello a oggetti ReportDocument [pagina 36]
Session e persistenza del modello a oggetti ReportDocument [pagina 56]

1.4.5.3.2.3.1 Per eseguire il collegamento a una classe di


utilità per la gestione della cache

Prerequisiti

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
202 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Nel metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14]), eliminare le


righe di codice esistenti per sostituire la classe wrapper del report con la classe dell'utilità di gestione della
cache.
2. Creare un'istanza della classe di utilità per la gestione della cache associata a Hierarchical Grouping.rpt.

Dim cachedHierarchicalGroupingReport As CachedHierarchical_Grouping


= New CachedHierarchical_Grouping()

CachedHierarchical_Grouping cachedHierarchicalGroupingReport = new


CachedHierarchical_Grouping();

3. Passare l'istanza dell'utilità di gestione della cache al controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = cachedHierarchicalGroupingReport

crystalReportViewer.ReportSource = cachedHierarchicalGroupingReport;

4. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.2.4 Collegamento a un report non incorporato


caricato in una classe di utilità per la gestione della cache

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Posizione dei report

I report sono situati nella directory dei file.

Descrizione

Questo scenario di collegamento dei report è simile allo scenario Collegamento a una classe di report incorporati e
memorizzati nella cache [pagina 201]. La differenza con tale scenario è che i report non sono incorporati. Per
ulteriori informazioni sui report non incorporati, vedere Confronto tra i report incorporati e quelli non incorporati
[pagina 162].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 203
In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio sono disponibili due funzionalità per
la memorizzazione dei report nell'oggetto cache di ASP.NET:

● Una struttura incorporata per la gestione della cache dei report in grado di rilevare se report identici
presentano parametri e credenziali di accesso univoche che richiedono una chiave univoca per ogni istanza
memorizzata nella cache.
● Un'interfaccia IcachedReport che consente l'identificazione delle classi dell'utilità di gestione della cache
dei report in tale struttura.

In Collegamento a una classe di report incorporati e memorizzati nella cache [pagina 201], è stata descritta la
classe Cached[nome report] creata automaticamente quando un report viene incorporato nel progetto. È
possibile tuttavia creare manualmente una classe di utilità per la gestione della cache in grado di gestire i report
non incorporati. Per un esempio di codice, vedere la sezione Implementazione di seguito.

Memorizzazione nella cache

L'operazione di memorizzazione nella cache ha un utilizzo limitato e specifico: se non viene gestita con attenzione
può comportare un eccessivo sfruttamento delle risorse di sistema.

Vantaggi

● Appositamente studiato per la condivisibilità: ideale per la memorizzazione dei report che presentano elevata
condivisibilità e poche permutazioni nei parametri o nelle informazioni di accesso.
● Consente di ottimizzare l'accesso ai dati: se i report con elevata condivisibilità sono di dimensioni molto
grandi o presentano una query talmente complessa da richiedere diversi minuti per il recupero, l'uso della
classe di utilità per la gestione della

Svantaggi

● Affaticamento del server: i report che rimangono nell'oggetto Cache di ASP.NET possono implicare un utilizzo
eccessivo delle risorse di memoria del server.
● Problemi di persistenza: la cache dispone di alcune dipendenze che consentono di verificare le modifiche
apportate in un'istanza del report e memorizzare nuovamente tale istanza nella cache. Tuttavia, l'istanza del
report nell'oggetto Cache non viene aggiornata in base a eventuali modifiche apportate al database.
● Consumo di risorse: un report dotato di parametri che vengono chiamati frequentemente con differenti
stringhe di parametro comporta ogni volta una nuova memorizzazione nella cache, in particolare se uno di tali
parametri corrisponde all'ID utente. Tale operazione richiede un elevato utilizzo delle risorse di sistema. Se il
report non presenta un alto livello di condivisione, la relativa istanza dovrà essere assegnata a un oggetto
Session.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
204 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Collegamento con il componente ReportDocument [pagina 209]


Modello a oggetti ReportDocument [pagina 36]
Session e persistenza del modello a oggetti ReportDocument [pagina 56]

1.4.5.3.2.4.1 Per memorizzare nella cache e collegare un


report non incorporato a un controllo CrystalReportViewer

Prerequisiti

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. Individuare il file World Sales Report.rpt nella sottodirectory General Business.


2. Copiare il percorso completo della directory di file negli Appunti, incluso World Sales Report.rpt.
3. Nel metodo ConfigureCrystalReports(), creato in Impostazione di un progetto [pagina 14], dichiarare
una variabile di stringa reportPath e assegnare una stringa che contiene il percorso della directory del file
World Sales Report copiato nel precedente passaggio.

Dim reportPath As String = _


"C:\Program Files\Microsoft Visual Studio 9.0\" _
& "Crystal Reports\Samples\En\Reports\General Business\" _
& "World Sales Report.rpt"

string reportPath =
"C:\\Program Files\\Microsoft Visual Studio 9.0\\"
+ "Crystal Reports\\Samples\\En\\Reports\\General Business\\"
+ "World Sales Report.rpt";

4. Dichiarare e creare un'istanza della classe NonEmbeddedReportCacher e passare a essa la variabile di


stringa reportFile.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 205
Nota
Per informazioni su come creare la classe NonEmbeddedReportCacher, fare riferimento alla successiva
procedura.

Dim myNonEmbeddedReportCacher As NonEmbeddedReportCacher = _New


NonEmbeddedReportCacher(reportFile)

NonEmbeddedReportCacher nonEmbeddedReportCacher = new


NonEmbeddedReportCacher(reportFile);

5. Assegnare l'istanza della classe di utilità per la gestione della cache dei report alla proprietà ReportSource del
controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = myNonEmbeddedReportCacher

crystalReportViewer.ReportSource = nonEmbeddedReportCacher;

1.4.5.3.2.4.2 Per creare la classe di utilità per la gestione


della cache NonEmbeddedReportCacher

Procedura

1. Creare una nuova classe nel progetto denominata NonEmbeddedReportCacher.

Public Class NonEmbeddedReportCacher

End Class

using System;

namespace MyWebApplication
{
public class NonEmbeddedReportCacher
{
public NonEmbeddedReportCacher()
{
}
}
}

2. Aggiungere l'interfaccia ICachedReport alla firma della classe.

Public Class NonEmbeddedReportCacher


Implements ICachedReport

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
206 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
public class NonEmbeddedReportCacher : ICachedReport

3. All'inizio della classe aggiungere tre istruzioni [C#] "Imports" [Visual Basic] o "using".

Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.CrystalReports.Engine

using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
using CrystalDecisions.CrystalReports.Engine;

4. All'interno della classe, dichiarare due istanze a livello di classe: un'istanza di stringa denominata
reportFileName e un'istanza di ReportDocument denominata nonEmbeddedReportDocument.

Private reportFileName As String


Private nonEmbeddedReportDocument As ReportDocument

private string reportFileName;


private ReportDocument nonEmbeddedReportDocument;

5. Impostare il costruttore in modo che accetti una stringa reportFileName e assegnare tale stringa alla variabile
di classe reportFileName, all'interno del costruttore stesso.

Public Sub New(ByVal reportFileName As String)


Me.reportFileName = reportFileName
End Sub

public NonEmbeddedReportCacher(string reportFileName)


{
this.reportFileName = reportFileName;
}

I restanti passaggi implementano proprietà o metodi richiesti dall'interfaccia:

○ IsCacheable
○ ShareDBLogonInfo
○ CacheTimeOut
○ CreateReport()
○ GetCustomizedCacheKey(RequestContext request)
6. Creare la proprietà IsCacheable che dovrebbe restituire True.

Public Overridable Property IsCacheable() As Boolean Implements


ICachedReport.IsCacheable
Get
Return True
End Get
Set(ByVal Value As Boolean)
End Set
End Property

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 207
public virtual Boolean IsCacheable
{
get
{
return true;
}
set
{
}
}

7. Creare la proprietà ShareDBLogonInfo che dovrebbe restituire False.

Public Overridable Property ShareDBLogonInfo() As Boolean Implements


ICachedReport.ShareDBLogonInfo
Get
Return False
End Get
Set(ByVal Value As Boolean)
End Set
End Property

public virtual Boolean ShareDBLogonInfo


{
get
{
return false;
}
set
{
}
}

8. Creare la proprietà CacheTimeOut che restituisce una costante della classe CachedReportConstants.

Public Overridable Property CacheTimeOut() As TimeSpan Implements


ICachedReport.CacheTimeOut
Get
Return CachedReportConstants.DEFAULT_TIMEOUT
End Get
Set(ByVal Value As TimeSpan)
End Set
End Property

public virtual TimeSpan CacheTimeOut


{
get
{
return CachedReportConstants.DEFAULT_TIMEOUT;
}
set
{
}
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
208 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
9. Creare il metodo CreateReport() che restituisce un report non incorporato caricato nell'istanza di
ReportDocument a livello di classe.

Public Overridable Function CreateReport() As ReportDocument Implements


ICachedReport.CreateReport
nonEmbeddedReportDocument = New ReportDocument()
nonEmbeddedReportDocument.Load(reportFileName)
Return nonEmbeddedReportDocument
End Function

public virtual ReportDocument CreateReport()


{
nonEmbeddedReportDocument = new ReportDocument();
nonEmbeddedReportDocument.Load(reportFileName);
return nonEmbeddedReportDocument;
}

10. Creare il metodo GetCustomizedCacheKey() che restituisce un valore Null.

Nota
La restituzione di un valore Null da parte di questo metodo indica all'SDK di SAP Crystal Reports .NET di
gestire autonomamente la chiave di ricerca della cache. In alternativa, è possibile creare e aggiungere un
proprio metodo personalizzato per la chiave di cache.

Public Overridable Function GetCustomizedCacheKey(ByVal request As


RequestContext) As String Implements ICachedReport.GetCustomizedCacheKey
Return Nothing
End Function

public virtual String GetCustomizedCacheKey(RequestContext request)


{
return null;
}

11. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.2.5 Collegamento con il componente


ReportDocument

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Posizione dei report

I report sono situati nella directory dei file.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 209
Descrizione

Il componente ReportDocument si trova nella casella degli strumenti e fornisce un metodo basato GUI per
generare il codice per la creazione dell'istanza della classe per il report nella classe di codice sottostante. È
possibile specificare un report non incorporato, un report incorporato o un report incorporato e memorizzato
nella cache.

Nota
Nella finestra di dialogo vengono utilizzati i termini "report non tipizzato" per fare riferimento a un report non
incorporato e "report con tipizzazione forte" per fare riferimento a un report incorporato.

Se si utilizza questa finestra per aggiungere ReportDocument come componente, viene creata un'istanza della
classe ReportDocument o della classe wrapper del report incorporato nell'area a generazione automatica della
classe di codice sottostante. Contemporaneamente, nella barra dei componenti dell'IDE viene visualizzata
un'icona per rappresentare in modo visivo la classe del report di cui è stata creata l'istanza.

Nota
Non è necessario aggiungere un componente ReportDocument al progetto per creare un'istanza del report
nella classi di codice sottostante. Per un maggiore controllo del codice, si consiglia di aggiungere manualmente
il codice per la creazione dell'istanza della classe.

Informazioni correlate

Modello a oggetti ReportDocument [pagina 36]

1.4.5.3.2.6 Scenari di collegamento a ReportDocument


basati sull'utilizzo di Crystal Services (VS.NET 2003)

Crystal Services consente di accedere con facilità ai report in Visual Studio 2003. Questa funzione non è
disponibile in Visual Studio 2005 o Visual Studio 2008. Se SAP Crystal Reports e Crystal Services sono entrambi
installati, quest'ultimo viene visualizzato come nodo secondario sotto ciascun server all'interno del nodo Server in
Esplora server. Il nodo Crystal Services si espande in modo da visualizzare gli elenchi di report situati in diverse
posizioni:

● Directory dei file locali sul disco rigido.


● Report Application Server (RAS)
● Piattaforma SAP Business Intelligence (BIP)

È possibile trascinare tutti i report di questi elenchi su un Web Form o un Windows Form.

Crystal Services espone in genere due nodi secondari che possono essere espandibili, in base alla versione di SAP
Crystal Reports attualmente installata e a eventuali altre licenze di cui si dispone per RAS (Report Application
Server) o la piattaforma SAP BusinessObjects Business Intelligence. Nella tabella contenuta nella sezione che
segue vengono descritti i requisiti necessari per accedere a un particolare nodo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
210 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
alcune versioni della piattaforma SAP BusinessObjects Business Intelligence non includono il supporto per
Crystal Services. Per ulteriori informazioni, consultare la documentazione relativa alla piattaforma SAP
BusinessObjects Business Intelligence.

Può essere necessario adeguare le impostazioni del firewall per poter accedere al CMS della piattaforma SAP
BusinessObjects Business Intelligence. La porta predefinita per il CMS è 6400. Rivolgersi all'amministratore del
sistema per ulteriori informazioni sull'impostazione dell'indirizzo di rete e della porta per il sistema della
piattaforma SAP BusinessObjects Business Intelligence. Per ulteriori informazioni sulla personalizzazione delle
porte, consultare il Manuale dell'amministratore della piattaforma Business Intelligence SAP BusinessObjects.

Classi wrapper

Quando si trascina un report da Crystal Services in un Web Form o Windows Form, viene creata l'istanza di una
classe wrapper che fa riferimento al report nell'area relativa al codice generato da Progettazione Web Form o
Progettazione Windows Form della classe di codice sottostante.

Nota
Il tipo di classe wrapper varia nelle diverse versioni di SAP Crystal Reports. Fare riferimento alla tabella
riportata di seguito.

Gli esempi di Crystal Services elencati nella tabella successiva espongono tipi di classe wrapper ReportDocument.

Questi due tipi di Crystal Services vengono forniti con SAP Crystal Reports 10 Espongono gruppi di report eseguiti
da un server RAS non gestito o un server RAS gestito. La classe wrapper è stata modificata in ReportDocument a
partire da SAP Crystal Reports 9.

Classe wrapper Nome del nodo in Versioni di SAP Cry­ Descrizione Requisiti per acce­
esposta mediante Crystal Services stal Reports dere al nodo
Crystal Services

ReportDocument Report Application SAP Crystal Reports Espone i report di un Installare un server
Server 10 server RAS caricato RAS non gestito.
in ReportDocument.
Per ulteriori informa­
zioni, vedere Colle­
gamento a Report
Application Server
(SAP Crystal Reports
10 e versioni succes­
sive) [pagina 212].

ReportDocument Crystal Enterprise SAP Crystal Reports Espone i report del Installare Crystal En­
10 server RAS gestito terprise.
caricato in Report­
Document. Per ulte­
riori informazioni,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 211
Classe wrapper Nome del nodo in Versioni di SAP Cry­ Descrizione Requisiti per acce­
esposta mediante Crystal Services stal Reports dere al nodo
Crystal Services

vedere Collegamento
a Crystal Enterprise
(SAP Crystal Reports
10 e versioni succes­
sive) [pagina 215].

Le versioni precedenti di Crystal Services espongono tipi di classe wrapper che non utilizzano il modello a oggetti
ReportDocument. Tali tipi di classe dipendono pertanto dal modello a oggetti limitato fornito con il controllo
CrystalReportViewer. Per ulteriori informazioni, vedere Scenari di collegamento a CrystalReportViewer basati
sull'utilizzo di Crystal Services [pagina 176].

1.4.5.3.2.6.1 Collegamento a Report Application Server (SAP


Crystal Reports 10 e versioni successive)

Nota
Questa pagina descrive una funzionalità che non è disponibile in SAP Crystal Reports, versione per sviluppatori
per Microsoft Visual Studio ma che è invece disponibile in una delle versioni aggiornate.

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Posizione dei report

I report sono situati sul server RAS non gestito. e sono racchiusi nella classe ReportDocument.

Panoramica di Crystal Services

Questo scenario di collegamento dei report si applica ai report a cui si accede dal nodo Crystal Services in Esplora
server.

In questa sezione viene descritto il nodo secondario RAS (Report Application Server) di Crystal Services
all'interno di SAP Crystal Reports Developer.

[SERVERNAME]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
212 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Crystal Services

○ Report Application Server

Descrizione

Il nodo secondario RAS (Report Application Server) accede e visualizza i report esposti da un server RAS non
gestito. Il nodo RAS è attivo solo quando il server RAS non gestito è stato installato sul computer di sviluppo.

Quando si trascina un report dal nodo Crystal Services>piattaforma SAP BusinessObjects Business Intelligence in
un Web Form o un Windows Form, viene generata un'istanza di ReportDocument. La classe ReportDocument
agisce come classe wrapper Ha la funzione di racchiudere (rappresentare) il report passato dal server RAS non
gestito.

Vantaggi

● Accesso semplice: i report del server RAS non gestito possono essere visualizzati con facilità in una
visualizzazione struttura e trascinati in un Web Form.
● Ampia interazione a livello di programmazione: consente di accedere al potente modello a oggetti
ReportDocument. La classe wrapper del report in questa versione è ReportDocument. Questa è la prima
versione di Crystal Services che consente l'accesso al modello a oggetti ReportDocument.

Svantaggi

● La scrittura di codice è meno diretta: non così diretta quanto la scrittura di codice per i report di RAS con il
modello a oggetti ReportClientDocument.

Informazioni correlate

Collegamento a Crystal Enterprise (SAP Crystal Reports 10 e versioni successive) [pagina 215]
Modello a oggetti ReportDocument [pagina 36]
Utilizzo di Crystal Services [pagina 82]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 213
1.4.5.3.2.6.1.1 Per utilizzare Crystal Services>Report
Application Server

Prerequisiti

● Installazione di SAP Crystal Reports 10 o versioni successive e verifica del relativo funzionamento.
● Installazione del server RAS non gestito e verifica del relativo funzionamento.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. In Visual Studio aprire Esplora server.


2. Espandere Crystal Services, quindi Report Application Server.
3. Selezionare un report dalla struttura Report Application Server e trascinarlo nel Web Form o Windows Form.

Nella parte inferiore del form in visualizzazione Progettazione, viene visualizzato un oggetto
reportDocument1.

Nota
Quando un report Report Application Server viene inserito nel form, viene aggiunta un'istanza della classe
ReportDocument nell'area del form relativa al codice generato dalla finestra di progettazione.

In seguito alla creazione di un'istanza e della configurazione delle classi che ereditano da
System.ComponentModel.Component (ad esempio, ReportDocument) all'interno dell'area di codice generato
dalla finestra di progettazione, nella parte inferiore del form in visualizzazione Progettazione appare un'icona
della classe per cui è stata creata l'istanza.
4. Passare alla visualizzazione del codice e aprire l'area relativa al codice generato da Progettazione Web Form o
Progettazione Windows Form.

Nota
All'interno di quest'area è stata creata un'istanza della classe ReportDocument. È stata inoltre eseguita la
configurazione di tale classe.

5. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un


progetto [pagina 14], assegnare l'istanza di ReportDocument alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportDocument1

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
214 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.ReportSource = reportDocument1;

6. Per visualizzare il report, creare ed eseguire il progetto.

1.4.5.3.2.6.2 Collegamento a Crystal Enterprise (SAP Crystal


Reports 10 e versioni successive)

Nota
Questa pagina descrive una funzionalità che non è disponibile in SAP Crystal Reports, versione per sviluppatori
per Microsoft Visual Studio ma che è invece disponibile in una delle versioni aggiornate.

Modello a oggetti

In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.

Posizione dei report

I report sono situati nel server RAS gestito. e sono racchiusi nella classe ReportDocument.

Panoramica di Crystal Services

Questo scenario di collegamento dei report si applica ai report a cui si accede dal nodo Crystal Services in Esplora
server.

In questa sezione viene descritto il nodo secondario della piattaforma SAP BusinessObjects Business Intelligence
di Crystal Services all'interno di SAP Crystal Reports Developer.

[SERVERNAME]

● Crystal Services

○ Crystal Enterprise

Descrizione

Il nodo secondario della piattaforma SAP BusinessObjects Business Intelligence accede ai report esposti da un
server RAS gestito all'interno della piattaforma SAP BusinessObjects Business Intelligence e li visualizza.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 215
Il nodo Crystal Services>piattaforma SAP BusinessObjects Business Intelligence espone i report da Crystal
Enterprise mediante il server RAS gestito. Il nodo della piattaforma SAP BusinessObjects Business Intelligence è
attivo. Se tuttavia la piattaforma SAP BusinessObjects Business Intelligence non è stata installata nel computer di
sviluppo, accedere alla finestra delle proprietà di questo nodo e impostare il nome del server della piattaforma
SAP BusinessObjects Business Intelligence nella rete.

Quando si trascina un report dal nodo Crystal Services>piattaforma SAP BusinessObjects Business Intelligence in
un Web Form o un Windows Form, viene generata un'istanza di ReportDocument. La classe ReportDocument
agisce come classe wrapper e ha la funzione di racchiudere (rappresentare) il report passato dal server RAS
all'interno di Crystal Enterprise.

Vantaggi

● Facilità di accesso: accesso estremamente semplice ai report RAS di Crystal Enterprise da un'applicazione
Web.
● Ampia interazione a livello di programmazione: consente di accedere al potente modello a oggetti
ReportDocument. La classe wrapper del report in questa versione è ReportDocument. Questa è la prima
versione di Crystal Services che consente l'accesso al modello a oggetti ReportDocument.

Svantaggi

● La scrittura di codice è meno diretta: non così diretta quanto la scrittura di codice per i report di RAS con il
modello a oggetti ReportClientDocument.

Informazioni correlate

Utilizzo di Crystal Services [pagina 82]

1.4.5.3.2.6.2.1 Per utilizzare Crystal Services>Crystal


Enterprise

Prerequisiti

● Installazione di SAP Crystal Reports 10 o XI e verifica del relativo funzionamento.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
216 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. In Visual Studio aprire Esplora server.


2. Espandere Crystal Services, quindi Crystal Enterprise.
3. Selezionare un report dalla struttura Crystal Enterprise e trascinarlo nel form.

Nella parte inferiore del form in visualizzazione Progettazione, viene visualizzato un oggetto
reportDocument1.

Nota
Quando un report Crystal Enterprise viene inserito nel form, viene aggiunta un'istanza della classe
ReportDocument nell'area del form relativa al codice generato dalla finestra di progettazione.

In seguito alla creazione di un'istanza e della configurazione delle classi che ereditano da
System.ComponentModel.Component (ad esempio, ReportDocument) all'interno dell'area di codice
generato dalla finestra di progettazione, nella parte inferiore del form in visualizzazione Progettazione

4. Passare alla visualizzazione del codice e aprire l'area relativa al codice generato da Progettazione Web Form o
Progettazione Windows Form.
All'interno di quest'area è stata creata un'istanza della classe ReportDocument. È stata inoltre eseguita la
configurazione di tale classe.
5. All'interno del metodo ConfigureCrystalReports() creato durante i passaggi in Impostazione di un
progetto [pagina 14], assegnare l'istanza di ReportDocument alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportDocument1

crystalReportViewer.ReportSource = reportDocument1;

6. Creare ed eseguire il progetto Web per visualizzare il report.

1.4.5.4 Utilizzo di report normali o memorizzati nella cache


Quando si pianifica la creazione di un'applicazione con l'SDK di SAP Crystal Reports, uno degli aspetti più
importanti da considerare è se utilizzare report normali o memorizzati nella cache. È importante conoscere le
nozioni di base dell'SDK che si riferiscono alla memorizzazione di report nella cache per poter scegliere la
struttura più adeguata per il progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

Definizione di report memorizzati nella cache

I report memorizzati nella cache sono oggetti report archiviati nell'oggetto Cache di ASP.NET per accrescerne le
prestazioni e la scalabilità. SAP Crystal Reports fornisce una struttura specifica per inserire le istanze di
ReportDocument nella cache. Questa struttura memorizza automaticamente nella cache tutti i report che
implementano l'interfaccia ICachedReport.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 217
Definizione di oggetto Cache di ASP.NET

Sia in ASP che in ASP.NET gli oggetti report vengono inseriti in Session o Application sul server Web per due
ragioni:

1. Per rendere persistente lo stato dell'oggetto report nelle operazioni di ricaricamento delle pagine.
2. Per migliorare la scalabilità e le prestazioni mediante l'inserimento dei report di grandi dimensioni o lenti da
caricare nella memoria del server.

In ASP.NET è stata introdotta una variazione avanzata dell'oggetto Application, denominata Cache. Come
Application, Cache rende persistenti le singole istanze di un oggetto report. Tuttavia, nell'oggetto Cache sono
presenti ulteriori funzionalità per la ricerca di dipendenze basate su file, su chiavi o temporizzate. Tali dipendenze
possono implicare la scadenza automatica o l'aggiornamento degli oggetti report all'interno dell'oggetto Cache, in
modo da mantenerne aggiornati i contenuti.

I report utilizzati in Cache sono sia specifici dell'utente che specifici della sessione.

Nota
I termini "oggetto Cache" e "Cache", così come i termini "oggetto Session" e "Session" o "oggetto Application"
e "Application", vengono utilizzati in maniera intercambiabile e hanno lo stesso significato. Il termine "oggetto"
sottolinea che si tratta di oggetti di persistenza eseguiti all'interno dello spazio di memoria di .NET Framework
sul server Web.

Modalità di inserimento degli oggetti report nell'oggetto Cache di ASP.NET

Gli oggetti report possono essere inseriti nell'oggetto Cache di ASP.NET in due modi:

● Assegnare l'oggetto report a Cache con la stessa sintassi con cui viene assegnato un oggetto report a Session
o Application (assegnazione esplicita).
● Creare un'istanza di una versione del report che implementa l'interfaccia ICachedReport. Il modulo report
ricerca tutti gli oggetti report che implementano questa interfaccia e inserisce automaticamente l'oggetto
report appropriato all'interno di Cache (assegnazione implicita).

Definizione dell'interfaccia ICachedReport

L'interfaccia ICachedReport contrassegna con flag tutte le classi di report che consentono a ICachedReport di
utilizzare la struttura di memorizzazione nella cache di SAP Crystal Reports. Questa struttura personalizzata offre
un livello in più rispetto all'oggetto Cache di ASP.NET, per soddisfare specifiche esigenze di memorizzazione nella
cache dei report.

L'interfaccia ICachedReport è dotata di firme dei metodi che, una volta implementate nella classe di report,
indicano alla struttura il modo in cui memorizzare nella cache questa classe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
218 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Funzioni di memorizzazione nella cache dei report disponibili quando si
incorpora un report in un progetto Visual Studio

Quando si crea o si importa un report in un progetto Visual Studio, tale report viene incorporato nel progetto e
vengono automaticamente generate due classi:

● Una classe wrapper del report, che presenta lo stesso nome del report.
Questa classe wrapper rappresenta il report nel progetto ed eredita da ReportDocument. Per ulteriori
informazioni, vedere Confronto tra i report incorporati e quelli non incorporati [pagina 162].
● Una classe di utilità per la gestione della cache, denominata classe Cached[NomeReport].
Questa classe gestisce la memorizzazione nella cache del report incorporato, mediante l'oggetto Cache di
ASP.NET e la struttura di memorizzazione nella cache incorporata nell'SDK di SAP Crystal Reports.

Nella tabella che segue sono presentati gli elementi che vengono generati quando si aggiunge il report
Hierarchical Grouping:

Nome Descrizione

Hierarchical Grouping.rpt Report

Classe Hierarchical_Grouping Classe wrapper del report

Classe CachedHierarchical_Grouping La classe di utilità per la gestione della cache viene uti­
lizzata per gestire la memorizzazione nella cache della
classe wrapper del report

La classe wrapper del report e la classe di utilità per la gestione della cache svolgono attività distinte:

● La classe wrapper del report eredita da ReportDocument e ha pertanto accesso al modello a oggetti
ReportDocument completo. Si tratta della classe principale programmata per l'interazione con il report.
● La classe di utilità per la gestione della cache gestisce e memorizza le istanze della classe wrapper del report
nell'oggetto Cache di ASP.NET. Tale classe riconosce le diverse istanze della classe wrapper del report e
impedisce che tali istanze si sovrascrivano reciprocamente nell'oggetto Cache. È ad esempio in grado di
riconoscere le differenze create quando vengono modificati i parametri e gli accessi. Per eseguire questa
operazione, tale classe assegna una chiave univoca per ogni istanza univoca della classe wrapper del report.
● Ai fini dell'identificazione nell'ambito della funzionalità di memorizzazione nella cache di .NET Framework di
SAP Crystal Reports, la classe di utilità per la gestione della cache implementa l'interfaccia ICachedReport.

La classe wrapper del report e la classe di utilità per la gestione della cache vengono generate nello stesso file di
classe. Per visualizzare entrambe le classi fare clic con il pulsante destro del mouse sul file di classe del report in
Esplora soluzioni, quindi scegliere Visualizza codice. All'apertura del file, il codice relativo alla classe wrapper del
report viene visualizzato nella parte superiore e la classe di utilità per la gestione della cache viene visualizzata
verso la metà.

Nota
Per informazioni su come collegare il controllo CrystalReportViewer alla classe di utilità per la gestione della
cache, vedere Collegamento a una classe di report incorporati e memorizzati nella cache [pagina 201]. Per
creare una classe di utilità per la gestione della cache personalizzata per il collegamento a report non
incorporati, vedere Collegamento a un report non incorporato caricato in una classe di utilità per la gestione
della cache [pagina 203].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 219
Casi in cui è necessario memorizzare i report nella cache

È consigliabile conservare solo una piccola percentuale di oggetti report nell'oggetto Cache di ASP.NET. La
maggior parte degli oggetti report presenta infatti una bassa condivisibilità: tali oggetti non vengono utilizzati
come risorse condivise con altri oggetti e non sfruttano pertanto in modo adeguato l'oggetto Cache. Se è richiesta
la persistenza, inserire gli oggetti report nell'oggetto Session dell'utente.

Posizionare l'oggetto report nell'oggetto Cache di ASP.NET solo quando il report deve essere visualizzato molte
volte da un solo utente in una determinata sessione. Ciò è particolarmente importante nel caso di un oggetto
report di dimensioni molto grandi o con una query talmente complessa da impiegare diversi minuti per il recupero
dei dati.

Informazioni correlate

Collegamento a una classe di report incorporati e memorizzati nella cache [pagina 201]

1.4.5.5 Visualizzazione di un report in fase di progettazione

SAP Crystal Reports consente di visualizzare in anteprima un report in fase di progettazione all'interno di Visual
Studio. Quando il report viene assegnato alla proprietà ReportSource nella finestra Proprietà, un'anteprima del
report viene visualizzata nel Windows Form o nella pagina ASPX.

I dati statici, come le date, le immagini o i campi di testo, vengono visualizzati come appariranno in fase di
esecuzione. Per i dati dinamici, ad esempio i dati estratti da un database, possono essere utilizzati valori artificiali
al posto dei dati provenienti dall'origine dati. Se il report contiene dati salvati, tali dati appariranno nell'anteprima
in fase di progettazione.

L'interfaccia SAP Crystal Reports Designer incorporata fornisce ulteriori funzionalità di visualizzazione mediante
la scheda Anteprima. Quando si visualizza il report nella scheda Anteprima, SAP Crystal Reports tenta di
recuperare nuovi dati dall'origine dati specificata. L'anteprima in fase di progettazione non riguarda l'acquisizione
dei dati, ma visualizza tutti i dati attualmente salvati nel report.

Nota
La scheda Anteprima non è disponibile nell'interfaccia SAP Crystal Reports Designer incorporata per Visual
Studio .NET 2003.

Informazioni correlate

Scheda Anteprima [pagina 649]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
220 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.6 Personalizzazione del controllo CrystalReportViewer

Il controllo CrystalReportViewer viene utilizzato in .NET Framework per collegare e visualizzare i report. Il
controllo CrystalReportViewer predefinito include elementi dell'interfaccia utente che semplificano le operazioni
di visualizzazione, salvataggio e spostamento in un report.

In base al tipo di applicazione, potrebbe essere necessario modificare alcuni elementi del controllo predefinito.
SAP Crystal Reports consente di personalizzare l'aspetto del visualizzatore nell'applicazione in diversi modi, ad
esempio:

● la barra degli strumenti di CrystalReportViewer può essere rimossa dal visualizzatore


● i pulsanti della barra degli strumenti di CrystalReportViewer possono essere aggiunti o rimossi a livello di
codice
● il controllo CrystalReportViewer supporta la personalizzazione mediante CSS o temi.

In questa sezione viene descritta la procedura di modifica del visualizzatore.

Classi utilizzate per la visualizzazione dei report

● CrystalDecisions.Windows.Forms.CrystalReportViewer
Fornisce le proprietà, i metodi e gli eventi che modificano o recuperano le informazioni relative all'aspetto del
controllo CrystalReportViewer e alle relative funzioni.
● CrystalDecisions.Web.CrystalReportViewer
Fornisce le proprietà, i metodi e gli eventi che modificano o recuperano le informazioni relative all'aspetto del
controllo CrystalReportViewer e alle relative funzioni.

Informazioni correlate

Modalità di utilizzo dei controlli dei visualizzatori report [pagina 42]

1.4.6.1 Indicatore di elaborazione del report

L'indicatore di elaborazione del report fornisce un'indicazione visiva del tempo di elaborazione nel sito Web SAP
Crystal Reports. Quando il tempo di elaborazione supera una soglia specificata, viene visualizzata una finestra di
dialogo per indicare l'avanzamento dell'azione in corso.

Il testo della finestra di dialogo e il ritardo con cui viene visualizzata la finestra possono essere specificati nel file
Web.Config relativo al sito Web.

Il testo predefinito è: Attendere il completamento dell'elaborazione del documento.

Il tempo predefinito di attesa della visualizzazione dell'indicatore di elaborazione del report è 200 ms.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 221
Informazioni correlate

Configurazione del file Web.Config [pagina 19]

1.4.6.1.1 Personalizzazione del testo dell'indicatore di


elaborazione del report

Contesto

Il testo del messaggio dell'indicatore di elaborazione del report viene configurato nel file Web.Config del sito
Web.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione.


2. Aprire il file Web.Config.

Se non si dispone di un file Web.Config, fare clic su Debug Avvia debug per eseguire il debug
dell'applicazione. Visual Studio richiederà la creazione di un nuovo file Web.Config. Fare clic su OK per creare
il nuovo file.
3. Nel file Web.Config aggiungere l'impostazione NameValueSectionHandler come primo elemento
secondario dell'elemento configuration.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

L'elemento configSections deve essere il primo elemento secondario univoco dell'elemento


configuration. Se è già stato definito un elemento configSections per SAP Crystal Reports, aggiungere
l'elemento section per CrystalReportViewer al nodo configSections esistente.
4. Aggiungere l'impostazione processingIndicatorText direttamente dopo l'elemento configSections.

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
222 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Sostituire il testo dell'attributo value con il messaggio che si desidera visualizzare nell'indicatore di
elaborazione del report.

L'elemento processingIndicatorText controlla il testo visualizzato nell'indicatore di elaborazione del


report. Il testo predefinito è: Attendere il completamento dell'elaborazione del documento.

Risultati

Il controllo CrystalReportViewer utilizzerà il messaggio personalizzato dell'indicatore di elaborazione del report.

Esempio
In questo esempio il ritardo per l'indicatore di elaborazione del report viene ridotto a 20 ms e il messaggio
visualizzato è “Thank you for waiting”.

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting."/>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx"
type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
</configuration>

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 223
1.4.6.1.2 Modifica del ritardo per la visualizzazione
dell'indicatore di elaborazione del report

Contesto

L'intervallo di tempo che precede la visualizzazione dell'indicatore di elaborazione del report viene configurato nel
file Web.Config del sito Web. L'elemento processingIndicatorDelay controlla l'intervallo di tempo che
trascorre prima della visualizzazione dell'indicatore di elaborazione del report.

Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione.


2. Aprire il file Web.Config.

Se non si dispone di un file Web.Config, fare clic su Debug Avvia debug per eseguire il debug
dell'applicazione. Visual Studio richiederà la creazione di un nuovo file Web.Config. Fare clic su OK per creare
il nuovo file.
3. Nel file Web.Config aggiungere l'impostazione NameValueSectionHandler come primo elemento
secondario dell'elemento configuration.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

L'elemento configSections deve essere il primo elemento secondario univoco dell'elemento


configuration. Se è già stato definito un elemento configSections per SAP Crystal Reports, aggiungere
l'elemento section per CrystalReportViewer al nodo configSections esistente.
4. Aggiungere l'impostazione processingIndicatorDelay direttamente dopo l'elemento configSections.

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

5. Sostituire il testo dell'attributo value con la durata del periodo di tempo che deve trascorrere prima della
visualizzazione dell'indicatore di elaborazione del report.

Il valore è specificato in millisecondi. Se il valore viene impostato su 0, l'indicatore di elaborazione del report
viene disattivato. Il valore predefinito è 200 ms.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
224 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Esempio
In questo esempio il ritardo per l'indicatore di elaborazione del report viene ridotto a 20 ms e il messaggio
visualizzato è “Thank you for waiting”.

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting."/>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx"
type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
</configuration>

1.4.6.2 Supporto di più lingue con il controllo


CrystalReportViewer

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio include il supporto per i client Windows
e Web multilingue mediante la localizzazione dinamica.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 225
La localizzazione dinamica consente agli utenti di visualizzare le descrizioni dei comandi e altri contenuti del
controllo CrystalReportViewer nella lingua preferita. Per consentire la localizzazione dinamica, è necessario
rendere disponibili i file di risorse di lingua nella lingua desiderata.

Informazioni correlate

Esercitazione: Configurazione del supporto client multilingue [pagina 581]


In questa esercitazione viene descritto come configurare il supporto client multilingue in un sito Web o in un
progetto Windows.

1.4.6.2.1 File di risorse di lingua

I file di risorse di lingua contengono una serie di coppie chiave/valore che forniscono il testo visualizzato
nell'applicazione. Per ogni elemento di testo visualizzato in un'applicazione Crystal Reports esiste un valore
corrispondente nel file di risorse di lingua che specifica in che modo il testo deve essere visualizzato per ciascuna
lingua.

File di risorse di lingua

Nel server Web o nel client Windows è possibile accedere alle risorse di lingua per il controllo CrystalReportViewer
dalle due origini indicate di seguito.

● DLL di risorse di lingua predefinite, che includono le seguenti lingue:

○ Inglese (en)
○ Francese (fr)
○ Tedesco (de)
○ Spagnolo (es)
○ Italiano (it)
○ Giapponese (jp)
○ Coreano (ko)
○ Cinese semplificato (zh-chs)
○ Cinese tradizionale (zh-cht)
● File di risorse di lingua personalizzati, creati come stringhe di testo, quindi compilati come DLL di risorse di
lingua personalizzate.

Risorse neutre e non neutre

Sono disponibili risorse di lingua neutre e non neutre.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
226 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Le risorse neutre rappresentano un'impostazione di lingua generale, ad esempio en per l'inglese, fr per il francese
e jp per il giapponese.

Le risorse non neutre rappresentano la versione della lingua qualificata in base a un criterio supplementare, come
la regione: ad esempio , de-AT per il tedesco (Austria).

Risorse globali e locali

Poiché le risorse di lingua predefinite sono installate nella cache di assembly globale (GAC, Global Assembly
Cache), sono sempre disponibili a livello globale. È possibile invece accedere alle risorse di lingua personalizzate a
livello globale o locale.

La cartella delle risorse di lingua personalizzate può essere memorizzata in una posizione centrale, quindi
condivisa oppure può essere copiata nella directory locale dell'applicazione Web o Windows.

Le risorse di lingua personalizzate memorizzate in una posizione centrale vengono denominate risorse globali. In
questo scenario è necessario indicare all'applicazione Web o Windows la posizione delle risorse tramite le
impostazioni di un file di configurazione XML. Affinché una risorsa globale venga caricata correttamente, è
necessario che il nome della cartella che contiene i file di risorse corrisponda all'impostazione della lingua.

Le risorse di lingua personalizzate copiate nella directory locale vengono denominate risorse locali. In questo
scenario non è necessario alcun file di configurazione. Affinché una risorsa locale venga caricata correttamente, la
lingua dei file di risorse e il nome della cartella che contiene i file di risorse devono corrispondere all'impostazione
della lingua.

Risorse globali o risorse locali

La risorse globali sono la soluzione ideale quando occorre condividere le risorse tra più applicazioni. Un server
Web con più siti che richiedono la condivisione di un insieme comune di risorse di lingua è l'ambiente ideale per
l'utilizzo delle risorse globali.

Le risorse locali sono invece più appropriate quando si utilizza un'unica applicazione la cui ampia distribuzione
richiede una configurazione semplice. Ad esempio, un'applicazione Windows costituita da una sola cartella delle
applicazioni e destinata a un'ampia distribuzione è l'ambiente ideale per l'utilizzo delle risorse locali.

In generale, le applicazioni Web sono più appropriate per le risorse globali, mentre le applicazioni Windows sono
più adatte alle risorse locali.

Ordine di caricamento delle risorse

Se si configurano sia risorse locali che risorse globali per una particolare applicazione, le prime hanno una priorità
più alta e vengono pertanto caricate per prime. Per accertarsi che le risorse globali vengano effettivamente
utilizzate, verificare la correttezza del file di configurazione e rimuovere la cartella delle risorse locali.

L'ordine di caricamento ha impatto anche sulle risorse non neutre e neutre. Se per una lingua specifica sono state
configurate sia risorse non neutre che neutre, ad esempio "Tedesco (Austria)" e "Tedesco", la risorsa non neutra
viene controllata per prima.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 227
In entrambi i casi la selezione specifica è prioritaria rispetto a quella generale.

Visualizzazione lato client

Di seguito vengono indicati i fattori che determinano la lingua visualizzata dall'applicazione client in fase di
esecuzione.

In un'applicazione Windows:

● Le impostazioni internazionali dell'ambiente su ciascun computer dell'utente.

In un sito Web:

● Le impostazioni internazionali dell'ambiente del server Web.


● Le impostazioni di lingua del browser client.
● La proprietà Lingua impostata su una pagina ASPX separata.

1.4.6.2.2 Supporto delle codifiche dei caratteri Unicode e


GB18030

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio offre supporto per gli standard dei set
di caratteri internazionali seguenti:

● Unicode
● GB18030

Per comprendere come SAP Crystal Reports supporti le codifiche Unicode e GB18030, è necessario avere
familiarità con i tre diversi tipi di carattere: repertorio di caratteri, caratteri come punti di codice e caratteri come
dati codificati. Inoltre, è necessario capire la relazione che intercorre tra i punti di codice (termine più preciso
rispetto a caratteri codificati) e le unità di codice.

1.4.6.2.2.1 Tipi di carattere

Per capire gli standard dei set di caratteri occorre effettuare una distinzione tra tre tipi di carattere:

● Repertorio di caratteri (l'elenco astratto dei caratteri).


● Caratteri come punti di codice con valori scalari.
● Caratteri come dati codificati.

Repertorio di caratteri (elenco astratto dei caratteri)

Il repertorio di caratteri è un elenco astratto di oltre un milione di caratteri presenti in un'ampia serie di script, tra
cui quelli latini, cirillici, cinesi, coreani, giapponesi, ebraici e aramaici. Nel repertorio di caratteri sono inclusi anche
altri simboli, ad esempio la notazione musicale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
228 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Gli standard Unicode e GB18030 dispongono entrambi di un repertorio di caratteri. Se in uno standard vengono
aggiunti nuovi caratteri, questi vengono inseriti anche nell'altro standard al fine di conservarne la parità.

Caratteri come punti di codice con valori scalari.

Nota
questo secondo tipo di carattere si applica solo al formato Unicode, non a GB18030.

Ogni carattere del repertorio è assegnato a un punto di codice. Ogni punto di codice ha un valore numerico
specifico, definito valore scalare. Il valore scalare è spesso espresso in esadecimale.

I punti di codice si trovano in uno spazio di codice, il quale è costituito da un intervallo di valori scalari suddivisi su
due livelli:

● Livello multilingue base (64 KB).


Nel formato Unicode l'espressione esadecimale dei valori di questo livello inferiore è compresa tra U+0000 e
U+FFFF.
● Livello multilingue supplementare (16 sezioni supplementari di 64 KB).
Nel formato Unicode l'espressione esadecimale dei valori di questo livello superiore è compresa tra U+10000
e U+10FFFF.

Lo spazio di codice completo di tutti i possibili valori scalari si ottiene moltiplicando 17 per la dimensione di 64 KB
(1.088.000 valori possibili).

Caratteri come dati codificati

Ogni formato di codifica converte i caratteri dal repertorio di caratteri nei dati codificati.

In GB18030, i dati codificati derivano direttamente dal repertorio di caratteri; il concetto di valore scalare come
intermediario tra il repertorio di caratteri e i dati codificati è limitato esclusivamente a Unicode.

Nel formato Unicode i dati codificati derivano dall'applicazione di un algoritmo al valore scalare.

Unicode definisce tre formati di codifica dei caratteri:

● UTF-8
● UTF-16
● UTF-32

1.4.6.2.2.2 Relazione tra punti di codice e unità di codice

Per comprendere come SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio</pname>
supporti GB18030 e Unicode, è importante capire la relazione che intercorre tra i punti di codice e le unità di
codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 229
Punti di codice e unità di codice

In ogni codifica i punti di codice sono mappati a una o più unità di codice.

È definita unità di codice una singola unità all'interno di ciascun formato di codifica. La dimensione dell'unità di
codice è equivalente alla dimensione in bit della codifica specifica:

● Un'unità di codice in UTF-8 è costituita da 8 bit.


● Un'unità di codice in UTF-16 è costituita da 16 bit.
● Un'unità di codice in UTF-32 è costituita da 32 bit.
● Nel formato GB18030 un'unità di codice è costituita da 8 bit.

Numero delle unità di codice in ogni punto di codice

Il numero delle unità di codice che è necessario mappare a un punto di codice varia in base al formato di codifica:

● UTF-8
Nel formato UTF-8 vengono in genere mappate più unità di codice per punto di codice, a causa delle
dimensioni ridotte delle unità di codice. I punti di codice vengono mappati a una, due, tre o quattro unità di
codice.
● UTF-16
Le dimensioni delle unità di codice UTF-16 sono raddoppiate rispetto alla unità di codice a 8 bit. Di
conseguenza, i punti di codice con valore scalare inferiore a U+10000 vengono codificati in una singola unità
di codice.
Per i punti di codice con valore scalare pari a U+10000 o superiore sono richieste due unità di codice per
punto di codice. Queste coppie di unità di codice in UTF-16 sono entrambe definite con il termine "coppie di
surrogati di Unicode".

Nota
Il supporto per le coppie di surrogati Unicode viene illustrato di seguito.

● UTF-32
L'unità di codice a 32 bit utilizzata nel formato UTF-32 è sufficientemente ampia da consentire che ogni punto
di codice venga codificato come una singola unità di codice.
● GB18030
Nel formato GB18030 vengono in genere mappate più unità di codice per punto di codice, a causa delle
dimensioni ridotte delle unità di codice. I punti di codice vengono mappati a una, due o quattro unità di codice.

Supporto per coppie di surrogati Unicode

Alcuni script supportati da Unicode contengono caratteri i cui punti di codice presentano un valore scalare pari a
U+10000 o superiore. Nel formato UTF-16 tali punti di codice sono codificati mediante coppie di surrogati.

È importante che le coppie di surrogati Unicode siano gestite correttamente. Ad esempio, nel caso del testo di
un'applicazione che utilizza la codifica UTF-16, è necessario che il cursore di testo consideri ogni punto di codice

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
230 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
come un singolo carattere di testo durante l'aggiunta, l'eliminazione o la selezione dei caratteri per le operazioni di
taglio, copia o incolla.

1.4.6.2.2.3 Supporto di GB18030 mediante Unicode in SAP


Crystal Reports

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio</pname> non supporta GB18030 in
modo diretto. ma accede a tale formato tramite valori che sono stati già convertiti in uno dei formati di codifica
Unicode.

Le conversioni vengono fornite da numerose origini, tra cui .NET Framework, alcuni driver di database e il sistema
operativo Windows. Il testo è in genere memorizzato sul disco rigido come UTF-8 e caricato in memoria come
UTF-16. SAP Crystal Reports supporta le coppie di surrogati Unicode in UTF-16.

Esempi del supporto GB18030 mediante Unicode

Di seguito vengono descritti gli aspetti più rilevanti da tenere in considerazione in caso di supporto della codifica
GB18030 fornito mediante conversione Unicode.

● I database che contengono dati codificati in GB18030.


I dati dei database codificati in GB18030 sono supportati solo se i driver di database convertono i dati in
UTF-16 in fase di recupero.

Nota
Microsoft SQL Server 2005 converte i dati GB18030 in UTF-16 in fase di recupero. Per altri server,
contattare il fornitore del database.

● I DataSet che espongono i dati da un'origine GB18030.


Indipendentemente dall'origine principale, i DataSet sono formattati come XML, che è codificato con UTF-8.
● I servizi Web che espongono i dati da un'origine GB18030.
Tutto il testo inviato o ricevuto tramite un servizio Web è già convertito in Unicode.

Scenari GB18030 non supportati

Il formato GB18030 non è supportato in SAP Crystal Reports principalmente nei casi di accesso o importazione
dei file di testo codificati in GB18030.

Il file di testo codificato in GB18030 deve essere prima convertito da una terza parte in Unicode per permettere a
SAP Crystal Reports di interagire con esso come se fosse un file codificato in Unicode.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 231
1.4.6.3 Gestione degli eventi Error

Nelle versioni precedenti di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio ogni volta
che si utilizza il controllo CrystalReportViewer, è necessario rilevare tutte le possibili eccezioni generate. Le
eccezioni non rilevate compromettono la corretta elaborazione della pagina e determinano la visualizzazione di un
errore.

Per impedire problemi ed errori, è stato aggiunto al controllo CrystalReportViewer un nuovo evento,
denominato Error. Se si utilizza tale evento, gli eventuali messaggi di eccezione vengono visualizzati nella parte
superiore del controllo CrystalReportViewer senza che si verifichino problemi.

1.4.6.3.1 Per eliminare la pagina di errore con il metodo di


evento Error

Contesto

Per eliminare l'eccezione generata, è necessario chiamare il metodo di evento Error e impostare
ErrorEventArgs.Handled su True nel gestore dell'evento.

Procedura

1. Aggiungere il metodo di evento Error alla classe di codice sottostante.


2. Impostare ErrorEventArgs.Handled su True nel gestore dell'evento.

Esempio

Sub myCrystalReportViewer_Error(ByVal source As Object, ByVal e As


CrystalDecisions.Web.ErrorEventArgs)
e.Handled = True
End Sub

void crystalReportViewer_Error(object source,


CrystalDecisions.Web.ErrorEventArgs e)
{
e.Handled = true;
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
232 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.4.6.4 Personalizzazione del controllo CrystalReportViewer
con CSS

L'aspetto del controllo CrystalReportViewer viene creato mediante l'uso di elementi grafici e fogli di stile CSS.

Il foglio di stile, denominato default.css, è memorizzato in una sottodirectory della directory virtuale del
visualizzatore denominata css.

Nota
In Visual Studio 2005 e versioni successive e in ASP.NET versione 2.0 l'aspetto dei controlli visivi può essere
gestito tramite un nuovo strumento denominato Temi. I temi possono essere applicati al controllo
CrystalReportViewer, per conferire un aspetto uniforme ai controlli all'interno di una pagina o di un intero sito
Web.

Informazioni correlate

Personalizzazione del controllo CrystalReportViewer con i temi [pagina 234]


Finestra di dialogo Imposta classe CSS [pagina 937]
Formattazione dei report mediante le classi CSS (Cascading Style Sheets) [pagina 731]

1.4.6.4.1 Personalizzazione di CSS per il controllo


CrystalReportViewer

Contesto

Al foglio di stile si accede dalla proprietà CssFileNamedel controllo CrystalReportViewer, che è possibile
visualizzare nella finestra Proprietà quando il controllo CrystalReportViewer è selezionato in visualizzazione
Progettazione.

Procedura

1. Creare un sito Web con un controllo CrystalReportViewer e un report Crystal.


2. Compilare ed eseguire il progetto almeno una volta per visualizzare il controllo CrystalReportViewer con le
impostazioni di stile predefinite, quindi uscire dalla modalità di debug.
3. Aprire la pagina Default.aspx in visualizzazione Progettazione.
4. Fare clic sul controllo CrystalReportViewer per selezionarlo.
5. Nella finestra Proprietà individuare il percorso della directory del file "default.css" nella proprietà
CssFileName.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 233
6. In Esplora risorse individuare il suddetto file e copiarlo nella directory del sito Web.
7. Rinominare il file "custom.css".
8. Modificare la proprietà CssFileName in modo che punti alla directory del sito Web e al nome file "custom.css".
9. Ricompilare e verificare che il controllo CrystalReportViewer visualizzi il file custom.css nella directory locale
del sito Web.
10. Uscire dalla modalità di debug.
11. Aprire il file "custom.css" e modificare il foglio di stile.
12. Eseguire la ricompilazione e verificare che le modifiche apportate siano state applicate al controllo
CrystalReportViewer.

1.4.6.5 Personalizzazione del controllo CrystalReportViewer


con i temi

I temi sono uno strumento che consente di conferire un aspetto omogeneo a tutti i controlli visivi di una pagina o
di un sito Web.

A livello di pagina, per gestire l'aspetto di un controllo visivo, occorre impostarne la proprietà Theme sul nome del
tema desiderato. Il tema verrà applicato a tutti i controlli visivi della pagina.

Il controllo CrystalReportViewer è compatibile con i temi di ASP.NET 2.0. Qualsiasi modifica apportata a un tema
viene estesa al controllo CrystalReportViewer e a tutti gli altri controlli visivi all'interno della pagina.

Per ulteriori informazioni su come impostare e personalizzare i temi in ASP.NET 2.0, consultare la
documentazione relativa a .NET Framework versione 2.0.

Informazioni correlate

Personalizzazione del controllo CrystalReportViewer con CSS [pagina 233]

1.4.6.6 Personalizzazione della barra degli strumenti di


CrystalReportViewer

La barra degli strumenti di CrystalReportViewer contiene pulsanti che gestiscono le funzioni comuni del controllo
CrystalReportVIewer, ad esempio stampa, esportazione o modifica della pagina attualmente visualizzabile.

Personalizzazione dei pulsanti della barra degli strumenti

La barra degli strumenti di CrystalReportViewer contiene pulsanti che gestiscono le funzioni comuni del controllo
CrystalReportVIewer, ad esempio stampa, esportazione o modifica della pagina attualmente visualizzabile.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
234 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
La visibilità di ciascun pulsante del controllo CrystalReportViewer viene gestita mediante una proprietà
corrispondente della classe CrystalReportViewer. I nomi delle proprietà differiscono tra le versioni Windows e
Web del controllo CrystalReportViewer.

In un sito Web, l'aspetto della barra degli strumenti può essere controllato mediante CSS o i temi di ASP .Net. È
possibile modificare l'aspetto delle icone predefinite dei pulsanti modificando le immagini nella directory virtuale
del visualizzatore.

Rimozione della barra degli strumenti

La barra degli strumenti dal controllo CrystalReportViewer può essere rimossa a livello di codice oppure dal
riquadro Smart Task. È possibile creare controlli personalizzati per replicare il comportamento di molti pulsanti
della barra degli strumenti di CrystalReportViewer.

Informazioni correlate

Personalizzazione del controllo CrystalReportViewer con CSS [pagina 233]


Personalizzazione del controllo CrystalReportViewer con i temi [pagina 234]
Directory dei visualizzatori [pagina 13]

1.4.6.6.1 Controllo dei pulsanti visualizzati sulla barra degli


strumenti di CrystalReportViewer

Ogni pulsante della barra degli strumenti di CrystalReportViewer può essere abilitato o disabilitato
separatamente.

La visibilità di ciascun pulsante del controllo CrystalReportViewer viene gestita mediante una proprietà
corrispondente della classe CrystalReportViewer. Esistono due controlli CrystalReportViewer nell'SDK di SAP
Crystal Reports .NET. Per un sito Web si utilizza la classe CrystalDecisions.Web.CrystalReportViewer.
Per un'applicazione Windows si utilizza la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer.

Il nome della proprietà che controlla la visibilità di un pulsante della barra degli strumenti cambia in base alla
versione del controllo CrystalReportViewer in uso. Per la classe
CrystalDecisions.Web.CrystalReportViewer, ogni proprietà inizia con “Has”, ad esempio
HasExportButton, HasPrintButton o HasSearchButton. Per la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer, ogni proprietà inizia con “Show”, ad esempio
ShowExportButton, ShowPrintButton o ShowSearchButton.

Per ulteriori informazioni sulla classe CrystalDecisions.Web.CrystalReportViewer o la classe


CrystalDecisions.Windows.Forms.CrystalReportViewer, vedere SAP Crystal Reports .NET API
Reference.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 235
Nota
la rimozione di un pulsante dalla barra degli strumenti non implica la disabilitazione del comportamento
corrispondente.

Esempio
Questo esempio mostra come rimuovere alcuni pulsanti dalla barra degli strumenti di CrystalReportViewer in
un sito Web.

Private Sub ConfigureCrystalReports()


CrystalReportViewer1.HasPrintButton = False
CrystalReportViewer1.HasExportButton = False
CrystalReportViewer1.HasSearchButton = False
End Sub

private void ConfigureCrystalReports()


{
InitializeComponent();
crystalReportViewer1.HasPrintButton = false;
crystalReportViewer1.HasExportButton = false;
crystalReportViewer1.HasSearchButton = false;
}

Informazioni correlate

Rimozione del pulsante di stampa dal controllo CrystalReportViewer [pagina 113]


Rimozione del pulsante di esportazione dal controllo CrystalReportViewer [pagina 126]

1.4.6.6.2 Rimozione della barra degli strumenti di


CrystalReportViewer

Contesto

Suggerimento
la barra degli strumenti può essere rimossa dall'applicazione a livello di codice oppure mediante la deselezione
della casella di controllo Visualizza barra degli strumenti del riquadro Smart Task Attività di
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
236 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Aggiungere un controllo CrystalReportViewer all'applicazione.


2. Impostare la proprietà CrystalReportViewer.DisplayToolbar su falso.

Risultati

Quando si esegue l'applicazione, la barra degli strumenti non viene più visualizzata sul controllo
CrystalReportViewer.

Esempio

Private Sub ConfigureCrystalReports()


CrystalReportViewer1.DisplayToolbar = False
End Sub

private void ConfigureCrystalReports()


{
InitializeComponent();
crystalReportViewer1.DisplayToolbar = false;
}

1.4.6.6.3 Modifica dei pulsanti predefiniti della barra degli


strumenti nel visualizzatore Web

Contesto

La barra degli strumenti di CrystalReportViewer include diversi elementi grafici che rappresentano la maggior
parte delle proprietà disponibili. Gli elementi grafici sono memorizzati nella directory virtuale del visualizzatore per
la versione diSAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio in uso.

In un sito Web, la barra degli strumenti utilizza elementi grafici per rappresentare le seguenti proprietà:

● Albero dei gruppi


● Esportazione
● Stampa
● Drill-up
● Spostamento sulle pagine: prima pagina, ultima pagina, pagina precedente e pagina successiva
● Vai a pagina
● Cerca
● Logo di SAP BusinessObjects

È possibile modificare i pulsanti utilizzando un proprio insieme di icone personalizzate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 237
Procedura

1. Passare alla directory virtuale del visualizzatore.


2. Fare doppio clic sulla cartella immagini.
3. Fare doppio clic sulla cartella barra degli strumenti.

Nella cartella barra degli strumenti sono contenute tutte le immagini utilizzate per la barra degli strumenti di
CrystalReportViewer.
4. Sostituire le immagini con quelle desiderate o aprire le immagini in un editor grafico per modificarle. Il nome
delle immagini deve tuttavia rimanere invariato.

Risultati

Le immagini della barra degli strumenti di CrystalReportViewer verranno modificate per tutte le applicazioni
Web che utilizzano la directory virtuale del visualizzatore specifica.

Informazioni correlate

Directory dei visualizzatori [pagina 13]

1.4.7 Utilizzo di report SAP Crystal Reports Solo lettura


(RPTR)

I report SAP Crystal Reports Solo lettura (RPTR) sono report Crystal che possono essere visualizzati con
applicazioni di visualizzazione report, ma che non possono essere modificati con l'SDK né aperti con applicazioni
di progettazione di report. Ciò consente la protezione della proprietà intellettuale impedendo agli utenti di
modificare il report o di ottenere informazioni sulla logica aziendale proprietaria archiviata nella definizione report.

I report in formato SAP Crystal Reports Solo lettura utilizzano l'estensione file RPTR invece dell'estensione RPT
dei report Crystal. È possibile creare un report RPTR esportando un report RPT in formato RPTR. Non è tuttavia
supportata la conversione di un report RPTR in un report RPT.

Poiché la definizione di un report RPTR non può essere modificata, non è possibile utilizzare questo SDK per
impostare il percorso dell'origine dati di un report RPTR mediante il controller del database. È possibile, tuttavia,
aggiornare in fase di esecuzione i dati contenuti in un report RPTR.

È possibile utilizzare questo SDK per effettuare le seguenti attività:

● Creare un report RPTR esportando un report Crystal (RPT) in formato RPTR.

Nota
Solo i report creati con SAP Crystal Reports 2011 possono essere esportati in formato RPTR.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
238 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Visualizzare un report RPTR ottenendone l'origine e passandola a un visualizzatore.
● Aggiornare in fase di esecuzione i dati di un report RPTR.
● Aprire un report RPTR ed esportarlo in formati diversi dal formato RPT.

Non è possibile utilizzare questo SDK per effettuare le seguenti attività:

● Modificare la definizione report di un report RPTR.


● Impostare il percorso dell'origine dati di un report.
● Recuperare informazioni sulla definizione report di un report RPTR, incluse le formule, i campi, le sezioni e gli
oggetti che costituiscono il report.
● Esportare un report RPTR in formato RPT.
● Aggiungere un report RPTR come sottoreport a un report RPT.

1.5 Esercitazioni

1.5.1 Esercitazioni relative al modello a oggetti


CrystalReportViewer

Le esercitazioni di questa sezione utilizzano metodi e proprietà della classe CrystalReportViewer e classi dello
spazio dei nomi CrystalDecisions.Shared.

Le esercitazioni di questa sezione utilizzano metodi e proprietà della classe CrystalReportViewer e classi dello
spazio dei nomi CrystalDecisions.Shared.

1.5.1.1 Esercitazione: Accesso a un database SQL Server


protetto mediante la protezione integrata

In questa esercitazione viene descritto come aggiungere codice di accesso per visualizzare un report contenente
informazioni provenienti da un database SQL Server protetto.

Introduzione

Quando si accede a un database SQL Server protetto mediante il modello a oggetti CrystalReportViewer, è
necessario utilizzare classi dello spazio dei nomi CrystalDecisions.Shared.

Per effettuare la connessione al server di database o alle origini dati ODBC, vengono utilizzate le proprietà della
classe ConnectionInfo. In questa esercitazione, impostare le proprietà ServerName, DatabaseName, UserID e
Password. Se si sceglie di impostare solo le proprietà DatabaseName, UserID e Password, si ha accesso al server
predefinito del database specificato all'interno del report. Se, invece, si sceglie di assegnare la proprietà
ServerName e specificare un server alternativo, in fase di esecuzione è possibile reindirizzare il report a un server
diverso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 239
L'istanza TableLogOnInfos viene recuperata dalla proprietà LogOnInfo del controllo CrystalReportViewer, quindi
l'istanza ConnectionInfo viene assegnata a ciascun oggetto TableLogOnInfo presente nell'istanza
TableLogOnInfos.

Il codice di accesso fornito in questa esercitazione è valido anche per i sottoreport inseriti nel report principale.
Per poter utilizzare il modello a oggetti ReportDocument nei sottoreport, occorre modificarne il codice (vedere
Esercitazione: Accesso a un database SQL Server protetto con un sottoreport [pagina 375]).

Per creare questa esercitazione utilizzando il modello a oggetti ReportDocument, vedere Esercitazione: Accesso a
un database SQL Server protetto mediante la protezione integrata [pagina 239]. Il modello a oggetti
ReportDocument è preferibile al modello a oggetti CrystalReportViewer.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_CRVObjMod_DBLogon


● Progetto Windows C#: CS_Win_CRVObjMod_DBLogon
● Sito Web in Visual Basic: VB_Web_CRVObjMod_DBLogon
● Progetto Windows Visual Basic: VB_Win_CRVObjMod_DBLogon

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Directory dei report di esempio [pagina 14]

1.5.1.1.1 Creazione di un report connesso a un database SQL


Server protetto

Prerequisiti

● Configurazione di SQL Server:

○ Se è stato installato SQL Server (o la versione OEM, MSDE), è necessario configurarlo in modo che
richieda l'Autenticazione SQL Server.
○ Se SQL Server (o la versione OEM, MSDE) non è stato installato, è necessario installare MSDE con
l'Autenticazione SQL Server impostata su "True".
● È necessario installare il database Northwind fornito con SQL Server e verificare che richieda l'Autenticazione
SQL Server.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
240 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● È necessario creare un account con accesso limitato da utilizzare nel sito Web.

Contesto

Una volta configurato SQL Server e il database Northwind in base alle istruzioni fornite nelle sezioni indicate, è
possibile creare un report le cui informazioni provengano in modo sicuro dal database Northwind.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Crystal
Report.
3. Nel campo Nome, inserire il nome "NorthwindCustomers.rpt", quindi fare clic su Apri.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.

Viene visualizzata la finestra di dialogo Procedura guidata per la creazione di report standard.
6. Nel riquadro Origini dati disponibili, espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella OLE DB (ADO).

Viene visualizzata la finestra OLE DB (ADO).


8. Selezionare Provider Microsoft OLE DB per SQL Server, quindi fare clic su Avanti.
9. Inserire i valori desiderati per server di database, ID utente e password nei campi Server, User ID e Password.
10. Dall’elenco a discesa Database, selezionare "Northwind".

Lasciare deselezionata la casella di controllo Protezione integrata, poiché è in uso l’autenticazione SQL Server
invece di quella NT.
11. Fare clic su Fine.

La cartella OLE DB è ora estesa, mostra il server di database e, al suo interno, il database Northwind.
12. Espandere i nodi Northwind, dbo e Tables, quindi selezionare la tabella Customers.
13. Fare clic sul simbolo > per spostare la tabella nel riquadro Tabelle selezionate, quindi scegliere Avanti.
14. Espandere la tabella Customer, quindi tenendo premuto il tasto Ctrl fare clic su CompanyName, ContactName
e City.
15. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 241
16. Nel riquadro Campi disponibili, in Campi report, selezionare Customer.City, fare clic sul simbolo > per
spostare il campo nel riquadro Raggruppa in base a, quindi scegliere Fine.

Il report NorthwindCustomers viene creato e caricato nella finestra principale di Visual Studio.

1.5.1.1.2 Collegamento del report senza codice di accesso

In Impostazione di un progetto [pagina 14], un controllo CrystalReportViewer è stato inserito nel Web Form o nel
Windows Form. Nel passaggio precedente è stato aggiunto un report NorthwindCustomers al progetto.

In questa sezione, il percorso della directory di file del report NorthwindCustomers viene collegato al controllo
CrystalReportViewer, quindi si verifica se il report viene visualizzato correttamente quando il codice di accesso al
database non è stato ancora impostato.

1.5.1.1.2.1 Per collegare il percorso della directory di file del


report NorthwindCustomers al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Individuare il metodo ConfigureCrystalReports() creato in Impostazione di un progetto [pagina 14].
4. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt")

string reportPath = Server.MapPath("NorthwindCustomers.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"NorthwindCustomers.rpt"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
242 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";

5. Assegnare il percorso della directory di file del report NorthwindCustomers alla proprietà ReportSource del
controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportPath

crystalReportViewer.ReportSource = reportPath;

1.5.1.1.2.2 Per verificare il caricamento del report


NorthwindCustomers

Contesto

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per accedere al database non è stato ancora scritto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\debug\ e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Il report NorthwindCustomers non verrà visualizzato. Per visualizzarlo, è necessario aggiungere il codice di
accesso al database.

Nota
I risultati possono variare, in base alla versione di SAP Crystal Reports in uso. Ad esempio, se è stato
installato SAP Crystal Reports 10 o versione successiva, viene chiesto di fornire le informazioni di accesso
al database per il report. Se si sta utilizzando una versione precedente di SAP Crystal Reports, viene
generata un’eccezione. In entrambi i casi, per creare un'applicazione completamente funzionale è
necessario seguire la procedura successiva.

5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 243
1.5.1.1.3 Aggiunta del codice di accesso del report

A questo punto è possibile aggiungere il codice di accesso alla classe di codice sottostante. Iniziare creando un
metodo di supporto privato, SetDBLogonForReport().

1.5.1.1.3.1 Per creare e codificare il metodo


SetDBLogonForReport()

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.
2. Alla fine della classe, creare un nuovo metodo privato denominato SetDBLogonForReport() con
l'inserimento di ConnectionInfo nella firma.

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)

End Sub

private void SetDBLogonForReport(ConnectionInfo connectionInfo)


{
}

3. All'interno di questo metodo, recuperare l'istanza TableLogOnInfos dalla proprietà LogOnInfo della classe
CrystalReportViewer.

Nota
TableLogOnInfos è una classe indicizzata che contiene istanze della classe TableLogOnInfo.

Dim myTableLogOnInfos As TableLogOnInfos = myCrystalReportViewer.LogOnInfo

TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogOnInfo;

4. Creare un ciclo foreach che passi attraverso ogni istanza nell’istanza TableLogOnInfo della classe
indicizzata TableLogOnInfos.

For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos

Next

foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos)


{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
244 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. All'interno del ciclo foreach, impostare la proprietà ConnectionInfo di TableLogOnInfosul parametro
ConnectionInfo.

myTableLogOnInfo.ConnectionInfo = myConnectionInfo

tableLogOnInfo.ConnectionInfo = connectionInfo;

1.5.1.1.3.2 Per modificare il metodo


ConfigureCrystalReports() in modo da fare riferimento al
codice di accesso al database

Contesto

Con questa procedura è stato creato un metodo per impostare l’accesso al database. A questo punto diventa
necessario modificare il metodo ConfigureCrystalReports() in modo da fare riferimento al metodo appena
creato e consentire al report di rilevare le informazioni di accesso al database.

Per modificare il metodo ConfigureCrystalReports() occorre effettuare due operazioni:

● Configurare l'istanza ConnectionInfo.


● Chiamare il metodo SetDBLogonForReport().

Procedura

1. Nel metodo ConfigureCrystalReports() dichiarare e creare un'istanza della classe ConnectionInfo


sotto il codice che collega il report al controllo CrystalReportViewer.

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()

ConnectionInfo connectionInfo = new ConnectionInfo();

2. Nella riga successiva chiamare il metodo SetDBLogonForReport() passando l'istanza di ConnectionInfo.

SetDBLogonForReport(myConnectionInfo)

SetDBLogonForReport(connectionInfo);

3. Impostare le proprietà DatabaseName, UserID, Passworde dell’istanza ConnectionInfo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 245
Nota
Per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Nel codice scritto, sostituire la password di esempio 1234 (riportata in di seguito) con una password
personalizzata.

myConnectionInfo.DatabaseName = "Northwind"
myConnectionInfo.UserID = "limitedPermissionAccount"
myConnectionInfo.Password = "1234"

connectionInfo.DatabaseName = "Northwind";
connectionInfo.UserID = "limitedPermissionAccount";
connectionInfo.Password = "1234";

1.5.1.1.3.3 Per verificare il caricamento del report


NorthwindCustomers

Contesto

A questo punto è possibile creare ed eseguire il progetto. Il report dovrebbe essere caricato correttamente,
perché è stato aggiunto codice per accedere al database.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Il report NorthwindCustomers viene visualizzato.


4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.1.4 Aggiunta della possibilità di modificare la posizione


del database in fase di esecuzione

In questa sezione viene descritto come modificare la posizione del database in fase di esecuzione. Questa
operazione richiede solo una piccola modifica all'istanza di ConnectionInfo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
246 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
In questa esercitazione verrà modificato il nome del server del database e non il nome del database. Non è
possibile modificare il nome del database con il controllo CrystalReportViewer.

1.5.1.1.4.1 Per modificare la posizione del database in fase


di esecuzione

Procedura

1. Nel metodo ConfigureCrystalReports() creare nel codice una coppia di interruzioni di riga, dopo la riga
che chiama il metodo SetDBLogonForReport().
2. All'interno delle interruzioni di riga, impostare la proprietà ServerName dell'istanza di ConnectionInfo.

Nota
Nel codice scritto, sostituire il nome del server di esempio DevDatabaseServer (riportato in basso) con
quello del proprio server.

myConnectionInfo.ServerName = "DevDatabaseServer"

connectionInfo.ServerName = "DevDatabaseServer";

1.5.1.1.4.2 Per verificare che il report possa essere


reimpostato per un server di database alternativo in fase di
esecuzione

Contesto

A questo punto è possibile creare ed eseguire il progetto. In fase di esecuzione, il report dovrebbe essere
reindirizzato al server di database alternativo.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 247
3. Dal menu Debug, scegliere Avvia.

Il report NorthwindCustomers viene visualizzato.


4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.2 Esercitazione: Lettura e impostazione di parametri


discreti

In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Introduzione

Un parametro discreto è un valore singolo, al contrario di un parametro di intervallo che si riferisce a un intervallo
di valori. Agli elementi di testo (come le città) si accede in genere tramite parametri discreti. Agli elementi
numerici (come gli stipendi dei dipendenti) si accede in genere tramite parametri di intervallo.

In questa esercitazione viene impostato un valore per un parametro discreto che consente di visualizzare un
report clienti basato su un campo. Il report mostra solo i clienti che vivono nelle città selezionate da un apposito
elenco. L’elenco delle città deriva dai valori predefiniti del parametro Città. Tali valori predefiniti sono incapsulati
all'interno nel report.

Iniziare creando un report clienti con un parametro Città. I dati del report sono derivati dal database di esempio
fornito con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio. Quando si crea un’istanza
del report nel codice, si crea un ArrayList contenente nomi di città (Paris, Tokyo) e si passa l’istanza ArrayList a un
metodo di supporto che imposta tali nomi come i valori correnti del parametro Città. A questo punto, collegare il
report al controllo CrystalReportViewer e visualizzare il report mostrando solo i clienti che vivono a Parigi e Tokyo.

Nella parte successiva dell'esercitazione vengono effettuate le seguenti operazioni:

● Creazione di un metodo che recupera tutti i valori predefiniti e li restituisce in un ArrayList.


● Aggiunta di un controllo ListBox al form e compilazione dello stesso dall’ArrayList.
● Aggiunta di un controllo Button per rivisualizzare il report in base alle selezioni nel controllo ListBox.

Nella parte finale dell’esercitazione, viene codificato l’evento clic del controllo Button per recuperare tutti gli
elementi selezionati nel controllo ListBox, quindi tali valori vengono impostati come valori correnti del parametro
Città. Il report viene nuovamente visualizzato mostrando solo i clienti che vivono nelle città selezionate nel
controllo ListBox.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
248 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_CRVObjMod_Parameters


● Progetto Windows C#: CS_Win_CRVObjMod_Parameters
● Sito Web in Visual Basic: VB_Web_CRVObjMod_Parameters
● Progetto Windows Visual Basic: VB_Win_CRVObjMod_Parameters

Database Xtreme

Il database Xtreme viene utilizzato in alcune delle esercitazioni. È incluso nel pacchetto del codice di esempio
scaricabile da http://www.sdn.sap.com/irj/boc/sdklibrary . È necessario creare manualmente una
connessione ODBC al database.

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.1.2.1 Creazione di un report con parametri

Per iniziare, creare un report con informazioni provenienti dal database Xtreme.

1.5.1.2.1.1 Creazione di un report con parametri

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Crystal
Report.
3. Nel campo Nome immettere il nome CustomersByCity.rpt e fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella ODBC (RDO).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 249
8. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi fare clic su
Fine.
9. Espandere il nodo Tabelle, fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate,
quindi scegliere Avanti.
10. Espandere la tabella Clienti, quindi tenendo premuto il tasto Ctrl fare clic su Nome cliente, Titolo contatto,
Indirizzo1, Cognome contatto e Città.
11. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
12. Nel riquadro Campi disponibili, in Campi report, fare doppio clic su Clienti.Città per spostare il campo nel
riquadro Raggruppa in base a, quindi scegliere Fine.

Il report CustomersByCity viene creato e caricato nella finestra principale di Visual Studio.

1.5.1.2.1.2 Per aggiungere un parametro Città

Contesto

A questo punto è possibile aggiungere un parametro denominato Città e compilarlo con i valori predefiniti.

Explorer Campo deve essere visibile poiché garantisce l’accesso alle diverse funzionalità del report, inclusi i
parametri. Per rendere Explorer Campo visibile, fare clic sul menu Crystal Reports, quindi scegliere Explorer
Campo.

Procedura

1. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Suggerimento
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

2. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi parametro, quindi selezionare Nuovo….
3. Nella finestra di dialogo Crea campo parametro:
a) Impostare Nome su Città.
b) Impostare Tipo su Stringa. Impostare Testo prompt su Selezionare una o più città.
c) Impostare Campo valore su Città.
d) Fare clic su Azioni, quindi selezionare Aggiungi tutti i valori del database. Verrà così aggiunto al riquadro
centrale l'intero elenco di città.
e) Nel riquadro Opzioni dei valori impostare Testo prompt su Selezionare una o più città.
f) Nello stesso riquadro impostare Consenti valori multipli su True.
g) Impostare Consenti valori discreti su True.
4. Fare clic su OK per chiudere la finestra di dialogo Crea campo parametro.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
250 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.2.1.3 Per connettere il parametro Città alla colonna
Città del database

Contesto

Il campo Valori predefiniti è stato impostato per contenere un lungo elenco di città. Più avanti nel corso di questa
esercitazione si accederà allo stesso elenco di valori predefiniti a livello di programmazione, tramite la proprietà
ParameterFieldInfo della classe CrystalReportViewer.

A questo punto, utilizzare l’Esperto selezione per impostare una formula che connetta la colonna Città del
database al campo parametro Città appena creato.

Procedura

1. Nella barra degli strumenti di Crystal Reports, fare clic su Esperto selezione.
2. Nella finestra di dialogo Scegli campo, in Campi report, selezionare Clienti.Città, quindi scegliere OK.
3. Nella finestra di dialogo Select Expert, all'interno della scheda Customer.City, impostare l’elenco a
discesa su "è uguale a".
4. Nel nuovo elenco a discesa visualizzato a destra, selezionare la prima opzione disponibile, {?Città}, quindi fare
clic su OK.

Nota
questa selezione, {?City}, corrisponde al parametro Città creato in precedenza.

5. Dal menu File, scegliere Salva tutto.

Risultati

È ora possibile collegare il report al controllo CrystalReportViewer e impostare il parametro Città con due valori
iniziali, Parigi e Tokyo.

1.5.1.2.2 Collegamento del report

Durante l'esecuzione delle istruzioni fornite in Impostazione di un progetto [pagina 14] come preparazione a
questa esercitazione, è stato inserito un controllo CrystalReportViewer nel Web Form o nel Windows Form. Nei
passaggi precedenti, il report CustomersByCity è stato aggiunto al progetto.

In questa sezione, il percorso della directory di file del report CustomersByCity viene collegato al controllo
CrystalReportViewer. Viene quindi verificato se è possibile visualizzare correttamente il report quando i valori
correnti del campo parametro non sono ancora stati impostati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 251
1.5.1.2.2.1 Per collegare il percorso della directory di file del
report CustomersByCity al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante relativa al Web Form o al
Windows Form.
3. Individuare il metodo ConfigureCrystalReports() creato in Impostazione di un progetto [pagina 14].
4. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("CustomersByCity.rpt")

string reportPath = Server.MapPath("CustomersByCity.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"CustomersByCity.rpt"

string reportPath = Application.StartupPath + "\\" + "CustomersByCity.rpt";

5. Assegnare il percorso della directory di file del report CustomersByCity alla proprietà ReportSource del
controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportPath

crystalReportViewer.ReportSource = reportPath;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
252 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.2.2.2 Per verificare il caricamento del report
CustomersByCity

Contesto

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per l'impostazione di un valore per campo parametro Città non è stato ancora scritto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Il report CustomersByCity non verrà visualizzato. Per visualizzarlo, è necessario aggiungere un valore per il
campo parametro Città, più avanti nel corso di questa esercitazione.

Nota
I risultati possono variare, in base alla versione di SAP Crystal Reports in uso. Nelle versioni più recenti,
viene visualizzato un form in cui si richiede di inserire i valori per il parametro del report. In quelle
precedenti, invece, viene generata l'eccezione "Valore corrente del campo parametro mancante". In
entrambi i casi, per creare un'applicazione completamente funzionale è necessario aggiungere codice
supplementare.

5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.2.3 Impostazione manuale di parametri nel codice

A questo punto è possibile impostare due valori ("Paris" e "Tokyo") nel campo parametro Città del report
CustomersByCity.

Ciò implica l'esigenza di aggiungere nuovo codice, operazione che è opportuno suddividere nei seguenti processi:

● È necessaria una costante PARAMETER_FIELD_NAME per contenere il nome del campo parametro "Città".
● Il codice per l’aggiunta di valori correnti al parametro Città viene utilizzato in diversi punti di questa
esercitazione; per questo motivo viene creato come metodo di supporto separato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 253
● All’interno del metodo ConfigureCrystalReports(), aggiungere i parametri "Paris" e "Tokyo" a un’istanza
ArrayList e passare il report e l’istanza ArrayList al metodo di supporto per l’elaborazione.

1.5.1.2.3.1 Creazione di una costante


PARAMETER_FIELD_NAME

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.
2. A livello di classe, creare una nuova costante di stringa, PARAMETER_FIELD_NAME, e impostarne il valore su
"Città".

Private Const PARAMETER_FIELD_NAME As String = "City"

private const string PARAMETER_FIELD_NAME = "City";

1.5.1.2.3.2 Creazione di un metodo di supporto che aggiunga


valori correnti al parametro del report

Contesto

A questo punto è possibile creare il metodo di supporto che aggiunge valori correnti al parametro del report.

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.
2. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports" [Visual
Basic] o "using" [C#] per lo spazio dei nomi System.Collections (se non è stato già dichiarato).

Nota
Questa dichiarazione è necessaria per accedere alla classe ArrayList.

Imports System.Collections

using System.Collections;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
254 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
3. Alla fine della classe, creare un nuovo metodo privato denominato
SetCurrentValuesForParameterField() con due variabili nella firma: ParameterFields e ArrayList.

Private Sub SetCurrentValuesForParameterField(ByVal myParameterFields As


ParameterFields, ByVal myArrayList As
ArrayList)

End Sub

private void SetCurrentValuesForParameterField(ParameterFields parameterFields,


ArrayList arrayList)
{
}

4. In questo metodo dichiarare e creare un'istanza della classe ParameterValues come variabile
currentParameterValues.

Nota
Affinché sia possibile accedere alla classe ParameterValues, è necessario includere una dichiarazione
"Imports" [Visual Basic] o "using" [C#] all'inizio della classe di codice sottostante per lo spazio
dei nomi CrystalDecisions.Shared. (tale dichiarazione è stata aggiunta in Impostazione di un progetto
[pagina 14]).

Dim currentParameterValues As ParameterValues = New ParameterValues()

ParameterValues currentParameterValues = new ParameterValues();

5. Creare un ciclo foreach per recuperare tutti i valori inseriti (come tipo Object) dall’istanza ArrayList.

Nota
In questo metodo, vengono recuperati i valori da ArrayList e in seguito viene scritto il codice per aggiungere
i valori ad ArrayList.

For Each submittedValue As Object In myArrayList

Next

foreach(object submittedValue in arrayList)


{
}

6. All’interno del ciclo foreach, dichiarare e creare un’istanza per la classe ParameterDiscreteValue.

Dim myParameterDiscreteValue As ParameterDiscreteValue = New


ParameterDiscreteValue()

ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 255
7. Nel ciclo foreach, convertire submittedValue in stringa e passarla alla proprietà Value dell’istanza
ParameterDiscreteValue.

myParameterDiscreteValue.Value = submittedValue.ToString()

parameterDiscreteValue.Value = submittedValue.ToString();

8. Nel ciclo foreach, aggiungere l’istanza ParameterDiscreteValue nella classe indicizzata


currentParameterValues.

Questo completa il codice nel ciclo foreach. Il resto del codice, descritto nei passaggi successivi, viene
posizionato dopo il ciclo foreach.

currentParameterValues.Add(myParameterDiscreteValue)

currentParameterValues.Add(parameterDiscreteValue);

9. Fuori dal ciclo foreach, recuperare l'istanza ParameterField dalla classe indicizzata ParameterFields
basata sulla voce di indice della costante PARAMETER_FIELD_NAME.

Dim myParameterField As ParameterField = myParameterFields(PARAMETER_FIELD_NAME)

ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME];

10. Passare l’istanza currentParameterValues alla proprietà CurrentValues dell’istanza ParameterField.

myParameterField.CurrentValues = currentParameterValues

parameterField.CurrentValues = currentParameterValues;

1.5.1.2.3.3 Per chiamare il metodo


SetCurrentValuesForParameterField () prima che il report sia
collegato al controllo CrystalReportViewer

Contesto

In questa procedura è stato descritto come creare un metodo che recupera valori da un’istanza ArrayList e li
posiziona come valori correnti in un’istanza ParameterField. A questo punto, affinché il report rilevi le
impostazioni del parametro, è necessario chiamare il metodo prima di collegare il report al controllo
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
256 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Nel metodo ConfigureCrystalReports(), dichiarare e creare un'istanza ArrayList sopra la riga che
collega il report al controllo CrystalReportViewer.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

2. Aggiungere i nomi di città "Paris" e "Tokyo" come stringhe all’istanza ArrayList.

myArrayList.Add("Paris")
myArrayList.Add("Tokyo")

arrayList.Add("Paris");
arrayList.Add("Tokyo");

3. Sotto il codice che collega il controllo CrystalReportViewer, recuperare l'istanza ParameterFields dalla
proprietà ParameterFieldInfo del controllo CrystalReportViewer.

Dim myParameterFields As ParameterFields =


myCrystalReportViewer.ParameterFieldInfo

ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;

4. Chiamare il metodo SetCurrentValuesForParameterField() e passare le istanze ParameterFields e


ArrayList.

SetCurrentValuesForParameterField(myParameterFields, myArrayList)

SetCurrentValuesForParameterField(parameterFields, arrayList);

1.5.1.2.3.4 Per verificare il caricamento del report


CustomersByCity

Contesto

A questo punto è possibile creare ed eseguire il progetto. È previsto che il report venga visualizzato correttamente
poiché è stato scritto il codice per l'impostazione dei valori correnti nel campo parametro.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 257
Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

Nella sezione successiva viene descritto come recuperare i valori predefiniti dal campo parametro e impostare tali
valori in un controllo ListBox. Questi valori verranno utilizzati al termine dell’esercitazione per selezionare nuove
città in modo dinamico e filtrare il report in base alle nuove città selezionate.

1.5.1.2.4 Creazione di un controllo ListBox che visualizzi i


parametri predefiniti

Nella restante parte dell’esercitazione viene descritto come visualizzare un elenco completo di valori predefiniti
per il campo parametro in un controllo ListBox e come filtrare il contenuto del report in base alle selezioni
effettuate nel controllo ListBox.

In questa sezione viene descritto come compilare il controllo ListBox con i valori predefiniti del campo
parametro.

Nota
È importante ricordare che i valori predefiniti, ovvero un lungo elenco di città, sono stati impostati al momento
della creazione del report all’inizio dell’esercitazione.

A questo punto è necessario aggiungere e configurare un controllo ListBox, quindi creare un metodo di supporto
per compilare il controllo ListBox.

1.5.1.2.4.1 Per creare e configurare un controllo ListBox sul


form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
258 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Premere il tasto freccia sinistra sulla tastiera per visualizzare un cursore lampeggiante, quindi premere
Invio.
4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Nella finestra Proprietà, impostare Dock su "Bottom."
c) Ridimensionare il controllo CrystalReportViewer, in modo da lasciare spazio sufficiente sopra di esso per il
controllo ListBox.
d) Nella finestra Proprietà, impostare Anchor su "Top, Bottom, Left, Right."
5. Dalla casella degli strumenti, trascinare un controllo ListBox sul controllo CrystalReportViewer.
6. Fare clic sul controllo ListBox per selezionarlo.
7. Nella finestra Proprietà, effettuare le seguenti operazioni:
a) Impostare ID o Name su "defaultParameterValuesList".
b) Impostare SelectionMode su "Multiple" (ovvero su "MultiExtended" in un progetto Windows).
8. Dal menu File, scegliere Salva tutto.

1.5.1.2.4.2 Per creare un metodo di supporto che recuperi i


valori predefiniti dal campo parametro

Contesto

A questo punto è possibile creare un metodo di supporto che recuperi i valori predefiniti dal campo parametro.

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un nuovo metodo privato denominato
GetDefaultValuesFromParameterField() che restituisca un’istanza ArrayList, con ParameterFields
passato nella firma del metodo.

Private Function GetDefaultValuesFromParameterField(ByVal


myParameterFields As ParameterFields) As ArrayList

End Function

private ArrayList
GetDefaultValuesFromParameterField(ParameterFields parameterFields)
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 259
4. Recuperare l’istanza ParameterField dalla classe indicizzata ParameterFields, basata sulla voce di
indice della costante PARAMETER_FIELD_NAME.

Dim myParameterField As ParameterField =


myParameterFields(PARAMETER_FIELD_NAME)

ParameterField parameterField =
parameterFields[PARAMETER_FIELD_NAME];

5. Recuperare una classe indicizzata ParameterValues (come variabile defaultParameterValues) dalla


proprietà DefaultValues dell’istanza ParameterField.

Dim defaultParameterValues As ParameterValues =


myParameterField.DefaultValues

ParameterValues defaultParameterValues =
parameterField.DefaultValues;

6. Dichiarare e creare un’istanza di ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

7. Creare un ciclo foreach per recuperare tutte le istanze ParameterValue da defaultParameterValues.

All’interno del ciclo foreach, creare un blocco condizionale nidificato che verifichi i valori di parametro discreto
(in opposizione a quelli di intervallo). Esistono due versioni di questo blocco condizionale, poiché l'API è
leggermente cambiata nelle diverse versioni di SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio. Controllare l’API (utilizzando IntelliSense) per verificare quale proprietà è disponibile in
ParameterValue:

For Each myParameterValue As ParameterValue In


defaultParameterValues

Next

foreach(ParameterValue parameterValue in defaultParameterValues)


{
}

8. Se la proprietà disponibile è IsRange, all'interno del ciclo foreach inserire il seguente codice:

If (Not myParameterValue.IsRange) Then

End If

if(!parameterValue.IsRange)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
260 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
{
}

9. Oppure, se la proprietà disponibile è Kind (DiscreteOrRangeKind, un'enumerazione con tre valori:


DiscreteValue, RangeValue, DiscreteAndRangeValue) immettere il seguente codice all'interno del
suddetto ciclo:

If (myParameterValue.Kind = DiscreteOrRangeKind.DiscreteValue) Then

End If

if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue)
{
}

10. All'interno del blocco condizionale nidificato, eseguire il cast dell’istanza ParameterValue nella classe
estesa, DiscreteParameterValue.

Dim myParameterDiscreteValue As ParameterDiscreteValue =


CType(myParameterValue, ParameterDiscreteValue)

ParameterDiscreteValue parameterDiscreteValue =
(ParameterDiscreteValue)parameterValue;

11. Sempre all'interno del blocco condizionale nidificato, aggiungere la proprietà Value dell’istanza
ParameterDiscreteValue (convertita in stringa) all’istanza ArrayList.

myArrayList.Add(myParameterDiscreteValue.Value.ToString())

arrayList.Add(parameterDiscreteValue.Value.ToString());

12. Fuori dal blocco condizionale e dal ciclo foreach, alla fine del metodo, restituire l’istanza ArrayList dal
metodo.

Return myArrayList

return arrayList;

1.5.1.2.4.3 Per collegare l'ArrayList restituito dal metodo al


controllo ListBox in un progetto Web

Contesto

I valori predefiniti sono stati recuperati dal campo parametro e restituiti dal metodo come ArrayList. A questo
punto è possibile collegare questo ArrayList al controllo ListBox defaultParameterValuesList.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 261
Il codice varia leggermente a seconda che si utilizzi un progetto Web o Windows; pertanto, assicurarsi di
completare solo la procedura appropriata, Web o Windows, tra quelle riportate di seguito.

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, subito dopo
la riga che recupera l'istanza ParameterFields.
2. All'interno delle interruzioni di riga, creare un blocco condizionale Not IsPostBack.

Nota
Il blocco condizionale Not IsPostBack viene utilizzato per incapsulare il codice che deve essere eseguito
solo la prima volta che viene caricata la pagina. I controlli vengono in genere collegati ai valori dei dati nei
blocchi condizionali Not IsPostBack, in modo che i valori dei dati (e tutti i successivi eventi di controllo)
non siano reimpostati durante i ricaricamenti di pagina.

If Not IsPostBack Then

End If

if(!IsPostBack)
{
}

3. All'interno del blocco condizionale Not IsPostBack, impostare la proprietà DataSource del controllo
ListBox defaultParameterValuesList sul metodo di supporto
GetDefaultValuesFromParameterField(), passando l’istanza ParameterFields come parametro di
metodo.

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields)

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);

4. Sempre all'interno del blocco condizionale Not IsPostBack, chiamare il metodo DataBind() del controllo
ListBox defaultParameterValuesList.

defaultParameterValuesList.DataBind()

defaultParameterValuesList.DataBind();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
262 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.2.4.4 Per collegare l'ArrayList restituito dal metodo al
controllo ListBox in un progetto Windows

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, subito dopo
la riga che recupera l'istanza ParameterFields.

All'interno delle interruzioni di riga create è possibile inserire codice aggiuntivo per impostare l'origine dati per
il controllo ListBox defaultParameterValuesList quando la pagina viene caricata per la prima volta.
2. All'interno delle interruzioni di riga, impostare la proprietà DataSource del controllo ListBox
defaultParameterValuesList sul metodo di supporto GetDefaultValuesFromParameterField(),
passando l’istanza ParameterFields come parametro di metodo.

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields)

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);

1.5.1.2.4.5 Per verificare la compilazione del controllo


ListBox defaultParameterValuesList

Contesto

A questo punto è possibile creare ed eseguire il progetto per verificare se il controllo ListBox
defaultParameterValuesList è stato compilato.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Il controllo ListBox defaultParameterValuesList visualizza un elenco completo di valori predefiniti


(ovvero città in questa esercitazione).
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 263
1.5.1.2.5 Impostazione di parametri dalle selezioni di ListBox

In questa sezione viene descritto come aggiungere un pulsante per rivisualizzare il report in base alle selezioni
effettuate nel ListBox defaultParameterValuesList controllo. All’interno del metodo di evento per questo
pulsante, viene chiamato lo stesso metodo chiamato al primo caricamento della
pagina:SetCurrentValuesForParameterField() Questa volta, tuttavia, anziché passare valori arbitrari (Paris
e Tokyo), vengono passati i valori selezionati nel controllo ListBox defaultParameterValuesList.

1.5.1.2.5.1 Per creare e configurare un pulsante di


rivisualizzazione sul form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Dalla casella degli strumenti, trascinare un controllo Button a destra del controllo ListBox.
4. Fare clic sul controllo Button per selezionarlo.
5. Nella finestra Proprietà, effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "redisplay."
b) Impostare Text su "Rivisualizza report".

1.5.1.2.5.2 Per creare il metodo di evento clic per il controllo


Button di rivisualizzazione in un progetto Web

Contesto

A questo punto è possibile creare un metodo di evento clic per il controlloListBox che ricerchi gli elementi
selezionati nel controllo e li passi al metodo SetCurrentValuesForParameterField().

Il codice varia leggermente a seconda che si utilizzi un progetto Web o Windows, quindi completare solo la
procedura appropriata, Web o Windows, tra quelle riportate di seguito.

Procedura

1. Fare doppio clic sul pulsante Rivisualizza report.

Si torna alla classe di codice sottostante in cui è stato generato automaticamente il metodo di evento
redisplay_Click().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
264 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports" [Visual
Basic] o "using" [C#] per lo spazio dei nomi System.Web.UI.WebControls (se non è stato già dichiarato).

Imports System.Web.UI.WebControls

using System.Web.UI.WebControls;

3. All'interno del metodo di evento redisplay_Click()appena generato automaticamente, dichiarare e


creare un'istanza ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

4. Creare un ciclo foreach per recuperare tutte le istanze ListItem dalla proprietà Items del controllo ListBox
defaultParameterValuesList.

For Each item As ListItem In defaultParameterValuesList.Items

Next

foreach(ListItem item in defaultParameterValuesList.Items)


{
}

5. All’interno del ciclo foreach, creare un blocco condizionale nidificato che controlli se la proprietà Selected
dell’istanza Item corrente sia impostata su True.

If item.Selected Then

End If

if(item.Selected)
{
}

6. All'interno del blocco condizionale, aggiungere la proprietà Value dell’istanza Item all’istanza ArrayList.

myArrayList.Add(item.Value)

arrayList.Add(item.Value);

7. Fuori dal blocco condizionale e dal ciclo foreach, collegare nuovamente il percorso della directory di file del
report CustomersByCity alla proprietà ReportSource della classe CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 265
Nota
Il percorso della directory di file visualizzato di seguito riguarda un progetto Visual Studio. "NomeProgetto"
viene sostituito dal nome del sito Web. "NomeUtente" viene sostituito dal nome di accesso in uso.

Il percorso predefinito per un progetto di sito Web è:

myCrystalReportViewer.ReportSource = "C:\WebSites\ NomeProgetto


\CustomersByCity.rpt"

crystalReportViewer.ReportSource = "C:\\WebSites\\ NomeProgetto\


\CustomersByCity.rpt";

8. Recuperare l'istanza ParameterFields dalla proprietà del controllo CrystalReportViewer


ParameterFieldInfo.

Dim myParameterFields As ParameterFields =


myCrystalReportViewer.ParameterFieldInfo

ParameterFields parameterFields =
crystalReportViewer.ParameterFieldInfo;

9. Passare le istanze ParameterFields e ArrayList al metodo


SetCurrentValuesForParameterField().

SetCurrentValuesForParameterField(myParameterFields, myArrayList)

SetCurrentValuesForParameterField(parameterFields, arrayList);

1.5.1.2.5.3 Per creare il metodo di evento clic per il controllo


Button di rivisualizzazione in un progetto Windows

Procedura

1. Fare doppio clic sul controllo Button di rivisualizzazione.

Si torna alla classe di codice sottostante in cui è stato generato automaticamente il metodo di evento
redisplay_Click().
2. All'interno del metodo di evento redisplay_Click()appena generato automaticamente, dichiarare e
creare un'istanza ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
266 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
ArrayList arrayList = new ArrayList();

3. Creare un ciclo foreach per recuperare tutti gli elementi (come stringa) dalla proprietà SelectedItems del
controllo ListBox defaultParameterValuesList.

For Each item As String In defaultParameterValuesList.SelectedItems

Next

foreach(string item in defaultParameterValuesList.SelectedItems)


{
}

4. All'interno del ciclo foreach, aggiungere un'istanza di stringa dell'elemento all'istanza ArrayList.

myArrayList.Add(item)

arrayList.Add(item);

5. Fuori dal ciclo foreach, collegare nuovamente il percorso della directory di file del report CustomersByCity alla
proprietà ReportSource della classe CrystalReportViewer.

Nota
Il percorso della directory di file visualizzato di seguito riguarda un progetto Visual Studio. "NomeProgetto"
viene sostituito dal nome del progetto Windows. "NomeUtente" viene sostituito dal nome di accesso in uso.

Il percorso predefinito per un progetto Windows è:

myCrystalReportViewer.ReportSource = "C:\Documents and Settings\NomeUtente


\Documenti\Visual Studio\Projects\ProjectName\CustomersByCity.rpt"

crystalReportViewer.ReportSource = "C:\\Documents and Settings\\NomeUtente\


\Documenti\\Visual Studio\\Projects\\ProjectName\\CustomersByCity.rpt";

6. Recuperare l'istanza ParameterFields dalla proprietà del controllo CrystalReportViewer


ParameterFieldInfo.

Dim myParameterFields As ParameterFields =


myCrystalReportViewer.ParameterFieldInfo

ParameterFields parameterFields =
crystalReportViewer.ParameterFieldInfo;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 267
7. Passare le istanze ParameterFields e ArrayList al metodo
SetCurrentValuesForParameterField().

SetCurrentValuesForParameterField(myParameterFields, myArrayList)

SetCurrentValuesForParameterField(parameterFields, arrayList);

1.5.1.2.5.4 Per verificare la compilazione del controllo


ListBox defaultParameterValuesList

Contesto

Ora che i valori selezionati nel controllo ListBox sono stati applicati come valori correnti per il campo parametro,
è possibile rivisualizzare il report.

A questo punto è possibile creare ed eseguire il progetto per verificare se il campo parametro è stato reimpostato
correttamente.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Ctrl fare clic per selezionare più città dall'elenco.
5. Fare clic sul pulsante Rivisualizza report.

La pagina viene ricaricata visualizzando i record dei clienti che nelle città selezionate.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.2.6 Configurazione della persistenza dei parametri

In questa sezione viene descritto come configurare, in un'esercitazione basata sul Web, la persistenza per le
selezioni del campo parametro effettuate nel controllo ListBox.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
268 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.2.6.1 Per aggiungere codice di persistenza al metodo
ConfigureCrystalReports()

Contesto

Per rendere persistenti le modifiche apportate al ricaricamento delle pagine Web, è necessario aggiungere codice
di persistenza all'applicazione.

Iniziare aggiungendo il codice di persistenza al metodo ConfigureCrystalReports(), quindi aggiungere un


blocco Else al blocco condizionale If Not IsPostBack. Proseguire impostando valori univoci per l'istanza
ArrayList per una delle condizioni all'interno del blocco condizionale. All'avvio della pagina, impostare i valori
predefiniti ("Paris" e "Tokyo") nell'istanza ArrayList. Ai successivi caricamenti della pagina, recuperare l'istanza
ArrayList salvata in Session.

Procedura

1. All'interno del metodo ConfigureCrystalReports(), tagliare e incollare le due righe di codice che
aggiungono Paris e Tokyo all'ArrayList, alla fine del blocco condizionale Not IsPostBack.

Al termine dell'operazione, il blocco condizionale dovrebbe presentarsi come segue:

If Not IsPostBack Then


defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields)
defaultParameterValuesList.DataBind()
myArrayList.Add("Paris")
myArrayList.Add("Tokyo")
End If

if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
}

2. Aggiungere una riga di codice finale al blocco condizionale che assegni l'istanza ArrayList a Session.

Nota
Per la persistenza Session che viene aggiunta, è possibile utilizzare il nome della variabile come
identificatore di stringa.

Session("myArrayList") = myArrayList

Session["arrayList"] = arrayList;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 269
3. Aggiungere una condizione Else al blocco condizionale Not IsPostBack.
4. All'interno del blocco Else, recuperare l'istanza ArrayList da Session ed eseguirne il cast in ArrayList.

myArrayList = Ctype(Session("myArrayList"), ArrayList)

arrayList = (ArrayList)Session["arrayList"];

Risultati

Al termine dell'operazione, il blocco condizionale dovrebbe presentarsi come segue:

If Not IsPostBack Then


defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields)
defaultParameterValuesList.DataBind()
myArrayList.Add("Paris")
myArrayList.Add("Tokyo")
Session("myArrayList") = myArrayList
Else
myArrayList = Ctype(Session("myArrayList"), ArrayList)
End If

if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
Session["arrayList"] = arrayList;
}
else
{
arrayList = (ArrayList)Session["arrayList"];
}

Le modifiche apportate al metodo ConfigureCrystalReports()assicurano che l'istanza ArrayList corrente sia


sempre disponibile per essere passata al metodo SetCurrentValuesForParameterField().

Nella sezione successiva vengono apportate due modifiche al codice dell'evento clic del controllo Button:

● Assegnazione a Session dell'istanza ArrayList creata.


● Sostituzione delle ultime due righe di codice, che consentono di configurare e visualizzare il report, con una
chiamata al metodo ConfigureCrystalReports() per eseguire tale funzione su una serie di righe di codice
comuni.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
270 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.2.6.2 Per modificare il codice nel metodo di evento clic
del controllo Button in modo da utilizzare la persistenza
Session

Procedura

1. Eliminare le ultime tre righe di codice del metodo di evento clic del controllo Button.

○ La prima riga di codice da eliminare è quella che collega il percorso della directory di file del report alla
proprietà ReportSource del controllo CrystalReportViewer.
○ La seconda riga di codice da eliminare è quella che consente di recuperare l'istanza ParameterFields dalla
proprietà ParameterFieldInfo del controllo CrystalReportViewer.
○ La terza riga di codice da eliminare è la chiamata al metodo
SetCurrentValuesForParameterField().

Nel passaggio successivo vengono aggiunte due nuove righe di codice per sostituire quelle eliminate.
2. All'interno del metodo di evento clic del controllo Button, fuori dal ciclo foreach, aggiungere una riga di
codice che assegni l'istanza ArrayList a Session.

Nota
Per la Session che viene aggiunta, è possibile utilizzare il nome della variabile come identificatore di
stringa.

Session("myArrayList") = myArrayList

Session["arrayList"] = arrayList;

3. Chiamare il metodo ConfigureCrystalReports().

Ciò consente di recuperare l'istanza ArrayList, applicarla al report e collegare quest'ultimo al controllo
CrystalReportViewer.

ConfigureCrystalReports()

ConfigureCrystalReports();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 271
1.5.1.2.6.3 Per verificare la compilazione del controllo
ListBox defaultParameterValuesList

Contesto

A questo punto è possibile creare ed eseguire il progetto per verificare se il campo parametro è stato reimpostato
correttamente.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Maiusc fare clic per selezionare tutte le città dell'elenco.
5. Fare clic su Rivisualizza report.

La pagina viene ricaricata visualizzando i record dei clienti di tutte le città. Si tratta di un report di grandi
dimensioni contenente numerose pagine.
6. Nella barra degli strumenti di CrystalReportViewer, fare clic su Pagina seguente.
7. L'elenco delle città selezionate viene mantenuto e viene visualizzata la pagina 2 del report.
8. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.3 Esercitazione: Lettura e impostazione di parametri di


intervallo per un sottoreport

In questa esercitazione verrà esaminata un'ulteriore complicazione: cosa accade quando il report che richiede
determinati parametri contiene un sottoreport che richiede parametri diversi da quelli del report.

Introduzione

Nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 248], è stato
descritto come creare un report con un parametro discreto e come scrivere codice per impostare tale parametro
in fase di esecuzione, sia con valori di parametro hardcoded che con valori di parametro passati da un controllo
ListBox o TextBox.

In questa esercitazione viene descritto come aggiungere parametri di intervallo a un sottoreport.

È necessario apportare quattro modifiche al progetto creato in precedenza:

● Aggiungere un sottoreport al report originale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
272 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Questo sottoreport fa riferimento alla tabella Ordini del database Xtreme. La tabella Ordini è associata alla
tabella Clienti utilizzata nell'esercitazione precedente tramite una chiave esterna ID cliente.
● Aggiungere un parametro di intervallo al sottoreport per filtrare i dati in base a un intervallo di date degli
ordini.
● Aggiungere due controlli Text al modulo: orderStartDate e orderEndDate, per impostare l'intervallo di date
degli ordini in fase di esecuzione.
● Modificare il metodo SetCurrentValuesForParameter() creato nell'esercitazione precedente.
Questo metodo crea un'istanza ParameterRangeValue contenente i valori startDate ed endDate e passa
l'istanza al parametro di intervallo all'interno del sottoreport.

Una volta completata questa esercitazione, è possibile filtrare i valori visualizzati sul report in fase di esecuzione. Il
codice aggiunto limita il numero di città visualizzate nel report principale e l'intervallo di date degli ordini da
visualizzare nel sottoreport.

L'esercitazione può essere completata anche con classi del modello a oggetti ReportDocument, vedere
Esercitazione: Lettura e impostazione di parametri con un sottoreport [pagina 410].

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_CRVObjMod_ParametersSubrpt


● Progetto Windows C#: CS_Win_CRVObjMod_ParametersSubrpt
● Sito Web in Visual Basic: VB_Web_CRVObjMod_ParametersSubrpt
● Progetto Windows Visual Basic: VB_Win_CRVObjMod_ParametersSubrpt

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Directory dei report di esempio [pagina 14]

1.5.1.3.1 Aggiunta di un sottoreport al report originale

Iniziare aggiungendo un sottoreport al report originale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 273
1.5.1.3.1.1 Per aggiungere un sottoreport

Procedura

1. Aprire il progetto creato nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri


discreti [pagina 248].
2. In Esplora soluzioni, fare doppio clic sul report CustomersByCity per aprirlo.
3. Fare clic con il pulsante destro del mouse sulla barra grigia Dettagli, quindi selezionare Inserisci sezione sotto.
4. Fare clic con il pulsante destro del mouse sulla nuova sezione Dettagli b appena creata, selezionare Inserisci,
quindi fare clic su Sottoreport.

Viene visualizzato un riquadro grigio intorno al cursore del mouse.


5. Trascinare il rettangolo grigio nella nuova sezione Dettagli b, quindi fare clic per rilasciarlo.
6. Nella scheda Sottoreport della finestra di dialogo Inserisci sottoreport, selezionare Crea un sottoreport con la
creazione guidata report.

Nota
la finestra di dialogo Inserisci sottoreport include altre opzioni che consentono di scegliere un report
esistente e sottoreport su richiesta. Per ulteriori informazioni su tali funzioni, vedere Scheda Sottoreport
(finestra di dialogo Inserisci sottoreport) [pagina 923].

7. Nel campo Nuovo nome del report digitare "CustomerOrders".


8. Fare clic su Procedura guidata report.
9. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
10. Dalla sottocartella, espandere la cartella ODBC (RDO).
11. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi fare clic su
Fine.

La cartella ODBC (RDO) si espande e visualizza il database Xtreme.


12. Selezionare la tabella Ordini e fare clic sul simbolo > per spostarla nel riquadro Seleziona tabelle, quindi
scegliere Avanti.
13. Nel riquadro Campi disponibili, selezionare ID ordine, Data ordine, Data spedizione e Spedizione via.
14. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Fine.
15. Nella finestra di dialogo Inserisci sottoreport, selezionare la scheda Collegamento.
16. Nell'elenco Campi disponibili del riquadro Campo/i del report contenitore a cui collegarsi espandere la tabella
Clienti, selezionare ID cliente, quindi fare clic sul simbolo >.
17. Nel riquadro Collegamento al campo Clienti.ID cliente visualizzato, lasciare invariate le selezioni predefinite.

Tali selezioni di parametri e dati generano automaticamente una relazione tra il report principale e il
sottoreport.
18. Fare clic su OK.

Il nuovo sottoreport CustomerOrders viene visualizzato nella sezione Dettagli b del report principale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
274 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
quando si aggiunge un sottoreport alla sezione Dettagli, il sottoreport viene visualizzato per ogni riga,
aumentando i requisiti di prestazioni del report. Se non sono necessarie informazioni sul sottoreport con
tale livello di dettaglio, posizionare il sottoreport in una sezione Gruppo invece che nella sezione Dettagli.

1.5.1.3.1.2 Per verificare le impostazioni nel sottoreport

Procedura

1. Nella sezione Dettagli, fare doppio clic sul sottoreport CustomerOrders per visualizzarlo.

Nella parte inferiore della finestra di progettazione sono presenti pulsanti di spostamento per il report
principale e il sottoreport CustomerOrders.
2. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Nota
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

3. Nell'Explorer Campo, espandere Campi parametro.


4. Verificare che il campo parametro Clienti-PM.ID Cliente sia stato generato automaticamente al
momento del collegamento del sottoreport.
5. Nella barra degli strumenti di Crystal Reports, fare clic su Esperto selezione.
6. Nella finestra di dialogo Esperto selezione, verificare che sia impostato il criterio Ordini.ID cliente è
uguale a {Clienti-PM.ID cliente}, quindi fare clic su OK.
7. Dal menu File, scegliere Salva tutto.

Risultati

Il sottoreport CustomerOrders è stato aggiunto al report CustomersByCity.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 275
1.5.1.3.1.3 Per aggiungere un parametro OrderDateRange al
sottoreport

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi parametro, quindi selezionare Nuovo….
2. Nella finestra di dialogo Crea campo parametro:
a) Impostare Nome su "OrderDateRange".
b) Impostare Testo richiesta su "Specificare un intervallo di date degli ordini da visualizzare".
c) Impostare Tipo valore su "Data".
d) Impostare Opzioni su una sola selezione, "Valore/i intervallo".
3. Fare clic su OK.
4. Nella barra degli strumenti di Crystal Reports, fare clic su Esperto selezione.
5. Fare clic sulla scheda Nuovo.
6. Nella finestra di dialogo Scegli campo, espandere la tabella Ordini, selezionare Data ordine, quindi fare clic su
OK.
7. Nella nuova scheda Ordini.Data ordine, dall'elenco a discesa dei criteri selezionare formula e digitare la
seguente formula: {Ordini.DataOrdine} in {?OrderDateRange}
8. Fare clic su OK.
9. Dal menu File, scegliere Salva tutto.

Il parametro OrderDateRange è stato aggiunto al sottoreport e collegato alla colonna Ordini.DataOrdine.


Nella sezione successiva viene descritto come aggiungere codice per fare riferimento al parametro
OrderDateRange all'interno del sottoreport.

1.5.1.3.2 Aggiunta del codice del parametro del sottoreport

Contesto

A questo punto è possibile aggiungere il codice del parametro per il sottoreport nella classe di codice sottostante.
Iniziare creando il metodo di supporto privato SetDateRangeForOrders().

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'inizio della classe, aggiungere due nuove costanti sotto la costante PARAMETER_FIELD_NAME esistente,
aggiunta durante l'esercitazione precedente.

Private Const SUBREPORT_PARAMETER_FIELD_NAME As String =

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
276 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
"OrderDateRange"
Private Const SUBREPORT_NAME As String = "CustomerOrders"

private const string SUBREPORT_PARAMETER_FIELD_NAME =


"OrderDateRange";
private const string SUBREPORT_NAME = "CustomerOrders";

4. Alla fine della classe creare un nuovo metodo privato denominato SetDateRangeForOrders() con tre
parametri: ParameterFields, string startDate e string endDate.

Private Sub SetDateRangeForOrders(ByVal myParameterFields As


ParameterFields, ByVal startDate As String, ByVal endDate As
String)

End Sub

private void SetDateRangeForOrders(ParameterFields parameterFields,


string startDate, string endDate)
{
}

5. All’interno del metodo, dichiarare e creare un’istanza per la classe ParameterRangeValue.

Nota
Affinché la classe ParameterRangeValue sia accessibile, è necessario includere un'istruzione
"Imports" [Visual Basic] o "using" [C#] all'inizio della classe di codice sottostante per lo spazio
dei nomi CrystalDecisions.Shared. (tale dichiarazione è stata aggiunta in Impostazione di un progetto
[pagina 14]).

Dim myParameterRangeValue As ParameterRangeValue = New


ParameterRangeValue()

ParameterRangeValue parameterRangeValue = new


ParameterRangeValue();

6. Impostare la proprietà StartValue dell'istanza ParameterRangeValue sul parametro del metodo


startDate.

Nota
Le proprietà StartValue ed EndValue della classe ParameterRangeValue accettano valori di tipo
Object. Questo tipo generico consente di passare valori di intervallo di diversi tipi, inclusi testo, numero,
data, valuta o ora.

myParameterRangeValue.StartValue = startDate

parameterRangeValue.StartValue = startDate;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 277
7. Impostare la proprietà EndValue dell'istanza ParameterRangeValue sul parametro del metodo endDate.

myParameterRangeValue.EndValue = endDate

parameterRangeValue.EndValue = endDate;

8. Impostare i limiti superiore e inferiore per la proprietà BoundInclusive.

Nota
La proprietà BoundInclusive implica che i valori di intervallo superiore e inferiore sono inclusi
nell'intervallo.

myParameterRangeValue.LowerBoundType =
RangeBoundType.BoundInclusive
myParameterRangeValue.UpperBoundType =
RangeBoundType.BoundInclusive

parameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive;
parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;

A questo punto è possibile assegnare l'istanza ParameterRangeValue al parametro del sottoreport.


9. Recuperare l'istanza ParameterField dalla classe indicizzata ParameterFields, basata su due valori
indicizzati: il nome del campo di parametro del sottoreport e il nome del sottoreport. Passare i valori delle due
costanti dichiarate all'inizio della classe.

Dim myParameterField As ParameterField =


myParameterFields(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME)

ParameterField parameterField =
parameterFields[SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME];

10. Chiamare il metodo Clear() della proprietà CurrentValues dell'istanza ParameterField per rimuovere
eventuali valori esistenti dalla proprietà CurrentValues.

myParameterField.CurrentValues.Clear()

parameterField.CurrentValues.Clear();

11. Aggiungere l'istanza ParameterRangeValue, creata in precedenza, alla proprietà CurrentValues


dell'istanza ParameterField.

myParameterField.CurrentValues.Add(myParameterRangeValue)

parameterField.CurrentValues.Add(parameterRangeValue);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
278 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

In questa procedura è stato descritto come impostare i valori delle date iniziale e finale in un'istanza
ParameterRangeValue e come passare tali valori al parametro OrderDateRange nel sottoreport
CustomerOrders.

1.5.1.3.3 Aggiunta di controlli TextBox per contenere i valori


dei parametri di intervallo

In questa sezione viene descritto come aggiungere due controlli TextBox per fornire al parametro di intervallo
OrderDateRange nel sottoreport CustomerOrders i valori delle date iniziale e finale, in fase di esecuzione.

Nota
Se si esegue questa esercitazione in un sito Web, la persistenza dei valori delle date inseriti dagli utenti nelle
caselle di testo viene assicurata da ViewState.

1.5.1.3.3.1 Per creare e configurare un pulsante di


rivisualizzazione sul form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:
a) Fare clic tra i controlli ListBox e Button.
b) Premere Invio tre volte per creare due righe tra i controlli ListBox e Button.
c) Nella prima riga creata sotto il controllo ListBox digitare Data inizio ordine.
d) Nella seconda riga creata sotto il controllo ListBox digitare Data fine ordine.
4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Dalla casella degli strumenti, trascinare due controlli Label a destra del controllo ListBox. Posizionare le
etichette una sull'altra e sopra il controllo Button.
b) Selezionare il primo controllo Label e nella finestra Proprietà impostare la proprietà Text su Data
inizio ordine.
c) Selezionare il secondo controllo Label e nella finestra Proprietà impostare la proprietà Text su Data
fine ordine.
5. Dalla casella degli strumenti, trascinare un controllo a destra di "Data inizio ordine".
6. Fare clic sul controllo TextBox per selezionarlo.
7. Nella finestra Proprietà, impostare ID (o Name) su orderStartDate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 279
8. Dalla casella degli strumenti, trascinare un controllo TextBox a destra di "Data fine ordine".
9. Fare clic sul controllo TextBox per selezionarlo.
10. Nella finestra Proprietà, impostare ID (o Name) su orderStartDate.
11. Dal menu File, scegliere Salva tutto.

1.5.1.3.4 Modifica dei metodi di chiamata del sottoreport

A questo punto, per ottenere l'elaborazione delle informazioni per i parametri dei sottoreport, è necessario
modificare il metodo ConfigureCrystalReports() e il metodo di evento redisplay_Click() per ricevere
dai controlli TextBox le informazioni da applicare al metodo SetDateRangeForOrders().

Nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 248], questi
metodi sono stati progettati in due modi diversi, a seconda che sia stata o meno inclusa la persistenza Session.

Nota
I progetti Windows non richiedono la persistenza Session, che è in genere richiesta dai siti Web.

Scegliere una delle seguenti procedure. Modificare i metodi che escludono la persistenza Session o modificare i
metodi che la includono:

1.5.1.3.4.1 Modifica dei metodi che escludono la persistenza


Session

Se nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 248], è stata
esclusa la persistenza Session, effettuare le procedure riportate di seguito. Altrimenti, passare a Modifica dei
metodi che includono la persistenza Session [pagina 282].

1.5.1.3.4.1.1 Per modificare il metodo


ConfigureCrystalReports() che esclude la persistenza Session

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, dopo le righe
che assegnano "Paris" e "Tokyo" come variabili ArrayList.
2. Tra le interruzioni di riga dichiarare e impostare valori hardcoded per due variabili stringa, startDate ed
endDate.

Dim startDate As String = "8/1/1997"


Dim endDate As String = "8/31/1997"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
280 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
string startDate = "8/1/1997";
string endDate = "8/31/1997";

3. Sotto il codice che chiama SetCurrentValuesForParameterField(), chiamare il metodo


SetDateRangeForOrders() e passare l'istanza ParameterFields e le variabili startDate ed endDate.

SetDateRangeForOrders(myParameterFields, startDate, endDate)

SetDateRangeForOrders(parameterFields, startDate, endDate);

4. Dal menu File, scegliere Salva tutto.

1.5.1.3.4.1.2 Per modificare il metodo redisplay_Click() che


esclude la persistenza Session

Procedura

1. Nel metodo di evento redisplay_Click(), creare nel codice una coppia di interruzioni di riga, sopra la riga
che collega il report al controllo CrystalReportViewer.
2. Tra le interruzioni di riga dichiarare e impostare i valori per le due variabili stringa, startDate ed endDate, in
base ai controlli TextBox aggiunti al Web Form o al Windows Form.

Dim startDate As String = orderStartDate.Text


Dim endDate As String = orderEndDate.Text

string startDate = orderStartDate.Text;


string endDate = orderEndDate.Text;

3. Sotto il codice che chiama SetCurrentValuesForParameterField(), chiamare il metodo


SetDateRangeForOrders() e passare l'istanza ParameterFields e le variabili startDate ed endDate.

SetDateRangeForOrders(myParameterFields, startDate, endDate)

SetDateRangeForOrders(parameterFields, startDate, endDate);

4. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 281
1.5.1.3.4.2 Modifica dei metodi che includono la persistenza
Session

Se nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 248], è stata
inclusa la persistenza Session, effettuare le procedure riportate di seguito. Altrimenti, passare a Modifica dei
metodi che escludono la persistenza Session [pagina 280].

1.5.1.3.4.2.1 Per modificare il metodo


ConfigureCrystalReports() che include la persistenza Session

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, dopo la riga
che dichiara e crea un'istanza ArrayList.
2. Tra le interruzioni di riga dichiarare due variabili stringa, startDate ed endDate.

Dim startDate As String


Dim endDate As String

string startDate;
string endDate;

3. All'interno del blocco condizionale Not IsPostBack, inserire i valori predefiniti per le variabili startDate ed
endDate.

startDate = "8/1/1997"
endDate = "8/31/1997"

startDate = "8/1/1997";
endDate = "8/31/1997";

4. All'interno del blocco condizionale Not IsPostBack, assegnare le variabili startDate ed endDate a
Session.

Session("startDate") = startDate
Session("endDate") = endDate

Session["startDate"] = startDate;
Session["endDate"] = endDate;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
282 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. All'interno del blocco Else, dopo aver recuperato l'istanza ArrayList da Session, recuperare anche le variabili
startDate ed endDate.

startDate = Session("startDate").ToString()
endDate = Session("endDate").ToString()

startDate = Session["startDate"].ToString();
endDate = Session["endDate"].ToString();

In questo modo, si raggiunge la fine del blocco con le variabili data assegnate in entrambi i casi, seguendo la
logica dell'assegnazione della variabile ArrayList configurata nell'esercitazione precedente.
6. Sotto il codice che chiama SetCurrentValuesForParameterField(), chiamare il metodo
SetDateRangeForOrders() e passare l'istanza ParameterFields e le variabili startDate ed endDate.

SetDateRangeForOrders(myParameterFields, startDate, endDate)

SetDateRangeForOrders(parameterFields, startDate, endDate);

7. Dal menu File, scegliere Salva tutto.

1.5.1.3.4.2.2 Per modificare il metodo redisplay_Click() che


include la persistenza Session

Contesto

A questo punto, modificare il metodo di evento redisplay_Click.

Procedura

1. Nel metodo di evento redisplay_Click(), creare nel codice una coppia di interruzioni di riga, dopo la riga
che assegna l'istanza ArrayList a Session.
2. Tra le interruzioni di riga, assegnare la proprietà Text degli oggetti TextBox orderStartDate e orderEndDate
alle variabili Session.

Session("startDate") = orderStartDate.Text
Session("endDate") = orderEndDate.Text

Session["startDate"] = orderStartDate.Text;
Session["endDate"] = orderEndDate.Text;

3. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 283
Risultati

Quando viene chiamato il metodo ConfigureCrystalReports(), i valori Session startDate ed endDate


vengono recuperati e applicati.

A questo punto è possibile creare ed eseguire il progetto per verificare che i valori TextBox reimpostino il
parametro di intervallo nel sottoreport.

1.5.1.3.5 Verifica del parametro del sottoreport

Contesto

A questo punto è possibile verificare l'impostazione del parametro del sottoreport con i valori del controllo
TextBox.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Ctrl fare clic per selezionare almeno quattro diverse città
nell’elenco.
5. Nel controllo TestBox orderStartDate immettere 1/1/1997.
6. Nel controllo TestBox orderEndDate immettere 8/31/1997.
7. Fare clic sul pulsante Rivisualizza report.

La pagina viene ricaricata e visualizza i record dei clienti che vivono nelle città selezionate, nonché un
sottoreport con gli ordini inclusi nell'intervallo di date specificato.
8. Nel controllo CrystalReportViewer, impostare il livello Zoom su 125%.

La pagina viene ricaricata con un rapporto di zoom del 125%. I valori selezionati per le città e l'intervallo di
date degli ordini vengono mantenuti.
9. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.4 Esercitazione: Filtro di dati mediante formule di


selezione

In questa esercitazione viene descritto come utilizzare le formule di selezione per filtrare i record da visualizzare in
un report Crystal.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
284 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Introduzione

Le formule di selezione consentono di filtrare i record da visualizzare in un report Crystal. Per creare formule di
selezione, è possibile utilizzare la sintassi Basic e la sintassi Crystal.

In questa esercitazione viene creata una formula di selezione per filtrare i record cliente in cui il valore del campo
Vendite anno precedente è maggiore rispetto a un valore specifico e il campo Nome cliente viene confrontato con
un'altra stringa. Un controllo ListBox consente di selezionare un operatore di confronto per il campo Nome
cliente. È possibile scegliere di visualizzare i nomi dei clienti che siano uguali, minori, maggiori, minori o uguali,
maggiori o uguali oppure diversi dal valore della stringa specificata.

La formula viene passata come variabile di stringa alla proprietà SelectionFormula della classe
CrystalReportViewer. Dopo aver impostato la proprietà, il report Crystal collegato al controllo
CrystalReportViewer viene filtrato prima di essere visualizzato.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_CRVObjMod_FilteringData


● Progetto Windows C#: CS_Win_CRVObjMod_FilteringData
● Sito Web in Visual Basic: VB_Web_CRVObjMod_FilteringData
● Progetto Windows Visual Basic: VB_Win_CRVObjMod_FilteringData

Informazioni correlate

Creazione di formule [pagina 772]


Directory dei report di esempio [pagina 14]

1.5.1.4.1 Creazione di un report con una formula di selezione

In questa sezione viene creato un report con informazioni provenienti dal database Xtreme.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 285
1.5.1.4.1.1 Creazione di un report con dati sicuri provenienti
dal database Xtreme

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Crystal
Report.
3. Nel campo Nome immettere il nome CustomersBySalesName.rpt e fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella ODBC (RDO).
8. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database di esempio Xtreme e quindi
fare clic su Fine.

La cartella ODBC (RDO) si espande e visualizza il database Xtreme.


9. Espandere il nodo Tabelle, fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate,
quindi scegliere Avanti.
10. Espandere la tabella Clienti, quindi tenendo premuto il tasto Ctrl fare clic su Nome cliente e Vendite anno
precedente.
11. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
12. Nel riquadro Campi disponibili, in Campi report, fare doppio clic su Cliente.Nome cliente per spostare il campo
nel riquadro Raggruppa in base a, quindi scegliere Fine.

Il report CustomersBySalesName viene creato e caricato nella finestra principale di Visual Studio.

1.5.1.4.1.2 Per creare una formula di selezione basata su


Vendite anno precedente

Contesto

Successivamente, viene creata una formula di selezione per filtrare i dati in base al campo Vendite anno
precedente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
286 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante relativa al Web Form o al
Windows Form.
3. Nel caso di un sito Web, nel metodo ConfigureCrystalReports() (creato in Impostazione di un progetto
[pagina 14]), creare un blocco condizionale Not IsPostBack.

Nota
il blocco condizionale Not IsPostBack viene utilizzato per incapsulare il codice che deve essere eseguito
solo la prima volta che viene caricata la pagina.

If Not IsPostBack Then

End If

if(!IsPostBack)
{
}

4. In un sito Web, aggiungere le seguenti righe di codice al blocco condizionale Not IsPostBack. In un progetto
Windows, aggiungere il codice al metodo ConfigureCrystalReports(), senza il blocco condizionale Not
IsPostBack.
a) Inserire la formula per selezionare solo i record in cui il valore del campo Vendite anno precedente è
maggiore di $ 11.000 e i nomi dei clienti iniziano con la lettera "A".

Dim mySelectFormula As String = "{Customer.Last Year's Sales} >


11000.00 " _
& "AND Mid({Customer.Customer Name}, 1, 1) = ""A"" "

string selectFormula = "{Customer.Last Year's Sales} > 11000.00


"
+ "AND Mid({Customer.Customer Name}, 1, 1) = \"A\"";

b) Assegnare la stringa della formula di selezione alla proprietà SelectionFormula del controllo
CrystalReportViewer.

myCrystalReportViewer.SelectionFormula = mySelectFormula

crystalReportViewer.SelectionFormula = selectFormula;

1.5.1.4.2 Collegamento del report


Durante lo svolgimento delle istruzioni riportate nella sezione Impostazione di un progetto [pagina 14] di
preparazione a questa esercitazione, un controllo CrystalReportViewer è stato inserito nel Web Form o nel

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 287
Windows Form. Nei passaggi precedenti, sono stati aggiunti al progetto un report CustomersBySalesName e una
formula di selezione.

In questa sezione, il percorso della directory di file del report CustomersBySalesName viene collegato al
controllo CrystalReportViewer. e viene verificata la corretta visualizzazione del report con i record filtrati dalla
formula di selezione.

1.5.1.4.2.1 Per collegare il percorso della directory di file del


report CustomersBySalesName al controllo
CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante relativa al Web Form o al
Windows Form.
3. Individuare il metodo ConfigureCrystalReports() creato in Impostazione di un progetto [pagina 14].
4. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String =


Server.MapPath("CustomersBySalesName.rpt")

string reportPath = Server.MapPath("CustomersBySalesName.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"CustomersBySalesName.rpt"

string reportPath = Application.StartupPath + "\\" +


"CustomersBySalesName.rpt";

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
288 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Assegnare il percorso della directory di file del report NorthwindCustomers alla proprietà ReportSource del
controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportPath

crystalReportViewer.ReportSource = reportPath;

1.5.1.4.2.2 Per verificare la formula di selezione per il report


CustomersBySalesName

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Nel report Crystal verranno visualizzati quattro record cliente: Alley Cat Cycles, Ankara Bicycle Company,
Arsenault et Maurier e Athens Bicycle Co.
5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.4.3 Aggiunta di controlli da utilizzare nella formula di


selezione

Contesto

In questa sezione vengono aggiunti controlli per modificare dinamicamente i valori utilizzati nella formula di
selezione. Per il campo Vendite anno precedente, viene aggiunta una casella di testo che consente di specificare il
valore minimo di vendite da visualizzare nel report Crystal. Per il campo Nome cliente, vengono aggiunti i controlli
DropDownList e TextBox che consentono di specificare i nomi dei clienti da visualizzare.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 289
Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Premere il tasto freccia sinistra sulla tastiera per visualizzare un cursore lampeggiante, quindi premere
Invio tre volte.
Il controllo CrystalReportViewer viene spostato di tre righe verso il basso.
4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Nella finestra Proprietà, impostare Dock su "Bottom".
c) Ridimensionare il controllo CrystalReportViewer in modo che vengano visualizzate approssimativamente
tre righe sopra di esso.
d) Nella finestra Proprietà, impostare Anchor su "Top, Bottom, Left, Right".
5. Se si sta sviluppando un sito Web, sulla prima riga digitare Inserire il valore minimo per le
vendite dell'anno precedente: $.
6. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Dalla casella degli strumenti, trascinare un controllo Label nella parte superiore del Form.
b) Nella finestra Proprietà, impostare la proprietà Text su Inserire il valore minimo per le
vendite dell'anno precedente: $.
7. Dalla casella degli strumenti, trascinare un controllo TextBox a destra del testo.
8. Selezionare il controllo TextBox, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su lastYearsSales.
b) Impostare Text su 11000.
9. Se si sta sviluppando un sito Web, nella seconda riga digitare Visualizzare i nomi dei clienti.
10. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Dalla casella degli strumenti, trascinare un controllo Label nella seconda riga del Form.
b) Nella finestra Proprietà, impostare la proprietà Text su "Visualizzare i nomi dei clienti".
11. Dalla casella degli strumenti, trascinare un controllo DropDownList (ComboBox in un progetto Windows) a
destra del testo.
12. Selezionare il controllo DropDownList (ComboBox), quindi nella finestra Proprietà impostare ID (o Name) su
"selectOperatorList".
13. Dalla casella degli strumenti, trascinare un controllo TextBox a destra del controllo DropDownList.
14. Selezionare il controllo TextBox, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su customerName.
b) Impostare Text su A.
15. Dalla casella degli strumenti, trascinare un controllo Button sulla terza riga del Form, sopra il controllo
CrystalReportViewer.
16. Selezionare il controllo Button, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su redisplay.
b) Impostare Text su Rivisualizza report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
290 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.4.4 Impostazione manuale della formula di selezione
nel codice

A questo punto è possibile aggiungere codice per modificare la formula di selezione nella classe di codice
sottostante.

1.5.1.4.4.1 Per aggiungere codice alla formula di selezione

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic su Rivisualizza report.

Viene visualizzata la classe di codice sottostante del report per indicare che il metodo di evento
redisplay_Click() è stato generato automaticamente.
4. Per la formula di selezione, creare una variabile di stringa che utilizzi i valori dei controlli TextBox.

La formula di selezione è simile al testo digitato all'interno del metodo ConfigureCrystalReports(). Al


posto del valore minimo di vendite pari a $ 11.000, utilizzare il valore del controllo TextBox lastYearsSales.
Per il campo Nome cliente, utilizzare il valore del controllo TextBox customerName.

Dim mySelectFormula As String = "{Customer.Last Year's Sales} >


" & lastYearsSales.Text _
& " AND Mid({Customer.Customer Name}, 1, 1) > """ &
customerName.Text & """"

string selectFormula = "{Customer.Last Year's Sales} > " +


lastYearsSales.Text
+ " AND Mid({Customer.Customer Name}, 1, 1) > \"" +
customerName.Text + "\"";

5. Assegnare la variabile di stringa alla proprietà SelectionFormula del controllo CrystalReportViewer.

myCrystalReportViewer.SelectionFormula = mySelectFormula

crystalReportViewer.SelectionFormula = selectFormula;

6. Collegare nuovamente il report CustomerBySalesName alla proprietà ReportSource del controllo


CrystalReportViewer.

Nota
Il percorso della directory di file visualizzato di seguito riguarda un progetto Visual Studio. NomeProgetto
viene sostituito dal nome del progetto Web o Windows. NomeUtente viene sostituito dal nome di accesso
al computer in uso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 291
○ Il percorso predefinito per un progetto di sito Web è il seguente:

myCrystalReportViewer.ReportSource = "C:\WebSites\ NomeProgetto


\CustomersBySalesName.rpt"

crystalReportViewer.ReportSource = "C:\\WebSites\\ NomeProgetto\


\CustomersBySalesName.rpt";

○ Il percorso predefinito per un progetto Windows è il seguente:

myCrystalReportViewer.ReportSource = "C:\Documents and Settings\ NomeUtente


\Documenti\Visual Studio\Projects\ ProjectName\CustomersBySalesName.rpt"

crystalReportViewer.ReportSource = "C:\\Documents and Settings\\ NomeUtente\


\Documenti\\Visual Studio\\Projects\\ NomeProgetto\\CustomersBySalesName.
rpt";

Risultati

È stata creata una formula di selezione che può essere modificata in fase di esecuzione.

1.5.1.4.4.2 Per verificare la formula di selezione

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo TextBox lastYearsSales, digitare 200000.
5. Nel controllo TextBox customerName, digitare SAB.
6. Fare clic su Rivisualizza report.

Nel report Crystal verranno visualizzati tre record cliente: SAB Mountain, Tek Bikes e Tienda de Bicicletas El
Pardo.

Sono stati visualizzati solo i record cliente con nomi alfabeticamente successivi a "SAB" e vendite dell'anno
precedente maggiori di "200000".
7. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
292 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.4.5 Utilizzo di un controllo DropDownList per
modificare la formula di selezione

In questa sezione, il controllo DropDownList viene compilato con gli operatori di confronto. e viene creata
un'enumerazione contenente tali operatori.

Il controllo DropDownList consente di selezionare se visualizzare nomi di clienti uguali, minori, maggiori, minori o
uguali, maggiori o uguali oppure diversi dal testo inserito nel controllo TextBox.

Nel metodo di evento redisplay_Click(), la stringa correntemente assegnata alla proprietà


SelectionFormula del controllo CrystalReportViewer viene modificata.

1.5.1.4.5.1 Per creare l'enumerazione


CeComparisonOperator

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare Classe.
3. Nel campo Nome digitare CeComparisonOperator, quindi scegliere Aggiungi.

Nota
Potrebbe essere richiesto di inserire questa classe in una directory di codice. Fare clic su Sì.

4. Nella firma della classe, modificare "class" in "enum" per convertire la classe in un'enumerazione.

In un progetto Windows C#, è inoltre necessario modificare lo spazio dei nomi con il nome del progetto.

Nota
In Visual Basic, modificare in "enum" entrambe le firme di apertura e di chiusura della classe.

5. Poiché le enumerazioni non prevedono costruttori, eliminare il metodo costruttore predefinito fornito nella
versione C# del codice.
6. All'interno dell'enumerazione, inserire i seguenti valori:

EqualTo
LessThan
GreaterThan
LessThan_or_EqualTo
GreaterThan_or_EqualTo
Not_EqualTo

EqualTo,
LessThan,
GreaterThan,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 293
LessThan_or_EqualTo,
GreaterThan_or_EqualTo,
Not_EqualTo

1.5.1.4.5.2 Per compilare il controllo DropDownList con i


valori dell'enumerazione CeComparisonOperator in un sito
Web

Contesto

Nella procedure seguenti viene descritto come collegare l'enumerazione CeComparisonOperator al controllo
DropDownList in un sito Web o in un progetto Windows. Completare le istruzioni di una delle procedure seguenti.

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'interno del blocco condizionale Not IsPostBack del metodo ConfigureCrystalReports(), prima
della dichiarazione della stringa della formula di selezione, impostare la proprietà DataSource del controllo
DropDownList sui valori dell'enumerazione CeComparisonOperator.

selectOperatorList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))

selectOperatorList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));

4. Chiamare il metodo DataBind() del controllo DropDownList selectOperatorList per collegare i valori al
controllo.

selectOperatorList.DataBind()

selectOperatorList.DataBind();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
294 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.4.5.3 Per compilare il controllo DropDownList con i
valori dell'enumerazione CeComparisonOperator in un
progetto Windows

Procedura

1. Aprire il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'interno del metodo ConfigureCrystalReports(), prima della dichiarazione della stringa della formula
di selezione, impostare la proprietà DataSource del controllo ComboBox selectOperatorList sui valori
dell'enumerazione CeComparisonOperator.

selectOperatorList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))

selectOperatorList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));

1.5.1.4.5.4 Per creare il metodo di supporto


GetSelectedCompareOperator()

Contesto

A questo punto, creare il metodo di supporto GetSelectedCompareOperator() per restituire l'indice


selezionato come stringa e rappresentare un segno di operatore di confronto.

Procedura

1. Alla fine della classe, creare un metodo di supporto privato denominato GetSelectedCompareOperator()
che restituisca una variabile di stringa.

Private Function GetSelectedCompareOperator() As String

End Function

private string GetSelectedCompareOperator()


{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 295
2. All'interno del metodo, creare un'istruzione "Select Case" [Visual Basic] o "switch" [C#] che
rimandi ai membri dell'enumerazione CeComparisonOperator e restituisca il segno dell'operatore di
confronto come variabile di stringa.

Select Case selectOperatorList.SelectedIndex


Case CeComparisonOperator.EqualTo
return "="
Case CeComparisonOperator.LessThan
return "<"
Case CeComparisonOperator.GreaterThan
return ">"
Case CeComparisonOperator.LessThan_or_EqualTo
return "<="
Case CeComparisonOperator.GreaterThan_or_EqualTo
return ">="
Case CeComparisonOperator.Not_EqualTo
return "<>"
Case Else
return "="
End Select

switch ((CeComparisonOperator)selectOperatorList.SelectedIndex)
{
case CeComparisonOperator.EqualTo:
return "=";
case CeComparisonOperator.LessThan:
return "<";
case CeComparisonOperator.GreaterThan:
return ">";
case CeComparisonOperator.LessThan_or_EqualTo:
return "<=";
case CeComparisonOperator.GreaterThan_or_EqualTo:
return ">=";
case CeComparisonOperator.Not_EqualTo:
return "<>";
default:
return "=";
}

1.5.1.4.5.5 Per modificare l'operatore di confronto del campo


Nome cliente assegnato alla proprietà SelectionFormula

Contesto

Nel metodo di evento redisplay_Click(), è utilizzato il segno "maggiore di" (">") per la selezione del campo
Nome cliente. Successivamente, viene descritto come modificare il segno con l'operatore di confronto selezionato
dai valori del controllo DropDownList. Il segno selezionato viene restituito come stringa quando si effettua la
chiamata al metodo di supporto GetSelectedCompareOperator().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
296 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. All'inizio del metodo di evento redisplay_Click(), chiamare il metodo di supporto


GetSelectedCompareOperator() e assegnare il risultato a una variabile di stringa.

Dim mySelectedOperator As String = GetSelectedCompareOperator()

string selectedOperator = GetSelectedCompareOperator();

2. Per la variabile di stringa della formula di selezione, sostituire il segno "maggiore di" (">") con la stringa
dell'operatore selezionato.

Dim mySelectFormula As String = "{Customer.Last Year's Sales} >


" & lastYearsSales.Text _
& " AND Mid({Customer.Customer Name}, 1, 1) " &
mySelectedOperator & " """ & customerName.Text & """"

string selectFormula = "{Customer.Last Year's Sales} > " +


lastYearsSales.Text
+ " AND Mid({Customer.Customer Name}, 1, 1) " + selectedOperator + "
\"" + customerName.Text + "\"";

1.5.1.4.5.6 Per verificare la formula di selezione per il report


CustomersBySalesName

Contesto

È stata creata una formula di selezione che dipende dai valori inseriti per il campo Vendite anno precedente e per il
campo Nome cliente.

A questo punto è possibile creare e verificare la formula di selezione.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
a) Nel controllo TextBox lastYearsSales, digitare 40000.
b) Nel controllo TextBox customerName, digitare Athens Bicycle Co.
c) Nel controllo DropDownList, selezionare LessThan.
d) Fare clic su Rivisualizza report.

Nel report Crystal verranno visualizzati due record cliente: Alley Cat Cycles e Ankara Bicycle Company.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 297
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5 Esercitazione: personalizzazione del controllo


CrystalReportViewer

In questa esercitazione viene illustrato come personalizzare la visualizzazione del controllo CrystalReportViewer.

Introduzione

In questa esercitazione viene descritto come personalizzare l'aspetto del controllo CrystalReportViewer mediante
l'utilizzo delle proprietà della corrispondente classe sottostante.

Viene inoltre descritto come utilizzare i metodi per selezionare pagine, applicare lo zoom, effettuare ricerche ed
eseguire la stampa.

Viene innanzitutto descritto come personalizzare la barra degli strumenti di CrystalReportViewer. A tal fine, è
necessario un controllo ListBox che memorizzi le proprietà disponibili per la barra degli strumenti, poiché solo le
proprietà selezionate dal controllo ListBox vengono visualizzate sulla barra degli strumenti di
CrystalReportViewer.

A questo punto, viene aggiunto un secondo controllo ListBox in cui memorizzare gli elementi del report. Per un
sito Web, è possibile scegliere se visualizzare tutte le pagine del report come una pagina singola o più pagine
distinte.

Viene quindi descritto come personalizzare il colore di sfondo tramite un controllo DropDownList.

Viene poi descritto come selezionare la pagina del report da visualizzare. Sono necessari un controllo TextBox per
inserire il numero di pagina, un controllo Button per ricaricare il report nella pagina selezionata, nonché un
controllo TextBox e un controllo Button per modificare il fattore di zoom e ricercare del testo nel report.

Per un sito Web, è possibile accedere alle proprietà del controllo CrystalReportViewer non disponibili in un
progetto Windows: una proprietà per selezionare la modalità di stampa e altre proprietà per modificare la
larghezza, lo stile e il colore dei bord

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_CRVObjMod_CustomizeViewer


● Progetto Windows C#: CS_Win_CRVObjMod_CustomizeViewer

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
298 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Sito Web in Visual Basic: VB_Web_CRVObjMod_CustomizeViewer
● Progetto Windows Visual Basic: VB_Win_CRVObjMod_CustomizeViewer

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.1.5.1 Creazione di una tabella delle impostazioni


personalizzate

In questa sezione viene creata e configurata una tabella in un sito Web o un controllo TableLayoutPanel in un
progetto Windows che contenga i vari controlli che costituiscono la tabella delle impostazioni personalizzate.

Poiché i siti Web e i progetti Windows utilizzano tipi di tabella diversi, seguire le istruzioni della procedura
appropriata.

1.5.1.5.1.1 Per creare una tabella delle impostazioni


personalizzate per un sito Web

Procedura

1. Aprire la pagina Default.aspx (il Web Form) in visualizzazione Progettazione.


2. Fare clic sul controllo CrystalReportViewer per selezionarlo.
3. Premere il tasto freccia sinistra sulla tastiera per spostare il cursore a sinistra del controllo
CrystalReportViewer, quindi premere Invio.
4. Premere il tasto freccia verso l'alto per spostare il cursore sulla riga vuota sopra il controllo
CrystalReportViewer.
5. Dal menu Layout, scegliere Inserisci tabella.
6. Nella finestra di dialogo Inserisci tabella, selezionare il pulsante di opzione Personalizza.
7. Nel riquadro Layout, selezionare la casella di controllo Larghezza e impostare il valore su 100%.
8. Specificare 6 per il numero di Righe e 4 per quello delle Colonne.
9. Nel riquadro Attributi, selezionare la casella di controllo Bordo e aumentare il conteggio fino a 1.
10. Fare clic sul pulsante Proprietà cella....
11. Nel riquadro Layout della finestra di dialogo Proprietà cella, impostare la casella combinata Allineamento
verticale su Alto.
12. Selezionare la casella di controllo No Wrap, quindi fare clic su OK.
13. Fare di nuovo clic su OK per chiudere la finestra di dialogo Inserisci tabella.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 299
Risultati

A questo punto è possibile aggiungere i controlli personalizzati nella tabella per il sito Web.

Passare a Elementi di report e barra degli strumenti del controllo CrystalReportViewer [pagina 301].

1.5.1.5.1.2 Per creare una tabella delle impostazioni


personalizzate per un progetto Windows

Contesto

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. Aprire il Windows Form in visualizzazione Progettazione.


2. Fare clic sulla barra del titolo per selezionare l'intero Form, quindi trascinare l'angolo inferiore destro del Form
fino ad ingrandirlo quanto l'area principale.
3. Fare clic sul controllo CrystalReportViewer per selezionarlo.
4. Nella finestra Proprietà, impostare Dock su "Bottom."
5. Nella finestra Proprietà, impostare Anchor su "Top, Bottom, Left, Right."
6. Dalla casella degli strumenti, trascinare il controllo TableLayoutPanel in alto a sinistra del Windows Form.

Viene visualizzato un controllo TableLayoutPanel contenente due colonne e due righe.


7. Se il riquadro Smart Task non è aperto, fare clic sul pulsante triangolare nell'angolo superiore destro del
controllo TableLayoutPanel.

Viene visualizzato il riquadro Smart Task "Attività di TableLayoutPanel".


8. Nel tag Attività di TableLayoutPanel, fare clic sul collegamento Modifica righe e colonne.
9. Nella casella combinata Tipo di membro della finestra di dialogo Stili riga e colonna, selezionare Colonne.
10. Fare clic su Aggiungi fino a inserire un totale di quattro colonne.
11. Per ogni colonna, effettuare le seguenti operazioni:
a) Selezionare la colonna.
b) Nel riquadro Tipo dimensione, selezionare Percentuale.
c) Impostare il valore su 25%.
12. Nella casella combinata Tipo di membro, selezionare Righe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
300 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
13. Fare clic su Aggiungi fino a inserire un totale di cinque righe.

Nota
La tabella di un progetto Windows richiede una riga in meno rispetto alla tabella di un sito Web perché nel
controllo CrystalReportViewer per un progetto Windows vi sono meno opzioni configurabili.

14. Per ogni riga, effettuare le seguenti operazioni:


a) Selezionare la riga.
b) Nel riquadro Tipo dimensione, selezionare Percentuale.
c) Impostare il valore della prima riga su 40% e i valori delle righe successive su 15%.

Nota
(1 x 40%) e (4 x 15%) = 100% dello spazio disponibile.

15. Fare clic su OK.


16. Chiudere il tag delle attività di TableLayoutPanel.
17. Trascinare l'angolo inferiore destro del controllo TableLayoutPanel per ingrandire la tabella fino a riempire lo
spazio creato sopra il controllo CrystalReportViewer.

Risultati

A questo punto è possibile aggiungere i controlli personalizzati nella tabella per il progetto Windows.

1.5.1.5.2 Elementi di report e barra degli strumenti del


controllo CrystalReportViewer

In questa esercitazione vengono utilizzati i vari elementi di report e barra degli strumenti del controllo
CrystalReportViewer.

Elementi del visualizzatore

Gli elementi predefiniti del controllo CrystalReportViewer per i siti Web variano leggermente da quelli per i progetti
Windows.

● Per siti Web e progetti Windows:

○ Barra degli strumenti: consente di visualizzare una barra degli strumenti sopra l'area principale del report.
I singoli elementi della barra degli strumenti sono controllati separatamente.

Nota
Per ulteriori informazioni, vedere più avanti la sezione relativa agli elementi della barra degli strumenti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 301
○ Struttura di gruppo: contiene le intestazioni di ciascun gruppo nel report, in modo simile a una struttura di
directory. Tale struttura viene visualizzata nel riquadro della colonna di sinistra del report.
● Solo per siti Web:

○ Pagina principale: consente di visualizzare il report nell'area principale della pagina.


○ Abilitare pagine separate: consente di determinare se visualizzare il report in una pagina Web singola o in
più pagine formattate separatamente.
● Solo per progetti Windows:

○ Barra di stato: consente di visualizzare il numero di pagina corrente e altre informazioni sul report nella
parte inferiore dell'area del report.

Elementi della barra degli strumenti

Gli elementi predefiniti della barra degli strumenti per i siti Web variano leggermente da quelli per i progetti
Windows.

● Per siti Web e progetti Windows:

○ Pulsante Struttura di gruppo: consente di mostrare o nascondere la sezione della struttura gruppi del
report.
○ Esporta: consente di salvare il report Crystal in un altro formato di file, come .RPT, .PDF, .DOC, .XLS
o .RTF.
○ Stampa: consente di stampare il report Crystal in un file PDF o visualizzare la finestra di dialogo Stampa.
○ Spostamento sulle pagine: consente di selezionare la pagina precedente o successiva oppure la prima o
l'ultima pagina da visualizzare.
○ Vai a pagina: consente di digitare il numero della pagina da visualizzare.
○ Cerca: consente di digitare una stringa da cercare nel report.
○ Fattore di zoom: consente di selezionare il fattore di zoom per il report.
● Solo per siti Web:

○ Elenco di visualizzazione (solo per un sito Web): consente di scegliere la visualizzazione del report da
mostrare (ad esempio, i sottoreport e così via).
○ Drill-up: consente di aprire una pagina con informazioni più specifiche rispetto a quelle dell'argomento
corrente.
○ Logo Crystal: consente di visualizzare il logo di SAP Crystal Reports.
● Solo per progetti Windows:

○ Aggiorna: consente di rivisualizzare il report.


○ Chiudi finestra corrente: consente di chiudere la visualizzazione corrente del report, se ne è aperta più di
una.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
302 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.3 Aggiunta di un meccanismo mostra/nascondi per
gli elementi di report e barra degli strumenti

Contesto

In questa sezione viene descritto come aggiungere un meccanismo mostra/nascondi al fine di determinare gli
elementi da visualizzare nella barra degli strumenti del controllo CrystalReportViewer.

Iniziare aggiungendo i controlli ListBox e Button nella tabella nel Web Form o Windows Form.

Creare quindi due enumerazioni che elenchino gli elementi del report e della barra degli strumenti e popolare ogni
ListBox con i valori di un'enumerazione.

Successivamente, codificare l'evento clic del controllo Button per aggiornare gli elementi del report e della barra
degli strumenti.

Nel gestore dell'evento, le proprietà della classe CrystalReportViewer sono impostate in base alle selezioni
effettuate nei due controlli ListBox. Se si seleziona un elemento dal controllo ListBox, la proprietà della barra degli
strumenti viene impostata su True.

Durante l'esercitazione, il controllo Button viene utilizzato per aggiornare ulteriori selezioni.

In fase di esecuzione, sarà possibile selezionare gli elementi del report e della barra degli strumenti da
visualizzare.

Iniziare aggiungendo i controlli nella tabella nella parte superiore del Web Form o del Windows Form.

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Dalla casella degli strumenti, trascinare un controllo Label nella prima riga della prima colonna della tabella.
3. Selezionare il controllo Label, quindi nella finestra Proprietà impostare la proprietà Text su Seleziona
elementi report da visualizzare.
4. Dalla casella degli strumenti, trascinare un controllo ListBox nella prima riga della seconda colonna della
tabella.
5. Selezionare il controllo ListBox, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare l'ID su listCRVReport.
b) Impostare SelectionMode su Multiple (in un progetto Windows, MultiExtended).
6. Dalla casella degli strumenti, trascinare un secondo controllo Label nella prima riga della terza colonna della
tabella.
7. Selezionare il controllo Label, quindi nella finestra Proprietà impostare la proprietà Text su Seleziona
elementi barra degli strumenti da visualizzare.
8. Dalla casella degli strumenti, trascinare un controllo Button nella terza riga della prima colonna della tabella.
9. Fare clic sul controllo Button per selezionarlo.
10. Nella finestra Proprietà:
a) Impostare ID su "redisplay".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 303
b) Impostare Text su "Rivisualizza report".
11. In un progetto Windows, ridimensionare il controllo Button per visualizzare l'intero nome del pulsante.

Risultati

Le procedure successive variano a seconda che si stia creando un sito Web o un progetto Windows. Scegliere una
delle seguenti procedure:

● Configurazione dei controlli ListBox in un sito Web [pagina 304]


● Configurazione dei controlli ListBox in un progetto Windows [pagina 310]

1.5.1.5.4 Configurazione dei controlli ListBox in un sito Web

In questa sezione viene descritto come configurare i controlli ListBox in un sito Web. Se si sta creando un progetto
Windows, vedere Configurazione dei controlli ListBox in un progetto Windows [pagina 310].

A questo punto è possibile creare il gestore dell'evento clic per il controllo Button e aggiungervi il codice. Il gestore
dell'evento consente di impostare diversi valori booleani per le proprietà della barra degli strumenti della classe
CrystalReportViewer, in base alle selezioni effettuate dell'utente nel controllo ListBox.

Prima del gestore dell'evento, è necessario creare due enumerazioni: CeWebCRVReportOptions e


CeWebCRVToolbarOptions.

Queste enumerazioni forniscono l'elenco degli elementi selezionabili per report e barra degli strumenti.

1.5.1.5.4.1 Per creare l'enumerazione


CeWebCRVReportOptions

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del sito Web, selezionare Aggiungi,
quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare Classe.
3. Nel campo Nome digitare "CeWebCRVReportOptions", quindi scegliere Aggiungi.

Nota
Potrebbe essere richiesto di inserire questa classe in una directory App_Code. Fare clic su Sì.

4. Nella firma della classe, modificare "class" in "enum" per convertire la classe in un'enumerazione.

Nota
In Visual Basic, modificare in "enum" entrambe le firme di apertura e di chiusura della classe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
304 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Poiché le enumerazioni non prevedono costruttori, eliminare il metodo costruttore predefinito fornito nella
versione C# del codice.
6. All'interno dell'enumerazione, inserire i seguenti valori:

Toolbar
Group_Tree
Main_Page
Enable_Separate_Pages

Toolbar,
Group_Tree,
Main_Page,
Enable_Separate_Pages

7. Dal menu File, scegliere Salva tutto.

1.5.1.5.4.2 Per creare l'enumerazione


CeWebCRVToolbarOptions

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del sito Web, selezionare Aggiungi,
quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare Classe.
3. Nel campo Nome digitare CeWebCRVToolbarOptions, quindi scegliere Aggiungi.

Nota
Potrebbe essere richiesto di inserire questa classe in una directory App_Code. Fare clic su Sì.

4. Nella firma della classe, modificare "class" in "enum" per convertire la classe in un'enumerazione.

Nota
In Visual Basic, modificare in "enum" entrambe le firme di apertura e di chiusura della classe.

5. Poiché le enumerazioni non prevedono costruttori, eliminare il metodo costruttore predefinito fornito nella
versione C# del codice.
6. All'interno dell'enumerazione, inserire i seguenti valori:

Group_Tree_Button
Export_Button
Print_Button
View_List_Button
Drill_Up_Button
Page_Navigation_Button
Go_to_Page_Button
Search_Button
Zoom_Button
Crystal_Logo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 305
Group_Tree_Button,
Export_Button,
Print_Button,
View_List_Button,
Drill_Up_Button,
Page_Navigation_Button,
Go_to_Page_Button,
Search_Button,
Zoom_Button,
Crystal_Logo

7. Dal menu File, scegliere Salva tutto.

1.5.1.5.4.3 Per compilare i controlli ListBox con le


enumerazioni

Contesto

A questo punto è possibile compilare i controlli ListBox con i valori di enumerazione, che rappresentano le
proprietà disponibili per la barra degli strumenti di CrystalReportViewer.

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Codice.
3. Nel metodo ConfigureCrystalReports(), aggiungere un blocco condizionale Not IsPostBack.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14]
all'inizio dell'esercitazione.

If Not IsPostBack Then

End If

if (!IsPostBack)
{
}

4. Nel blocco condizionale, impostare la proprietà DataSource del controllo ListBox listCRVReport sui
valori dell'enumerazione CeWebCRVReportOptions.

listCRVReport.DataSource = System.Enum.GetValues(GetType(CeWebCRVReportOptions))

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
306 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
listCRVReport.DataSource = System.Enum.GetValues(typeof(CeWebCRVReportOptions));

5. Chiamare il metodo DataBind() del controllo ListBox listCRVReport per collegare i valori al controllo.

listCRVReport.DataBind()

listCRVReport.DataBind();

6. Impostare la proprietà DataSource del controllo ListBox listCRVToolbar sui valori dell'enumerazione
CeWebCRVToolbarOptions.

listCRVToolbar.DataSource =
System.Enum.GetValues(GetType(CeWebCRVToolbarOptions))

listCRVToolbar.DataSource =
System.Enum.GetValues(typeof(CeWebCRVToolbarOptions));

7. Chiamare il metodo DataBind() del controllo ListBox listCRVToolbar per collegare i valori al controllo.

listCRVToolbar.DataBind()

listCRVToolbar.DataBind();

8. All'esterno del blocco condizionale Not IsPostBack, collegare il file Chart.rpt alla proprietà ReportSource
del controllo CrystalReportViewer.
Per informazioni sui report di esempio, vedere Directory dei report di esempio [pagina 14].

myCrystalReportViewer.ReportSource = "C:\Programmi\Microsoft Visual Studio


9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Chart.rpt"

crystalReportViewer.ReportSource = "C:\\Programmi\\Microsoft Visual Studio 9.0\


\Crystal Reports\\Samples\\En\\Reports\\Feature Examples\\Chart.rpt";

1.5.1.5.4.4 Per codificare il controllo Button di


rivisualizzazione in un sito Web

Contesto

A questo punto è possibile aggiungere codice all'evento clic del controllo Button. Il metodo clic consente di
impostare valori booleani per gli elementi di report e barra degli strumenti della classe CrystalReportViewer.
Se si seleziona un elemento, il valore booleano viene impostato su True e l'elemento del report o della barra degli
strumenti viene visualizzato. Se una proprietà non viene selezionata, il valore booleano viene impostato su False e
l'elemento del report o della barra degli strumenti non viene visualizzato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 307
Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic sul controllo Button di rivisualizzazione.

Viene visualizzata la classe di codice sottostante del report per indicare che il metodo di evento
redisplay_Click() è stato generato automaticamente.
4. Nel metodo di evento redisplay_Click(), chiamare la proprietà Selected per ciascun elemento dei
controlli ListBox listCRVReport e listCRVToolbar.

La proprietà Selected restituisce un valore booleano per l'impostazione delle proprietà della barra degli
strumenti di CrystalReportViewer.

Nota
Gli elementi di report e barra degli strumenti CrystalReportViewer di vengono impostati sui valori
corrispondenti delle enumerazioni CeWebCRVReportOptionse CeWebCRVToolbarOptions. I valori della
classe di enumerazione restituiscono una stringa, necessaria per la conversione in un numero intero.

myCrystalReportViewer.HasToggleGroupTreeButton =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)).S
elected
myCrystalReportViewer.HasExportButton =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)).Selec
ted
myCrystalReportViewer.HasPrintButton =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)).Select
ed
myCrystalReportViewer.HasViewList =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)).Se
lected
myCrystalReportViewer.HasDrillUpButton =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)).Sel
ected
myCrystalReportViewer.HasPageNavigationButtons =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Butto
n)).Selected
myCrystalReportViewer.HasGotoPageButton =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)).S
elected
myCrystalReportViewer.HasSearchButton =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)).Selec
ted
myCrystalReportViewer.HasZoomFactorList =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)).Selecte
d
myCrystalReportViewer.HasCrystalLogo =
listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)).Select
ed
myCrystalReportViewer.DisplayToolbar =
listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Toolbar)).Selected
myCrystalReportViewer.DisplayGroupTree =
listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)).Selected
myCrystalReportViewer.DisplayPage =
listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Main_Page)).Selected
myCrystalReportViewer.SeparatePages =
listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages))
.Selected

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
308 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.HasToggleGroupTreeButton =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)].S
elected;
crystalReportViewer.HasExportButton =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)].Selec
ted;
crystalReportViewer.HasPrintButton =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)].Select
ed;
crystalReportViewer.HasViewList =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)].Se
lected;
crystalReportViewer.HasDrillUpButton =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)].Sel
ected;
crystalReportViewer.HasPageNavigationButtons =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Butto
n)].Selected;
crystalReportViewer.HasGotoPageButton =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)].S
elected;
crystalReportViewer.HasSearchButton =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)].Selec
ted;
crystalReportViewer.HasZoomFactorList =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)].Selecte
d;
crystalReportViewer.HasCrystalLogo =
listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)].Select
ed;
crystalReportViewer.DisplayToolbar =
listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Toolbar)].Selected;
crystalReportViewer.DisplayGroupTree =
listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)].Selected;
crystalReportViewer.DisplayPage =
listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Main_Page)].Selected;
crystalReportViewer.SeparatePages =
listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages)]
.Selected;

1.5.1.5.4.5 Per verificare il controllo Button di


rivisualizzazione

Contesto

A questo punto è possibile creare ed eseguire il progetto per personalizzare la barra degli strumenti di
CrystalReportViewer.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 309
3. Dal menu Debug, scegliere Avvia.

I controlli ListBox listCRVReport e listCRVToolbar visualizzano l'elenco completo delle opzioni di


report e barra degli strumenti di CrystalReportViewer.
4. Nel controllo ListBox delle opzioni della barra degli strumenti, selezionare "Page_Navigation_Button",
"Print_Button" e "Export_Button".
5. Nel controllo ListBox delle opzioni del report, selezionare "Toolbar", "Group_Tree" e "Main_Page".
6. Fare clic su Rivisualizza report.

La pagina viene ricaricata con la visualizzazione di un controllo CrystalReportViewer con una barra degli
strumenti, una struttura di gruppi e una pagina principale visibili. Nella barra degli strumenti sono visibili solo i
pulsanti Spostamento sulle pagine, Stampa e Esporta.
7. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.5 Configurazione dei controlli ListBox in un progetto


Windows

In questa sezione viene descritto come configurare i controlli ListBox in un progetto Windows. Se si sta creando
un sito Web, vedere Configurazione dei controlli ListBox in un sito Web [pagina 304].

A questo punto è possibile creare il gestore dell'evento clic per il controllo Button e aggiungervi il codice. Il gestore
dell'evento consente di impostare diversi valori booleani per le proprietà della barra degli strumenti della classe
CrystalReportViewer, in base alle selezioni effettuate dell'utente nel controllo ListBox.

Prima del gestore dell'evento, è necessario creare due enumerazioni: CeWinCRVReportOptions e


CeWinCRVToolbarOptions.

Queste enumerazioni forniscono l'elenco degli elementi selezionabili per report e barra degli strumenti.

1.5.1.5.5.1 Creazione dell'enumerazione


CeWinCRVReportOptions

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Classe.
2. Nel campo Nome della finestra di dialogo Aggiungi nuovo elemento, digitare CeWinCRVReportOptions,
quindi fare clic su Aggiungi.

Nota
In Visual Studio, potrebbe essere richiesto di posizionare questa classe in una directory App_Code. Fare
clic su Sì.

3. Nella firma della classe, modificare "class" in "enum" per convertire la classe in un'enumerazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
310 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
In Visual Basic, modificare in "enum" entrambe le firme di apertura e di chiusura della classe.

4. Poiché le enumerazioni non prevedono costruttori, eliminare il metodo costruttore predefinito fornito nella
versione C# del codice.
5. All'interno dell'enumerazione, inserire i seguenti valori:

Toolbar
Group_Tree
Status_Bar

Toolbar,
Group_Tree,
Status_Bar

6. Dal menu File, scegliere Salva tutto.

1.5.1.5.5.2 Creazione dell'enumerazione


CeWinCRVToolbarOptions

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Classe.
2. Nel campo Nome della finestra di dialogo Aggiungi nuovo elemento, digitare "CeWinCRVToolbarOptions",
quindi fare clic su Aggiungi.

Nota
Potrebbe essere richiesto di inserire questa classe in una directory App_Code. Fare clic su Sì.

3. Nella firma della classe, modificare "class" in "enum" per convertire la classe in un'enumerazione.

Nota
In Visual Basic, modificare in "enum" entrambe le firme di apertura e di chiusura della classe.

4. Poiché le enumerazioni non prevedono costruttori, eliminare il metodo costruttore predefinito fornito nella
versione C# del codice.
5. All'interno dell'enumerazione, inserire i seguenti valori:

Page_Navigation_Button
Go_to_Page_Button
Close_View_Button
Print_Button
Refresh_Button
Export_Button
Group_Tree_Button

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 311
Zoom_Button
Search_Button

Page_Navigation_Button,
Go_to_Page_Button,
Close_View_Button,
Print_Button,
Refresh_Button,
Export_Button,
Group_Tree_Button,
Zoom_Button,
Search_Button

6. Dal menu File, scegliere Salva tutto.

1.5.1.5.5.3 Compilazione dei controlli ListBox con le


enumerazioni

Contesto

A questo punto è possibile compilare i controlli ListBox con i valori di enumerazione, che rappresentano le
proprietà disponibili per la barra degli strumenti di CrystalReportViewer.

Procedura

1. Aprire il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Nel metodo ConfigureCrystalReports(), impostare la proprietà DataSource del controllo ListBox
listCRVReport sui valori dell'enumerazione CeWinCRVReportOptions.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14]
all'inizio dell'esercitazione.

listCRVReport.DataSource =
System.Enum.GetValues(GetType(CeWinCRVReportOptions))

listCRVReport.DataSource =
System.Enum.GetValues(typeof(CeWinCRVReportOptions));

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
312 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. Impostare la proprietà DataSource del controllo ListBox listCRVToolbar sui valori dell'enumerazione
CeWinCRVToolbarOptions.

listCRVToolbar.DataSource =
System.Enum.GetValues(GetType(CeWinCRVToolbarOptions))

listCRVToolbar.DataSource =
System.Enum.GetValues(typeof(CeWinCRVToolbarOptions));

5. Collegare il file Chart.rpt alla proprietà ReportSource del CrystalReportViewercontrol..

Per informazioni sui report di esempio, vedere Directory dei report di esempio [pagina 14].

myCrystalReportViewer.ReportSource = "C:\Programmi\Microsoft Visual Studio


9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Chart.rpt"

crystalReportViewer.ReportSource = "C:\\Programmi\\Microsoft Visual Studio 9.0\


\Crystal Reports\\Samples\\En\\Reports\\Feature Examples\\Chart.rpt";

1.5.1.5.5.4 Codifica del controllo Button di rivisualizzazione


in un progetto Windows

Contesto

A questo punto è possibile aggiungere codice all'evento clic del controllo Button. Il metodo clic consente di
impostare valori booleani per gli elementi di report e barra degli strumenti della classe CrystalReportViewer.
Se si seleziona un elemento, il valore booleano viene impostato su True e l'elemento del report o della barra degli
strumenti viene visualizzato. Se una proprietà non viene selezionata, il valore booleano viene impostato su False
e l'elemento del report o della barra degli strumenti non viene visualizzato.

Procedura

1. Aprire il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic sul controllo Button di rivisualizzazione.

Viene visualizzata la classe di codice sottostante del report per indicare che il metodo di evento
redisplay_Click() è stato generato automaticamente.
4. Nel metodo di evento redisplay_Click(), chiamare il metodo GetSelected() e passare ciascun
elemento del controllo ListBox.
Il metodo GetSelected() restituisce un valore booleano per l'impostazione delle proprietà del report o della
barra degli strumenti di CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 313
Nota
Gli elementi di report e barra degli strumenti CrystalReportViewer di vengono impostati sui valori
corrispondenti delle enumerazioni CeWinCRVReportOptionse CeWinCRVToolbarOptions.

myCrystalReportViewer.ShowPageNavigateButtons =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Page_Navigation_Button)
myCrystalReportViewer.ShowGotoPageButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Go_to_Page_Button)
myCrystalReportViewer.ShowCloseButton = listCRVToolbar.
GetSelected(CeWinCRVToolbarOptions.Close_View_Button)
myCrystalReportViewer.ShowPrintButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Print_Button)
myCrystalReportViewer.ShowRefreshButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Refresh_Button)
myCrystalReportViewer.ShowExportButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Export_Button)
myCrystalReportViewer.ShowGroupTreeButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Group_Tree_Button)
myCrystalReportViewer.ShowZoomButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Zoom_Button)
myCrystalReportViewer.ShowTextSearchButton =
listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Search_Button)

myCrystalReportViewer.DisplayToolbar =
listCRVReport.GetSelected(CeWinCRVReportOptions.Toolbar)
myCrystalReportViewer.DisplayGroupTree =
listCRVReport.GetSelected(CeWinCRVReportOptions.Group_Tree)
myCrystalReportViewer.DisplayStatusBar =
listCRVReport.GetSelected(CeWinCRVReportOptions.Status_Bar)

crystalReportViewer.ShowPageNavigateButtons =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Page_Navigation
_Button));
crystalReportViewer.ShowGotoPageButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Go_to_Page_Butt
on));
crystalReportViewer.ShowCloseButton = listCRVToolbar.
GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Close_View_Button));
crystalReportViewer.ShowPrintButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Print_Button));
crystalReportViewer.ShowRefreshButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Refresh_Button)
);
crystalReportViewer.ShowExportButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Export_Button))
;
crystalReportViewer.ShowGroupTreeButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Group_Tree_Butt
on));
crystalReportViewer.ShowZoomButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Zoom_Button));
crystalReportViewer.ShowTextSearchButton =
listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Search_Button))
;

crystalReportViewer.DisplayToolbar =
listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Toolbar));
crystalReportViewer.DisplayGroupTree =
listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Group_Tree));
crystalReportViewer.DisplayStatusBar =
listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Status_Bar));

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
314 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.5.5 Verifica del controllo Button di rivisualizzazione

Contesto

A questo punto è possibile creare ed eseguire il progetto per personalizzare la barra degli strumenti di
CrystalReportViewer.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

I controlli ListBox listCRVReport e listCRVToolbar visualizzano un elenco completo delle opzioni di


report e barra degli strumenti di CrystalReportViewer.
4. Nel controllo ListBox delle opzioni della barra degli strumenti, selezionare "Page_Navigation_Button",
"Print_Button" e "Export_Button".
5. Nel controllo ListBox delle opzioni del report, selezionare "Toolbar", "Group_Tree" e "Main_Page".
6. Fare clic su Rivisualizza report.

La pagina viene ricaricata con la visualizzazione di un controllo CrystalReportViewer con una barra degli
strumenti, una struttura di gruppi e una pagina principale visibili. Nella barra degli strumenti sono visibili solo i
pulsanti Spostamento sulle pagine, Stampa e Esporta.
7. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.6 Modifica del colore di sfondo del report

In questa sezione vengono fornite le informazioni per modificare il colore di sfondo del report.

Per iniziare, aggiungere un controllo DropDownList per la selezione del colore di sfondo.

1.5.1.5.6.1 Per aggiungere i controlli per la modifica del


colore di sfondo

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Dalla casella degli strumenti, trascinare un controllo Label nella seconda riga della prima colonna della tabella.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 315
4. Selezionare il controllo Label, quindi nella finestra Proprietà impostare la proprietàText su Selezionare
colore di sfondo.
5. Nella casella degli strumenti, trascinare un controllo DropDownList (per i siti Web) o ComboBox (per i progetti
Windows) nella seconda riga della seconda colonna della tabella.
6. Selezionare il controllo DropDownList/ComboBox, quindi nella finestra Proprietà impostare ID/Namesu
"selectBackColor".

1.5.1.5.6.2 Per impostare i valori predefiniti dei controlli

Contesto

A questo punto è necessario aggiungere codice al metodo ConfigureCrystalReports() per impostare i valori
predefiniti per l'elenco dei colori di sfondo e le caselle di controllo dei componenti del report.

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.

Quindi, nel metodo ConfigureCrystalReports(), aggiungere il codice per impostare i valori predefiniti dei
controlli.

Nota
Se si sta creando un sito Web, inserire le righe di codice all'interno del blocco condizionale Not
IsPostBack. Se si sta creando un progetto Windows, inserire le righe di codice nell'area principale del
metodo ConfigureCrystalReports().

3. Assegnare l'enumerazione KnownColor alla proprietà DataSource del controllo DropDownList


selectBackColor.

selectBackColor.DataSource = System.Enum.GetValues(GetType(KnownColor))

selectBackColor.DataSource = System.Enum.GetValues(typeof(KnownColor));

4. Per un sito Web, collegare l'origine dati al controllo DropDownList selectBackColor.

selectBackColor.DataBind()

selectBackColor.DataBind();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
316 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.6.3 Per assegnare la selezione del colore di sfondo in
un sito Web

Contesto

Quindi, aggiungere il codice all'evento clic di Button per rivisualizzare il report in base alla selezione DropDownList
selectBackColor.

Il codice per un sito Web è diverso da quello per un progetto Windows. Selezionare di seguito la procedura
appropriata per il sito Web o il progetto Windows.

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Codice.
3. Sopra la firma della classe, aggiungere una dichiarazione "Imports" [Visual Basic] o "using" [C#]
all'inizio della classe per System.Drawing (se questo spazio dei nomi non è stato già dichiarato).

Imports System.Drawing

using System.Drawing;

4. Nel gestore eventi redisplay_Click(), aggiungere il seguente codice: dal controllo DropDownList
selectBackColor, recuperare l'elemento selezionato come stringa e passarlo al metodo FromName() della
classe Color. Assegnare il valore Color alla proprietà BackColor del controllo CrystalReportViewer.

myCrystalReportViewer.BackColor =
Color.FromName(selectBackColor.SelectedItem.Text)

crystalReportViewer.BackColor =
Color.FromName(selectBackColor.SelectedItem.Text);

1.5.1.5.6.4 Per assegnare la selezione del colore di sfondo in


un progetto Windows

Contesto

A questo punto è possibile verificare il pulsante Rivisualizza report. Passare alla sezione pertinente riportata di
seguito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 317
Procedura

1. Aprire il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Sopra la firma della classe, aggiungere una dichiarazione "Imports" [Visual Basic] o "using" [C#]
all'inizio della classe per System.Drawing (se questo spazio dei nomi non è stato già dichiarato).

Imports System.Drawing

using System.Drawing;

4. Nel gestore eventi redisplay_Click(), aggiungere il codice per recuperare l'elemento sezionato da
ComboBox selectBackColor e convertirlo in un'istanza di KnownColor.

Dim mySelectedKnownColor As KnownColor = CType(selectBackColor.SelectedItem,


KnownColor)

KnownColor selectedKnownColor = (KnownColor)selectBackColor.SelectedItem;

5. Creare un blocco condizionale per verificare che il colore selezionato per lo sfondo non sia trasparente.

If Not mySelectedKnownColor = KnownColor.Transparent Then

End If

if (selectedKnownColor != KnownColor.Transparent)
{
}

6. All'interno del blocco If, passare l'istanza KnownColor al metodo FromKnownName() della classe
System.Drawing.Color. Assegnare il valore Color alla proprietà BackColor del controllo CrystalReportViewer.

myCrystalReportViewer.BackColor =
System.Drawing.Color.FromKnownColor(mySelectedKnownColor)

crystalReportViewer.BackColor =
System.Drawing.Color.FromKnownColor(selectedKnownColor);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
318 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.6.5 Per verificare il controllo Button di
rivisualizzazione

Contesto

A questo punto è possibile verificare il pulsante Rivisualizza report.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

DropDownList/ComboBox viene visualizzato insieme ai controlli ListBox e Button aggiunti nella precedente
procedura.
4. Nel controllo DropDownList selectBackColor, selezionare "Blue."

Nota
Ricordarsi di selezionare gli elementi di report, specialmente Main_Page, in modo da renderli visibili.

5. Fare clic su Rivisualizza report.

La pagina viene ricaricata per visualizzare il report su uno sfondo blu.


6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.7 Aggiunta di codice per selezionare una pagina del


report

CrystalReportViewerIn questa sezione viene descritto come codificare l'opzione "Vai a pagina" della barra
degli strumenti di

La barra degli strumenti di CrystalReportViewer include pulsanti di spostamento tra le pagine e una casella di
testo per la selezione delle pagine del report. Per scrivere manualmente il codice per le selezioni delle pagine, è
possibile utilizzare i seguenti metodi della classe CrystalReportViewer:

● ShowFirstPage()
● ShowLastPage()
● ShowNextPage()
● ShowNthPage(int PageNumber)
● ShowPreviousPage()

Quando si chiama uno di questi metodi, viene visualizzata la pagina selezionata per il report corrente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 319
1.5.1.5.7.1 Per aggiungere i controlli TextBox e Button per
l'opzione "Vai a pagina"

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Dalla casella degli strumenti, trascinare un controllo TextBox nella quarta riga della prima colonna della
tabella.
3. Selezionare il controllo TextBox, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "pageNumber".
b) Lasciare vuota la proprietà Text.
4. Dalla casella degli strumenti, trascinare un controllo Button nella quarta riga della seconda colonna della
tabella.
5. Selezionare il controllo Button, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "goToPage".
b) Impostare Text su "Vai a pagina".

1.5.1.5.7.2 Per codificare il gestore dell'evento Click() per il


controllo Button

Procedura

1. Fare doppio clic sul controllo Button Vai a pagina.

Viene visualizzata la classe di codice sottostante del report indicante che il gestore dell'evento
goToPage_Click() è stato generato automaticamente.
2. Convertire il testo digitato nel controllo TextBox in un numero intero, quindi passare il valore al metodo
ShowNthPage() del controllo CrystalReportViewer.

Nota
Il numero intero inserito nel controllo TextBox non è stato convalidato. Nel caso di un'applicazione di
produzione, è opportuno aggiungere un controllo di convalida configurato per il controllo TextBox.

myCrystalReportViewer.ShowNthPage(Convert.ToInt32(pageNumber.Text))

crystalReportViewer.ShowNthPage(Convert.ToInt32(pageNumber.Text));

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
320 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.7.3 Per verificare il controllo Button goToPage

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Vengono visualizzati il report Chart e tutti i controlli aggiunti.


4. Inserire 3 nel controllo TextBox pageNumber, quindi fare clic su Vai a pagina.

La pagina viene ricaricata per visualizzare la pagina 3 del report.


5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.8 Modifica del fattore di zoom

Per impostazione predefinita, la barra degli strumenti di CrystalReportViewer consente di selezionare un


fattore di zoom compreso tra il 25% e il 400%, in incrementi fissi di 25%, 50% o 100%. In questa sezione viene
descritto come aggiungere codice per consentire la selezione di qualsiasi fattore di zoom desiderato.

A tal fine, è necessario un controllo TextBox in cui digitare il fattore di zoom desiderato e un controllo Button per
ricaricare la pagina.

1.5.1.5.8.1 Aggiunta dei controlli TextBox e Button per


l'opzione Zoom

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Dalla casella degli strumenti, trascinare un controllo TextBox nella quarta riga della terza colonna della tabella.
3. Selezionare il controllo TextBox, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "zoomFactor".
b) Lasciare vuota la proprietà Text.
4. Dalla casella degli strumenti, trascinare un controllo Button nella quarta riga della quarta colonna della tabella.
5. Selezionare il controllo Button, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "updateZoomFactor".
b) Impostare Text su "% Zoom".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 321
1.5.1.5.8.2 Codifica del gestore dell'evento Click() per il
controllo Button

Procedura

1. Fare doppio clic sul controllo Button updateZoomFactor.

Viene visualizzata la classe di codice sottostante del report indicante che il gestore dell'evento
updateZoomFactor_Click() è stato generato automaticamente.
2. Convertire il testo digitato nel controllo TextBox in un numero intero, quindi passare il valore al metodo
Zoom() del controllo CrystalReportViewer.

Nota
Il numero intero inserito nel controllo TextBox non è stato convalidato. Nel caso di un'applicazione di
produzione, è opportuno aggiungere un controllo di convalida configurato per il controllo TextBox.

myCrystalReportViewer.Zoom(Convert.ToInt32(zoomFactor.Text))

crystalReportViewer.Zoom(Convert.ToInt32(zoomFactor.Text));

1.5.1.5.8.3 Verifica del controllo Button updateZoomFactor

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Vengono visualizzati il report Chart e tutti i controlli aggiunti.


4. Immettere "38" nel controllo TextBox zoomFactor e fare clic su Zoom.

La pagina viene ricaricata per visualizzare la pagina corrente al 38% della dimensione originale.
5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.9 Ricerche nel report

In questa sezione viene descritto come cercare del testo in un report Crystal collegato al controllo
CrystalReportViewer.

A tal fine sono necessari un controllo TextBox in cui digitare la stringa da cercare, un controllo Button per
eseguire la ricerca nel report e un controllo Label per notificare l'esito della ricerca.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
322 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.9.1 Per aggiungere i controlli TextBox, Button e Label
per l'opzione Cerca

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Dalla casella degli strumenti, trascinare un controllo TextBox nella quinta riga della prima colonna della
tabella.
3. Selezionare il controllo TextBox, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "searchText".
b) Lasciare vuota la proprietà Text.
4. Dalla casella degli strumenti, trascinare un controllo Button nella quinta riga della seconda colonna della
tabella.
5. Selezionare il controllo Button, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "search".
b) Impostare Text su "Cerca testo".
6. Dalla casella degli strumenti, trascinare un controllo Label nella quinta riga della terza colonna della tabella.
a) Impostare ID (o Name) su "message".
b) Lasciare vuoto Text.
c) Impostare ForeColor su Rosso.
7. Creare la classe MessageConstants per salvare le risposte standard come costanti di stringa per la ricerca.

1.5.1.5.9.2 Per codificare il gestore dell'evento


search_Click() in un sito Web

Contesto

A questo punto è necessario chiamare il metodo SearchAndHighlightText() nel controllo Button di ricerca.

Nota
Il funzionamento del metodo SearchAndHighlightText() in un sito Web differisce da quelle in un progetto
Windows.

Poiché il funzionamento del metodo è differente in un sito Web rispetto a un progetto Windows, completare la
procedura appropriata riportata di seguito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 323
Procedura

1. Fare doppio clic sul controllo Button search.

Viene visualizzata la classe di codice sottostante del report indicante che il gestore dell'evento
search_Click() è stato generato automaticamente.
2. Recuperare il testo digitato nel controllo TextBox e passare il valore al metodo SearchAndHighlightText()
del controllo CrystalReportViewer. Assegnare la chiamata del metodo a una variabile booleana.

Nota
Affinché la classe SearchDirection sia accessibile, è necessario includere un'istruzione "Imports"
[Visual Basic] o "using" [C#] all'inizio della classe di codice sottostante per lo spazio dei nomi
CrystalDecisions.Shared. (tale dichiarazione è stata aggiunta in Impostazione di un progetto [pagina 14]).

Dim mySearchResult As Boolean =


myCrystalReportViewer.SearchAndHighlightText(searchText.Text,
SearchDirection.Forward)

bool searchResult = crystalReportViewer.SearchAndHighlightText(searchText.Text,


SearchDirection.Forward);

3. Creare un blocco condizionale che verifichi l'esito della ricerca.

If Not mySearchResult Then

Else

End If

if(!searchResult)
{
}
else
{
}

4. All'interno del blocco If, assegnare la constante MessageConstants.SUCCESS alla proprietà Text del controllo
Label message.

message.Text = MessageConstants.SUCCESS

message.Text = MessageConstants.SUCCESS;

5. All'interno del blocco Else, assegnare la constante MessageConstants.FAILURE alla proprietà Text del
controllo Label message.

message.Text = MessageConstants.FAILURE

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
324 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
message.Text = MessageConstants.FAILURE;

1.5.1.5.9.3 Per codificare il gestore dell'evento


search_Click() in un progetto Windows

Contesto

Ignorare la seguente procedura per un progetto Windows e passare alla procedura di verifica riportata di seguito.

Procedura

1. Fare doppio clic sul controllo Button search.

Viene visualizzata la classe di codice sottostante del report indicante che il gestore dell'evento
search_Click() è stato generato automaticamente.
2. Recuperare il testo digitato nel controllo TextBox e passare il valore al metodo SearchAndHighlightText()
del controllo CrystalReportViewer. Assegnare la chiamata del metodo a una variabile booleana.

Dim mySearchResult As Boolean =


myCrystalReportViewer.SearchAndHighlightText(searchText.Text)

bool searchResult = crystalReportViewer.SearchAndHighlightText(searchText.Text);

3. Creare un blocco condizionale che verifichi l'esito della ricerca.

If mySearchResult Then

Else

End If

if(searchResult)
{
}
else
{
}

4. All'interno del blocco If, assegnare la constante MessageConstants.SUCCESS alla proprietà Text del
controllo Label message.

message.Text = MessageConstants.SUCCESS

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 325
message.Text = MessageConstants.SUCCESS;

5. All'interno del blocco Else, assegnare la constante MessageConstants.FAILUREalla proprietà Text del
controllo messageLabel.

message.Text = MessageConstants.FAILURE

message.Text = MessageConstants.FAILURE;

1.5.1.5.9.4 Per verificare il controllo Button di ricerca

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Vengono visualizzati il report Chart e tutti i controlli aggiunti.


4. Immettere China in searchText nel controllo TextBox e fare clic su Cerca.

La pagina viene ricaricata per visualizzare il risultato della ricerca e il messaggio di completamento.
5. Immettere hello nel controllo TextBox searchText e fare clic su Cerca.

La pagina viene ricaricata per visualizzare il messaggio indicante che il testo cercato non è stato trovato.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

Le restanti opzioni di configurazione sono disponibili solo per la versione Web del controllo CrystalReportViewer.
Se si sta sviluppando un sito Web, passare a Aggiunta di un bordo al report in un sito Web [pagina 326].

Se si sviluppa un progetto Windows, l'esercitazione è terminata.

1.5.1.5.10 Aggiunta di un bordo al report in un sito Web

In questa sezione viene descritto come aggiungere un bordo personalizzato al report Crystal in un sito Web. Per
un progetto Windows, le proprietà relative a larghezza, stile e colore del bordo non sono disponibili.

Gli stili del bordo sono elencati nell'enumerazione BorderStyle, mentre i colori sono elencati nell'enumerazione
KnownColor. Tuttavia, la proprietà BorderColor del controllo CrystalReportViewer prende i valori dalla classe
Color. Pertanto, è necessario convertire il valore KnownColor in Color.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
326 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Iniziare aggiungendo i controlli necessari al Web Form, ovvero un controllo TextBox, due controlli DropDownList e
un controllo Button per tracciare il bordo.

1.5.1.5.10.1 Per aggiungere i controlli per l'impostazione di


larghezza, stile e colore del bordo

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Dalla casella degli strumenti, trascinare un controllo Label nella sesta riga della prima colonna della tabella.
4. Selezionare il controllo Label, quindi nella finestra Proprietà impostare la proprietà Text su "Larghezza bordo".
5. Dalla casella degli strumenti, trascinare un controllo TextBox nella stessa cella di tabella del controllo Label.
6. Selezionare il controllo TextBox, quindi nella finestra Proprietà impostare ID (o Name) su "borderWidth".
7. Dalla casella degli strumenti, trascinare un secondo controllo Label nella sesta riga della seconda colonna
della tabella.
8. Selezionare il controllo Label, quindi nella finestra Proprietà impostare la proprietà Text su "Stile bordo".
9. Dalla casella degli strumenti, trascinare un controllo DropDownList nella stessa cella di tabella del controllo
Label.
10. Selezionare il controllo DropDownList, quindi nella finestra Proprietà impostare ID (o Name) su
"selectBorderStyle".
11. Dalla casella degli strumenti, trascinare un terzo controllo Label nella sesta riga della terza colonna della
tabella.
12. Selezionare il controllo Label, quindi nella finestra Proprietà impostare la proprietà Text su "Colore bordo".
13. Dalla casella degli strumenti, trascinare un controllo DropDownList nella stessa cella di tabella del controllo
Label.
14. Selezionare il controllo DropDownList, quindi nella finestra Proprietà impostare ID (o Name) su
"selectBorderColor".
15. Dalla casella degli strumenti, trascinare un controllo Button nella sesta riga della quarta colonna della tabella.
16. Selezionare il controllo Button, quindi nella finestra Proprietà effettuare le seguenti operazioni:
a) Impostare ID (o Name) su "drawBorder".
b) Impostare la proprietà Text su "Disegna bordo".

1.5.1.5.10.2 Per compilare i controlli DropDownList

Contesto

A questo punto è necessario compilare i controlli DropDownList con gli stili e i colori del bordo disponibili per il
controllo CrystalReportViewer. I controlli DropDownList vengono compilati nel metodo
ConfigureCrystalReports().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 327
Per un sito Web, gli stili del bordo vengono salvati nell'enumerazione
System.Web.UI.WebControls.BorderStyle. I colori del bordo vengono recuperati dall'enumerazione
System.Drawing.KnownColor.

Procedura

1. Sopra la firma della classe, aggiungere una dichiarazione "Imports" [Visual Basic] o "using" [C#]
all'inizio della classe per System.Web.UI.WebControls e System.Drawing (se questo spazio dei nomi non è già
stato dichiarato).

Imports System.Web.UI.WebControls
Imports System.Drawing

using System.Web.UI.WebControls;
using System.Drawing;

2. All'interno del metodo ConfigureCrystalReports(), nel blocco condizionale Not IsPostBack,


assegnare l'enumerazione BorderStyle alla proprietà DataSource del controllo DropDownList
selectBorderStyle.

selectBorderStyle.DataSource = System.Enum.GetValues(GetType(BorderStyle))

selectBorderStyle.DataSource = System.Enum.GetValues(typeof(BorderStyle));

3. Collegare l'origine dati a DropDownList selectBorderStyle.

selectBorderStyle.DataBind()

selectBorderStyle.DataBind();

4. Sempre all'interno del blocco condizionale Not IsPostBack, assegnare l'enumerazione KnownColor alla
proprietà DataSource del controllo DropDownList selectBorderColor.

selectBorderColor.DataSource =
System.Enum.GetValues(GetType(KnownColor))

selectBorderColor.DataSource =
System.Enum.GetValues(typeof(KnownColor));

5. Collegare l'origine dati a DropDownList selectBorderColor.

selectBorderColor.DataBind()

selectBorderColor.DataBind();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
328 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.1.5.10.3 Per codificare il controllo Button DrawBorder

Contesto

A questo punto è possibile assegnare i valori alle proprietà BorderWidth, BorderStyle e BorderColor del
controllo CrystalReportViewer.

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic sul controllo Button DrawBorder.

Viene visualizzata la classe di codice sottostante del report indicante che il gestore dell'evento
drawBorder_Click() è stato generato automaticamente.
4. All'interno del gestore eventi drawBorder_Click(), assegnare il testo digitato in TextBox borderWidth
alla proprietà BorderWidth del controllo CrystalReportViewer.

Nota
Il numero intero inserito nel controllo TextBox non è stato convalidato. Nel caso di un'applicazione di
produzione, è opportuno aggiungere un controllo di convalida configurato per il controllo TextBox.

myCrystalReportViewer.BorderWidth =
Unit.Parse(borderWidth.Text.ToString())

crystalReportViewer.BorderWidth =
Convert.ToInt32(borderWidth.Text);

5. Da DropDownList selectBorderStyle, recuperare l'indice selezionato e convertirlo in un valore


BorderStyle. Assegnare il valore BorderStyle alla proprietà BorderStyle del controllo
CrystalReportViewer.

myCrystalReportViewer.BorderStyle = CType(selectBorderStyle.SelectedIndex,
BorderStyle)

crystalReportViewer.BorderStyle = (BorderStyle)selectBorderStyle.SelectedIndex;

6. Dal controllo DropDownList selectBorderColor, recuperare l'elemento selezionato come stringa e passarlo al
metodo FromName() della classe Color. Assegnare il valore Color alla proprietà BorderColor del controllo
CrystalReportViewer.

myCrystalReportViewer.BorderColor =
Color.FromName(selectBorderColor.SelectedItem.Text)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 329
crystalReportViewer.BorderColor =
Color.FromName(selectBorderColor.SelectedItem.Text);

1.5.1.5.10.4 Per tracciare un bordo intorno al report Crystal

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Digitare 10 per la larghezza del bordo.
5. Selezionare Doppio per lo stile del bordo.
6. Selezionare SteelBlue per il colore del bordo.
7. Fare clic sul pulsante Disegna bordo.

La pagina viene ricaricata per visualizzare un bordo intorno al report Crystal.


8. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.11 Configurazione della persistenza Session in un sito


Web

In questa sezione viene descritto come configurare la persistenza Session per gli eventi clic del controllo Button.

Quando la pagina Web viene ricaricata in seguito a un evento clic del pulsante Button, le modifiche apportate al
modello a oggetti CrystalReportViewer vanno perdute.

1.5.1.5.11.1 Per dimostrare la mancanza di persistenza in un


sito Web

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controlloDropDownList selectBackColor, selezionare "Blue".
5. Fare clic su Rivisualizza report.

La pagina viene ricaricata per visualizzare il report senza barra degli strumenti e su uno sfondo blu.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
330 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
6. Digitare "10" per la larghezza del bordo.
7. Selezionare "Doppio" per lo stile del bordo.
8. Selezionare "SteelBlue" per il colore del bordo.
9. Fare clic su Disegna bordo.

La pagina viene ricaricata per visualizzare un bordo attorno al report Crystal ma il colore di sfondo non è più
blu.
10. Inserire "3" nel controllo TextBox pageNumber, quindi fare clic su Vai a pagina.

La pagina viene ricaricata per visualizzare la pagina 3 del report ma il bordo attorno al report non è più visibile.
11. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.1.5.11.2 Per aggiungere il codice di assegnazione Session


al gestore dell'evento drawBorder_Click()

Contesto

È necessario aggiungere all'applicazione il codice di persistenza, in modo che le modifiche apportate nel modello a
oggetti CrystalReportViewer siano mantenute quando le pagine Web vengono ricaricate.

Iniziare aggiungendo il codice di persistenza per i valori dei bordi al gestore dell'evento drawBorder_Click(),
dove tali valori vengono assegnati per primi. Successivamente, nel metodo ConfigureCrystalReports(), i
valori memorizzati in Session vengono recuperati e assegnati alla rispettiva proprietà della classe
CrystalReportViewer.

Procedura

Nel gestore dell'evento drawBorder_Click(), alla fine del codice esistente, aggiungere quattro
assegnazioni Session per BackColor, BorderColor, BorderStyle e BorderWidth.

Session("myBorderColor") =
myCrystalReportViewer.BorderColor.ToString()
Session("myBorderStyle") = myCrystalReportViewer.BorderStyle
Session("myBorderWidth") = myCrystalReportViewer.BorderWidth

Session["borderColor"] =
crystalReportViewer.BorderColor.ToString();
Session["borderStyle"] = crystalReportViewer.BorderStyle;
Session["borderWidth"] = crystalReportViewer.BorderWidth;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 331
1.5.1.5.11.3 Per aggiungere il codice di recupero Session al
metodo ConfigureCrystalReports()

Contesto

A questo punto è possibile recuperare questi valori da Session nel metodo ConfigureCrystalReports().

Procedura

1. Alla fine del metodo ConfigureCrystalReports(), creare un blocco If che controlli se la variabile Session
BackColor non è null.
Se non lo è, all'interno del blocco If recuperare la proprietà BackColor da Session ed eseguirne il cast in
una stringa. Passare la stringa al metodo FromName() della classe Color e assegnare l'istanza Color alla
proprietà BackColor dell'istanza CrystalReportViewer.

If Not IsNothing(Session("myBackColor")) Then


myCrystalReportViewer.BackColor =
Color.FromName(CType(Session("myBackColor"), String))
End If

if (Session["backColor"] != null)
{
crystalReportViewer.BackColor = Color.FromName((string)Session["backColor"]);
}

2. Creare un secondo blocco If che controlli se la variabile Session BorderColor non è null. Se non lo è,
all'interno del blocco If recuperare la proprietà BorderColor da Session ed eseguirne il cast in una stringa.
Passare la stringa al metodo FromName() della classe Color e assegnare l'istanza Color alla proprietà
BorderColor dell'istanza CrystalReportViewer.

If Not IsNothing(Session("myBorderColor")) Then


myCrystalReportViewer.BorderColor =
Color.FromName(CType(Session("myBorderColor"), String))
End If

if (Session["borderColor"] != null)
{
crystalReportViewer.BorderColor =
Color.FromName((string)Session["borderColor"]);
}

3. Creare un terzo blocco If che controlli se la variabile Session BorderStyle non è null. Se non lo è, all'interno
del blocco If recuperare la proprietà BorderStyle da Session ed eseguirne il cast in BorderStyle.

myCrystalReportViewer.BorderStyle = CType(Session("myBorderStyle"), BorderStyle)

if (Session["borderStyle"] != null)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
332 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
{
crystalReportViewer.BorderStyle = (BorderStyle)Session["borderStyle"];
}

4. Creare un quarto blocco If che controlli se la variabile Session BorderWidth non è null. Se non lo è, all'interno
del blocco If recuperare la proprietà BorderWidth da Session e convertirla in un numero intero.

myCrystalReportViewer.BorderWidth = Convert.ToInt32(Session("myBorderWidth"))

if (Session["borderStyle"] != null)
{
crystalReportViewer.BorderWidth = Convert.ToInt32(Session["borderStyle"]);
}

1.5.1.5.11.4 Per codificare il controllo Button drawBorder

Contesto

Nella procedura seguente, la persistenza Session viene aggiunta al gestore dell'evento clic del controllo Button di
rivisualizzazione.

Procedura

1. All'interno del gestore dell'evento redisplay_Click(), assegnare a Session l'elemento selezionato nel
controllo selectBackColor DropDownList.

Session("myBackColor") = selectBackColor.SelectedItem.Text

Session["backColor"] = selectBackColor.SelectedItem.Text;

2. All'interno del gestore dell'evento drawBorder_Click(), assegnare a Session la proprietà Text del controllo
TextBox borderWidth.

Session("myBorderWidth") = borderWidth.Text

Session["borderWidth"] = borderWidth.Text;

3. Assegnare a Session l'indice selezionato nel controllo DropDownList selectBorderStyle.

Session("myBorderStyle") = selectBorderStyle.SelectedIndex

Session["borderStyle"] = selectBorderStyle.SelectedIndex;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 333
4. Assegnare a Session l'elemento selezionato nel controllo DropDownList selectBorderColor.

Session("myBorderColor") = selectBorderColor.SelectedItem.Text

Session["borderColor"] = selectBorderColor.SelectedItem.Text;

Risultati

A questo punto è possibile creare ed eseguire il progetto per verificare che le modifiche apportate al report siano
persistenti quando si utilizzano gli eventi di clic del controllo Button.

1.5.2 Esercitazioni relative al modello a oggetti


ReportDocument

In questa sezione sono contenute diverse esercitazioni relative al modello a oggetti ReportDocument.

In questa sezione sono contenute diverse esercitazioni relative al modello a oggetti ReportDocument.

1.5.2.1 Esercitazione: Persistenza del modello a oggetti


ReportDocument mediante Session

In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a un
report a livello di codice in fase di esecuzione.

In questa esercitazione viene utilizzato il modello a oggetti ReportDocument e vengono apportate modifiche a un
report a livello di codice in fase di esecuzione. Quindi viene descritto come utilizzare Session per rendere
persistenti tali modifiche nei successivi caricamenti di pagine Web.

Poiché solo le applicazioni Web richiedono la persistenza Session, questa esercitazione non può essere utilizzata
per i progetti Windows.

Introduzione

Nel progetto che viene creato in questa esercitazione viene utilizzato un Web Form contenente un controllo
CrystalReportViewer e due pulsanti, che consentono di modificare l’ordinamento del report all'interno del modello
a oggetti ReportDocument.

Inizialmente, il progetto viene creato senza persistenza Session per dimostrare che senza la persistenza la
modifica all’ordinamento non viene mantenuta quando si verifica un evento clic di pulsante.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
334 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
A questo punto, la persistenza Session viene aggiunta al progetto. L’istanza ReportDocument viene inserita in
Session in fase di creazione e in tutti i punti in cui lo stato dell’istanza ReportDocument viene modificato.

Ogni volta che il report viene rivisualizzato, l’istanza ReportDocument viene estratta da Session e collegata al
controllo CrystalReportViewer. In questo modo, ogni volta che il report viene visualizzato, l’utente vede la
versione più aggiornata dell'istanza ReportDocument.

Nota
in questa esercitazione viene utilizzato Session per rendere persistenti le modifiche al modello a oggetti
ReportDocument. Se si intende utilizzare solo il modello a oggetti limitato contenuto nel controllo
CrystalReportViewer, utilizzare esclusivamente ViewState.

Se si utilizza Session per rendere persistente un oggetto ReportDocument


sono coinvolti altri modelli di persistenza?

Se si utilizza Session per rendere persistente un oggetto ReportDocument sono coinvolti altri modelli di
persistenza?

Sì. Per ottenere la persistenza in un’applicazione Web ASP.NET, gli oggetti utilizzano in genere Session, mentre i
controlli server Web utilizzano ViewState. Poiché un'applicazione Web SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio utilizza nei report sia oggetti che controlli server Web, la persistenza viene
condivisa da Session e ViewState:

● Session rende persistente il modello a oggetti ReportDocument, che in fase di esecuzione interagisce a livello
di codice con il report.
● ViewState rende persistente il controllo CrystalReportViewer, che visualizza il report. In particolare,
ViewState rende persistenti le proprietà di visualizzazione, impostate nella barra degli strumenti di
CrystalReportViewer, nonché agli eventi (come zoom, NextPage e così via) che vengono attivati dai pulsanti
della barra degli strumenti.

La persistenza ViewState viene gestita automaticamente. Pertanto, in questa esercitazione viene codificata solo
la persistenza Session.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web C#: CS_Web_RDObjMod_Session


● Sito Web Visual Basic: VB_Web_RDObjMod_Session

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 335
Informazioni correlate

Approccio di persistenza da utilizzare con SAP Crystal Reports [pagina 52]


Directory dei report di esempio [pagina 14]

1.5.2.1.1 Configurazione di pulsanti sul Web Form

Iniziare aggiungendo due pulsanti al Web Form, assegnare loro un nome e creare gli eventi clic per ciascuno di
essi.

1.5.2.1.1.1 Per aggiungere pulsanti al Web Form

Procedura

1. Aprire la pagina Default.aspx.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare clic sul controllo CrystalReportViewer e premere il tasto freccia sinistra sulla tastiera per visualizzare un
cursore lampeggiante, quindi premere Invio.
Il controllo CrystalReportViewer si sposta in basso di una riga.
4. Dalla casella degli strumenti, trascinare un controllo server Web Button sopra il controllo CrystalReportViewer.
5. Fare clic a destra del controllo Button per visualizzare il cursore lampeggiate, quindi premere due volte la
barra spaziatrice.
6. Dalla casella degli strumenti, trascinare un secondo controllo server Web Button a destra del primo controllo
Button.

1.5.2.1.1.2 Per impostare le proprietà Text e ID di ciascun


controllo Button

Procedura

1. Fare clic sul primo controllo server Web Button per selezionarlo.
2. Nella finestra Proprietà:

○ Impostare ID su "sortOrderDescending".
○ Impostare Text su "Modifica ordinamento in decrescente".
3. Fare clic sul secondo controllo server Web Button per selezionarlo.
4. Nella finestra Proprietà:

○ Impostare ID su "sortOrderAscending".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
336 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
○ Impostare Text su "Modifica ordinamento in crescente".

1.5.2.1.1.3 Creazione di eventi clic per ciascun controllo


Button

Procedura

1. Fare doppio clic sul primo controllo server Web Button.


La classe di codice sottostante si apre e alla fine di essa viene creato un nuovo metodo di evento,
sortOrderDescending_Click().
2. Ritornare alla visualizzazione Progettazione della pagina Default.aspx.
3. Fare doppio clic sul secondo controllo server Web Button.
La classe di codice sottostante si apre e alla fine di essa viene creato un nuovo metodo di evento,
sortOrderAscending_Click().

1.5.2.1.2 Programmazione degli eventi Button con criteri di


ordinamento

In questa procedura viene descritto come programmare il modello a oggetti ReportDocument del report nel
metodo di evento per impostare l’ordinamento crescente in un metodo di evento e quello decrescente nell’altro.

1.5.2.1.2.1 Per programmare il modello a oggetti


ReportDocument del report nel metodo di evento
sortOrderDescending_Click

Procedura

1. Aprire la classe di codice sottostante e individuare il metodo di evento sortOrderDescending_Click().


2. Nel metodo di evento, recuperare la proprietà SortFields dalla proprietà DataDefinition dell’istanza del
report e assegnarla a un’istanza della classe indicizzata SortFields.

Dim mySortFields As SortFields =


hierarchicalGroupingReport.DataDefinition.SortFields

SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;

3. Recuperare la prima istanza SortField dalla classe indicizzata SortFields e assegnarla a una variabile
denominata firstSortField.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 337
Nota
La classe indicizzata SortFields è in base zero.

Dim firstSortField As SortField = mySortFields(0)

SortField firstSortField = sortFields[0];

4. Impostare la proprietà SortDirection di firstSortField sull’ordine decrescente mediante la selezione


DescendingOrder dell’enumerazione SortDirection.

firstSortField.SortDirection = SortDirection.DescendingOrder

firstSortField.SortDirection = SortDirection.DescendingOrder;

5. A questo punto, riassegnare il report (con l’ordinamento modificato nel modello a oggetti ReportDocument)
alla proprietà ReportSource del controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = hierarchicalGroupingReport

crystalReportViewer.ReportSource = hierarchicalGroupingReport;

Risultati

A questo punto, verrà immesso il codice per il metodo dell'evento sortOrderAscending_Click(). Il codice è
identico, ad eccezione dell’impostazione della proprietà SortDirection.

1.5.2.1.2.2 Per programmare il modello a oggetti


ReportDocument del report nel metodo di evento
sortOrderAscending_Click

Procedura

1. Aprire la classe di codice sottostante e individuare il metodo di evento sortOrderAscending_Click().


2. Nel metodo di evento, recuperare la proprietà SortFields dalla proprietà DataDefinition dell’istanza del
report e assegnarla a un’istanza della classe indicizzata SortFields.

Dim mySortFields As SortFields =


hierarchicalGroupingReport.DataDefinition.SortFields

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
338 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;

3. Recuperare la prima istanza SortField dalla classe indicizzata SortFields e assegnarla a una variabile
denominata firstSortField.

Nota
La classe indicizzata SortFields è in base zero.

Dim firstSortField As SortField = mySortFields(0)

SortField firstSortField = sortFields[0];

4. Impostare la proprietà SortDirection dell'istanza firstSortField sull'ordine crescente selezionando


AscendingOrder nell'enumerazione SortDirection.

firstSortField.SortDirection = SortDirection.AscendingOrder

firstSortField.SortDirection = SortDirection.AscendingOrder;

5. A questo punto, riassegnare il report (con l’ordinamento modificato nel modello a oggetti ReportDocument)
alla proprietà ReportSource del controllo CrystalReportViewer.

myCrystalReportViewer.ReportSource = hierarchicalGroupingReport

crystalReportViewer.ReportSource = hierarchicalGroupingReport;

Risultati

Viene così completata la programmazione del modello a oggetti ReportDocument del report in ciascun metodo di
evento. Nella sezione successiva viene verificato se le modifiche all’ordinamento funzionano e se vengono
mantenute nel caso in cui Session non venga applicato.

1.5.2.1.3 Verifica e determinazione degli errori di persistenza

In questa sezione viene dimostrato che senza l'utilizzo della persistenza Session, le modifiche all’ordinamento non
vengono mantenute quando la pagina viene ricaricata per riflettere le modifiche apportate alle impostazioni di
visualizzazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 339
1.5.2.1.3.1 Per verificare le modifiche a livello di codice al
criterio di ordinamento

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Se non si verificano errori di generazione, la pagina Default.aspx viene caricata nel browser con il report
Hierarchical Grouping generato nel form.
4. Osservare attentamente l’ordinamento. Può essere opportuno stampare la pagina per confrontare le
modifiche al criterio di ordinamento.
5. Fare clic sul pulsante Modifica ordinamento in decrescente.
L’ordinamento viene invertito.
6. Fare clic sul pulsante Modifica ordinamento in crescente.
L’ordinamento ritorna all’impostazione originale (crescente).

1.5.2.1.3.2 Per verificare se le modifiche all'ordinamento


vengono mantenute quando si modificano le impostazioni di
visualizzazione

Contesto

Nella procedura successiva viene verificato se l’ordinamento viene mantenuto quando si applicano altre
modifiche alla pagina, ad esempio alle impostazioni di visualizzazione.

Procedura

1. Fare clic sul pulsante Modifica ordinamento in decrescente.


L’ordinamento viene invertito.
2. Dalla barra degli strumenti del report, regolare lo zoom da 100% a 125%.
La pagina viene ricaricata con uno zoom del 125%, ma la modifica all’ordinamento non viene mantenuta.
3. Fare di nuovo clic sul pulsante Modifica ordinamento in decrescente.
L’ordinamento viene invertito.
4. Dalla barra degli strumenti del report, regolare lo zoom da 125% a 100%.
5. La pagina viene ricaricata con uno zoom del 100%, ma la modifica all’ordinamento non viene mantenuta.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
340 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

Questo test ha dimostrato che, a questo punto dell’esercitazione, non vi è persistenza. L’ordinamento viene
applicato solo quando si fa clic su uno dei pulsanti di ordinamento e viene annullato quando l’utente interagisce
con la pagina per regolare lo zoom o apre un’altra pagina in un report con più pagine. È pertanto necessario
aggiungere codice per rendere persistente mediante Session la modifica all’ordinamento apportata nel modello a
oggetti ReportDocument.

1.5.2.1.4 Aggiunta di codice Session

In questa sezione viene descritto come utilizzare Session per rendere persistente la modifica all’ordinamento del
report. Al metodo ConfigureCrystalReports(), creato quando è stato impostato il progetto (vedere
Impostazione di un progetto [pagina 14]), aggiungere codice che esegua la ricerca di Session e il ricaricamento
immediato dell'istanza del report in Session quando un utente modifica l'ordinamento.

1.5.2.1.4.1 Per aggiungere il codice di controllo di Session al


metodo ConfigureCrystalReports()

Procedura

1. Nel metodo ConfigureCrystalReports(), prima del codice esistente, creare un blocco condizionale if/
else che controlli se esiste un oggetto Session denominato hierarchicalGroupingReport.
A questo oggetto Session è possibile assegnare un nome di identificazione a scelta. Utilizzare un
identificatore univoco, come il nome dell’istanza report.

If (Session("hierarchicalGroupingReport") Is Nothing) Then

Else

End If

if(Session["hierarchicalGroupingReport"] == null)
{
}
else
{
}

2. Se si sta utilizzando un report incorporato, spostare la riga di codice che dichiara e crea un'istanza del report
dalla posizione corrente al blocco If.

If (Session("hierarchicalGroupingReport") Is Nothing) Then


hierarchicalGroupingReport = New Hierarchical_Grouping()
Else

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 341
End If

if (Session["hierarchicalGroupingReport"] == null)
{
hierarchicalGroupingReport = new Hierarchical_Grouping();
}
else
{
}

3. Se si sta utilizzando un report non incorporato, spostare le due righe di codice che dichiarano e creano
un'istanza del report e che caricano il report dal percorso della directory, dalla posizione corrente al blocco If.

Nota
vedere Directory dei report di esempio [pagina 14] per determinare il percorso corretto dei report di
esempio.

If (Session("hierarchicalGroupingReport") Is Nothing) Then


hierarchicalGroupingReport = New ReportDocument()
hierarchicalGroupingReport.Load("C:\Programmi\Microsoft Visual Studio
9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Hierarchical
Grouping.rpt")
Else

End If

if(Session["hierarchicalGroupingReport"] == null)
{
hierarchicalGroupingReport = new ReportDocument();
hierarchicalGroupingReport.Load("C:\Programmi\Microsoft Visual Studio
9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Hierarchical
Grouping.rpt");
}
else
{
}

4. Nel blocco If, assegnare il report a Session, utilizzando il nome della variabile del report come stringa di
identificazione di Session.

Session("hierarchicalGroupingReport") = hierarchicalGroupingReport

Session["hierarchicalGroupingReport"] = hierarchicalGroupingReport;

Il blocco If è completato e viene eseguito se il report non esiste in Session. Il blocco Else viene invece eseguito
se il report si trova in Session. Pertanto, lo scopo di questo blocco è recuperare il report da Session in
un’istanza di report.
5. Nel blocco Else, assegnare il report memorizzato in Session all’istanza report.

hierarchicalGroupingReport = CType(Session("hierarchicalGroupingReport"),
ReportDocument)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
342 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
hierarchicalGroupingReport =
(ReportDocument)Session["hierarchicalGroupingReport"];

Nota
Poiché Session restituisce solo oggetti generici, è necessario eseguire il cast del report in un tipo di report.
A prescindere dal fatto che si utilizzino report incorporati o non incorporati, eseguire il cast dell'oggetto
recuperato nel tipo ReportDocument.

Fuori e alla fine del blocco condizionale, il resto del codice collega l'istanza del report alla proprietà
ReportSource del controllo CrystalReportViewer.

Risultati

Facendo riferimento alla configurazione del progetto (vedere Impostazione di un progetto [pagina 14]), il metodo
ConfigureCrystalReports() viene chiamato ogni volta che viene caricata una pagina. Pertanto, la modifica a
questo metodo garantisce che venga sempre recuperato e caricato il report più aggiornato (sia esso nuovo o
memorizzato in Session). Tuttavia, non è stato ancora scritto alcun codice per aggiornare l’istanza del report.
Nella sezione successiva, l’istanza del report viene aggiornata in Session ogni volta che si modifica l’ordinamento.

1.5.2.1.4.2 Per aggiornare l'istanza del report in Session per


il metodo di evento sortOrderDescending_Click

Procedura

1. Nel metodo di evento sortOrderDescending_Click(), eliminare l'ultima riga di codice che collega il
controllo CrystalReportViewer al report.
A questo punto dovrebbero restare le tre righe di codice che modificano il criterio di ordinamento.
2. Sotto queste tre righe di codice, assegnare l'istanza hierarchicalGroupingReport (aggiornata con il nuovo
criterio di ordinamento) in Session servendosi dello stesso identificatore utilizzato nel metodo
ConfigureCrystalReports().

Nota
Per semplicità copiare/incollare questa riga di codice dal metodo ConfigureCrystalReports().

Session("hierarchicalGroupingReport") = hierarchicalGroupingReport

Session["hierarchicalGroupingReport"] = hierarchicalGroupingReport;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 343
3. Infine, aggiungere una chiamata al metodo ConfigureCrystalReports() per recuperare da Session
l'ultima istanza hierarchicalGroupingReport (quella aggiornata nel passaggio precedente) e collegarla al
controllo CrystalReportViewer.

ConfigureCrystalReports()

ConfigureCrystalReports();

Risultati

A questo punto, ripetere la stessa procedura per il secondo metodo di evento.

1.5.2.1.4.3 Per aggiornare l'istanza del report in Session per


il metodo di evento sortOrderAscending_Click

Procedura

1. Nel metodo di evento sortOrderAscending_Click(), eliminare l'ultima riga di codice che collega il
controllo CrystalReportViewer al report.
A questo punto dovrebbero restare le tre righe di codice che modificano il criterio di ordinamento.
2. Sotto queste tre righe di codice, assegnare l'istanza hierarchicalGroupingReport (aggiornata con il nuovo
criterio di ordinamento) in Session servendosi dello stesso identificatore utilizzato nel metodo
ConfigureCrystalReports().
Per semplicità, copiare e incollare questa riga di codice dal metodo ConfigureCrystalReports().

Session("hierarchicalGroupingReport") = hierarchicalGroupingReport

Session["hierarchicalGroupingReport"] = hierarchicalGroupingReport;

3. Infine, aggiungere una chiamata al metodo ConfigureCrystalReports() per recuperare da Session


l'ultima istanza hierarchicalGroupingReport (quella aggiornata nel passaggio precedente) e collegarla al
controllo CrystalReportViewer.

ConfigureCrystalReports()

ConfigureCrystalReports();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
344 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

A questo punto è possibile verificare se le modifiche all’ordinamento sono persistenti o meno.

1.5.2.1.5 Verifica e determinazione della persistenza

In questa sezione viene verificato se utilizzando la persistenza Session le modifiche all'ordinamento vengono
rese persistenti.

1.5.2.1.5.1 Per verificare se le modifiche all'ordinamento


vengono mantenute

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


Se si verificano errori di generazione, correggerli.
2. Dal menu Debug, scegliere Avvia.
Se non si verificano errori di generazione, la pagina Default.aspx viene caricata nel browser con il report
Hierarchical Grouping generato nel form.
3. Osservare attentamente l’ordinamento. Può essere opportuno stampare la pagina per confrontare le
modifiche al criterio di ordinamento.
4. Fare clic sul pulsante Modifica ordinamento in decrescente.
L’ordinamento viene invertito.
5. Dalla barra degli strumenti del report, regolare lo zoom da 100% a 125%.
La pagina del report viene ricaricata con uno zoom del 125%. L’inversione dell’ordinamento è stata resa
persistente.
6. Fare clic sul pulsante Modifica ordinamento in crescente.
L’ordinamento viene ripristinato.
7. Dalla barra degli strumenti del report, regolare lo zoom da 125% a 100%.
La pagina del report viene ricaricata con uno zoom del 100%. L’ordinamento conserva l’impostazione del
passaggio precedente.

Risultati

Da questo test risulta evidente che la persistenza ha avuto esito positivo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 345
1.5.2.2 Esercitazione: Accesso a un database SQL Server
protetto mediante l'autenticazione SQL

In questa esercitazione viene descritto come aggiungere codice di accesso per visualizzare un report contenente
informazioni provenienti da un database SQL Server protetto.

Introduzione

Per accedere a un database SQL Server protetto, utilizzare classi del modello a oggetti ReportDocument.

L'oggetto ReportDocument dispone di una proprietà Database che restituisce un'istanza di Database. Questa
istanza di Database contiene le informazioni di database per il report, inclusa una proprietà Tables che
restituisce un'istanza di classe indicizzata Tables. Le singole istanze Table possono essere recuperate dalla
classe indicizzata Tables.

L'accesso viene eseguito a livello granulare di ogni istanza di Table, a cui deve essere concesso l'accesso al
database SQL Server protetto. Questa operazione viene eseguita inserendo le informazioni di accesso in
un'istanza di ConnectionInfo e quindi, in un ciclo for, applicando l'istanza di ConnectionInfo alla proprietà
ConnectionInfo di ogni istanza di Table.

Le proprietà della classe includono includono:

● ServerName
● DatabaseName
● UserID
● Password
● IntegratedSecurity (non utilizzata nell'esercitazione)

Nota
per un'esercitazione che utilizzi l'autenticazione Windows e quindi la proprietà IntegratedSecurity invece delle
proprietà UserID e Password, vedere Esercitazione: Accesso a un database SQL Server protetto mediante la
protezione integrata [pagina 363].

Se si sceglie di impostare solo le proprietà DatabaseName, UserID e Password, si ha accesso al server e al


database predefiniti specificati nel report. Se, invece, si sceglie di assegnare la proprietà ServerName e
specificare un server alternativo, in fase di esecuzione è possibile reindirizzare il report a un server diverso.

Iniziare creando un report contenente dati provenienti da un database SQL Server protetto.

L'esercitazione può essere completata anche utilizzando classi del modello a oggetti CrystalReportViewer, ma si
consiglia di utilizzare il modello a oggetti ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
346 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_RDObjMod_DBLogon


● Progetto Windows C#: CS_Win_RDObjMod_DBLogon
● Sito Web in Visual Basic: VB_Web_RDObjMod_DBLogon
● Progetto Windows Visual Basic: VB_Win_RDObjMod_DBLogon

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Esercitazione: Accesso a un database SQL Server protetto mediante la protezione integrata [pagina 239]
In questa esercitazione viene descritto come aggiungere codice di accesso per visualizzare un report
contenente informazioni provenienti da un database SQL Server protetto.

Directory dei report di esempio [pagina 14]

1.5.2.2.1 Creazione di un report connesso a un database SQL


Server protetto

Iniziare creando un report le cui informazioni provengano dal database Northwind.

Nota
Northwind è un database di esempio fornito con SQL Server.

Per questa esercitazione sono necessarie alcune operazioni di configurazione.

Informazioni correlate

Esercitazione: Accesso a un database SQL Server protetto mediante l'autenticazione SQL [pagina 346]
In questa esercitazione viene descritto come aggiungere codice di accesso per visualizzare un report
contenente informazioni provenienti da un database SQL Server protetto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 347
1.5.2.2.1.1 Prerequisiti di configurazione del database

Procedura

1. Configurazione di SQL Server:

○ Se è stato installato SQL Server (o la versione OEM, MSDE), per utilizzarlo con questa esercitazione è
necessario configurarlo in modo che richieda l’Autenticazione SQL Server.
○ Se SQL Server (o la versione OEM, MSDE) non è stato installato, per utilizzarlo con questa esercitazione è
necessario installare MSDE con l’Autenticazione SQL Server impostata su "True".
2. È necessario installare il database Northwind fornito con SQL Server e verificare che accetti l’Autenticazione
SQL Server.
3. È necessario creare un account con accesso limitato da utilizzare nel sito Web.

1.5.2.2.1.2 Per creare un report con dati protetti provenienti


dal database Northwind

Contesto

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Crystal
Report.
3. Nel campo Nome, inserire il nome "NorthwindCustomers.rpt", quindi fare clic su Apri.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
Viene visualizzata la finestra di dialogo Procedura guidata per la creazione di report standard.
6. Nel riquadro Origini dati disponibili, espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella OLE DB (ADO).
Viene visualizzata la finestra OLE DB (ADO).
8. Selezionare Provider Microsoft OLE DB per SQL Server, quindi fare clic su Avanti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
348 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
9. Inserire i valori desiderati per server di database, ID utente e password nei campi Server, User ID e Password.
10. Dall’elenco a discesa Database, selezionare "Northwind".
Lasciare deselezionata la casella di controllo Protezione integrata, poiché è in uso l’autenticazione SQL Server
invece di quella NT.
11. Fare clic su Fine.
La cartella OLE DB è ora estesa, mostra il server di database e, al suo interno, il database Northwind.
12. Espandere i nodi Northwind, dbo e Tables, quindi selezionare la tabella Customers.
13. Fare clic sul simbolo > per spostare la tabella nel riquadro Tabelle selezionate, quindi scegliere Avanti.
14. Tenendo premuto il tasto Ctrl fare clic su CompanyName, ContactName e City.
15. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
16. Nel riquadro Campi disponibili, in Campi report, selezionare Customer.City, fare clic sul simbolo > per
spostare il campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report NorthwindCustomers viene creato e caricato nella finestra principale di Visual Studio.

Risultati

A questo punto è possibile collegare il report al controllo CrystalReportViewer e impostare l’accesso al


database a livello di codice.

1.5.2.2.2 Collegamento del report

In Impostazione di un progetto [pagina 14] è stato inserito un controllo CrystalReportViewer nel Web Form o nel
Windows Form. Nel passaggio precedente è stato aggiunto un report NorthwindCustomers al progetto.

In questa sezione viene descritto come creare un'istanza del report NorthwindCustomers e come collegarla al
controllo CrystalReportViewer. Viene quindi verificato se è possibile visualizzare correttamente il report quando i
valori correnti del campo parametro non sono ancora stati impostati.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

● Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report come report
incorporato.
● Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report come
report non incorporato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 349
1.5.2.2.2.1 Per creare un'istanza del report
NorthwindCustomers come report incorporato e collegarla al
controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report NorthwindCustomers,
utilizzando il nome di variabile northwindCustomersReport. Impostare il modificatore di accesso su private.

Private northwindCustomersReport As NorthwindCustomers

private NorthwindCustomers northwindCustomersReport;

4. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

northwindCustomersReport = New NorthwindCustomers()

northwindCustomersReport = new NorthwindCustomers();

5. Nella riga successiva, sotto la creazione dell’istanza del report, collegare la proprietà ReportSource del
controllo CrystalReportViewer alla classe del report di cui è stata creata l’istanza (nome variabile:
northwindCustomersReport).

myCrystalReportViewer.ReportSource = northwindCustomersReport

crystalReportViewer.ReportSource = northwindCustomersReport;

Risultati

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per accedere al database non è stato ancora scritto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
350 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.2.2.2 Per creare un'istanza del report
NorthwindCustomers come report non incorporato e collegarla
al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile northwindCustomersReport. Impostare il modificatore di accesso su private.

Private northwindCustomersReport As ReportDocument

private ReportDocument northwindCustomersReport;

Nota
La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il
quale è stata aggiunta una dichiarazione "Imports" [Visual Basic] o "using" [C#] in Impostazione
di un progetto [pagina 14]. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio
dei nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.

4. All'interno del metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14]),


creare un'istanza della classe ReportDocument.

northwindCustomersReport = New ReportDocument()

northwindCustomersReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt")

string reportPath = Server.MapPath("NorthwindCustomers.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 351
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"NorthwindCustomers.rpt"

string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passare ad esso la variabile di stringa


reportPath.

northwindCustomersReport.Load(reportPath)

northwindCustomersReport.Load(reportPath);

7. Collegare la proprietà ReportSource di CrystalReportViewer all'istanza di ReportDocument.

myCrystalReportViewer.ReportSource = northwindCustomersReport

crystalReportViewer.ReportSource = northwindCustomersReport;

1.5.2.2.2.3 Per verificare il caricamento del report


NorthwindCustomers

Contesto

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di
report non incorporato attraverso la classe ReportDocument, il nome di variabile utilizzato è sempre lo stesso:
northwindCustomersReport. Questo consente di utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per accedere al database non è stato ancora scritto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
352 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Il report NorthwindCustomers non viene visualizzato poiché non è stato aggiunto il codice di accesso al
database.

Nota
I risultati possono variare, in base alla versione di SAP Crystal Reports in uso. Ad esempio, se è installato
SAP Crystal Reports 10 o versione successiva, viene visualizzato un form per richiedere le informazioni di
accesso al database per il report. Questa è una nuova funzione di SAP Crystal Reports Developer. Se si sta
utilizzando una versione precedente di SAP Crystal Reports, viene generata un’eccezione. In entrambi i
casi, per creare un'applicazione completamente funzionale è necessario seguire la procedura successiva.

5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.2.3 Aggiunta del codice di accesso del report

A questo punto è possibile aggiungere il codice di accesso alla classe di codice sottostante. Iniziare creando un
metodo di supporto privato, SetDBLogonForReport().

1.5.2.2.3.1 Per creare e codificare il metodo


SetDBLogonForReport()

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.
2. Alla fine della classe creare un nuovo metodo privato denominato SetDBLogonForReport() con due
parametri ConnectionInfo e ReportDocument.

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal


myReportDocument As ReportDocument)

End Sub

private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument


reportDocument)
{
}

3. Nel metodo, recuperare l'istanza Tables dalla proprietà Tables della proprietà Database del parametro
ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 353
Nota
Tables è una classe indicizzata contenente istanze della classe Table.

Dim myTables As Tables = myReportDocument.Database.Tables

Tables tables = reportDocument.Database.Tables;

4. Creare un ciclo foreach che passi attraverso ogni istanza Table nell’istanza della classe indicizzata Tables.

Nota
È necessario includere l'intero percorso dello spazio dei nomi della classe Table per distinguerla dalla
classe Table dello spazio dei nomi System.Web.UI.WebControls.

For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables

Next

foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)


{
}

5. All'interno del ciclo foreach, recuperare l’istanza TableLogonInfo dalla proprietà LogOnInfo dell’istanza
Table.

Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo

TableLogOnInfo tableLogonInfo = table.LogOnInfo;

6. All'interno del ciclo foreach, impostare la proprietà ConnectionInfo di TableLogonInfo sul parametro
ConnectionInfo.

myTableLogonInfo.ConnectionInfo = myConnectionInfo

tableLogonInfo.ConnectionInfo = connectionInfo;

7. All'interno del ciclo foreach, passare l'istanza di TableLogonInfo come parametro al metodo
ApplyLogonInfo dell'istanza di Table.

myTable.ApplyLogOnInfo(myTableLogonInfo)

table.ApplyLogOnInfo(tableLogonInfo);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
354 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

Con questa procedura è stato creato un metodo per impostare l’accesso al database. A questo punto diventa
necessario modificare il metodo ConfigureCrystalReports() in modo da fare riferimento al metodo appena
creato e consentire al report di rilevare le informazioni di accesso al database.

A tale scopo, occorre effettuare due operazioni:

● Configurare l'istanza ConnectionInfo.


● Chiamare il metodo SetDBLogonForReport().

1.5.2.2.3.2 Per modificare il metodo


ConfigureCrystalReports() in modo da fare riferimento al
codice di accesso al database

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, sopra la riga
che collega il report al controllo CrystalReportViewer.
2. All’interno delle interruzioni di riga, dichiarare e creare un’istanza della classe ConnectionInfo.

Nota
Per rendere accessibile la classe ConnectionInfo, includere un'istruzione "Imports" [Visual Basic] o
"using" [C#] all'inizio della classe di codice sottostante per lo spazio dei nomi CrystalDecisions.Shared.
(tale dichiarazione è stata aggiunta in Impostazione di un progetto [pagina 14]).

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()

ConnectionInfo connectionInfo = new ConnectionInfo();

3. Impostare le proprietà DatabaseName, UserID e Password dell’istanza ConnectionInfo.

Nota
Per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Nel codice scritto, sostituire la password di esempio 1234 (riportata in di seguito) con una password
personalizzata.

myConnectionInfo.DatabaseName = "Northwind"
myConnectionInfo.UserID = "limitedPermissionAccount"
myConnectionInfo.Password = "
1234"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 355
connectionInfo.DatabaseName = "Northwind";
connectionInfo.UserID = "limitedPermissionAccount";
connectionInfo.Password = "
1234";

4. Inserire una chiamata al metodo SetDBLogonForReport(), passando l'istanza ConnectionInfo e il report


NorthwindCustomers.

SetDBLogonForReport(myConnectionInfo, northwindCustomersReport)

SetDBLogonForReport(connectionInfo, northwindCustomersReport);

Risultati

Dopo la chiamata si trova il codice originale che collega il report al controllo CrystalReportViewer.

A questo punto è possibile creare ed eseguire il progetto. Il report dovrebbe essere caricato correttamente,
perché è stato aggiunto codice per accedere al database.

1.5.2.2.3.3 Per verificare il caricamento del report


NorthwindCustomers

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report NorthwindCustomers viene visualizzato.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

Il report NorthwindCustomers viene visualizzato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
356 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.2.4 Aggiunta della possibilità di modificare la posizione
del database in fase di esecuzione

In questa sezione viene descritto come modificare la posizione del database in fase di esecuzione. Questa
operazione richiede solo una piccola modifica all'istanza di ConnectionInfo.

1.5.2.2.4.1 Per modificare la posizione del database in fase


di esecuzione

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, dopo la riga
che dichiara e crea l'istanza di ConnectionInfo.
2. All'interno delle interruzioni di riga, impostare la proprietà ServerName dell'istanza di ConnectionInfo.

Nota
Nel codice scritto, sostituire il nome del server di esempio DevDatabase (riportato in basso) con quello del
proprio server.

myConnectionInfo.ServerName = "DevDatabase"

connectionInfo.ServerName = "DevDatabase";

1.5.2.2.4.2 Per verificare che il report possa essere


reimpostato per un server di database alternativo in fase di
esecuzione

Contesto

A questo punto è possibile creare ed eseguire il progetto. In fase di esecuzione, il report dovrebbe essere
reindirizzato al server di database alternativo.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 357
2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report NorthwindCustomers viene visualizzato.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.2.5 Appendice: Miglioramenti del codice di accesso al


database

Seguendo l'esercitazione, è stato impostato il codice per modificare la posizione del database in fase di
esecuzione. In questo esempio, il server di database utilizzato è lo stesso con la differenza è viene chiamato
esplicitamente con il nome.

È comunque possibile modificare la stringa del nome del server di database per specificare un altro server che
contenga il database Northwind. Se si utilizza SAP Crystal Reports con Visual Studio 2005 o 2008 è possibile
accedere all'API avanzata per l'accesso a un database SQL Server protetto. L'API di SAP Crystal Reports consente
di ridurre al minimo la quantità di codice necessaria per accedere al database.

Nelle procedure precedenti veniva illustrato come creare il metodo di supporto SetDBLogonForReport() che
utilizza un ciclo foreach per impostare la proprietà ConnectionInfo di ciascuna tabella nel report Crystal.

In questa esercitazione viene illustrato come eliminare il metodo di supporto e aggiungere codice per utilizzare la
classe DataSourceConnections dallo spazio dei nomi CrystalDecisions.Shared o il metodo
SetDatabaseLogon() dalla classe ReportDocument.

La classe DataSourceConnections è un ArrayList contenente le istanze ConnectionInfo di tutte le


connessioni utilizzate dal report Crystal. È possibile recuperare le istanze ConnectionInfo a un determinato
livello di indice, quindi chiamare SetLogon() o SetConnection() per passare le informazioni di accesso al
report.

Il metodo SetLogon() consente di impostare il nome utente e la password. Questo metodo utilizza il server e il
database predefiniti specificati nel report. Il metodo SetConnection() consente di impostare il nome del server,
il nome del database, il nome utente e password.

Per utilizzare il nuovo codice API, è necessario completare le istruzioni riportate in Creazione di un report
connesso a un database SQL Server protetto [pagina 347] e Collegamento del report [pagina 349].

Quindi, è possibile utilizzare uno dei seguenti metodi API avanzati:

● Utilizzo della classe DataSourceConnections per l'accesso al database [pagina 360]


● Utilizzo del metodo SetDatabaseLogon() della classe ReportDocument [pagina 362]

Se sono state completate tutte le procedure riportate in Esercitazione: Accesso a un database SQL Server protetto
mediante l'autenticazione SQL [pagina 346], prima di poter utilizzare uno dei metodi API avanzati è necessario
eliminare le righe di codice indicate in Modifica del progetto per l'accesso al database [pagina 359].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
358 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.2.5.1 Modifica del progetto per l'accesso al database

Se sono state completate tutte le procedure riportate in Esercitazione: Accesso a un database SQL Server protetto
mediante l'autenticazione SQL [pagina 346], è necessario eliminare le righe di codice indicate nella seguente
procedura.

1.5.2.2.5.1.1 Per modificare il progetto in modo da utilizzare


l'API avanzata di SAP Crystal Reports

Procedura

1. Aprire il progetto completato per questa esercitazione.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. Eliminare il metodo di supporto SetDBLogonForReport().
5. Nel metodo ConfigureCrystalReports(), eliminare le seguenti righe di codice:
a) Eliminare il codice che dichiara un'istanza della classe ConnectionInfo.
b) Eliminare il codice che utilizza le proprietà ServerName, DatabaseName, UserID e Password della classe
ConnectionInfo.
c) Eliminare la chiamata al metodo SetDBLogonForReport().

Risultati

A questo punto, il metodo ConfigureCrystalReports() è costituito da due righe di codice.

Private Sub ConfigureCrystalReports()


northwindCustomersReport = new NorthwindCustomers()
myCrystalReportViewer.ReportSource = northwindCustomersReport
End Sub

private void ConfigureCrystalReports()


{
northwindCustomersReport = new NorthwindCustomers();
crystalReportViewer.ReportSource = northwindCustomersReport;
}

Ora è possibile scegliere di utilizzare uno dei seguenti metodi API avanzati:

● Utilizzo della classe DataSourceConnections per l'accesso al database [pagina 360]


● Utilizzo del metodo SetDatabaseLogon() della classe ReportDocument [pagina 362]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 359
1.5.2.2.5.2 Utilizzo della classe DataSourceConnections per
l'accesso al database

In questa sezione viene descritto come aggiungere due righe di codice per accedere a un database SQL Server. È
necessario recuperare l'istanza DataSourceConnections, quindi impostare le informazioni di accesso al database
mediante SetLogon() o SetConnection().

● È necessario creare un progetto in base alle istruzioni riportate in Creazione di un report connesso a un
database SQL Server protetto [pagina 347] e Collegamento del report [pagina 349].
● Oppure è necessario creare un progetto in base alle istruzioni riportate in Modifica del progetto per l'accesso
al database [pagina 359].

Se si desidera utilizzare il server e il database predefiniti, chiamare il metodo SetLogon() con nome utente e
password.

In caso contrario, per utilizzare un altro server o database, chiamare il metodo SetConnection() con il proprio
nome di server, nome di database, nome utente e password.

1.5.2.2.5.2.1 Per utilizzare il metodo SetLogon() della classe


DataSourceConnections

Procedura

1. Tra le due righe di codice all'interno di ConfigureCrystalReports(), recuperare l'istanza


DataSourceConnections dalla proprietà DataSourceConnections dell'istanza NorthwindCustomers.

Dim myDataSourceConnections As DataSourceConnections =


northwindCustomersReport.DataSourceConnections

DataSourceConnections dataSourceConnections =
northwindCustomersReport.DataSourceConnections;

2. Recuperare IConnectionInfo al livello di indice 0 dell'istanza DataSourceConnections.

Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0)

IConnectionInfo connectInfo = dataSourceConnections[0];

3. Chiamare il metodo SetLogon() con i propri nome utente e password.

Nota
Per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
360 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nel codice scritto, sostituire la password di esempio 1234 (riportata in di seguito) con una password
personalizzata.

myConnectInfo.SetLogon("limitedPermissionAccount", "1234")

connectInfo.SetLogon("limitedPermissionAccount", "1234");

1.5.2.2.5.2.2 Per utilizzare il metodo SetConnection() della


classe DataSourceConnections

Procedura

1. Tra le due righe di codice all'interno di ConfigureCrystalReports(), recuperare l'istanza


DataSourceConnections dalla proprietà DataSourceConnections dell'istanza NorthwindCustomers.

Dim myDataSourceConnections As DataSourceConnections =


northwindCustomersReport.DataSourceConnections

DataSourceConnections dataSourceConnections =
northwindCustomersReport.DataSourceConnections;

2. Recuperare IConnectionInfo al livello di indice 0 dell'istanza DataSourceConnections.

Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0)

IConnectionInfo connectInfo = dataSourceConnections[0];

3. Chiamare il metodo SetConnection() con i propri nome di server, nome di database, nome utente e
password.

Nota
Per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Nel codice scritto, sostituire la password di esempio 1234 (riportata in di seguito) con una password
personalizzata.

myConnectInfo.SetConnection("ServerName", "Northwind",
"limitedPermissionAccount", "1234")

connectInfo.SetConnection("ServerName", "Northwind", "limitedPermissionAccount",


"1234");

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 361
Risultati

A questo punto è possibile creare ed eseguire il progetto per accedere al database SQL Server protetto.

1.5.2.2.5.3 Utilizzo del metodo SetDatabaseLogon() della


classe ReportDocument

Contesto

Tra le due righe di codice in ConfigureCrystalReports(), chiamare il metodo SetDatabaseLogon()


dell'istanza NorthwindCustomers e passare uno dei seguenti insiemi di parametri:

Procedura

1. Chiamare il metodo SetDatabaseLogon() con i propri nome utente e password.

Nota
Per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Nel codice scritto, sostituire la password di esempio 1234 (riportata in di seguito) con una password
personalizzata.

northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234")

northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234");

2. Oppure chiamare il metodo SetDatabaseLogon() con i propri nome di server, nome di database, nome
utente e password.

Nota
Questo metodo non consente di cambiare server o database ed obbliga l'utente ad utilizzare il server e il
database predefiniti specificati nel report.

Nel codice scritto, sostituire la password di esempio 1234 (riportata in di seguito) con una password
personalizzata.

northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234",
"ServerName", "Northwind")

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
362 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234",
"ServerName", "Northwind");

1.5.2.3 Esercitazione: Accesso a un database SQL Server


protetto mediante la protezione integrata

In questa esercitazione viene descritto come aggiungere codice di accesso per visualizzare un report contenente
informazioni provenienti da un database SQL Server protetto.

Introduzione

Per accedere a un database SQL Server protetto, utilizzare classi del modello a oggetti ReportDocument.

L'oggetto ReportDocument dispone di una proprietà Database che restituisce un'istanza di Database. Questa
istanza di Database contiene le informazioni di database per il report, inclusa una proprietà Tables che
restituisce un'istanza di classe indicizzata Tables. Le singole istanze Table possono essere recuperate dalla
classe indicizzata Tables.

L'accesso viene eseguito a livello granulare di ogni istanza di Table, a cui deve essere concesso l'accesso al
database SQL Server protetto. Questa operazione viene eseguita inserendo le informazioni di accesso in
un'istanza di ConnectionInfo e quindi, in un ciclo for, applicando l'istanza di ConnectionInfo alla proprietà
ConnectionInfo di ogni istanza di Table.

Le proprietà della classe includono includono:

● ServerName
● DatabaseName
● UserID (non utilizzato nell'esercitazione)
● Password (non utilizzata nell'esercitazione)
● IntegratedSecurity

Nota
per un'esercitazione che utilizzi l'autenticazione SQL e quindi le proprietà UserID e Password invece della
proprietà IntegratedSecurity, vedere Esercitazione: Accesso a un database SQL Server protetto mediante
l'autenticazione SQL [pagina 346].

Se si sceglie di impostare solo le proprietà DatabaseName e IntegratedSecurity, si accederà al server


predefinito e al database specificato nel report. Se, invece, si sceglie di assegnare la proprietà ServerName, in
fase di esecuzione è possibile reindirizzare il report a un server diverso.

Iniziare creando un report contenente dati provenienti da un database SQL Server protetto.

L'esercitazione può essere completata anche utilizzando classi del modello a oggetti CrystalReportViewer, ma si
consiglia di utilizzare il modello a oggetti ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 363
Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web C#: CS_Web_RDObjMod_DBLogonIntegratedSecurity


● Progetto Windows C#: CS_Win_RDObjMod_DBLogonIntegratedSecurity
● Sito Web in Visual Basic: VB_Web_RDObjMod_DBLogonIntegratedSecurity
● Progetto Visual Basic Windows: VB_Win_RDObjMod_DBLogonIntegratedSecurity

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Directory dei report di esempio [pagina 14]

1.5.2.3.1 Creazione di un report connesso a un database SQL


Server protetto mediante la protezione integrata

Iniziare creando un report le cui informazioni provengano dal database Northwind.

Nota
Northwind è un database di esempio fornito con SQL Server.

Per questa esercitazione sono necessarie alcune operazioni di configurazione.

1.5.2.3.1.1 Prerequisiti di configurazione del database

Procedura

1. Configurazione di SQL Server:

○ Se è stato installato SQL Server (o la versione OEM, MSDE), è necessario configurarlo in modo che accetti
l'autenticazione Windows per questa esercitazione.
○ Se SQL Server (o la versione OEM, MSDE) non è stato installato, per questa esercitazione è necessario
installare MSDE con l'autenticazione Windows (valore predefinito).
2. È necessario installare il database Northwind fornito con SQL Server e verificare che accetti l’Autenticazione
Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
364 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Una volta configurato SQL Server e il database Northwind in base alle istruzioni fornite nelle sezioni indicate, è
possibile creare un report le cui informazioni provengano in modo sicuro dal database Northwind.

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di
un progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

1.5.2.3.1.2 Per creare un report con dati protetti provenienti


dal database Northwind

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Crystal
Report.
3. Nel campo Nome, inserire il nome "NorthwindCustomers.rpt", quindi fare clic su Apri.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
Viene visualizzata la finestra di dialogo Procedura guidata per la creazione di report standard.
6. Nel riquadro Origini dati disponibili, espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella OLE DB (ADO).
Viene visualizzata la finestra OLE DB (ADO).
8. Selezionare Provider Microsoft OLE DB per SQL Server, quindi fare clic su Avanti.
9. Nel campo Server, inserire il nome del server di database.
10. Selezionare la casella di controllo Protezione integrata.
11. Dall’elenco a discesa Database, selezionare "Northwind".
12. Fare clic su Fine.
La cartella OLE DB è ora estesa, mostra il server di database e, al suo interno, il database Northwind.
13. Espandere i nodi Northwind, dbo e Tables, quindi selezionare la tabella Customers.
14. Fare clic sul simbolo > per spostare la tabella nel riquadro Tabelle selezionate, quindi scegliere Avanti.
15. Tenendo premuto il tasto Ctrl fare clic su CompanyName, ContactName e City.
16. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
17. Nel riquadro Campi disponibili, in Campi report, selezionare Customer.City, fare clic sul simbolo > per
spostare il campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report NorthwindCustomers viene creato e caricato nella finestra principale di Visual Studio.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 365
Risultati

A questo punto è possibile collegare il report al controllo CrystalReportViewer e impostare l’accesso al database a
livello di codice.

1.5.2.3.2 Collegamento del report

In Impostazione di un progetto [pagina 14]è stato inserito un controllo CrystalReportViewer nel Web Form o
nel Windows Form. Nel passaggio precedente è stato aggiunto un report NorthwindCustomers al progetto.

In questa sezione viene creata un'istanza del report NorthwindCustomers da collegare al controllo
CrystalReportViewer. Viene quindi verificato se è possibile visualizzare correttamente il report quando i valori
correnti del campo parametro non sono ancora stati impostati.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

● Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report come report
incorporato.
● Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report come
report non incorporato.

1.5.2.3.2.1 Per creare un'istanza del report


NorthwindCustomers come report incorporato e collegarla al
controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione di livello classe per la classe wrapper del report NorthwindCustomers,
utilizzando il nome di variabile northwindCustomersReport. Impostare il modificatore di accesso su
private.

Private northwindCustomersReport As NorthwindCustomers

private NorthwindCustomers northwindCustomersReport;

4. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
366 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

northwindCustomersReport = New NorthwindCustomers()

northwindCustomersReport = new NorthwindCustomers();

5. Nella riga successiva, sotto la creazione dell’istanza del report, collegare la proprietà ReportSource del
controllo CrystalReportViewer alla classe del report di cui è stata creata l’istanza (nome variabile:
northwindCustomersReport).

myCrystalReportViewer.ReportSource = northwindCustomersReport

crystalReportViewer.ReportSource = northwindCustomersReport;

Risultati

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per accedere al database non è stato ancora scritto.

1.5.2.3.2.2 Per creare un'istanza del report


NorthwindCustomers come report non incorporato e collegarla
al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile northwindCustomersReport. Impostare il modificatore di accesso su private.

Private northwindCustomersReport As ReportDocument

private ReportDocument northwindCustomersReport;

Nota
La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il
quale è stata aggiunta una dichiarazione "Imports" [Visual Basic] o "using" [C#] in Impostazione

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 367
di un progetto [pagina 14]. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio
dei nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.

4. All'interno del metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14]),


creare un'istanza della classe ReportDocument.

northwindCustomersReport = New ReportDocument()

northwindCustomersReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarla al percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt")

string reportPath = Server.MapPath("NorthwindCustomers.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"NorthwindCustomers.rpt"

string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passare ad esso la variabile di stringa


reportPath.

northwindCustomersReport.Load(reportPath)

northwindCustomersReport.Load(reportPath);

7. Collegare la proprietà ReportSource di CrystalReportViewer all'istanza di ReportDocument.

myCrystalReportViewer.ReportSource = northwindCustomersReport

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
368 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
crystalReportViewer.ReportSource = northwindCustomersReport;

Risultati

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di
report non incorporato, il nome di variabile utilizzato è sempre lo stesso: northwindCustomersReport. Questo
consente di utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per accedere al database non è stato ancora scritto.

1.5.2.3.2.3 Per verificare il caricamento del report


NorthwindCustomers

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Il report NorthwindCustomers non viene visualizzato poiché non è stato aggiunto il codice di accesso al
database.

Nota
I risultati possono variare, in base alla versione di SAP Crystal Reports in uso. Ad esempio, se è installato
SAP Crystal Reports Developer, viene visualizzato un form per richiedere le informazioni di accesso al
database per il report. Questa è una nuova funzione di SAP Crystal Reports Developer. Se si sta utilizzando
una versione precedente di SAP Crystal Reports, viene generata un’eccezione. In entrambi i casi, per
creare un'applicazione completamente funzionale è necessario seguire la procedura successiva.

5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 369
1.5.2.3.3 Aggiunta del codice di accesso del report

A questo punto è possibile aggiungere il codice di accesso alla classe di codice sottostante. Iniziare creando un
metodo di supporto privato, SetDBLogonForReport().

1.5.2.3.3.1 Per creare e codificare il metodo


SetDBLogonForReport()

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.
2. Alla fine della classe creare un nuovo metodo privato denominato SetDBLogonForReport() con due
parametri, ConnectionInfo e ReportDocument.

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal


myReportDocument As ReportDocument)

End Sub

private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument


reportDocument)
{
}

3. All'interno di questo metodo, recuperare l'istanza Tables dalla proprietà Tables della proprietà Database del
parametro ReportDocument.

Nota
Tables è una classe indicizzata contenente istanze della classe Table.

Dim myTables As Tables = myReportDocument.Database.Tables

Tables tables = reportDocument.Database.Tables;

4. Creare un ciclo foreach che passi attraverso ogni istanza Table nell’istanza della classe indicizzata Tables.

Nota
È necessario includere il percorso completo dello spazio dei nomi per la classe Table, in modo da
distinguerla dalla classe Table dello spazio dei nomi System.Web.UI.WebControls.

For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables

Next

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
370 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
}

5. All'interno del ciclo foreach, recuperare l’istanza TableLogonInfo dalla proprietà LogOnInfo dell’istanza Table.

Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo

TableLogOnInfo tableLogonInfo = table.LogOnInfo;

6. In ciascun ciclo foreach, impostare la proprietà ConnectionInfo di TableLogonInfo sul parametro


ConnectionInfo.

myTableLogonInfo.ConnectionInfo = myConnectionInfo

tableLogonInfo.ConnectionInfo = connectionInfo;

7. All'interno del ciclo foreach, passare l’istanza TableLogonInfo come parametro al metodo ApplyLogonInfo
dell’istanza Table.

myTable.ApplyLogOnInfo(myTableLogonInfo)

table.ApplyLogOnInfo(tableLogonInfo);

Risultati

Con questa procedura è stato creato un metodo per impostare l’accesso al database. A questo punto diventa
necessario modificare il metodo ConfigureCrystalReports() in modo da fare riferimento al metodo appena
creato e consentire al report di rilevare le informazioni di accesso al database.

A tale scopo, occorre effettuare due operazioni:

● Configurare l'istanza ConnectionInfo.


● Chiamare il metodo SetDBLogonForReport().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 371
1.5.2.3.3.2 Per modificare il metodo
ConfigureCrystalReports() in modo da fare riferimento al
codice di accesso al database

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, sopra la riga
che collega il report al controllo CrystalReportViewer.
2. All’interno delle interruzioni di riga, dichiarare e creare un’istanza della classe ConnectionInfo.

Nota
Per rendere accessibile la classe ConnectionInfo, includere un'istruzione "Imports" [Visual Basic] o
"using" [C#] all'inizio della classe di codice sottostante per lo spazio dei nomi CrystalDecisions.Shared.
(tale dichiarazione è stata aggiunta in Impostazione di un progetto [pagina 14]).

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()

ConnectionInfo connectionInfo = new ConnectionInfo();

3. Impostare le proprietà DatabaseName e IntegratedSecurity dell’istanza di ConnectionInfo.

myConnectionInfo.DatabaseName = "Northwind"
myConnectionInfo.IntegratedSecurity = True

connectionInfo.DatabaseName = "Northwind";
connectionInfo.IntegratedSecurity = true;

4. Inserire una chiamata al metodo SetDBLogonForReport(), passando l'istanza ConnectionInfo e il report


NorthwindCustomers.

SetDBLogonForReport(myConnectionInfo, northwindCustomersReport)

SetDBLogonForReport(connectionInfo, northwindCustomersReport);

Risultati

Dopo la chiamata si trova il codice originale che collega il report al controllo CrystalReportViewer.

A questo punto è possibile creare ed eseguire il progetto. Il report dovrebbe essere caricato correttamente,
perché è stato aggiunto codice per accedere al database.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
372 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.3.3.3 Per verificare il caricamento del report
NorthwindCustomers

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report NorthwindCustomers viene visualizzato.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

Nella sezione successiva viene descritto come modificare la posizione del database in fase di esecuzione.

1.5.2.3.4 Aggiunta della possibilità di modificare la posizione


del database in fase di esecuzione

In questa sezione viene descritto come modificare la posizione del database in fase di esecuzione. Questa
operazione richiede solo una piccola modifica all'istanza di ConnectionInfo.

1.5.2.3.4.1 Per modificare la posizione del database in fase


di esecuzione

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, dopo la riga
che dichiara e crea l'istanza di ConnectionInfo.
2. All'interno delle interruzioni di riga, impostare la proprietà ServerName dell'istanza di ConnectionInfo.

Nota
Nel codice scritto, sostituire il nome del server di esempio DevDatabase (riportato in basso) con quello del
proprio server.

myConnectionInfo.ServerName = "DevDatabase"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 373
connectionInfo.ServerName = "DevDatabase";

Risultati

A questo punto è possibile creare ed eseguire il progetto. In fase di esecuzione, il report dovrebbe essere
reindirizzato al server di database alternativo.

1.5.2.3.4.2 Per verificare che il report possa essere


reimpostato per un server di database alternativo in fase di
esecuzione

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report NorthwindCustomers viene visualizzato.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.3.5 Configurazione con il metodo SetConnection

Contesto

In questa sezione viene descritto come applicare tutte e tre le modifiche, ovvero al nome del server, al nome del
database e all'impostazione della protezione integrata, mediante il metodo SetConnection(). Quest’operazione
richiede solo una piccola modifica all'istanza ConnectionInfo.

Procedura

1. Nel metodo ConfigureCrystalReports(), dopo la riga che dichiara e crea l'istanza della classe
ConnectionInfo, eliminare le righe di codice che assegnano le proprietà ServerName, DatabaseName e
IntegratedSecurity.
2. Inserire una nuova riga di codice per chiamare il metodo SetConnection() dell'istanza ConnectionInfo e
passare a questo metodo il nome del server, il nome del database e l'impostazione della protezione integrata.

myConnectionInfo.SetConnection("DevDatabase", "Northwind", True)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
374 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
connectionInfo.SetConnection("DevDatabase", "Northwind", true);

Risultati

A questo punto è possibile creare ed eseguire il progetto.

1.5.2.4 Esercitazione: Accesso a un database SQL Server


protetto con un sottoreport

In questa esercitazione si esaminerà un altro problema che potrebbe verificarsi durante l'accesso a un database
SQL Server protetto: cosa accade se il report che richiede l'accesso a un database SQL Server protetto contiene
un sottoreport?

Introduzione

In questa esercitazione viene descritto come soddisfare i requisiti di accesso per il sottoreport.

È necessario apportare due modifiche al progetto creato nell'esercitazione precedente:

● Aggiungere un sottoreport al report originale.


Questo sottoreport fa riferimento alla tabella Orders del database Northwind. La tabella Orders è associata
alla tabella Customers utilizzata nell'esercitazione precedente da una chiave esterna CustomerID.
● Aggiungere un nuovo metodo.
Il metodo recupera i sottoreport dal report principale, quindi passa ciascun sottoreport al metodo di supporto
SetDBLogonForReport().

L'esercitazione può essere completata anche con classi del modello a oggetti CrystalReportViewer, ma si
consiglia di utilizzare il modello a oggetti ReportDocument.

Per creare questa esercitazione con il modello a oggetti CrystalReportViewer, vedere Esercitazione: Accesso a un
database SQL Server protetto mediante la protezione integrata [pagina 239].

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_RDObjMod_DBLogonSubrpt

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 375
● Progetto Windows C#: CS_Win_RDObjMod_DBLogonSubrpt
● Sito Web in Visual Basic: VB_Web_RDObjMod_DBLogonSubrpt
● Progetto Windows Visual Basic: VB_Win_RDObjMod_DBLogonSubrpt

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.2.4.1 Aggiunta di un sottoreport al report originale

Iniziare aggiungendo un sottoreport al report originale.

1.5.2.4.1.1 Per aggiungere un sottoreport

Procedura

1. Aprire il progetto creato nell'esercitazione precedente, Esercitazione: Accesso a un database SQL Server
protetto mediante la protezione integrata [pagina 363].
2. In Esplora soluzioni, fare doppio clic sul report NorthwindCustomers per aprirlo.
3. Fare clic con il pulsante destro del mouse sulla barra grigia Dettagli, quindi selezionare Inserisci sezione sotto.
4. Fare clic con il pulsante destro del mouse sulla nuova sezione Dettagli b appena creata, selezionare Inserisci,
quindi fare clic su Sottoreport.
Viene visualizzato un riquadro grigio intorno al cursore del mouse.
5. Trascinare il rettangolo grigio nella nuova sezione Dettagli b, quindi fare clic per rilasciarlo.
6. Nella scheda Sottoreport della finestra di dialogo Inserisci sottoreport, selezionare Crea un sottoreport con la
creazione guidata report.

Nota
La finestra di dialogo Inserisci sottoreport include altre opzioni che consentono di scegliere un report
esistente e sottoreport su richiesta. Per ulteriori informazioni su tali funzionalità, vedere Scheda
Sottoreport (finestra di dialogo Inserisci sottoreport) [pagina 923].

7. Nel campo Nuovo nome del report digitare "CustomerOrders".


8. Fare clic su Procedura guidata report....
9. Nel riquadro Origini dati disponibili della finestra di dialogo Procedura guidata per la creazione di report
standard, espandere la cartella Crea nuova connessione.
10. Espandere la cartella OLE DB (ADO).
La cartella contiene il server di database che è stato configurato per il report in fase di creazione del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
376 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Se il server non è visualizzato, seguire le istruzioni dell'esercitazione precedente per accedere al database
SQL Server.

11. Espandere i nodi Northwind, dbo e Tables.


12. Selezionare la tabella Ordini e fare clic sul simbolo > per spostarla nel riquadro Seleziona tabelle, quindi
scegliere Avanti.
13. Nel riquadro Campi disponibili, selezionare Order ID, Order Date, Shipped Date e Name Ship.
14. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Fine.
15. Nella finestra di dialogo Inserisci sottoreport, selezionare la scheda Collegamento.
16. Nell'elenco Campi disponibili del riquadro Campo/i del report contenitore a cui collegarsi espandere la tabella
Customers, selezionare Customer ID, quindi fare clic sul simbolo >.
17. Nel riquadro Collegamento al campo Customers.CustomerID visualizzato, lasciare invariate le selezioni
predefinite.
Tali selezioni di parametri e dati generano automaticamente una relazione tra il report principale e il
sottoreport.
18. Fare clic su OK.
Il nuovo sottoreport CustomerOrders viene visualizzato nella sezione Dettagli b del report principale.

Nota
Quando si aggiunge un sottoreport alla sezione Dettagli, il sottoreport viene visualizzato per ogni riga,
aumentando i requisiti di prestazioni del report. Se non sono necessarie informazioni sul sottoreport con
tale livello di dettaglio, posizionare il sottoreport in una sezione Gruppo invece che nella sezione Dettagli.

Risultati

A questo punto è possibile verificare le impostazioni nel sottoreport.

1.5.2.4.1.2 Per verificare le impostazioni nel sottoreport

Procedura

1. Nella sezione Dettagli, fare doppio clic sul sottoreport CustomerOrders per visualizzarlo.
Nella parte inferiore della finestra di progettazione sono presenti pulsanti di spostamento per il report
principale e il sottoreport CustomerOrders.
2. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 377
Nota
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

3. Nell'Explorer Campo, espandere Campi parametro.


4. Verificare che il campo parametro Pm-Customers.CustomerID sia stato generato automaticamente al
momento del collegamento del sottoreport.
5. Nella barra degli strumenti, fare clic su Esperto selezione.
6. Nella finestra di dialogo Esperto selezione, verificare che sia impostato il criterio Order.CustomerID è uguale a
{?Pm-Customers.CustomerID}, quindi fare clic su OK.
7. Dal menu File, scegliere Salva tutto.

Risultati

Il sottoreport CustomerOrders è stato aggiunto al report NorthwindCustomers. Nella sezione successiva viene
descritto come aggiungere il codice per impostare le informazioni di accesso al database SQL Server protetto per
tutti i sottoreport presenti nel report principale.

1.5.2.4.2 Aggiunta del codice di accesso del sottoreport

A questo punto è possibile aggiungere il codice di accesso per il sottoreport nella classe di codice sottostante.
Iniziare creando un metodo di supporto privato denominato SetDBLogonForSubreports().

1.5.2.4.2.1 Per creare e codificare il metodo


SetDBLogonForSubreports()

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe creare un nuovo metodo privato denominato SetDBLogonForSubreports() con due
parametri ConnectionInfo e ReportDocument.

Private Sub SetDBLogonForSubreports(ByVal myConnectionInfo As ConnectionInfo,


ByVal myReportDocument As ReportDocument)

End Sub

private void SetDBLogonForSubreports(ConnectionInfo connectionInfo,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
378 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
ReportDocument reportDocument)
{
}

4. All'interno del metodo, recuperare l'istanza Sections dalla proprietà Sections della proprietà
ReportDefinitiondel parametro ReportDocument.

Nota
Sections è una classe indicizzata contenente istanze della classe Section.

Dim mySections As Sections = myReportDocument.ReportDefinition.Sections

Sections sections = reportDocument.ReportDefinition.Sections;

5. Creare un ciclo foreach che passi attraverso tutte le istanze Section nell’istanza della classe indicizzata
Sections.

For Each mySection As Section In mySections

Next

foreach(Section section in sections)


{
}

6. Nel ciclo foreach, recuperare l'istanza ReportObjects dalla proprietà ReportObjects dell'istanza
Section.

Dim myReportObjects As ReportObjects = mySection.ReportObjects

ReportObjects reportObjects = section.ReportObjects;

7. Nel ciclo foreach, creare un nuovo ciclo foreach nidificato che passi attraverso tutte le istanze ReportObject
nell'istanza della classe indicizzata ReportObjects.

For Each myReportObject As ReportObject In myReportObjects

Next

foreach(ReportObject reportObject in reportObjects)


{
}

8. Nel ciclo foreach nidificato, creare un blocco condizionale che verifichi se la proprietà Kind dell'istanza
ReportObject è uguale alla selezione SubreportObject dell'enumerazione ReportObjectKind.

If myReportObject.Kind = ReportObjectKind.SubreportObject Then

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 379
End If

if(reportObject.Kind == ReportObjectKind.SubreportObject)
{
}

9. Nel blocco condizionale, eseguire il cast dell'istanza ReportObject in un'istanza SubreportObject.

Dim mySubreportObject As SubreportObject = CType(myReportObject, SubreportObject)

SubreportObject subreportObject = (SubreportObject)reportObject;

10. Sempre all'interno del blocco condizionale, dichiarare una nuova istanza di ReportDocument come variabile
subReportDocument e compilarla chiamando il metodo OpenSubreport() dell'istanza
SubreportObject .

Dim subReportDocument As ReportDocument =


mySubreportObject.OpenSubreport(mySubreportObject.SubreportName)

ReportDocument subReportDocument =
subreportObject.OpenSubreport(subreportObject.SubreportName);

11. Infine, nel blocco condizionale, chiamare il metodo SetDBLogonForReport() originale e passargli il
parametro ConnectionInfo e la nuova variabile subReportDocument.

SetDBLogonForReport(myConnectionInfo, subReportDocument)

SetDBLogonForReport(connectionInfo, subReportDocument);

1.5.2.4.2.2 Per modificare il metodo


ConfigureCrystalReports() in modo da fare riferimento al
codice di accesso al database per i sottoreport

Contesto

Con questa procedura è stato creato un metodo per recuperare tutti i possibili sottoreport come istanze di
ReportDocument. Ogni istanza ReportDocument di sottoreport viene quindi passata al metodo originale per
l'impostazione dell'accesso a un database SQL Server protetto.

A questo punto diventa necessario modificare il metodo ConfigureCrystalReports() in modo da fare


riferimento al metodo originale e consentire l'elaborazione delle informazioni di accesso al database dei
sottoreport.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
380 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Nel metodo ConfigureCrystalReports() creare nel codice una coppia di interruzioni di riga sopra la riga
che collega il report al controllo CrystalReportViewer.
2. Tra le interruzioni di riga, inserire una chiamata al metodo SetDBLogonForSubreports() passando
l'istanza ConnectionInfo e il report NorthwindCustomers.

SetDBLogonForSubreports(myConnectionInfo, northwindCustomersReport)

SetDBLogonForSubreports(connectionInfo, northwindCustomersReport);

1.5.2.4.2.3 Per verificare il caricamento del report


NorthwindCustomers

Contesto

Dopo la chiamata si trova il codice originale che collega il report al controllo CrystalReportViewer.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il report e il sottoreport vengano caricati
correttamente, poiché è stato scritto il codice per l'accesso al database di qualsiasi sottoreport.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report NorthwindCustomers, con il nuovo sottoreport CustomerOrders, viene visualizzato correttamente.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.5 Esercitazione: Lettura e impostazione di parametri


discreti

In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 381
Introduzione

Un parametro discreto è un valore singolo, al contrario di un parametro di intervallo che si riferisce a un intervallo
di valori. Agli elementi di testo (come le città) si accede in genere tramite parametri discreti. Agli elementi
numerici (come gli stipendi dei dipendenti) si accede in genere tramite parametri di intervallo.

In questa esercitazione viene impostato un valore per un parametro discreto che consente di visualizzare un
report clienti basato su un campo. Il report mostra solo i clienti che vivono nelle città selezionate da un apposito
elenco. L’elenco delle città deriva dai valori predefiniti del parametro Città. Tali valori predefiniti sono incapsulati
all'interno nel report.

Iniziare creando un report clienti con un parametro Città. I dati del report sono derivati dal database di esempio
fornito con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio. Quando si crea un’istanza
del report nel codice, si crea un ArrayList contenente nomi di città (Paris, Tokyo) e si passa l’istanza ArrayList a un
metodo di supporto che imposta tali nomi come i valori correnti del parametro Città. A questo punto, collegare il
report al controllo CrystalReportViewer e visualizzare il report mostrando solo i clienti che vivono a Parigi e Tokyo.

Nella parte successiva dell'esercitazione vengono effettuate le seguenti operazioni:

● Creazione di un metodo che recupera tutti i valori predefiniti e li restituisce in un ArrayList.


● Aggiunta di un controllo ListBox al form e compilazione dello stesso dall’ArrayList.
● Aggiunta di un controllo Button per rivisualizzare il report in base alle selezioni nel controllo ListBox.

Nella parte finale dell’esercitazione, viene codificato l’evento clic del controllo Button per recuperare tutti gli
elementi selezionati nel controllo ListBox, quindi tali valori vengono impostati come valori correnti del parametro
Città. Il report viene nuovamente visualizzato mostrando solo i clienti che vivono nelle città selezionate nel
controllo ListBox.

Questa esercitazione può essere completata anche con classi del modello a oggetti CrystalReportViewer, ma si
consiglia di utilizzare il modello a oggetti ReportDocument.

Per creare questa esercitazione con il modello a oggetti CrystalReportViewer, vedere Esercitazione: Accesso a un
database SQL Server protetto mediante la protezione integrata [pagina 239].

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_RDObjMod_Parameters


● Progetto Windows C#: CS_Win_RDObjMod_Parameters
● Sito Web in Visual Basic: VB_Web_RDObjMod_Parameters
● Progetto Windows Visual Basic: VB_Win_RDObjMod_Parameters

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
382 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Directory dei report di esempio [pagina 14]

1.5.2.5.1 Creazione di un report con parametri

Per iniziare, creare un report con informazioni provenienti dal database Xtreme.

1.5.2.5.1.1 Creazione di un report con parametri

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Report
Crystal.
3. Nel campo Nome immettere il nome CustomersByCity.rpt e fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.

Nota
in Visual Studio .NET 2003, dove SAP Crystal Reports non è stato aggiornato alla versione completa, la
cartella Crea nuova connessione non esiste; il contenuto viene riportato nel livello superiore.

7. Dalla sottocartella, espandere la cartella ODBC (RDO).


8. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi fare clic su
Fine.
La cartella ODBC (RDO) si espande e visualizza il database Xtreme.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 383
9. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
10. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
11. Espandere la tabella Clienti, quindi tenendo premuto il tasto Ctrl fare clic su Nome cliente, Titolo contatto,
Indirizzo1, Cognome contatto e Città.
12. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
13. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report CustomersByCity viene creato e caricato nella finestra principale di Visual Studio.

Risultati

A questo punto è possibile aggiungere un parametro denominato Città e compilarlo con i valori predefiniti.

1.5.2.5.1.2 Aggiunta di un parametro Città

Contesto

Explorer Campo deve essere visibile poiché garantisce l’accesso alle diverse funzionalità del report, inclusi i
parametri.

Procedura

1. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Nota
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

2. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi parametro, quindi selezionare Nuovo….
3. Nella finestra di dialogo Crea campo parametro:
a) Impostare Nome su Città.
b) Impostare Tipo su Stringa. Impostare Testo prompt su Selezionare una o più città.
c) Impostare Campo valore su Città.
d) Fare clic su Azioni, quindi selezionare Aggiungi tutti i valori del database. Verrà così aggiunto al riquadro
centrale l'intero elenco di città.
e) Nel riquadro Opzioni dei valori impostare Testo prompt su Selezionare una o più città.
f) Nello stesso riquadro impostare Consenti valori multipli su True.
g) Impostare Consenti valori discreti su True.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
384 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. Fare clic su OK per chiudere la finestra di dialogo Crea campo parametro.

Risultati

Il campo Valori predefiniti è stato impostato per contenere un lungo elenco di città. Più avanti nel corso di questa
esercitazione, si accede a questo elenco di valori predefiniti a livello di codice, tramite la proprietà DefaultValues
della classe ParameterFieldDefinition.

A questo punto, utilizzare l’Esperto selezione per impostare una formula che connetta la colonna Città del
database al campo parametro Città appena creato.

1.5.2.5.1.3 Collegamento del parametro Città alla colonna


Città del database

Procedura

1. Nella barra degli strumenti di Crystal Reports, fare clic su Esperto selezione.
2. Nella finestra di dialogo Scegli campo, in Campi report, selezionare Clienti.Città, quindi scegliere OK.
3. Nella finestra di dialogo Esperto selezione, all'interno della scheda Clienti.Città, impostare l'elenco a discesa su
è uguale a.
4. Nel nuovo elenco a discesa visualizzato a destra, selezionare la prima opzione disponibile, {?Città}, quindi fare
clic su OK.

Nota
questa selezione, {?Città}, corrisponde al parametro Città creato in precedenza.

5. Dal menu File, scegliere Salva tutto.

Risultati

È ora possibile collegare il report al controllo CrystalReportViewer e impostare il parametro Città con due valori
iniziali, Parigi e Tokyo.

1.5.2.5.2 Collegamento del report

Durante lo svolgimento delle istruzioni riportate nella sezione Impostazione di un progetto [pagina 14] di
preparazione a questa esercitazione, un controllo CrystalReportViewer è stato inserito nel Web Form o nel
Windows Form. Nei passaggi precedenti, il report CustomerByCity è stato aggiunto al progetto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 385
In questa sezione viene descritto come creare e collegare un'istanza del report CustomersByCity al controllo
CrystalReportViewer. Viene quindi verificato se è possibile visualizzare correttamente il report quando i valori
correnti del campo parametro non sono ancora stati impostati.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

● Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report come report
incorporato.
● Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report come
report non incorporato.

1.5.2.5.2.1 Per creare un'istanza del report CustomersByCity


come report incorporato e collegarla al controllo
CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante relativa al Web Form o al
Windows Form.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report CustomersByCity,
utilizzando il nome di variabile customersByCityReport. Impostare il modificatore di accesso su private.

Private customersByCityReport As CustomersByCity

private CustomersByCity customersByCityReport;

4. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

customersByCityReport = New CustomersByCity()

customersByCityReport = new CustomersByCity();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
386 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Nella riga successiva, sotto la creazione dell’istanza del report, collegare la proprietà ReportSource del
controllo CrystalReportViewer alla classe del report di cui è stata creata l’istanza (nome variabile:
customersByCityReport).

myCrystalReportViewer.ReportSource = customersByCityReport

crystalReportViewer.ReportSource = customersByCityReport;

Nota
L'istanza del controllo CrystalReportViewer è accessibile nel codice poiché il controllo è stato aggiunto al
Web Form o al Windows Form. Se IntelliSense non riconosce l'istanza del controllo CrystalReportViewer,
verificare che il controllo CrystalReportViewer sia stato aggiunto come dichiarazione a livello di classe a
questa classe di codice sottostante.

1.5.2.5.2.2 Per creare un'istanza del report CustomersByCity


come report non incorporato e collegarla al controllo
CrystalReportViewer

Contesto

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per l'impostazione di un valore per campo parametro Città non è stato ancora scritto.

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile customersByCityReport. Impostare il modificatore di accesso su private.

Private customersByCityReport As ReportDocument

private ReportDocument customersByCityReport;

Nota
La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il
quale è stata aggiunta una dichiarazione "Imports" [Visual Basic] o "using" [C#] in Impostazione
di un progetto [pagina 14]. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio
dei nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 387
4. Nel metodo ConfigureCrystalReports() (aggiunto durante una delle procedure riportate in Impostazione
di un progetto [pagina 14]), creare un'istanza della classe ReportDocument.

customersByCityReport = New ReportDocument()

customersByCityReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("CustomersByCity.rpt")

string reportPath = Server.MapPath("CustomersByCity.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"CustomersByCity.rpt"

string reportPath = Application.StartupPath + "\\" + "CustomersByCity.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

customersByCityReport.Load(reportPath)

customersByCityReport.Load(reportPath);

7. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo
CrystalReportViewer all'istanza ReportDocument.

myCrystalReportViewer.ReportSource = customersByCityReport

crystalReportViewer.ReportSource = customersByCityReport;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
388 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di
report non incorporato, il nome di variabile utilizzato è sempre lo stesso: customersByCityReport. Questo
consente di utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per l'impostazione di un valore per campo parametro Città non è stato ancora scritto.
Più avanti nel corso di questa esercitazione viene descritto come aggiungere un valore per il campo parametro
Città.

1.5.2.5.2.3 Per verificare il caricamento del report


CustomersByCity

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Il report CustomersByCity non verrà visualizzato. Per visualizzarlo, è necessario aggiungere un valore per il
campo parametro Città, più avanti nel corso di questa esercitazione.

Nota
I risultati possono variare, in base alla versione di SAP Crystal Reports in uso. Nelle versioni più recenti,
viene visualizzato un form in cui si richiede di inserire i valori per il parametro del report. In quelle
precedenti, invece, viene generata l'eccezione "Valore corrente del campo parametro mancante". In
entrambi i casi, per creare un'applicazione completamente funzionale è necessario aggiungere codice
supplementare.

5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.5.3 Impostazione manuale di parametri nel codice

A questo punto è possibile impostare due valori ("Paris" e "Tokyo") nel campo parametro Città del report
CustomersByCity.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 389
Ciò implica l'esigenza di aggiungere nuovo codice, operazione che è opportuno suddividere nei seguenti processi:

● È necessaria una costante PARAMETER_FIELD_NAME per contenere il nome del campo parametro "Città",
che verrà utilizzato diverse volte nel codice.
● Il codice per l’aggiunta di valori correnti al parametro viene utilizzato in due punti diversi di questa
esercitazione; per questo motivo viene creato come metodo di supporto separato.
● All’interno del metodo ConfigureCrystalReports(), aggiungere i parametri "Paris" e "Tokyo" a un’istanza
ArrayList e passare il report e l’istanza ArrayList al metodo di supporto per l’elaborazione.

Nella sezione successiva viene descritto come recuperare i valori predefiniti dal campo parametro e impostare tali
valori in un controllo ListBox. Questi valori verranno utilizzati al termine dell’esercitazione per selezionare nuove
città in modo dinamico e filtrare il report in base alle nuove città selezionate.

Passare a Creazione di un controllo ListBox che visualizzi i parametri predefiniti [pagina 395].

1.5.2.5.3.1 Creazione di una costante


PARAMETER_FIELD_NAME

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.
2. A livello di classe, creare una nuova costante di stringa, PARAMETER_FIELD_NAME, e impostarne il valore su
"Città".

Private Const PARAMETER_FIELD_NAME As String = "City"

private const string PARAMETER_FIELD_NAME = "City";

1.5.2.5.3.2 Creazione di un metodo di supporto che aggiunga


valori correnti al parametro del report

Contesto

A questo punto è possibile creare il metodo di supporto che aggiunge valori correnti al parametro del report.

Procedura

1. Tornare alla classe di codice sottostante del Web Form o Windows Form.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
390 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports" [Visual
Basic] o "using" [C#] per lo spazio dei nomi System.Collections (se non è stato già dichiarato).

Imports System.Collections

using System.Collections;

Nota
Questa dichiarazione è necessaria per accedere alla classe ArrayList.

3. Alla fine della classe, creare un nuovo metodo privato denominato


SetCurrentValuesForParameterField() con due variabili nella firma: ReportDocument e ArrayList.

Nota
Più avanti in questa esercitazione, se è stato utilizzato un report incorporato, la classe di tale report viene
passata nel parametro del metodo ReportDocument. Ciò è possibile in quanto Tutte le classi di report
incorporati in SAP Crystal Reports ereditano dalla classe di base ReportDocument.

Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As


ReportDocument, ByVal myArrayList As ArrayList)

End Sub

private void SetCurrentValuesForParameterField(ReportDocument reportDocument,


ArrayList arrayList)
{
}

4. In questo metodo, dichiarare e creare un’istanza della classe indicizzata ParameterValues come variabile
currentParameterValues.

Nota
Affinché sia possibile accedere alla classe ParameterValues, è necessario includere una dichiarazione
"Imports" [Visual Basic] o "using" [C#] all'inizio della classe di codice sottostante per lo spazio
dei nomi CrystalDecisions.Shared. (tale dichiarazione è stata aggiunta in Impostazione di un progetto
[pagina 14]).

Dim currentParameterValues As ParameterValues = New ParameterValues()

ParameterValues currentParameterValues = new ParameterValues();

5. Creare un ciclo foreach per recuperare tutti i valori inseriti (come tipo Object) dall’istanza ArrayList.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 391
Nota
In questo metodo, vengono recuperati i valori da ArrayList e in seguito viene scritto il codice per aggiungere
i valori ad ArrayList.

For Each submittedValue As Object In myArrayList

Next

foreach(object submittedValue in arrayList)


{
}

6. All’interno del ciclo foreach, dichiarare e creare un’istanza per la classe ParameterDiscreteValue.

Dim myParameterDiscreteValue As ParameterDiscreteValue = New


ParameterDiscreteValue()

ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();

7. Nel ciclo foreach, convertire submittedValue in stringa e passarla alla proprietà Value dell’istanza
ParameterDiscreteValue.

myParameterDiscreteValue.Value = submittedValue.ToString()

parameterDiscreteValue.Value = submittedValue.ToString();

8. Nel ciclo foreach, aggiungere l’istanza ParameterDiscreteValue nella classe indicizzata


currentParameterValues.

currentParameterValues.Add(myParameterDiscreteValue)

currentParameterValues.Add(parameterDiscreteValue);

Questo completa il codice nel ciclo foreach. Il resto del codice, descritto nei passaggi successivi, viene
posizionato dopo il ciclo foreach.
9. Fuori dal ciclo foreach, recuperare la classe indicizzata ParameterFieldDefinitions che proviene dalla proprietà
DataDefinition dell’istanza ReportDocument.

Dim myParameterFieldDefinitions As ParameterFieldDefinitions =


myReportDocument.DataDefinition.ParameterFields

ParameterFieldDefinitions parameterFieldDefinitions =
reportDocument.DataDefinition.ParameterFields;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
392 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
10. Recuperare l’istanza ParameterFieldDefinition dalla classe indicizzata ParameterFieldDefinitions basata sulla
voce di indice della costante PARAMETER_FIELD_NAME.

Dim myParameterFieldDefinition As ParameterFieldDefinition =


myParameterFieldDefinitions(PARAMETER_FIELD_NAME)

ParameterFieldDefinition parameterFieldDefinition =
parameterFieldDefinitions[PARAMETER_FIELD_NAME];

11. Passare l’istanza currentParameterValues al metodo ApplyCurrentValues dell’istanza


ParameterFieldDefinition.

myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues)

parameterFieldDefinition.ApplyCurrentValues(currentParameterValues);

1.5.2.5.3.3 Per chiamare il metodo


SetCurrentValuesForParameterField () prima che il report sia
collegato al controllo CrystalReportViewer

Contesto

In questa procedura è stato descritto come creare un metodo che recupera valori da un’istanza ArrayList e li
posiziona come valori correnti in un’istanza di ParameterFieldDefinition. A questo punto, affinché il report rilevi le
impostazioni del parametro, è necessario chiamare il metodo prima di collegare il report al controllo
CrystalReportViewer.

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, sopra la riga
che collega il report al controllo CrystalReportViewer.
In queste interruzioni di riga è possibile inserire il codice aggiuntivo che modifica il report prima che sia
collegato al visualizzatore.
2. All’interno delle interruzioni di riga, dichiarare e creare un’istanza ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 393
3. Aggiungere i nomi di città "Paris" e "Tokyo" come stringhe all’istanza ArrayList.

myArrayList.Add("Paris")
myArrayList.Add("Tokyo")

arrayList.Add("Paris");
arrayList.Add("Tokyo");

4. Chiamare il metodo SetCurrentValuesForParameterField() e passare le istanze


CustomersByCityReport e ArrayList.

SetCurrentValuesForParameterField(customersByCityReport,
myArrayList)

SetCurrentValuesForParameterField(customersByCityReport,
arrayList);

1.5.2.5.3.4 Per verificare il caricamento del report


CustomersByCity

Contesto

L'ultima riga di codice del metodo collega il report al controllo CrystalReportViewer.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il report venga visualizzato correttamente
poiché è stato scritto il codice per l'impostazione dei valori correnti nel campo parametro.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report CustomersByCity viene visualizzato con i soli clienti di Paris e Tokyo.
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
394 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.5.4 Creazione di un controllo ListBox che visualizzi i
parametri predefiniti

Nella restante parte dell’esercitazione viene descritto come visualizzare un elenco completo di valori predefiniti
per il campo parametro in un controllo ListBox e come filtrare il contenuto del report in base alle selezioni
effettuate nel controllo ListBox.

In questa sezione viene descritto come compilare il controllo ListBox con i valori predefiniti del campo parametro.

Nota
È importante ricordare che i valori predefiniti, ovvero un lungo elenco di città, sono stati impostati al momento
della creazione del report all’inizio dell’esercitazione.

A questo punto è necessario aggiungere e configurare un controllo ListBox, quindi creare un metodo di supporto
per compilarlo.

1.5.2.5.4.1 Per creare e configurare un controllo ListBox sul


form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:

○ Fare clic sul controllo CrystalReportViewer per selezionarlo.


○ Premere il tasto freccia sinistra sulla tastiera per visualizzare un cursore lampeggiante, quindi premere
Invio.

Il controllo CrystalReportViewer si sposta in basso di una riga.


4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:

○ Fare clic sul controllo CrystalReportViewer per selezionarlo.


○ Nella finestra Proprietà, impostare Dock su "Bottom".

Nota
In Visual Studio, quando si seleziona la proprietà Dock, viene visualizzata una cornice anziché un
elenco di opzioni. Selezionare la parte della cornice che corrisponde all'impostazione “Bottom”.

○ Ridimensionare il Windows Form e il controllo CrystalReportViewer in modo che quest'ultimo sia


sufficientemente grande da visualizzare un report e lasciare spazio sopra di esso per un controllo ListBox.
○ Nella finestra Proprietà, impostare Anchor su "Top, Bottom, Left, Right".
○ Ridimensionare il Windows Form e il controllo CrystalReportViewer in modo che quest'ultimo sia
sufficientemente grande da visualizzare un report e lasciare spazio sopra di esso per un controllo ListBox.
5. Dalla casella degli strumenti, trascinare un controllo ListBox sul controllo CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 395
Nota
Se si utilizza Visual Studio e viene visualizzata una Smart Task nel controllo ListBox, premere Esc per
chiuderla.

6. Fare clic sul controllo ListBox per selezionarlo.


7. Nella finestra Proprietà:

○ Impostare ID o Name su "defaultParameterValuesList".


○ Impostare SelectionMode su "Multiple" (ovvero su "MultiExtended" in un progetto Windows).
8. Dal menu File, scegliere Salva tutto.

Risultati

A questo punto è possibile creare un metodo di supporto che recuperi i valori predefiniti dal campo parametro.

1.5.2.5.4.2 Per creare un metodo di supporto che recuperi i


valori predefiniti dal campo parametro

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un nuovo metodo privato denominato
GetDefaultValuesFromParameterField() che restituisca un’istanza ArrayList, con ReportDocument
passato nella firma del metodo.

Private Function GetDefaultValuesFromParameterField(ByVal myReportDocument As


ReportDocument) As ArrayList

End Function

private ArrayList GetDefaultValuesFromParameterField(ReportDocument


reportDocument)
{
}

4. All’interno del metodo GetDefaultValuesFromParameterField(), recuperare la classe indicizzata


ParameterFieldDefinitions, che proviene dalla proprietà DataDefinition dell’istanza ReportDocument.

Dim myParameterFieldDefinitions As ParameterFieldDefinitions =


myReportDocument.DataDefinition.ParameterFields

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
396 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
ParameterFieldDefinitions parameterFieldDefinitions =
reportDocument.DataDefinition.ParameterFields;

5. Recuperare l’istanza ParameterFieldDefinition dalla classe indicizzata ParameterFieldDefinitions, basata sulla


voce di indice della costante PARAMETER_FIELD_NAME.

Dim myParameterFieldDefinition As ParameterFieldDefinition =


myParameterFieldDefinitions(PARAMETER_FIELD_NAME)

ParameterFieldDefinition parameterFieldDefinition =
parameterFieldDefinitions[PARAMETER_FIELD_NAME];

6. Recuperare una classe indicizzata ParameterValues (come variabile defaultParameterValues) dalla proprietà
DefaultValues dell’istanza ParameterFieldDefinition.

Dim defaultParameterValues As ParameterValues =


myParameterFieldDefinition.DefaultValues

ParameterValues defaultParameterValues = parameterFieldDefinition.DefaultValues;

7. Dichiarare e creare un’istanza ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

8. Creare un ciclo foreach per recuperare tutte le istanze ParameterValue da defaultParameterValues.

For Each myParameterValue As ParameterValue In defaultParameterValues

Next

foreach(ParameterValue parameterValue in defaultParameterValues)


{
}

All’interno del ciclo foreach, creare un blocco condizionale nidificato che verifichi i valori di parametro discreto
(in opposizione a quelli di intervallo). Esistono due versioni di questo blocco condizionale, poiché l'API è
leggermente cambiata nelle diverse versioni di SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio. Controllare l’API (utilizzando IntelliSense) per verificare quale proprietà è disponibile in
ParameterValue:
9. Se la proprietà disponibile è IsRange, all'interno del ciclo foreach inserire il seguente codice:

If (Not myParameterValue.IsRange) Then

End If

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 397
if(!parameterValue.IsRange)
{
}

10. Oppure, se la proprietà disponibile è Kind (DiscreteOrRangeKind, un'enumerazione con tre valori:
DiscreteValue, RangeValue, DiscreteAndRangeValue), immettere il seguente codice all'interno del suddetto
ciclo:

If (myParameterValue.Kind = DiscreteOrRangeKind.DiscreteValue) Then

End If

if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue)
{
}

11. All'interno del blocco condizionale nidificato, eseguire il cast dell’istanza ParameterValue nella classe estesa,
ParameterDiscreteValue.

Dim myParameterDiscreteValue As ParameterDiscreteValue = CType(myParameterValue,


ParameterDiscreteValue)

ParameterDiscreteValue parameterDiscreteValue =
(ParameterDiscreteValue)parameterValue;

12. Sempre all'interno del blocco condizionale nidificato, aggiungere la proprietà Value dell’istanza
ParameterDiscreteValue (convertita in stringa) all’istanza ArrayList.

myArrayList.Add(myParameterDiscreteValue.Value.ToString())

arrayList.Add(parameterDiscreteValue.Value.ToString());

13. Fuori dal blocco condizionale e dal ciclo foreach, alla fine del metodo, restituire l’istanza ArrayList dal metodo.

Return myArrayList

return arrayList;

1.5.2.5.4.3 Per collegare l'ArrayList restituito dal metodo al


controllo ListBox in un progetto Web

Contesto

I valori predefiniti sono stati recuperati dal campo parametro e restituiti dal metodo come ArrayList. A questo
punto è possibile collegare questo ArrayList al controllo defaultParameterValuesList ListBox.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
398 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Il codice varia leggermente a seconda che si utilizzi un progetto Web o Windows; pertanto, assicurarsi di
completare solo la procedura appropriata, Web o Windows, tra quelle riportate di seguito.

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, subito dopo
la riga che aggiunge il valore stringa Tokyo all'istanza di ArrayList.
All'interno delle interruzioni create è possibile inserire il codice aggiuntivo per l'impostazione dell'origine dati
per il controllo ListBox defaultParameterValuesList quando la pagina viene caricata per la prima volta.
2. All'interno delle interruzioni di riga, creare un blocco condizionale Not IsPostBack.

If Not IsPostBack Then

End If

if(!IsPostBack)
{
}

Nota
Il blocco condizionale Not IsPostBack viene utilizzato per incapsulare il codice che deve essere eseguito
solo la prima volta che viene caricata la pagina. I controlli vengono in genere collegati ai valori dei dati nei
blocchi condizionali Not IsPostBack, in modo che i valori dei dati (e tutti i successivi eventi di controllo)
non siano reimpostati durante i ricaricamenti di pagina.

3. All'interno del blocco condizionale Not IsPostBack, impostare la proprietà DataSource del controllo
ListBox defaultParameterValuesList sul metodo di supporto GetDefaultValuesFromParameterField(),
passando l’istanza del report CustomersByCity come parametro di metodo.

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport)

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport);

4. Sempre all'interno del blocco condizionale Not IsPostBack, chiamare il metodo DataBind() del controllo
ListBox defaultParameterValuesList.

defaultParameterValuesList.DataBind()

defaultParameterValuesList.DataBind();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 399
1.5.2.5.4.4 Per collegare l'ArrayList restituito dal metodo al
controllo ListBox in un progetto Windows

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, subito dopo
la riga che aggiunge il valore stringa Tokyo all'istanza di ArrayList.
All'interno delle interruzioni create è possibile inserire il codice aggiuntivo per l'impostazione dell'origine dati
per il controllo ListBox defaultParameterValuesList quando la pagina viene caricata per la prima volta.
2. All'interno delle interruzioni di riga, impostare la proprietà DataSource del controllo ListBox
defaultParameterValuesList sul metodo di supporto GetDefaultValuesFromParameterField(),
passando l’istanza del report CustomersByCity come parametro di metodo.

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport)

defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport);

1.5.2.5.4.5 Per verificare la compilazione del controllo


ListBox defaultParameterValuesList

Contesto

A questo punto è possibile creare ed eseguire il progetto per verificare se il controllo ListBox
defaultParameterValuesList è stato compilato.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il controllo ListBox defaultParameterValuesList visualizza un elenco completo di valori predefiniti (ovvero
città in questa esercitazione).
4. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
400 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

Nella sezione successiva viene descritto come aggiungere un pulsante per rivisualizzare il report in base alle
selezioni del controllo ListBox defaultParameterValuesList.

1.5.2.5.5 Impostazione di parametri dalle selezioni di ListBox

In questa sezione viene descritto come aggiungere un pulsante per rivisualizzare il report in base alle selezioni
effettuate nel controllo ListBox defaultParameterValuesList.

All’interno del metodo di evento per questo pulsante, viene chiamato lo stesso metodo chiamato al primo
caricamento della pagina:SetCurrentValuesForParameterField() Questa volta, tuttavia, anziché passare
valori arbitrari (Paris e Tokyo), vengono passati valori selezionati nel controllo ListBox
defaultParameterValuesList.

1.5.2.5.5.1 Per creare e configurare un pulsante di


rivisualizzazione sul form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Dalla casella degli strumenti, trascinare un controllo Button a destra del controllo ListBox.
4. Fare clic sul controllo Button per selezionarlo.
5. Nella finestra Proprietà:

○ Impostare ID (o Name) su "redisplay."


○ Impostare Text su "Rivisualizza report".

Risultati

A questo punto è possibile creare un metodo di evento clic per il controllo Button che ricerchi gli elementi
selezionati nel controllo ListBox e li passi al metodo SetCurrentValuesForParameterField().

Il codice varia leggermente a seconda che si utilizzi un progetto Web o Windows, quindi completare solo la
procedura appropriata, Web o Windows, tra quelle riportate di seguito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 401
1.5.2.5.5.2 Per creare il metodo di evento clic per il controllo
Button di rivisualizzazione in un progetto Web

Procedura

1. Fare doppio clic sul controllo Button di rivisualizzazione.


Si torna alla classe di codice sottostante in cui è stato generato automaticamente il metodo di evento
redisplay_Click().
2. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports" [Visual
Basic] o "using" [C#] per lo spazio dei nomi System.Web.UI.WebControls (se non è stato già dichiarato).

Imports System.Web.UI.WebControls

using System.Web.UI.WebControls;

Nota
Questa dichiarazione è necessaria per accedere alla classe ListItem.

3. All'interno del metodo di evento redisplay_Click()appena generato automaticamente, dichiarare e


creare un'istanza ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

4. Creare un ciclo foreach per recuperare tutte le istanze ListItem dalla proprietà Items di
defaultParameterValuesList.

For Each item As ListItem In defaultParameterValuesList.Items

Next

foreach(ListItem item in defaultParameterValuesList.Items)


{
}

5. All'interno del ciclo foreach, creare un blocco condizionale nidificato che aggiunga l'istanza Item all'istanza
Arraylist se la proprietà Selected dell'istanza Item corrente è impostata su True.

If item.Selected Then
myArrayList.Add(item.Value)
End If

if(item.Selected)
{

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
402 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
arrayList.Add(item.Value);
}

6. All'esterno del blocco condizionale e del ciclo foreach, chiamare il metodo


SetCurrentValuesForParameterField() e passare l’istanza del report CustomersByCity e l'istanza
ArrayList.

SetCurrentValuesForParameterField(customersByCityReport, myArrayList)

SetCurrentValuesForParameterField(customersByCityReport, arrayList);

Ora che i valori selezionati nel controllo ListBox sono stati applicati come valori correnti per il campo
parametro, è possibile rivisualizzare il report.
7. Ricollegare l’istanza del report CustomersByCity alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = customersByCityReport

crystalReportViewer.ReportSource = customersByCityReport;

1.5.2.5.5.3 Per creare il metodo di evento clic per il controllo


Button di rivisualizzazione in un progetto Windows

Procedura

1. Fare doppio clic sul controllo Button di rivisualizzazione.


Si torna alla classe di codice sottostante in cui è stato generato automaticamente il metodo di evento
redisplay_Click().
2. All'interno del metodo di evento redisplay_Click()appena generato automaticamente, dichiarare e
creare un'istanza ArrayList.

Dim myArrayList As ArrayList = New ArrayList()

ArrayList arrayList = new ArrayList();

3. Creare un ciclo foreach per recuperare tutti gli elementi (come stringa) dalla proprietà SelectedItems di
defaultParameterValuesList.

For Each item As String In defaultParameterValuesList.SelectedItems

Next

foreach(string item in defaultParameterValuesList.SelectedItems)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 403
{
}

4. All'interno del blocco condizionale, aggiungere l'istanza String dell'elemento all'istanza ArrayList.

myArrayList.Add(item)

arrayList.Add(item);

5. Fuori dal blocco condizionale e dal ciclo foreach, chiamare il metodo


SetCurrentValuesForParameterField() e passare l’istanza del report CustomersByCity e l’istanza
ArrayList.

SetCurrentValuesForParameterField(customersByCityReport, myArrayList)

SetCurrentValuesForParameterField(customersByCityReport, arrayList);

Ora che i valori selezionati nel controllo ListBox sono stati applicati come valori correnti per il campo
parametro, è possibile rivisualizzare il report.
6. Ricollegare l’istanza del report CustomersByCity alla proprietà ReportSource del controllo
CrystalReportViewer.

myCrystalReportViewer.ReportSource = customersByCityReport

crystalReportViewer.ReportSource = customersByCityReport;

1.5.2.5.5.4 Per verificare la compilazione del controllo


ListBox defaultParameterValuesList

Contesto

A questo punto è possibile creare ed eseguire il progetto per verificare se il campo parametro è stato reimpostato
correttamente.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Ctrl fare clic per selezionare almeno quattro diverse città
nell’elenco.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
404 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Fare clic su Rivisualizza report.
La pagina viene ricaricata visualizzando i record dei clienti che nelle città selezionate.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

Se si utilizza un'applicazione Windows, la procedura è terminata. Se si lavorando in un sito Web, passare a


Configurazione della persistenza dei parametri [pagina 405].

1.5.2.5.6 Configurazione della persistenza dei parametri

In questa sezione viene descritto come configurare, in un'esercitazione basata sul Web, la persistenza per le
selezioni del campo parametro effettuate nel controllo ListBox.

Come dimostrato nell'esercitazione Esercitazione: Persistenza del modello a oggetti ReportDocument mediante
Session [pagina 334], le modifiche effettuate nel modello a oggetti ReportDocument vanno perse quando la
pagina Web viene ricaricata, ovvero ogni volta che gli utenti fanno clic sui pulsanti della barra degli strumenti di
CrystalReportViewer (come Pagina seguente e Zoom).

1.5.2.5.6.1 Per dimostrare la mancanza di persistenza nelle


selezioni del parametro

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Maiusc fare clic per selezionare tutte le città dell'elenco.
5. Fare clic su Rivisualizza report.
La pagina viene ricaricata visualizzando i record di tutti i clienti di tutte le città. Si tratta di un report di grandi
dimensioni contenente numerose pagine.
6. Nella barra degli strumenti di CrystalReportViewer, fare clic su Pagina seguente.

L'elenco delle città selezionate non viene mantenuto e la pagina 2 del report non viene visualizzata. Vengono
invece mostrate nuovamente le impostazioni iniziali del parametro (Paris e Tokyo).
7. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 405
Risultati

Per rendere persistenti le modifiche apportate all'interno del modello a oggetti ReportDocument quando le pagine
Web vengono ricaricate, è necessario aggiungere codice di persistenza all'applicazione.

Iniziare aggiungendo il codice di persistenza al metodo ConfigureCrystalReports(), quindi aggiungere un


blocco Else al blocco condizionale Not IsPostBack. Proseguire impostando valori univoci per l'istanza ArrayList
per una delle condizioni all'interno del blocco condizionale. All'avvio della pagina, impostare i valori predefiniti
("Paris" e "Tokyo") nell'istanza ArrayList. Ai successivi caricamenti della pagina, recuperare l'istanza ArrayList
salvata in Session.

1.5.2.5.6.2 Per aggiungere codice di persistenza al metodo


ConfigureCrystalReports()

Procedura

1. All'interno del metodo ConfigureCrystalReports(), tagliare e incollare le due righe di codice che
aggiungono Paris e Tokyo all'ArrayList, alla fine del blocco condizionale Not IsPostBack.

Al termine dell'operazione, il blocco condizionale dovrebbe presentarsi come segue:

If Not IsPostBack Then


defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport)
defaultParameterValuesList.DataBind()
myArrayList.Add("Paris")
myArrayList.Add("Tokyo")
End If

if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
}

2. Aggiungere una riga di codice finale al blocco condizionale che assegni l'istanza ArrayList a Session.

Nota
Per la persistenza Session che viene aggiunta, è possibile utilizzare il nome della variabile come
identificatore di stringa.

Session("myArrayList") = myArrayList

Session["arrayList"] = arrayList;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
406 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
3. Aggiungere una condizione Else al blocco condizionale Not IsPostBack.
4. All'interno del blocco Else, recuperare l'istanza ArrayList da Session ed eseguirne il cast in ArrayList.

myArrayList = Ctype(Session("myArrayList"), ArrayList)

arrayList = (ArrayList)Session["arrayList"];

Risultati

Al termine dell'operazione, il blocco condizionale dovrebbe presentarsi come segue:

Le modifiche apportate al metodo ConfigureCrystalReports()assicurano che l'istanza ArrayList corrente sia


sempre disponibile per essere passata al metodo SetCurrentValuesForParameterField().

Nella sezione successiva vengono apportate due modifiche al codice dell'evento clic del controllo Button:

● Assegnazione a Session dell'istanza ArrayList creata.


● Sostituzione delle ultime due righe di codice, che consentono di configurare e visualizzare il report, con una
chiamata al metodo ConfigureCrystalReports() per eseguire tale funzione su una serie di righe di codice
comuni.

1.5.2.5.6.3 Per modificare il codice nel metodo di evento clic


del controllo Button in modo da utilizzare la persistenza
Session

Procedura

1. Eliminare le ultime due righe di codice del metodo di evento clic del controllo Button.
La prima riga di codice da eliminare è la chiamata al metodo SetCurrentValuesForParameterField(). La
seconda riga da eliminare è quella che collega l'istanza customersByCityReport alla proprietà ReportSource
del controllo CrystalReportViewer.

Nel passaggio successivo vengono aggiunte due nuove righe di codice per sostituire quelle eliminate.
2. All'interno del metodo di evento clic del controllo Button, fuori dal ciclo foreach, aggiungere una riga di codice
che assegni l'istanza ArrayList a Session.

Nota
Per la persistenza Session che viene aggiunta, è possibile utilizzare il nome della variabile come
identificatore di stringa.

Session("myArrayList") = myArrayList

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 407
Session["arrayList"] = arrayList;

3. Chiamare il metodo ConfigureCrystalReports().

Ciò consente di recuperare l'istanza ArrayList, applicarla al report e collegare quest'ultimo al controllo
CrystalReportViewer.

ConfigureCrystalReports()

ConfigureCrystalReports();

Risultati

A questo punto è possibile creare ed eseguire il progetto per verificare se il campo parametro è stato reimpostato
correttamente.

Nota
Un approccio alternativo alla persistenza consiste nel rendere persistente l'istanza ReportDocument. Per
informazioni su come rendere persistente l'istanza ReportDocument in Session, vedere l'esercitazione
Esercitazione: Persistenza del modello a oggetti ReportDocument mediante Session [pagina 334].

1.5.2.5.6.4 Per verificare la compilazione del controllo


ListBox defaultParameterValuesList

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Maiusc fare clic per selezionare tutte le città dell'elenco.
5. Fare clic su Rivisualizza report.
La pagina viene ricaricata visualizzando i record dei clienti di tutte le città. Si tratta di un report di grandi
dimensioni contenente numerose pagine.
6. Nella barra degli strumenti di CrystalReportViewer, fare clic su Pagina seguente.
7. L'elenco delle città selezionate viene mantenuto e viene visualizzata la pagina 2 del report.
8. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
408 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.5.7 Appendice: Miglioramenti al codice dei parametri
discreti

In questa esercitazione sono stati creati un report con un valore di parametro discreto e un metodo di supporto in
grado di accettare qualsiasi serie di valori in un formato comune (un ArrayList). Tali valori sono poi stati applicati a
un report basato su un nome di campo parametro specifico (la costante PARAMETER_FIELD_NAME).

Se è installato Visual Studio 2005 o versioni successive o SAP Crystal Reports Developer, è possibile accedere
all'API avanzata che imposta i parametri discreti nel report Crystal. L’API di SAP Crystal Reports Developer
consente di ridurre al minimo la quantità di codice necessaria per impostare i parametri discreti.

Nelle procedure precedenti è stato descritto come creare il metodo di supporto


SetCurrentValuesForParameterField().

In questa esercitazione viene descritto come eliminare il metodo di supporto e chiamare invece il metodo
SetParameterValue() della classe ReportDocument.

Il metodo SetParameterValue() si presenta nei seguenti metodi di overload:

● SetParameterValue(int index, object value)


● SetParameterValue(string parameterFieldName, object value)
● SetParameterValue(string parameterFieldName, object value, string subreport)

È possibile passare qualsiasi tipo di oggetto in cui il valore soddisfi i valori predefiniti per il campo parametro.
L'oggetto può essere un'istanza Array che memorizza un elenco di valori di parametro.

Prerequisiti:

● È necessario creare un progetto in base alle istruzioni riportate in Esercitazione: Lettura e impostazione di
parametri discreti [pagina 381].
In Impostazione manuale di parametri nel codice [pagina 389] è invece necessario creare solo la costante
PARAMETER_FIELD_NAME. Non è necessario creare il metodo di supporto
SetCurrentValuesForParameterField().
● Se si dispone già di un progetto create in base alle istruzioni riportate in Esercitazione: Lettura e impostazione
di parametri discreti [pagina 381], eliminare il metodo di supporto SetCurrentValuesForParameterField() e la
chiamata all'interno del metodo ConfigureCrystalReports().

1.5.2.5.7.1 Per utilizzare il metodo SetParameterValue() per


i parametri discreti

Procedura

1. Aprire il progetto completato per questa esercitazione.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 409
4. All'interno del metodo ConfigureCrystalReports(), sopra la riga che collega il report alla proprietà
ReportSource del controllo CrystalReportViewer, chiamare il metodo SetParameterValue() dalla classe
CustomerByCity. Passare al metodo il nome del campo parametro e i valori del parametro in un'istanza Array.

customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME,
arrayList.ToArray())

customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME,
arrayList.ToArray());

Risultati

A questo punto è possibile creare ed eseguire il progetto per la lettura e l'impostazione di parametri discreti.

1.5.2.6 Esercitazione: Lettura e impostazione di parametri


con un sottoreport

In questa esercitazione verrà esaminata un'ulteriore complicazione: cosa accade se il report che richiede
parametri contiene un sottoreport che richiede parametri diversi?

Nota
per completare questa esercitazione è necessario completare l'esercitazione precedente, Esercitazione:
Lettura e impostazione di parametri discreti [pagina 381].

Introduzione

Nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 381], è stato
descritto come creare un report con un parametro e come scrivere codice per impostare il parametro in
questione in fase di esecuzione, sia con valori di parametro hardcoded che con valori di parametro passati da un
controllo ListBox.

In questa esercitazione viene descritto come aggiungere parametri a un sottoreport.

È necessario apportare quattro modifiche al progetto creato in Esercitazione: Lettura e impostazione di parametri
discreti [pagina 381]:

● Aggiungere un sottoreport al report originale.


Questo sottoreport fa riferimento alla tabella Ordini del database Xtreme. La tabella Ordini è associata alla
tabella Clienti utilizzata nell'esercitazione precedente tramite una chiave esterna ID cliente.
● Aggiungere un parametro di intervallo al sottoreport per filtrare i dati in base a un intervallo di date degli
ordini.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
410 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Aggiungere due controlli Text al modulo: orderStartDate e orderEndDate, per impostare l'intervallo di date
degli ordini in fase di esecuzione.
● Aggiungere un nuovo metodo.
Questo metodo crea un'istanza ParameterRangeValue contenente i valori startDate ed endDate e passa
l'istanza al parametro di intervallo all'interno del sottoreport.

Una volta completata questa esercitazione, è possibile filtrare i valori visualizzati sul report in fase di esecuzione. Il
codice aggiunto limita il numero di città visualizzate nel report principale e l'intervallo di date degli ordini da
visualizzare nel sottoreport.

Questa esercitazione può essere completata anche con classi del modello a oggetti CrystalReportViewer, ma si
consiglia di utilizzare il modello a oggetti ReportDocument.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_RDObjMod_ParametersSubrpt


● Progetto Windows C#: CS_Win_RDObjMod_ParametersSubrpt
● Sito Web in Visual Basic: VB_Web_RDObjMod_ParametersSubrpt
● Progetto Windows Visual Basic: VB_Win_RDObjMod_ParametersSubrpt

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Esercitazione: Lettura e impostazione di parametri di intervallo per un sottoreport [pagina 272]
In questa esercitazione verrà esaminata un'ulteriore complicazione: cosa accade quando il report che richiede
determinati parametri contiene un sottoreport che richiede parametri diversi da quelli del report.

Directory dei report di esempio [pagina 14]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 411
1.5.2.6.1 Aggiunta di un sottoreport al report originale

Iniziare aggiungendo un sottoreport al report originale.

1.5.2.6.1.1 Per aggiungere un sottoreport

Procedura

1. Aprire il progetto creato nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri


discreti [pagina 381].
2. In Esplora soluzioni, fare doppio clic sul report CustomersByCity per aprirlo.
3. Fare clic con il pulsante destro del mouse sulla barra grigia Dettagli, quindi selezionare Inserisci sezione sotto.
4. Fare clic con il pulsante destro del mouse sulla nuova sezione Dettagli b appena creata, selezionare Inserisci,
quindi fare clic su Sottoreport.
Viene visualizzato un riquadro grigio intorno al cursore del mouse.
5. Trascinare il rettangolo grigio nella nuova sezione Dettagli b, quindi fare clic per rilasciarlo.
6. Nella scheda Sottoreport della finestra di dialogo Inserisci sottoreport, selezionare Crea un sottoreport con la
creazione guidata report.

Nota
la finestra di dialogo Inserisci sottoreport include altre opzioni che consentono di scegliere un report
esistente e sottoreport su richiesta. Per ulteriori informazioni su tali funzioni, vedere Scheda Sottoreport
(finestra di dialogo Inserisci sottoreport) [pagina 923].

7. Nel campo Nuovo nome del report digitare CustomerOrders.


8. Fare clic su Procedura guidata report....
9. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
10. Dalla sottocartella, espandere la cartella ODBC (RDO).
La cartella contiene il server di database che è stato configurato per il report in fase di creazione del report.

Nota
se il server non è visualizzato, seguire le istruzioni dell'esercitazione precedente per connettersi al
database Xtreme.

11. Selezionare la tabella Ordini e fare clic sul simbolo > per spostarla nel riquadro Seleziona tabelle, quindi
scegliere Avanti.
12. Nel riquadro Campi disponibili, selezionare ID ordine, Data ordine, Data spedizione e Spedizione via.
13. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Fine.
14. Nella finestra di dialogo Inserisci sottoreport, selezionare la scheda Collegamento.
15. Nell'elenco Campi disponibili del riquadro Campo/i del report contenitore a cui collegarsi espandere la tabella
Clienti, selezionare ID cliente, quindi fare clic sul simbolo >.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
412 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
16. Nel riquadro Collegamento al campo Clienti.ID cliente visualizzato, lasciare invariate le selezioni predefinite.
Tali selezioni di parametri e dati generano automaticamente una relazione tra il report principale e il
sottoreport.
17. Fare clic su OK.
Il nuovo sottoreport CustomerOrders viene visualizzato nella sezione Dettagli b del report principale.

Nota
quando si aggiunge un sottoreport alla sezione Dettagli, il sottoreport viene visualizzato per ogni riga,
aumentando i requisiti di prestazioni del report. Se non sono necessarie informazioni sul sottoreport con
tale livello di dettaglio, posizionare il sottoreport in una sezione Gruppo invece che nella sezione Dettagli.

Risultati

A questo punto è possibile verificare le impostazioni nel sottoreport.

1.5.2.6.1.2 Per verificare le impostazioni nel sottoreport

Procedura

1. Nella sezione Dettagli, fare doppio clic sul sottoreport CustomerOrders per visualizzarlo.
Nella parte inferiore della finestra di progettazione sono presenti pulsanti di spostamento per il report
principale e il sottoreport CustomerOrders.
2. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Nota
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

3. Nell'Explorer Campo, espandere Campi parametro.


4. Verificare che il campo parametro Clienti-PM.ID Cliente sia stato generato automaticamente al momento del
collegamento del sottoreport.
5. Nella barra degli strumenti, fare clic su Esperto selezione.
6. Nella finestra di dialogo Esperto selezione, verificare che sia impostato il criterio Ordini.ID cliente è uguale a
{Clienti-PM.ID cliente}, quindi fare clic su OK.
7. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 413
Risultati

Il sottoreport CustomerOrders è stato aggiunto al report CustomersByCity. Nella sezione successiva verrà
aggiunto un parametro OrderDateRange al sottoreport.

1.5.2.6.1.3 Per aggiungere un parametro OrderDateRange al


sottoreport

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi parametro, quindi selezionare Nuovo….
2. Nella finestra di dialogo Crea campo parametro:

○ Impostare Nome su OrderDateRange.


○ Impostare Tipo valore su Data.
○ Impostare Testo prompt su Specificare un intervallo di date degli ordini da visualizzare.
○ Impostare Opzioni su una sola selezione, Valore/i intervallo.
3. Fare clic su OK.
4. Nella barra degli strumenti, fare clic su Esperto selezione.
5. Fare clic sulla scheda Nuovo.
6. Nella finestra di dialogo Scegli campo, espandere la tabella Ordini, selezionare Data ordine, quindi fare clic su
OK.
7. Nella nuova scheda Ordini.Data ordine, dall'elenco a discesa dei criteri selezionare formula:.
8. Digitare la seguente formula: {Ordini.Data ordine} in {?OrderDateRange}
9. Fare clic su OK.
10. Dal menu File, scegliere Salva tutto.

Risultati

Il parametro OrderDateRange è stato aggiunto al sottoreport e collegato alla colonna Ordini.DataOrdine. Nella
sezione successiva viene descritto come aggiungere codice per fare riferimento al parametro OrderDateRange
all'interno del sottoreport.

1.5.2.6.2 Aggiunta del codice del parametro del sottoreport

A questo punto è possibile aggiungere il codice del parametro per il sottoreport nella classe di codice sottostante.
Iniziare creando il metodo di supporto privato SetDateRangeForOrders().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
414 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.6.2.1 Per creare e codificare il metodo
SetDateRangeForOrders()

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'inizio della classe, aggiungere due nuove costanti sotto la costante PARAMETER_FIELD_NAME esistente,
aggiunta durante l'esercitazione precedente.

Private Const SUBREPORT_PARAMETER_FIELD_NAME As String = "OrderDateRange"


Private Const SUBREPORT_NAME As String = "CustomerOrders"

private const string SUBREPORT_PARAMETER_FIELD_NAME = "OrderDateRange";


private const string SUBREPORT_NAME = "CustomerOrders";

4. Alla fine della classe creare un nuovo metodo privato denominato SetDateRangeForOrders() con tre
parametri: ReportDocument, string startDate e string endDate.

Private Sub SetDateRangeForOrders(ByVal myReportDocument As ReportDocument,


ByVal startDate As String, ByVal endDate As String)

End Sub

private void SetDateRangeForOrders(ReportDocument reportDocument, string


startDate, string endDate)
{
}

5. All’interno del metodo, dichiarare e creare un’istanza per la classe ParameterRangeValue.

Dim myParameterRangeValue As ParameterRangeValue = New


ParameterRangeValue()

ParameterRangeValue parameterRangeValue = new


ParameterRangeValue();

Nota
Affinché la classe ParameterRangeValue sia accessibile, è necessario includere un'istruzione "Imports"
[Visual Basic] o "using" [C#] all'inizio della classe di codice sottostante per lo spazio dei nomi
CrystalDecisions.Shared. (tale dichiarazione è stata aggiunta in Impostazione di un progetto [pagina 14]).

6. Impostare la proprietà StartValue dell'istanza ParameterRangeValue sul parametro startDate del metodo.

myParameterRangeValue.StartValue = startDate

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 415
parameterRangeValue.StartValue = startDate;

Nota
Le proprietà StartValue ed EndValue della classe ParameterRangeValue accettano valori di tipo Oggetto.
Questo tipo generico consente di passare valori di intervallo di diversi tipi, inclusi testo, numero, data,
valuta o ora.

7. Impostare la proprietà EndValue dell'istanza ParameterRangeValue sul parametro endDate del metodo.

myParameterRangeValue.EndValue = endDate

parameterRangeValue.EndValue = endDate;

8. Impostare i limiti superiore e inferiore per la proprietà BoundInclusive.

myParameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive
myParameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive

parameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive;
parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;

Nota
La proprietà BoundInclusive implica che i valori di intervallo superiore e inferiore sono inclusi nell'intervallo.

A questo punto è possibile assegnare l'istanza ParameterRangeValue al parametro del sottoreport.


9. Recuperare l'oggetto ParameterFieldDefinitions, che proviene dalla proprietà DataDefinition
dell'istanza ReportDocument.

Nota
ParameterFieldDefinitions è una classe indicizzata che contiene istanze della classe
ParameterFieldDefinition.

Dim myParameterFieldDefinitions As ParameterFieldDefinitions =


myReportDocument.DataDefinition.ParameterFields

ParameterFieldDefinitions parameterFieldDefinitions =
reportDocument.DataDefinition.ParameterFields;

10. Recuperare l'istanza ParameterFieldDefinition dalla classe indicizzata ParameterFieldDefinition,


basata su due valori indicizzati: il nome del campo di parametro del sottoreport e il nome del sottoreport.
Passare i valori delle due costanti dichiarate all'inizio della classe.

Dim myParameterFieldDefinition As ParameterFieldDefinition =

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
416 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
myParameterFieldDefinitions(SUBREPORT_PARAMETER_FIELD_NAME,
SUBREPORT_NAME)

ParameterFieldDefinition parameterFieldDefinition =
parameterFieldDefinitions[SUBREPORT_PARAMETER_FIELD_NAME,
SUBREPORT_NAME];

11. Chiamare il metodo Clear() della proprietà CurrentValues dell'istanza ParameterFieldDefinition per
rimuovere eventuali valori esistenti dalla proprietà CurrentValues.

myParameterFieldDefinition.CurrentValues.Clear()

parameterFieldDefinition.CurrentValues.Clear();

12. Aggiungere l'istanza ParameterRangeValue, creata in precedenza, alla proprietà CurrentValues


dell'istanza ParameterFieldDefinition.

myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue)

parameterFieldDefinition.CurrentValues.Add(parameterRangeValue);

13. Chiamare il metodo ApplyCurrentValues() passandogli la proprietà CurrentValues dell'istanza


ParameterFieldDefinition.

myParameterFieldDefinition.ApplyCurrentValues(myParameterFieldDefinition.CurrentV
alues)

parameterFieldDefinition.ApplyCurrentValues(parameterFieldDefinition.CurrentValue
s);

Risultati

In questa procedura sono stati impostati i valori delle date iniziale e finale in un'istanza ParameterRangeValue e
tali valori sono stati passati al parametro OrderDateRange nel sotto report CustomerOrders.

1.5.2.6.3 Aggiunta di controlli TextBox per contenere i valori


dei parametri di intervallo

In questa sezione viene descritto come aggiungere due controlli TextBox per fornire al parametro di intervallo
OrderDateRange nel sottoreport CustomerOrders i valori delle date iniziale e finale, in fase di esecuzione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 417
Nota
Se si esegue questa esercitazione in un sito Web, la persistenza dei valori delle date inseriti dagli utenti nelle
caselle di testo viene assicurata da ViewState.

1.5.2.6.3.1 Per creare e configurare un pulsante di


rivisualizzazione sul form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:
a) Fare clic tra i controlli ListBox e Button.
b) Premere Invio tre volte per creare due righe tra il controllo ListBox e il controllo Button.
c) Nella prima riga creata sotto il controllo ListBox, digitare "Data inizio ordine".
d) Nella seconda riga creata sotto il controllo ListBox, digitare "Data fine ordine".
4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Dalla casella degli strumenti, trascinare due controlli Label a destra del controllo ListBox. Posizionare le
etichette una sull'altra e sopra il controllo Button.
b) Selezionare il primo controllo Label Nella finestra Proprietà impostare la proprietà Text su "Data inizio
ordine".
c) Selezionare il secondo controllo Label Nella finestra Proprietà impostare la proprietà Text su "Data fine
ordine".
5. Dalla casella degli strumenti, trascinare un controllo TextBox a destra di "Data inizio ordine".
6. Fare clic sul controllo TextBox per selezionarlo.
7. Nella finestra Proprietà, impostare ID (o Name) su "orderStartDate".
8. Dalla casella degli strumenti, trascinare un controllo TextBox a destra di "Data fine ordine".
9. Fare clic sul controllo TextBox per selezionarlo.
10. Nella finestra Proprietà, impostare ID (o Name) su "orderEndDate".
11. Dal menu File, scegliere Salva tutto.

1.5.2.6.4 Modifica dei metodi di chiamata del sottoreport

È ora necessario modificare il metodo ConfigureCrystalReports() e il metodo di eventi


redisplay_Click() per ricevere informazioni da questi controlli TextBox e applicarli al metodo
SetDateRangeForOrders(), affinché le informazioni dei parametri vengano elaborate per i sottoreport.

Nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 381], questi
metodi sono stati progettati in due modi diversi, a seconda che sia stata o meno inclusa la persistenza Session.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
418 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
I progetti Windows non richiedono la persistenza Session, che è in genere richiesta dai siti Web.

Scegliere una delle seguenti procedure. Modificare i metodi che escludono la persistenza Session o modificare i
metodi che la includono:

1.5.2.6.4.1 Modifica dei metodi che escludono la persistenza


Session

Se nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 381], è stata
esclusa la persistenza Session, effettuare le procedure riportate di seguito. Se si desidera includere la persistenza
Session, vedere Modifica dei metodi che includono la persistenza Session [pagina 420].

1.5.2.6.4.1.1 Per modificare il metodo


ConfigureCrystalReports() che esclude la persistenza Session

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, dopo le righe
che assegnano "Paris" e "Tokyo" come variabili ArrayList.
2. Tra le interruzioni di riga dichiarare e impostare valori hardcoded per due variabili stringa, startDate ed
endDate.

Dim startDate As String = "8/1/1997"


Dim endDate As String = "8/31/1997"

string startDate = "8/1/1997";


string endDate = "8/31/1997";

3. Creare nel codice una coppia di interruzioni di riga, sopra la riga che collega il report al controllo
CrystalReportViewer.
4. Tra le interruzioni di riga, inserire una chiamata al metodo SetDateRangeForOrders() e passare il report
CustomersByCity e le variabili startDate ed endDate.

SetDateRangeForOrders(customersByCityReport, startDate, endDate)

SetDateRangeForOrders(customersByCityReport, startDate, endDate);

Dopo la chiamata si trova il codice originale che collega il report al controllo CrystalReportViewer.
5. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 419
Risultati

A questo punto, modificare il metodo di evento redisplay_Click.

1.5.2.6.4.1.2 Per modificare il metodo redisplay_Click() che


esclude la persistenza Session

Procedura

1. Nel metodo di evento redisplay_Click(), creare nel codice una coppia di interruzioni di riga, sopra la riga
che collega il report al controllo CrystalReportViewer.
2. Tra le interruzioni di riga dichiarare e impostare i valori per le due variabili stringa, startDate ed endDate, in
base ai controlli TextBox aggiunti al Web Form o al Windows Form.

Dim startDate As String = orderStartDate.Text


Dim endDate As String = orderEndDate.Text

string startDate = orderStartDate.Text;


string endDate = orderEndDate.Text;

3. Inserire una chiamata al metodo SetDateRangeForOrders() e passare il report CustomersByCity e le


variabili startDate ed endDate.

SetDateRangeForOrders(customersByCityReport, startDate, endDate)

SetDateRangeForOrders(customersByCityReport, startDate, endDate);

4. Dal menu File, scegliere Salva tutto.

1.5.2.6.4.2 Modifica dei metodi che includono la persistenza


Session

Se nell'esercitazione precedente, Esercitazione: Lettura e impostazione di parametri discreti [pagina 381], è stata
inclusa la persistenza Session, effettuare le procedure riportate di seguito. Altrimenti, passare a Modifica dei
metodi che escludono la persistenza Session [pagina 419].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
420 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.6.4.2.1 Per modificare il metodo
ConfigureCrystalReports() che include la persistenza Session

Procedura

1. Nel metodo ConfigureCrystalReports(), creare nel codice una coppia di interruzioni di riga, dopo la riga
che dichiara e crea un'istanza ArrayList.
2. Tra le interruzioni di riga dichiarare due variabili stringa, startDate ed endDate.

Dim startDate As String


Dim endDate As String

string startDate;
string endDate;

3. All'interno del blocco condizionale Not IsPostBack, inserire i valori predefiniti per le variabili startDate ed
endDate.

startDate = "8/1/1997"
endDate = "8/31/1997"

startDate = "8/1/1997";
endDate = "8/31/1997";

4. All'interno del blocco condizionale Not IsPostBack, assegnare le variabili startDate ed endDate alla
persistenza Session.

Session("startDate") = startDate
Session("endDate") = endDate

Session["startDate"] = startDate;
Session["endDate"] = endDate;

5. All'interno del blocco Else, dopo aver recuperato l'istanza ArrayList da Session, recuperare anche le variabili
startDate ed endDate.

startDate = Session("startDate").ToString()
endDate = Session("endDate").ToString()

startDate = Session["startDate"].ToString();
endDate = Session["endDate"].ToString();

In questo modo, si raggiunge la fine del blocco con le variabili data assegnate in entrambi i casi, seguendo la
logica dell'assegnazione della variabile ArrayList configurata nell'esercitazione precedente.
6. Creare nel codice una coppia di interruzioni di riga, sopra la riga che collega il report al controllo
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 421
7. Tra le interruzioni di riga, inserire una chiamata al metodo SetDateRangeForOrders() e passare il report
CustomersByCity e le variabili startDate ed endDate.

SetDateRangeForOrders(customersByCityReport, startDate, endDate)

SetDateRangeForOrders(customersByCityReport, startDate, endDate);

Dopo la chiamata si trova il codice originale che collega il report al controllo CrystalReportViewer.
8. Dal menu File, scegliere Salva tutto.

Risultati

A questo punto, modificare il metodo di evento redisplay_Click.

1.5.2.6.4.2.2 Per modificare il metodo redisplay_Click() che


include la persistenza Session

Procedura

1. Nel metodo di evento redisplay_Click(), creare nel codice una coppia di interruzioni di riga, dopo la riga
che assegna l'istanza ArrayList a Session.
2. Tra le interruzioni di riga, assegnare la proprietà Text degli oggetti TextBox orderStartDate e orderEndDate
alle variabili Session.

Session("startDate") = orderStartDate.Text
Session("endDate") = orderEndDate.Text

Session["startDate"] = orderStartDate.Text;
Session["endDate"] = orderEndDate.Text;

3. Dal menu File, scegliere Salva tutto.


Quando viene chiamato il metodo ConfigureCrystalReports(), i valori Session startDate ed endDate
vengono recuperati e applicati.

Risultati

A questo punto è possibile creare ed eseguire il progetto per verificare che i valori TextBox reimpostino il
parametro di intervallo nel sottoreport. w

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
422 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.6.5 Verifica dell'impostazione del parametro del
sottoreport

A questo punto è possibile verificare l'impostazione del parametro del sottoreport con i valori del controllo
TextBox.

1.5.2.6.5.1 Per verificare l'impostazione del parametro del


sottoreport

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Nel controllo ListBox, tenendo premuto il tasto Ctrl fare clic per selezionare almeno quattro diverse città
nell’elenco.
5. Nel controllo TextBox startDate inserire "1/8/1997".
6. Nel controllo TextBox endDate inserire "31/12/1997".
7. Fare clic sul pulsante Rivisualizza report.
La pagina viene ricaricata e visualizza i record dei clienti che vivono nelle città selezionate, nonché un
sottoreport con gli ordini inclusi nell'intervallo di date specificato.
8. Nel controllo CrystalReportViewer, impostare il livello Zoom su 125%.
La pagina viene ricaricata con un rapporto di zoom del 125%. I valori selezionati per le città e l'intervallo di
date degli ordini vengono mantenuti.
9. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.6.6 Appendice: Miglioramenti al codice dei parametri di


intervallo per i sottoreport

Il progetto dell'esercitazione è stato modificato in modo da utilizzare un report contenente un sottoreport ed è


stato impostato un intervallo di date degli ordini per il parametro di intervallo creato nel sottoreport. In questa
appendice viene illustrato come leggere e impostare parametri in un sottoreport con le funzionalità dell'API
avanzata.

Nelle procedure precedenti veniva illustrato come creare il metodo di supporto SetDateRangeForOrders() che
utilizza le classi ParameterFieldDefinitions e ParameterFieldDefinition.

In questa esercitazione, è necessario rimuovere le righe di codice che utilizzano le classi


ParameterFieldDefinitions e ParameterFieldDefinition. Viene quindi illustrato come utilizzare le classi
ParameterFields e ParameterField dell'API avanzata di SAP Crystal Reports per il codice del metodo
SetDateRangeForOrders().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 423
Nota
L'API avanzata include il metodo SetParameterValue(string parameterFieldName, object value,
string subreport) per i sottoreport con campi di parametri discreti. Pertanto, SetParameterValue()
non può essere utilizzato in questa esercitazione perché il sottoreport ha un parametro di intervallo.

1.5.2.6.6.1 Per utilizzare l'API avanzata di SAP Crystal


Reports per i sottoreport con parametri di intervallo

Prerequisiti

È necessario creare un progetto in base alle istruzioni riportate in Esercitazione: Lettura e impostazione di
parametri con un sottoreport [pagina 410].

Procedura

1. Aprire il progetto completato per questa esercitazione.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. All'interno del metodo SetDateRangeForOrders(), eliminare le righe di codice che utilizzano le classi
ParameterFieldDefinitions o ParameterFieldDefinition. Eliminare le seguenti righe di codice:

Dim myParameterFieldDefinitions As ParameterFieldDefinitions =


myReportDocument.DataDefinition.ParameterFields
Dim myParameterFieldDefinition As ParameterFieldDefinition =
myParameterFieldDefinitions(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME)
myParameterFieldDefinition.CurrentValues.Clear()
myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue)
myParameterFieldDefinition.ApplyCurrentValues(myParameterFieldDefinition.CurrentV
alues)

ParameterFieldDefinitions parameterFieldDefinitions =
reportDocument.DataDefinition.ParameterFields;
ParameterFieldDefinition parameterFieldDefinition =
parameterFieldDefinitions[SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME];
parameterFieldDefinition.CurrentValues.Clear();
parameterFieldDefinition.CurrentValues.Add(parameterRangeValue);
parameterFieldDefinition.ApplyCurrentValues(parameterFieldDefinition.CurrentValue
s);

Nel passaggio successivo, si aggiungono i nuovi metodi dell'API di SAP Crystal Reports al metodo
SetDateRangeForOrders(), dopo il codice che imposta il tipo di limite dell'intervallo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
424 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. All'interno del metodo SetDateRangeForOrders(), recuperare l'istanza ParameterFields dalla proprietà
ParameterFields dell'istanza ReportDocument.

Dim myParameterFields As ParameterFields = reportDocument.ParameterFields

ParameterFields parameterFields = reportDocument.ParameterFields;

6. Recuperare l'istanza ParameterField dalla classe indicizzata ParameterField, basata su due valori indicizzati: il
nome del campo di parametro del sottoreport e il nome del sottoreport. Passare i valori delle due costanti
dichiarate all'inizio della classe.

Dim myParameterField As ParameterField =


myParameterFields(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME)

ParameterField parameterField = parameterFields[SUBREPORT_PARAMETER_FIELD_NAME,


SUBREPORT_NAME];

7. Chiamare il metodo Clear() della proprietà CurrentValues dell'istanza ParameterField per rimuovere
eventuali valori esistenti dalla proprietà CurrentValues.

myParameterField.CurrentValues.Clear()

parameterField.CurrentValues.Clear();

8. Aggiungere l'istanza ParameterRangeValue, creata in precedenza, alla proprietà CurrentValues dell'istanza


ParameterField.

myParameterField.CurrentValues.Add(myParameterRangeValue)

parameterField.CurrentValues.Add(parameterRangeValue);

Risultati

A questo punto è possibile creare ed eseguire il progetto per leggere e impostare parametri di intervallo per un
sottoreport.

1.5.2.7 Esercitazione: Esportazione in più formati

In questa esercitazione viene descritto come esportare il report a livello di codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 425
Introduzione

In questa esercitazione viene descritto come esportare il report a livello di codice. SAP Crystal Reports può
esportare in un'ampia varietà di formati. Le opzioni disponibili dipendono dalla versione di SAP Crystal Reports
installata.

Ogni versione di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio supporta le seguenti
opzioni di esportazione:

● SAP Crystal Reports (RPT)


● SAP Crystal Reports Solo lettura (RPTR)
● PDF
● Rich Text Format (RTF)
● Microsoft Word (97-2003)
● Microsoft Excel (97-2003)
● Microsoft Excel (97-2003) Solo dati
● Microsoft Excel (2007) Solo dati
● HTML 4.0

SAP Crystal Reports Developer supporta i seguenti formati aggiuntivi:

● Valori separati da virgola (CSV)


● Microsoft Word - Modificabile (RTF)
● Testo separato da tabulazione (TTX)
● Testo

È possibile selezionare uno di questi formati, fare clic sul pulsante Esporta del controllo CrystalReportViewer ed
esportare un report nel formato scelto sul computer locale in cui viene eseguito SAP Crystal Reports, in
un'applicazione Web o Windows.

I report possono essere esportati anche a livello di codice, in directory specifiche sul server Web locale o sul
computer Windows.

Iniziare l'esercitazione aggiungendo un controllo DropDownList al Web Form o al Windows Form, quindi
compilarlo con i valori dell'enumerazione ExportFormatType nello spazio dei nomi CrystalDecisions.Shared.

Creare poi tre metodi di supporto privati che contengano la funzionalità di esportazione ed eseguano operazioni di
configurazione specifiche per ciascuno dei formati di esportazione.

Infine, creare un metodo di evento clic per un controllo Button sul Web Form o sul Windows Form e chiamare i tre
metodi di supporto privati che eseguono l'esportazione.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
426 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Sito Web in C#: CS_Web_RDObjMod_Export
● Progetto Windows C#: CS_Win_RDObjMod_Export
● Sito Web in Visual Basic: VB_Web_RDObjMod_Export
● Progetto Windows Visual Basic: VB_Win_RDObjMod_Export

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.2.7.1 Aggiunta di controlli al Web Form o al Windows


Form

In questa sezione viene descritto come aggiungere un controllo DropDownList, un controllo Button e un controllo
Label sopra il controllo CrystalReportViewer sul Web Form o sul Windows Form.

1.5.2.7.1.1 Per aggiungere controlli al Web Form o al


Windows Form

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Premere il tasto freccia sinistra sulla tastiera per visualizzare un cursore lampeggiante, quindi premere
Invio.
Il controllo CrystalReportViewer si sposta in basso di una riga.
4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Ridimensionare il controllo CrystalReportViewer, in modo da lasciare spazio sufficiente sopra di esso per
un controllo ComboBox.
c) Nella finestra Proprietà, impostare Anchor su "Top, Bottom, Left, Right".
5. Dalla casella degli strumenti, trascinare un controllo DropDownList (nei siti Web) o ComboBox (nei progetti
Windows) sopra il controllo CrystalReportViewer.

Nota
Se una Smart Task viene visualizzata nell'oggetto DropDownList (ComboBox) quando si utilizza Visual
Studio 2005 o versioni successive, premere Esc per chiuderla.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 427
6. Fare clic sul controllo DropDownList (ComboBox) per selezionarlo.
7. Nella finestra Proprietà, impostare la proprietà ID su "exportTypesList".
8. Dalla casella degli strumenti, trascinare un controllo Button a destra del controllo DropDownList (ComboBox).
9. Fare clic sul controllo Button per selezionarlo.
10. Nella finestra Proprietà, effettuare le seguenti operazioni:

○ Impostare la proprietà ID su "exportByType".


○ Impostare la proprietà Text su "Esporta come tipo selezionato".
11. Dalla casella degli strumenti, trascinare un controllo Label a destra del controllo Button.
12. Fare clic sul controllo Label per selezionarlo.
13. Nella finestra Proprietà, effettuare le seguenti operazioni:

○ Impostare la proprietà ID su "message".


○ Lasciare vuota la proprietà Text.
○ Impostare la proprietà Visible su "False".
14. Dal menu File, scegliere Salva tutto.

Risultati

A questo punto è necessario compilare il controllo DropDownList con l'enumerazione ExportFormatType dello
spazio dei nomi CrystalDecisions.Shared.

1.5.2.7.1.2 Per compilare il controllo DropDownList con


l'enumerazione ExportFormatType in un sito Web

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'interno del metodo ConfigureCrystalReports(), alla fine, aggiungere un blocco condizionale Not
IsPostBack.

If Not IsPostBack Then

End If

if (!IsPostBack)
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
428 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. All'interno del blocco condizionale, impostare la proprietà DataSource del controllo ComboBox
exportTypesList sui valori dell'enumerazione ExportFormatType.

exportTypesList.DataSource = System.Enum.GetValues(GetType(ExportFormatType))

exportTypesList.DataSource = System.Enum.GetValues(typeof(ExportFormatType));

5. Chiamare il metodo DataBind() del controllo DropDownList exportTypesList per collegare i valori al
controllo.

exportTypesList.DataBind()

exportTypesList.DataBind();

1.5.2.7.1.3 Per compilare il controllo DropDownList con


l'enumerazione ExportFormatType in un progetto Windows

Procedura

1. Aprire il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'interno del metodo ConfigureCrystalReports(), alla fine, impostare la proprietà DataSource del
controllo ComboBox exportTypesList sui valori dell'enumerazione ExportFormatType.

exportTypesList.DataSource = System.Enum.GetValues(GetType(ExportFormatType))

exportTypesList.DataSource = System.Enum.GetValues(typeof(ExportFormatType));

1.5.2.7.2 Creazione di metodi per l'esecuzione


dell'esportazione

In questa sezione viene descritto come creare i seguenti metodi di supporto privati per l'esecuzione
dell'esportazione.

● ExportSetup()
● ExportSelection()
● ExportCompletion()

Nel corso dell'esercitazione, questi metodi verranno chiamati da un metodo di evento clic di un controllo Button.
Iniziare creando il metodo di supporto ExportSetup().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 429
1.5.2.7.2.1 Creazione del metodo ExportSetup()

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'inizio della classe, aggiungere tre dichiarazioni di classe.

Private exportPath As String


Private myDiskFileDestinationOptions As DiskFileDestinationOptions
Private myExportOptions As ExportOptions

private string exportPath;


private DiskFileDestinationOptions diskFileDestinationOptions;
private ExportOptions exportOptions;

Successivamente verrà descritto come creare le istanze di queste classi di supporto nel metodo
ExportSetup().
4. Alla fine della classe, creare un metodo di supporto privato denominato ExportSetup() senza valore
restituito.

Public Sub ExportSetup()

End Sub

private void ExportSetup()


{
}

5. All'interno del metodo, impostare la variabile di stringa exportPath sulla directory principale dell'unità disco
rigido.

exportPath = "C:\Exported\"

exportPath = "C:\\Exported\\";

Nota
Se si desidera inserire la cartella di esportazione nella directory Web del server Web, aggiungere al nome
della cartella il prefisso Request.PhysicalApplicationPath.

6. Creare un blocco condizionale che verifichi se la directory nella stringa exportPath esista già.

If Not System.IO.Directory.Exists(exportPath) Then

End If

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
430 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
if (!System.IO.Directory.Exists(exportPath))
{
}

7. Nel blocco condizionale, chiamare il metodo CreateDirectory() di System.IO.Directory per creare la


directory nella stringa exportPath.

System.IO.Directory.CreateDirectory(exportPath)

System.IO.Directory.CreateDirectory(exportPath);

8. Fuori dal blocco condizionale, creare un'istanza della classe DiskFileDesintationOptions.

myDiskFileDestinationOptions = New DiskFileDestinationOptions()

diskFileDestinationOptions = new DiskFileDestinationOptions();

9. Compilare l'istanza ExportOptions con la proprietà ExportOptions dell'istanza hierarchicalGroupingReport.

myExportOptions = hierarchicalGroupingReport.ExportOptions

exportOptions = hierarchicalGroupingReport.ExportOptions;

10. Impostare la proprietà ExportDestinationType dell'istanza ExportOptions sulla selezione dell'enumerazione


ExportDestinationType.DiskFile.

myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile

exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;

11. Per un progetto Windows, eliminare i valori nella proprietà ExportFormatOptions dell'istanza di
ExportOptions. Questa riga di codice non è necessaria per un sito Web, poiché il contenuto della variabile
viene automaticamente eliminato ad ogni evento clic.

myExportOptions.ExportFormatOptions = Nothing

exportOptions.ExportFormatOptions = null;

Risultati

A questo punto è possibile creare il metodo di supporto ExportSelection().

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 431
1.5.2.7.2.2 Creazione del metodo ExportSelection()

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. All'inizio della classe, aggiungere una dichiarazione booleana che viene utilizzata per verificare se non è
selezionato alcun formato di esportazione.

Private selectedNoFormat As Boolean = True

private bool selectedNoFormat = true;

4. Alla fine della classe, creare un metodo di supporto privato denominato ExportSelection() senza valore
restituito.

Public Sub ExportSelection()

End Sub

private void ExportSelection()


{
}

5. All'interno del metodo, creare un'istruzione "Select Case" [Visual Basic] o "switch" [C#] che
faccia riferimento ai membri dell'enumerazione ExportFormatType. L'enumerazione è basata sulla voce
SelectedIndex del controllo DropDownList exportTypesList creato nella procedura precedente.

Select Case exportTypesList.SelectedIndex

Case ExportFormatType.NoFormat

Case ExportFormatType.CrystalReport

Case ExportFormatType.RichText

Case ExportFormatType.WordForWindows

Case ExportFormatType.Excel

Case ExportFormatType.PortableDocFormat

Case ExportFormatType.HTML32

Case ExportFormatType.HTML40

Case Else

End Select

switch ((ExportFormatType)exportTypesList.SelectedIndex)
{

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
432 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
case ExportFormatType.NoFormat:
break;
case ExportFormatType.CrystalReport:
break;
case ExportFormatType.RichText:
break;
case ExportFormatType.WordForWindows:
break;
case ExportFormatType.Excel:
break;
case ExportFormatType.PortableDocFormat:
break;
case ExportFormatType.HTML32:
break;
case ExportFormatType.HTML40:
break;
default:
break;
}

Risultati

Il metodo ExportSelection() è stato completato. A questo punto è possibile creare il metodo di supporto
ExportCompletion().

1.5.2.7.2.3 Creazione del metodo ExportCompletion()

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ExportCompletion() senza valore
restituito.

Public Sub ExportCompletion()

End Sub

private void ExportCompletion()


{
}

4. All'interno del metodo, creare un blocco Try/Catch con la classe Exception a cui viene fatto riferimento come
variabile denominata "ex".

Try

Catch ex As Exception

End Try

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 433
try
{
}
catch (Exception ex)
{
}

5. Nel blocco Try, creare un blocco condizionale per verificare la variabile booleana selectedNoFormat.

If selectedNoFormat Then

Else

End If

if (selectedNoFormat)
{
}
else
{
}

6. Nel blocco If, impostare la proprietà Text del controllo Label message sulla costante
FORMAT_NOT_SUPPORTED della classe MessageConstants.

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;

7. Nel blocco Else, chiamare il metodo Export() dell'istanza hierarchicalGroupingReport.

hierarchicalGroupingReport.Export()

hierarchicalGroupingReport.Export();

8. Sempre nel blocco Else, impostare la proprietà Text del controllo Label message sulla costante SUCCESS
della classe MessageConstants.

message.Text = MessageConstants.SUCCESS

message.Text = MessageConstants.SUCCESS;

9. Nel blocco Catch, impostare la proprietà Text del controllo Label message sulla costante FAILURE della classe
MessagesConstants, quindi aggiungervi la proprietà Message del parametro Exception.

message.Text = MessageConstants.FAILURE & ex.Message

message.Text = MessageConstants.FAILURE + ex.Message;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
434 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
10. Fuori dal blocco Try/Catch, impostare la proprietà Visible del controllo Label message su "True".

message.Visible = True

message.Visible = true;

Risultati

La procedura di creazione dei tre metodi di supporto privati che eseguono l'esportazione è stata completata.

1.5.2.7.3 Creazione di metodi per la configurazione di più


formati di esportazione

In questa sezione viene descritto come creare i metodi di supporto privati per la configurazione di più formati di
esportazione. Tutti i metodi vengono utilizzati in modo simile, ad eccezione di ConfigureExportToHtml32() e
ConfigureExportToHtml40(), che offrono modalità diverse per l'esportazione nel formato HTML.

● ConfigureExportToRpt()
● ConfigureExportToRtf()
● ConfigureExportToDoc()
● ConfigureExportToXls()
● ConfigureExportToPdf()
● ConfigureExportToHtml32()
● ConfigureExportToHtml40()

1.5.2.7.3.1 Per creare il metodo di supporto


ConfigureExportToRpt()

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToRpt() senza
valore restituito.

Public Sub ConfigureExportToRpt()

End Sub

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 435
private void ConfigureExportToRpt()
{
}

4. Nel metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione


CrystalReport dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.CrystalReport

exportOptions.ExportFormatType = ExportFormatType.CrystalReport;

5. Impostare la proprietà DiskFileName dell'istanza di DiskFileDestinationOptions sulla stringa


exportPath e quindi aggiungere il nome di un documento con estensione file rpt.

myDiskFileDestinationOptions.DiskFileName = exportPath &


"Report.rpt"

diskFileDestinationOptions.DiskFileName = exportPath +
"Report.rpt";

6. Infine, impostare la proprietà ExportDestinationOptions dell'istanza diExportOptions sull'istanza di


DiskFileDestinationOptions configurata al passaggio precedente.

myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions

exportOptions.ExportDestinationOptions = diskFileDestinationOptions;

1.5.2.7.3.2 Per creare il metodo di supporto


ConfigureExportToRtf

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToRtf() senza
valore restituito.

Public Sub ConfigureExportToRtf()

End Sub

private void
ConfigureExportToRtf()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
436 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
{
}

4. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
RichText dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.RichText

exportOptions.ExportFormatType = ExportFormatType.RichText;

5. Impostare la proprietà DiskFileName dell'istanza DiskFileDestinationOptions sulla stringa exportPath, seguita


dal nome di un documento con estensione .rtf.

myDiskFileDestinationOptions.DiskFileName = exportPath & "RichTextFormat.rtf"

diskFileDestinationOptions.DiskFileName = exportPath + "RichTextFormat.rtf";

6. Infine, impostare la proprietà ExportDestinationOptions dell'istanza di ExportOptions sull'istanza di


DiskFileDestinationOptions configurata al passaggio precedente.

myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions

exportOptions.ExportDestinationOptions = diskFileDestinationOptions;

1.5.2.7.3.3 Per creare il metodo di supporto


ConfigureExportToDoc

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToDoc() senza
valore restituito.

Public Sub ConfigureExportToDoc()

End Sub

private void
ConfigureExportToDoc()
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 437
4. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
WordForWindows dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.WordForWindows

exportOptions.ExportFormatType = ExportFormatType.WordForWindows;

5. Impostare la proprietà DiskFileName dell'istanza DiskFileDestinationOptions sulla stringa exportPath, seguita


dal nome di un documento con estensione .doc.

myDiskFileDestinationOptions.DiskFileName = exportPath &


"Word.doc"

diskFileDestinationOptions.DiskFileName = exportPath + "Word.doc";

6. Infine, impostare la proprietà ExportDestinationOptions dell'istanza di ExportOptions sull'istanza di


DiskFileDestinationOptions configurata al passaggio precedente.

myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions

exportOptions.ExportDestinationOptions = diskFileDestinationOptions;

1.5.2.7.3.4 Per creare il metodo di supporto


ConfigureExportToXls

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToXls() senza
valore restituito.

Public Sub ConfigureExportToXls()

End Sub

private void
ConfigureExportToXls()
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
438 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
Excel dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.Excel

exportOptions.ExportFormatType = ExportFormatType.Excel;

5. Impostare la proprietà DiskFileName dell'istanza DiskFileDestinationOptions sulla stringa exportPath, seguita


dal nome di un documento con estensione .xls.

myDiskFileDestinationOptions.DiskFileName = exportPath & "Excel.xls"

diskFileDestinationOptions.DiskFileName = exportPath + "Excel.xls";

6. Infine, impostare la proprietà ExportDestinationOptions dell'istanza di ExportOptions sull'istanza di


DiskFileDestinationOptions configurata al passaggio precedente.

myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions

exportOptions.ExportDestinationOptions = diskFileDestinationOptions;

1.5.2.7.3.5 Per creare il metodo di supporto


ConfigureExportToPdf

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToPdf() senza
valore restituito.

Public Sub ConfigureExportToPdf()

End Sub

private void
ConfigureExportToPdf()
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 439
4. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
PortableDocFormat dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat

exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;

5. Impostare la proprietà DiskFileName dell'istanza DiskFileDestinationOptions sulla stringa exportPath, seguita


dal nome di un documento con estensione .pdf.

myDiskFileDestinationOptions.DiskFileName = exportPath & "PortableDoc.pdf"

diskFileDestinationOptions.DiskFileName = exportPath + "PortableDoc.pdf";

6. Infine, impostare la proprietà ExportDestinationOptions dell'istanza di ExportOptions sull'istanza di


DiskFileDestinationOptions configurata al passaggio precedente.

myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions

exportOptions.ExportDestinationOptions = diskFileDestinationOptions;

1.5.2.7.3.6 Per creare il metodo di supporto


ConfigureExportToHtml32

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToHtml32()
senza valore restituito.

Public Sub ConfigureExportToHtml32()

End Sub

private void
ConfigureExportToHtml32()
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
440 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
HTML32 dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.HTML32

exportOptions.ExportFormatType = ExportFormatType.HTML32;

5. Dichiarare e creare un'istanza della classe HTMLFormatOptions con il nome di variabile


"html32FormatOptions".

Dim html32FormatOptions As HTMLFormatOptions = New


HTMLFormatOptions()

HTMLFormatOptions html32FormatOptions = new HTMLFormatOptions();

6. Impostare la proprietà HTMLBaseFolderName dell'istanza html32FormatOptions sulla stringa exportPath e il


nome "Html32Folder".

html32FormatOptions.HTMLBaseFolderName = exportPath &


"Html32Folder"

html32FormatOptions.HTMLBaseFolderName = exportPath +
"Html32Folder";

7. Impostare la proprietà HTMLFileName dell'istanza html32FormatOptions sul nome "html32.html".

html32FormatOptions.HTMLFileName = "html32.html"

html32FormatOptions.HTMLFileName = "html32.html";

8. Impostare la proprietà HTMLEnableSeparatedPages dell'istanza html32FormatOptions su "False".

html32FormatOptions.HTMLEnableSeparatedPages = False

html32FormatOptions.HTMLEnableSeparatedPages = false;

9. Impostare la proprietà HTMLHasPageNavigator dell'istanza html32FormatOptions su "False".

html32FormatOptions.HTMLHasPageNavigator = False

html32FormatOptions.HTMLHasPageNavigator = false;

10. Infine, assegnare l'istanza html32FormatOptions alla proprietà FormatOptions dell'istanza ExportOptions.

myExportOptions.ExportFormatOptions = html32FormatOptions

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 441
exportOptions.ExportFormatOptions = html32FormatOptions;

1.5.2.7.3.7 Per creare il metodo di supporto


ConfigureExportToHtml40

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToHtml40()
senza valore restituito.

Public Sub ConfigureExportToHtml40()

End Sub

private void
ConfigureExportToHtml40()
{
}

4. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
HTML40 dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.HTML40

exportOptions.ExportFormatType = ExportFormatType.HTML40;

5. Dichiarare e creare un'istanza della classe HTMLFormatOptions con il nome di variabile


"html40FormatOptions".

Dim html40FormatOptions As HTMLFormatOptions = New


HTMLFormatOptions()

HTMLFormatOptions html40FormatOptions = new HTMLFormatOptions();

6. Impostare la proprietà HTMLBaseFolderName dell'istanza html40FormatOptions sulla stringa exportPath e il


nome "Html40Folder".

html40FormatOptions.HTMLBaseFolderName = exportPath &


"Html40Folder"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
442 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
html40FormatOptions.HTMLBaseFolderName = exportPath +
"Html40Folder";

7. Impostare la proprietà HTMLFileName dell'istanza html40FormatOptions sul nome "html40.html".

html40FormatOptions.HTMLFileName = "html40.html"

html40FormatOptions.HTMLFileName = "html40.html";

8. Impostare la proprietà HTMLEnableSeparatedPages dell'istanza html40FormatOptions su "True".

html40FormatOptions.HTMLEnableSeparatedPages = True

html40FormatOptions.HTMLEnableSeparatedPages = true;

9. Impostare la proprietà HTMLHasPageNavigator dell'istanza html40FormatOptions su "True".

html40FormatOptions.HTMLHasPageNavigator = True

html40FormatOptions.HTMLHasPageNavigator = true;

10. Impostare la proprietà FirstPageNumber dell'istanza html40FormatOptions su 1.

html40FormatOptions.FirstPageNumber = 1

html40FormatOptions.FirstPageNumber = 1;

11. Impostare la proprietà LastPageNumber dell'istanza html40FormatOptions su 3.

html40FormatOptions.LastPageNumber = 3

html40FormatOptions.LastPageNumber = 3;

12. Infine, assegnare l'istanza html40FormatOptions alla proprietà FormatOptions dell'istanza ExportOptions.

myExportOptions.FormatOptions = html40FormatOptions

exportOptions.FormatOptions = html40FormatOptions;

Risultati

Sono stati creati i metodi di supporto privati che configurano i diversi formati di esportazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 443
1.5.2.7.4 Chiamata dei metodi dall'istruzione Case

Nella lezione precedente è stata creata un'istruzione Case nel metodo ExportSelection() con più case. Ogni
case è collegato a una selezione dall'enumerazione ExportFormatType. In questa sezione viene descritto come
chiamare ciascun metodo di configurazione dal case corrispondente e come impostare il valore della variabile
booleana selectedNoFormat.

1.5.2.7.4.1 Per chiamare i metodi dall'istruzione Case

Procedura

1. Individuare il metodo ExportSelection() creato nella lezione precedente.


2. All'interno dell'istruzione Case Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.NoFormat impostare la variabile booleana selectedNoFormat su True.

selectedNoFormat = True

selectedNoFormat = true;

3. All'interno dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.CrystalReport chiamare il metodo ConfigureExportToRpt().

selectedNoFormat = False
ConfigureExportToRpt()

selectedNoFormat = false;
ConfigureExportToRpt();

4. All'interno dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.RichText chiamare il metodo ConfigureExportToRtf().

selectedNoFormat = False
ConfigureExportToRtf()

selectedNoFormat = false;
ConfigureExportToRtf();

5. All'interno dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.WordForWindows chiamare il metodo ConfigureExportToDoc().

selectedNoFormat = False
ConfigureExportToDoc()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
444 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
selectedNoFormat = false;
ConfigureExportToDoc();

6. All'interno dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.Excel chiamare il metodo ConfigureExportToXls().

selectedNoFormat = False
ConfigureExportToXls()

selectedNoFormat = false;
ConfigureExportToXls();

7. All'interno dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.PortableDocFormat chiamare il metodo ConfigureExportToPdf().

selectedNoFormat = False
ConfigureExportToPdf()

selectedNoFormat = false;
ConfigureExportToPdf();

8. All'interno dell'istruzione dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.HTML32 chiamare il metodo ConfigureExportToHtml32().

selectedNoFormat = False
ConfigureExportToHtml32()

selectedNoFormat = false;
ConfigureExportToHtml32();

9. All'interno dell'istruzione Select Case [Visual Basic] o switch [C#], per il caso
ExportFormatType.HTML40 chiamare il metodo ConfigureExportToHtml40().

selectedNoFormat = False
ConfigureExportToHtml40()

selectedNoFormat = false;
ConfigureExportToHtml40();

10. All'interno dell'istruzione Case Select Case [Visual Basic] o switch [C#], per il caso Switch Else
[Visual Basic] o default: [C#], impostare la variabile booleana selectedNoFormat su True.

selectedNoFormat = True

selectedNoFormat = true;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 445
Risultati

Se si sta creando un progetto in Visual Studio 2005 o versioni successive, è necessario completare le procedure
in Creazione di metodi per i nuovi formati di esportazione [pagina 448] prima di passare a Chiamata dei metodi
per l'esecuzione dell'esportazione [pagina 446].

1.5.2.7.5 Chiamata dei metodi per l'esecuzione


dell'esportazione

A questo punto è possibile creare il metodo dell'evento clic per il controllo Button exportByType e chiamare i
metodi per l'esecuzione dell'esportazione dal metodo dell'evento.

1.5.2.7.5.1 Per creare il metodo di evento


exportByType_Click

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic sul controllo Button exportByType.
Il metodo di evento exportByType_Click() viene creato e visualizzato in visualizzazione Codice.
4. Nel metodo di evento exportByType_Click(), inserire le chiamate ai tre metodi di evento creati
precedentemente per eseguire l'esportazione.

ExportSetup()
ExportSelection()
ExportCompletion()

ExportSetup();
ExportSelection();
ExportCompletion();

Risultati

A questo punto è possibile creare ed eseguire il progetto e quindi esportare il report in più formati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
446 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.7.5.2 Per verificare il progetto

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

L'applicazione Web o Windows compila e visualizza il report Hierarchical Grouping. Nel controllo
DropDownList sono elencati i formati di esportazione disponibili e il pulsante Esporta come tipo selezionato
consente di eseguire l'esportazione.
4. Selezionare uno dei formati di esportazione dal controllo DropDownList, quindi fare clic sul pulsante Esporta
come tipo selezionato.
Accanto al pulsante viene visualizzato un messaggio indicate che l'esportazione è stata completata. In caso
contrario, viene visualizzato un messaggio di errore.
5. Provare ad eseguire l'esportazione in diversi formati.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.
7. Controllare la directory dei file esportati sul server Web o sul computer Windows per verificare che siano
presenti i file esportati.

1.5.2.7.6 Appendice: Miglioramenti al codice di esportazione

Se è installato Visual Studio 2005 o versioni successive o SAP Crystal Reports, è possibile accedere all'API
avanzata per l'esportazione del report Crystal in più formati.

Nell'API SAP Crystal Reports avanzata, l'enumerazione ExportFormatTypes presenta due nuovi formati di
esportazione: record Microsoft Excel (file xls contenenti solo dati) e file di testo.

Inoltre, nella classe ReportDocument sono ora disponibili i seguenti metodi di esportazione avanzati:

● ExportToDisk(CrystalDecisions.Shared.ExportFormatType formatType, string fileName):


esporta un report nell'unità locale del server Web o nel computer Windows.
● ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType formatType,
System.Web.HttpResponse response, bool asAttachment, string attachmentName): esporta
un report nel tipo di formato specificato in una finestra del browser o come allegato.
● ExportToHttpResponse(CrystalDecisions.Shared.ExportOptions options,
System.Web.HttpResponse response, bool asAttachment, string attachmentName): esporta
un report nel tipo di formato specificato in una finestra del browser o come allegato.
● ExportToStream(CrystalDecisions.Shared.ExportFormatType formatType): esporta i dati di un
report nel tipo di formato specificato in un flusso di input/output.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 447
1.5.2.7.6.1 Creazione di metodi per i nuovi formati di
esportazione

In questa sezione viene descritto come modificare il progetto (creato in precedenza in questa esercitazione) per
includere i nuovi formati di esportazione.

Prima di modificare il codice per includere i nuovi formati di esportazione, completare tutte le procedure riportate
in Esercitazione: Esportazione in più formati [pagina 425].

1.5.2.7.6.1.1 Per modificare il codice per includere i nuovi


formati di esportazione

Procedura

1. Aprire il progetto completato per questa esercitazione.


2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. Nell'istruzione "Select Case" [Visual Basic] o "switch" [C#] del metodo ExportSelection(),
aggiungere un'istruzione case per il formato ExcelRecord.

Case ExportFormatType.ExcelRecord

case ExportFormatType.ExcelRecord:
break;

Creare i metodi di supporto privati che configurano i diversi formati di esportazione. Creare innanzitutto il
metodo ConfigureExportToXlsRec() per impostare le opzioni di esportazione ExcelRecord.
5. Alla fine della classe, creare un metodo di supporto privato denominato ConfigureExportToXlsRec()
senza valore restituito.

Public Sub ConfigureExportToXlsRec()

End Sub

private void ConfigureExportToXlsRec()


{
}

6. All'interno del metodo, impostare la proprietà ExportFormatType dell'istanza ExportOptions sulla selezione
ExcelRecord dell'enumerazione ExportFormatType.

myExportOptions.ExportFormatType = ExportFormatType.ExcelRecord

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
448 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
exportOptions.ExportFormatType = ExportFormatType.ExcelRecord;

7. Impostare la proprietà DiskFileName dell'istanza DiskFileDestinationOptions sulla stringa exportPath, seguita


dal nome di un documento con estensione .xls.

myDiskFileDestinationOptions.DiskFileName = exportPath & "ExcelRecord.xls"

diskFileDestinationOptions.DiskFileName = exportPath + "ExcelRecord.xls";

8. Impostare la proprietà ExportDestinationOptions dell'istanza di ExportOptions sull'istanza di


DiskFileDestinationOptions configurata al passaggio precedente.

myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions

exportOptions.ExportDestinationOptions = diskFileDestinationOptions;

Risultati

Sono stati aggiunti due nuovi formati di esportazione al progetto.

Per esaminare ulteriormente l'API avanzata, scegliere uno dei seguenti metodi di esportazione avanzati:

● Se si desidera ridurre al minimo il codice senza impostare ExportOptions, passare a Utilizzo del metodo
ExportToDisk() [pagina 449].
● In un sito Web, se si desidera esportare il report in una finestra del browser o come allegato in una finestra del
browser, passare a Utilizzo del metodo ExportToHttpResponse() [pagina 459].
● Se si desidera passare i dati del report in un flusso di input/output, passare a Utilizzo del metodo
ExportToStream() [pagina 465].

1.5.2.7.6.2 Utilizzo del metodo ExportToDisk()

Il metodo ExportToDisk() accetta il parametro ExportFormatType e un nome id file. Il metodo riduce la


necessità di utilizzare i metodi di configurazione di esportazione creati in Creazione di metodi per la configurazione
di più formati di esportazione [pagina 435].

In questa sezione viene descritto come creare un nuovo progetto, come modificarne uno esistente e come
aggiungere codice al progetto per utilizzare il metodo ExportToDisk().

Prerequisiti:

● È necessario creare un progetto in base alle istruzioni riportate in Impostazione di un progetto per il metodo
ExportToDisk() [pagina 450].
● Oppure è necessario creare un progetto in base alle istruzioni riportate in Creazione di metodi per i nuovi
formati di esportazione [pagina 448].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 449
È quindi necessario modificare il progetto come descritto in Preparazione del progetto per il metodo
ExportToDisk() [pagina 452].

1.5.2.7.6.2.1 Impostazione di un progetto per il metodo


ExportToDisk()

In questa sezione viene illustrato come creare un nuovo progetto per il metodo ExportToDisk().

1.5.2.7.6.2.1.1 Per impostare un nuovo progetto per il


metodo ExportToDisk()

Procedura

1. Completare le istruzioni riportate in Aggiunta di controlli al Web Form o al Windows Form [pagina 427].
2. Creare i metodi ExportSetup() e ExportSelection() in base alle istruzioni riportate in Creazione di
metodi per l'esecuzione dell'esportazione [pagina 429].
3. Nell'istruzione "Select Case" [Visual Basic] o "switch" [C#] del metodo ExportSelection()
aggiungere un'istruzione case per il formato ExcelRecord.

Case ExportFormatType.ExcelRecord

case ExportFormatType.ExcelRecord:
break;

4. Creare un blocco condizionale per verificare la variabile booleana selectedNoFormat.

If selectedNoFormat Then

Else

End If

if (selectedNoFormat)
{
}
else
{
}

5. Nel blocco If, impostare la proprietà Text del controllo Label message sulla costante
FORMAT_NOT_SUPPORTED della classe MessageConstants.

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
450 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;

6. Nel blocco Else, impostare la proprietà Text del controllo Label message sulla costante SUCCESS della classe
MessageConstants.

message.Text = MessageConstants.SUCCESS

message.Text = MessageConstants.SUCCESS;

7. Creare un blocco Try/Catch con la classe Exception a cui viene fatto riferimento come variabile denominata
"ex". Il blocco Try racchiude l'istruzione "Select Case" [Visual Basic] o "switch" [C#] e il blocco
condizionale.

Try

Catch ex As Exception

End Try

try
{
}
catch (Exception ex)
{
}

8. Nel blocco Catch, impostare la proprietà Text del controllo Label message sulla costante FAILURE della classe
MessagesConstants, quindi aggiungervi la proprietà Message del parametro Exception.

message.Text = MessageConstants.FAILURE & ex.Message

message.Text = MessageConstants.FAILURE + ex.Message;

9. Fuori dal blocco Try/Catch, impostare la proprietà Visible del controllo Label message su "True".

message.Visible = True

message.Visible = true;

10. Dal menu Visualizza, scegliere Finestra di progettazione.


11. Fare doppio clic sul controllo Button exportByType.
Viene creato il metodo di evento exportByType_Click() e si passa alla visualizzazione Codice.
12. Nel metodo di evento exportByType_Click(), inserire le chiamate ai metodi ExportSetup() ed
ExportSelection().

ExportSetup()
ExportSelection()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 451
ExportSetup();
ExportSelection();

1.5.2.7.6.2.2 Preparazione del progetto per il metodo


ExportToDisk()

In questa sezione viene descritto come modificare un progetto realizzato in base alla procedura riportata in
Creazione di metodi per i nuovi formati di esportazione [pagina 448].

A tal fine, occorre eliminare alcune righe di codice non necessario per il metodo ExportToDisk().

1.5.2.7.6.2.2.1 Per modificare il progetto per utilizzare il


metodo ExportToDisk()

Procedura

1. Aprire il progetto.
2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. All'inizio della classe, eliminare le seguenti dichiarazioni di classe:

Private myDiskFileDestinationOptions As DiskFileDestinationOptions


Private myExportOptions As ExportOptions

private DiskFileDestinationOptions diskFileDestinationOptions;


private ExportOptions exportOptions;

5. Nel metodo ExportSetup(), eliminare tutte le righe di codice dopo il blocco condizionale. L'ultima riga di
codice che chiama la proprietà ExportFormatOptions si verifica solo in un progetto Windows.

myDiskFileDestinationOptions = New DiskFileDestinationOptions()


myExportOptions = hierarchicalGroupingReport.ExportOptions
myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
myExportOptions.ExportFormatOptions = Nothing

diskFileDestinationOptions = new DiskFileDestinationOptions();


exportOptions = hierarchicalGroupingReport.ExportOptions;
exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
exportOptions.ExportFormatOptions = null;

6. Eliminare i seguenti metodi di configurazione dell'esportazione:

○ ConfigureExportToRpt()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
452 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
○ ConfigureExportToRtf()
○ ConfigureExportToDoc()
○ ConfigureExportToXls()
○ ConfigureExportToPdf()
○ ConfigureExportToHtml32()
○ ConfigureExportToHtml40()
○ ConfigureExportToXlsRec()
○ ConfigureExportToTxt()
7. Nelle istruzioni Select Case [Visual Basic] o switch [C#] di ExportSelection(), eliminare le
chiamate ai metodi di configurazione dell'esportazione.
8. Nel metodo ExportCompletion(), eliminare la chiamata al metodo Export().
9. Copiare e incollare tutto il codice dal metodo ExportCompletion() all'inizio del metodo
ExportSelection().
10. Eliminare il metodo ExportCompletion() e la chiamata a ExportCompletion() nell'evento clic del
controllo Button exportByType.
11. Nel metodo ExportSelection(), tagliare e incollare le istruzioni Case di Select Case [Visual Basic]
o switch [C#] sopra il blocco If all'interno del blocco Try.
Il blocco Try/Catch assumerà il seguente aspetto:

Try
Select Case exportTypesList.SelectedIndex
Case ExportFormatType.NoFormat
selectedNoFormat = True
Case ExportFormatType.CrystalReport

Case ExportFormatType.RichText

Case ExportFormatType.WordForWindows

Case ExportFormatType.Excel

Case ExportFormatType.PortableDocFormat

Case ExportFormatType.HTML32

Case ExportFormatType.HTML40

End Select
If selectedNoFormat Then
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
Else
message.Text = MessageConstants.SUCCESS
End If
Catch ex As Exception
message.Text = MessageConstants.FAILURE & ex.Message
End Try

try
{
switch ((ExportFormatType)exportTypesList.SelectedIndex)
{
case ExportFormatType.NoFormat:
selectedNoFormat = true;
break;
case ExportFormatType.CrystalReport:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 453
break;
case ExportFormatType.RichText:
break;
case ExportFormatType.WordForWindows:
break;
case ExportFormatType.Excel:
break;
case ExportFormatType.PortableDocFormat:
break;
case ExportFormatType.HTML32:
break;
case ExportFormatType.HTML40:
break;
case ExportFormatType.ExcelRecord:
break;
}
if (selectedNoFormat)
{
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
}
else
{
message.Text = MessageConstants.SUCCESS;
}
}
catch (Exception ex)
{
message.Text = MessageConstants.FAILURE + ex.Message;
}

1.5.2.7.6.2.3 Modifica del metodo ExportSetup()

In questa sezione viene illustrato come modificare il metodo ExportSetup() per creare cartelle per i formati di
esportazione HTML32 e HTML40.

1.5.2.7.6.2.3.1 Per modificare il metodo ExportSetup()

Procedura

1. All'inizio della classe, aggiungere le seguenti dichiarazioni di classe:

Private exportPathHTML32 As String


Private exportPathHTML40 As String

private string exportPathHTML32;


private string exportPathHTML40;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
454 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Nel metodo ExportSetup(), creare un'istanza delle variabili di stringa exportPathHTML32 e
exportPathHTML40 nella directory principale dell'unità disco rigido.

exportPathHTML32 = "C:\Exported\HTML32\"
exportPathHTML40 = "C:\Exported\HTML40\"

exportPathHTML32 = "C:\\Exported\\HTML32\\";
exportPathHTML40 = "C:\\Exported\\HTML40\\";

Nota
Se si desidera inserire le cartelle nella directory Web del server Web, aggiungere al nome della cartella il
prefisso Request.PhysicalApplicationPath.

3. Creare un blocco condizionale per verificare se la directory nella stringa exportPathHTML32 esiste già.

If Not System.IO.Directory.Exists(exportPathHTML32) Then

End If

if (!System.IO.Directory.Exists(exportPathHTML32))
{
}

4. Nel blocco condizionale, chiamare il metodo CreateDirectory() di System.IO.Directory per creare la


directory nella stringa exportPathHTML32.

System.IO.Directory.CreateDirectory(exportPathHTML32)

System.IO.Directory.CreateDirectory(exportPathHTML32);

5. Creare un blocco condizionale per verificare se la directory nella stringa exportPathHTML40 esiste già.

If Not System.IO.Directory.Exists(exportPathHTML40) Then

End If

if (!System.IO.Directory.Exists(exportPathHTML40))
{
}

6. Nel blocco condizionale, chiamare il metodo CreateDirectory() di System.IO.Directory per creare la


directory nella stringa exportPathHTML40.

System.IO.Directory.CreateDirectory(exportPathHTML40)

System.IO.Directory.CreateDirectory(exportPathHTML40);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 455
1.5.2.7.6.2.4 Chiamata del metodo ExportToDisk()

In questa sezione viene illustrato come chiamare il metodo ExportToDisk() in ciascuna istruzione Case del
metodo ExportSelection().

1.5.2.7.6.2.4.1 Per chiamare il metodo ExportToDisk() nel


metodo ExportSelection()

Procedura

1. Nel metodo ExportSelection(), dichiarare una variabile di stringa e creare l'istanza della variabile in una
stringa vuota.

Dim myFileName As String = ""

string fileName = "";

2. Nell'istruzione Case ExportFormatType.CrystalReport, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPath, quindi aggiungere il nome di un
documento con estensione rpt.

myFileName = exportPath & "Report.rpt"

fileName = exportPath + "Report.rpt";

b) Chiamare il metodo ExportToDisk() dall'istanza di hierarchicalGroupingReport e passare


ExportFormatType.CrystalReport e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.CrystalReport,
myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.CrystalReport,
fileName);

3. Nell'istruzione Case ExportFormatType.RichText, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPath, quindi aggiungervi il nome di un
documento con estensione .rtf.

myFileName = exportPath & "RichTextFormat.rtf"

fileName = exportPath + "RichTextFormat.rtf";

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
456 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
b) Chiamare il metodo ExportToDisk() dall'istanza hierarchicalGroupingReport e passare
ExportFormatType.RichText e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.RichText,
myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.RichText,
fileName);

4. Nell'istruzione Case ExportFormatType.WordForWindows, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPath, quindi aggiungervi il nome di un
documento con estensione .doc.

myFileName = exportPath & "Word.doc"

fileName = exportPath + "Word.doc";

b) Chiamare il metodo ExportToDisk() dall'istanza di hierarchicalGroupingReport e passare


ExportFormatType.WordForWindows e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.WordForWindows,
myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.WordForWindows,
fileName);

5. Nell'istruzione Case ExportFormatType.Excel, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPath, quindi aggiungervi il nome di un
documento con estensione .xls.

myFileName = exportPath & "Excel.xls"

fileName = exportPath + "Excel.xls";

b) Chiamare il metodo ExportToDisk() dall'istanza hierarchicalGroupingReport e passare


ExportFormatType.Excel e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.Excel,
myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.Excel,
fileName);

6. Nell'istruzione Case ExportFormatType.PortableDocFormat, effettuare le seguenti operazioni:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 457
a) Impostare la stringa del nome del file sulla stringa exportPath, quindi aggiungervi il nome di un
documento con estensione .pdf.

myFileName = exportPath & "PortableDoc.pdf"

fileName = exportPath + "PortableDoc.pdf";

b) Chiamare il metodo ExportToDisk() dall'istanza di hierarchicalGroupingReport e passare


ExportFormatType.PortableDocFormat e la stringa del nome file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.PortableDocFormat,
myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.PortableDocFormat,
fileName);

7. Nell'istruzione Case ExportFormatType.HTML32, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPathHTML32, quindi aggiungere il nome di un
documento con estensione html.

myFileName = exportPathHTML32 & "HTML32.html"

fileName = exportPathHTML32 + "HTML32.html";

b) Chiamare il metodo ExportToDisk() dall'istanza di hierarchicalGroupingReport e passare


ExportFormatType.HTML32 e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML32, myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML32, fileName);

8. Nell'istruzione Case ExportFormatType.HTML40, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPathHTML40, quindi aggiungere il nome di un
documento con estensione html.

myFileName = exportPathHTML40 & "HTML40.html"

fileName = exportPathHTML40 + "HTML40.html";

b) Chiamare il metodo ExportToDisk() dall'istanza di hierarchicalGroupingReport e passare


ExportFormatType.HTML40 e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML40,
myFileName)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
458 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML40,
fileName);

9. Nell'istruzione Case ExportFormatType.ExcelRecord, effettuare le seguenti operazioni:


a) Impostare la stringa del nome del file sulla stringa exportPath, quindi aggiungere il nome di un
documento con estensione xls.

myFileName = exportPath & "ExcelRecord.xls"

fileName = exportPath + "ExcelRecord.xls";

b) Chiamare il metodo ExportToDisk() dall'istanza hierarchicalGroupingReport e passare


ExportFormatType.ExcelRecord e la stringa del nome del file.

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.ExcelRecord,
myFileName)

hierarchicalGroupingReport.ExportToDisk(ExportFormatType.ExcelRecord,
fileName);

Risultati

A questo punto è possibile creare ed eseguire il progetto per esportare il report Crystal in diversi formati.

Se si desidera utilizzare gli altri metodi API avanzati, fare clic sul collegamento appropriato per accedere alla
sezione desiderata:

● Utilizzo del metodo ExportToHttpResponse() [pagina 459]


● Utilizzo del metodo ExportToStream() [pagina 465]

1.5.2.7.6.3 Utilizzo del metodo ExportToHttpResponse()

Il metodo ExportToHttpResponse() consente di esportare il report Crystal in una finestra del browser o di
esportare il report come allegato. e viene utilizzato solo per i siti Web.

I metodi di sovraccarico disponibili per ExportToHttpResponse() includono:

● ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType formatType,
System.Web.HttpResponse response, bool asAttachment, string attachmentName)
● ExportToHttpResponse(CrystalDecisions.Shared.ExportOptions options,
System.Web.HttpResponse response, bool asAttachment, string attachmentName)

Il metodo ExportToHttpResponse() non supporta esportazioni nella risposta HTTP per i formati HTML32 e
HTML40. Pertanto, quando si tenta di eseguire un'esportazione in formato HTML32 o HTML40, viene visualizzato
un messaggio di errore.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 459
Se la variabile booleana asAttachment è impostata su True, viene visualizzata una finestra di dialogo Download
file. Se la variabile booleana asAttachment è impostata su False, il report esportato viene visualizzato nella
finestra del browser.

Quando si sceglie di salvare il file, il nome del file viene impostato sulla variabile di stringa attachmentName. Se la
variabile attachmentName non viene specificata, il nome predefinito del file sarà "Senza nome", con l'estensione
specificata. Il nome del file può essere modificato dalla finestra Salva con nome.

1.5.2.7.6.3.1 Utilizzo del metodo ExportToHttpResponse()


con l'enumerazione ExportFormatType

Per utilizzare il metodo ExportToHttpResponse() con il parametro ExportFormatType, è necessario completare la


procedura descritta in Aggiunta di controlli al Web Form o al Windows Form [pagina 427] per un sito Web. I metodi
ExportSetup(), ExportSelection() e ExportCompletion() non sono necessari. Il codice richiesto viene inserito nel
metodo di evento clic exportByType.

1.5.2.7.6.3.1.1 Per utilizzare il metodo


ExportToHttpResponse() con il parametro ExportFormatType

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic sul controllo Button exportByType.
Viene creato il metodo di evento exportByType_Click() e si passa alla visualizzazione Codice.
4. All'inizio della classe, aggiungere una dichiarazione di classe ExportOptions.

Private myExportOptions As ExportOptions

private ExportOptions exportOptions;

5. Nel metodo di evento exportByType_Click(), creare un'istanza dell'istanza ExportOptions.

myExportOptions = New ExportOptions()

exportOptions = new ExportOptions();

6. Creare un blocco Try/Catch con la classe Exception a cui viene fatto riferimento come variabile denominata
"ex".

Try

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
460 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Catch ex As Exception

End Try

try
{
}
catch (Exception ex)
{
}

7. Nel blocco Try, creare un blocco condizionale per verificare se la voce selezionata da exportTypesList è
ExportFormatType.NoFormat.

If (exportTypesList.SelectedIndex = ExportFormatType.NoFormat) Then

Else

End If

if ((ExportFormatType)exportTypesList.SelectedIndex == ExportFormatType.NoFormat)
{
}
else
{
}

8. Nel blocco If, impostare la proprietà Text del controllo Label message sulla costante
FORMAT_NOT_SUPPORTED della classe MessageConstants.

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;

9. Nel blocco Else, assegnare l'elemento ExportFormatType selezionato da exportTypesList alla proprietà
ExportFormatType dell'istanza ExportOptions.

myExportOptions.ExportFormatType = exportTypesList.SelectedIndex

exportOptions.ExportFormatType =
(ExportFormatType)exportTypesList.SelectedIndex;

10. Nel blocco Else, chiamare il metodo ExportToHttpResponse() dell'istanza hierarchicalGroupingReport.


Passare l'istanza di ExportOptions, l'oggetto ASP.NET Response, un valore booleano True e una stringa del
nome del file come parametri del metodo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 461
Nota
La stringa del nome del file per l'allegato non ha bisogno di alcuna estensione, poiché viene aggiunta
automaticamente al file esportato.

hierarchicalGroupingReport.ExportToHttpResponse(myExportOptions,
Response, True, "ExportedReport")

hierarchicalGroupingReport.ExportToHttpResponse(exportOptions,
Response, True, "ExportedReport");

11. Nel blocco Catch, impostare la proprietà Text del controllo Label message sulla costante FAILURE della classe
MessagesConstants, quindi aggiungervi la proprietà Message del parametro Exception.

message.Text = MessageConstants.FAILURE & ex.Message

message.Text = MessageConstants.FAILURE + ex.Message;

12. Fuori dal blocco Try/Catch, impostare la proprietà Visible del controllo Label message su "True".

message.Visible = True

message.Visible = true;

Risultati

A questo punto è possibile creare ed eseguire il progetto per esportare il report Crystal in diversi formati.

Per utilizzare il metodo ExportToHttpResponse() con la classe ExportOptions, vedere Utilizzo del metodo
ExportToHttpResponse() con la classe ExportOptions [pagina 462].

Per utilizzare gli altri metodi API avanzati, fare clic sul collegamento appropriato per accedere alla sezione
desiderata:

● Utilizzo del metodo ExportToDisk() [pagina 449]


● Utilizzo del metodo ExportToStream() [pagina 465]

1.5.2.7.6.3.2 Utilizzo del metodo ExportToHttpResponse()


con la classe ExportOptions

Per utilizzare il metodo ExportToHttpResponse() con il parametro ExportOptions, è necessario completare la


procedura descritta in Aggiunta di controlli al Web Form o al Windows Form [pagina 427] per un sito Web. I metodi

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
462 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
ExportSetup(), ExportSelection() e ExportCompletion() non sono necessari. Il codice richiesto viene inserito nel
metodo di evento clic exportByType.

1.5.2.7.6.3.2.1 Per utilizzare il metodo


ExportToHttpResponse() con il parametro ExportOptions

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Fare doppio clic sul controllo Button exportByType.
Viene creato il metodo di evento exportByType_Click() e si passa alla visualizzazione Codice.
4. Nel metodo di evento exportByType_Click(), creare un blocco Try/Catch con la classe Exception a cui
viene fatto riferimento come variabile denominata "ex".

Try

Catch ex As Exception

End Try

try
{
}
catch (Exception ex)
{
}

5. Nel blocco Try, creare un blocco condizionale per verificare se la voce selezionata da exportTypesList è
ExportFormatType.NoFormat.

If (exportTypesList.SelectedIndex = ExportFormatType.NoFormat) Then

Else

End If

if ((ExportFormatType)exportTypesList.SelectedIndex ==
ExportFormatType.NoFormat)
{
}
else
{
}

6. Nel blocco If, impostare la proprietà Text del controllo Label message sulla costante
FORMAT_NOT_SUPPORTED della classe MessageConstants.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 463
Nota
La condizione If è soddisfatta quando è selezionato il valore NoFormat dal controllo DropDownList.

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;

7. Nel blocco Else, chiamare il metodo ExportToHttpResponse() dell'istanza hierarchicalGroupingReport.


Passare l'elemento ExportFormatType selezionato, l'oggetto Response ASP.NET, un valore booleano True e
una stringa del nome del file come parametri del metodo.

Nota
La stringa del nome del file per l'allegato non ha bisogno di alcuna estensione, poiché viene aggiunta
automaticamente al file esportato.

hierarchicalGroupingReport.ExportToHttpResponse(exportTypesList.SelectedIndex,
Response, True, "ExportedReport")

hierarchicalGroupingReport.ExportToHttpResponse((ExportFormatType)exportTypesList
.SelectedIndex,
Response, True, "ExportedReport");

8. Nel blocco Catch, impostare la proprietà Text del controllo Label message sulla costante FAILURE della classe
MessagesConstants, quindi aggiungervi la proprietà Message del parametro Exception.

message.Text = MessageConstants.FAILURE & ex.Message

message.Text = MessageConstants.FAILURE + ex.Message;

9. Fuori dal blocco Try/Catch, impostare la proprietà Visible del controllo Label message su "True".

message.Visible = True

message.Visible = true;

Risultati

A questo punto è possibile creare ed eseguire il progetto per esportare il report Crystal in diversi formati.

Per utilizzare gli altri metodi API avanzati, fare clic sul collegamento appropriato per accedere alla sezione
desiderata:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
464 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Utilizzo del metodo ExportToDisk() [pagina 449]
● Utilizzo del metodo ExportToStream() [pagina 465]

1.5.2.7.6.4 Utilizzo del metodo ExportToStream()

In questa sezione viene descritto come utilizzare il metodo ExportToStream() per esportare il report nel flusso di
input/output come una sequenza di byte e come scrivere la sequenza di byte in un file del formato specificato.

Quando si esporta il report nei formati HTML, le immagini non vengono esportate. Si consiglia pertanto di
utilizzare i metodi di ExportToHttpResponse().

Prerequisiti:

● È necessario creare un progetto in base alle istruzioni riportate in Impostazione di un progetto per il metodo
ExportToStream() [pagina 465].
● Oppure è necessario creare un progetto in base alle istruzioni riportate in Creazione di metodi per i nuovi
formati di esportazione [pagina 448].
È quindi necessario modificare il progetto come descritto in Preparazione del progetto per il metodo
ExportToStream() [pagina 467].

1.5.2.7.6.4.1 Impostazione di un progetto per il metodo


ExportToStream()

In questa sezione viene descritto come creare un nuovo progetto per il metodo ExportToStream().

1.5.2.7.6.4.1.1 Per impostare un nuovo progetto per il


metodo ExportToStream()

Procedura

1. Completare le istruzioni riportate in Aggiunta di controlli al Web Form o al Windows Form [pagina 427].
2. Creare i metodi ExportSetup() e ExportSelection() in base alle istruzioni riportate in Creazione di
metodi per l'esecuzione dell'esportazione [pagina 429].
3. Nell'istruzione "Select Case" [Visual Basic] o "switch" [C#] del metodo ExportSelection()
aggiungere un'istruzione case per il formato ExcelRecord.

Case ExportFormatType.ExcelRecord

case ExportFormatType.ExcelRecord:
break;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 465
4. Creare un blocco condizionale per verificare la variabile booleana selectedNoFormat.

If selectedNoFormat Then

Else

End If

if (selectedNoFormat)
{
}
else
{
}

5. Nel blocco If, impostare la proprietà Text del controllo Label message sulla costante
FORMAT_NOT_SUPPORTED della classe MessageConstants.

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED

message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;

6. Nel blocco Else, impostare la proprietà Text del controllo Label message sulla costante SUCCESS della classe
MessageConstants.

message.Text = MessageConstants.SUCCESS

message.Text = MessageConstants.SUCCESS;

7. Creare un blocco Try/Catch con la classe Exception a cui viene fatto riferimento come variabile denominata
"ex". Il blocco Try racchiude l'istruzione "Select Case" [Visual Basic] o "switch" [C#] e il blocco
condizionale.

Try

Catch ex As Exception

End Try

try
{
}
catch (Exception ex)
{
}

8. Nel blocco Catch, impostare la proprietà Text del controllo Label message sulla costante FAILURE della classe
MessagesConstants, quindi aggiungervi la proprietà Message del parametro Exception.

message.Text = MessageConstants.FAILURE & ex.Message

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
466 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
message.Text = MessageConstants.FAILURE + ex.Message;

9. Fuori dal blocco Try/Catch, impostare la proprietà Visible del controllo Label message su "True".

message.Visible = True

message.Visible = true;

10. Dal menu Visualizza, scegliere Finestra di progettazione.


11. Fare doppio clic sul controllo Button exportByType.
Viene creato il metodo di evento exportByType_Click() e si passa alla visualizzazione Codice.
12. Nel metodo di evento exportByType_Click(), inserire le chiamate ai metodi ExportSetup() ed
ExportSelection().

ExportSetup()
ExportSelection()

ExportSetup();
ExportSelection();

1.5.2.7.6.4.2 Preparazione del progetto per il metodo


ExportToStream()

In questa sezione viene descritto come modificare un progetto realizzato in base alla procedura riportata in
Creazione di metodi per i nuovi formati di esportazione [pagina 448].

Occorre eliminare alcune righe di codice non necessario per il metodo ExportToStream().

1.5.2.7.6.4.2.1 Per modificare il progetto per utilizzare il


metodo ExportToStream()

Procedura

1. Aprire il progetto.
2. Aprire il Web Form o il Windows Form.
3. Dal menu Visualizza, scegliere Codice.
4. All'inizio della classe, eliminare le seguenti dichiarazioni di classe:

Private myDiskFileDestinationOptions As DiskFileDestinationOptions


Private myExportOptions As ExportOptions

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 467
private DiskFileDestinationOptions diskFileDestinationOptions;
private ExportOptions exportOptions;

5. Nel metodo ExportSetup(), eliminare tutte le righe di codice dopo il blocco condizionale. L'ultima riga di
codice che chiama la proprietà ExportFormatOptions si verifica solo in un progetto Windows.

myDiskFileDestinationOptions = New DiskFileDestinationOptions()


myExportOptions = hierarchicalGroupingReport.ExportOptions
myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
myExportOptions.ExportFormatOptions = Nothing

diskFileDestinationOptions = new DiskFileDestinationOptions();


exportOptions = hierarchicalGroupingReport.ExportOptions;
exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
exportOptions.ExportFormatOptions = null;

6. Eliminare i seguenti metodi di configurazione dell'esportazione:

○ ConfigureExportToRpt()
○ ConfigureExportToRtf()
○ ConfigureExportToDoc()
○ ConfigureExportToXls()
○ ConfigureExportToPdf()
○ ConfigureExportToHtml32()
○ ConfigureExportToHtml40()
○ ConfigureExportToXlsRec()
7. Nelle istruzioni Select Case [Visual Basic] o switch [C#] di ExportSelection(), eliminare le
chiamate ai metodi di configurazione dell'esportazione.
8. Nel metodo ExportCompletion(), eliminare la chiamata al metodo Export().
9. Copiare e incollare tutto il codice dal metodo ExportCompletion() all'inizio del metodo
ExportSelection().
10. Eliminare il metodo ExportCompletion() e la chiamata a ExportCompletion() nell'evento clic del
controllo Button exportByType.
11. Nel metodo ExportSelection(), tagliare e incollare le istruzioni Case di Select Case [Visual Basic]
o switch [C#] sopra il blocco If all'interno del blocco Try.
Il blocco Try/Catch assumerà il seguente aspetto:

Try
Select Case exportTypesList.SelectedIndex
Case ExportFormatType.NoFormat
selectedNoFormat = True
Case ExportFormatType.CrystalReport

Case ExportFormatType.RichText

Case ExportFormatType.WordForWindows

Case ExportFormatType.Excel

Case ExportFormatType.PortableDocFormat

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
468 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Case ExportFormatType.HTML32

Case ExportFormatType.HTML40

End Select
If selectedNoFormat Then
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
Else
message.Text = MessageConstants.SUCCESS
End If
Catch ex As Exception
message.Text = MessageConstants.FAILURE & ex.Message
End Try

try
{
switch ((ExportFormatType)exportTypesList.SelectedIndex)
{
case ExportFormatType.NoFormat:
selectedNoFormat = true;
break;
case ExportFormatType.CrystalReport:
break;
case ExportFormatType.RichText:
break;
case ExportFormatType.WordForWindows:
break;
case ExportFormatType.Excel:
break;
case ExportFormatType.PortableDocFormat:
break;
case ExportFormatType.HTML32:
break;
case ExportFormatType.HTML40:
break;
case ExportFormatType.ExcelRecord:
break;
}
if (selectedNoFormat)
{
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
}
else
{
message.Text = MessageConstants.SUCCESS;
}
}
catch (Exception ex)
{
message.Text = MessageConstants.FAILURE + ex.Message;
}

1.5.2.7.6.4.3 Modifica delle istruzioni nel metodo


ExportSelection()

In questa sezione viene descritto come impostare una stringa del nome del file per ciascuna istruzione Case di
ExportFormatType.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 469
1.5.2.7.6.4.3.1 Per modificare le istruzioni Case nel metodo
ExportSelection()

Procedura

1. Nel metodo ExportSelection(), dichiarare una variabile di stringa e creare l'istanza della variabile in una
stringa vuota.

Dim myFileName As String = ""

string fileName = "";

2. Nell'istruzione Case ExportFormatType.CrystalReport, impostare la stringa del nome del file sulla stringa
exportPath, seguita da un nome di documento riconoscibile con estensione .rpt.

myFileName = exportPath & "Report.rpt"

myFileName = exportPath + "Report.rpt";

3. Nell'istruzione Case ExportFormatType.RichText, impostare la stringa del nome del file sulla stringa
exportPath, seguita da un nome di documento riconoscibile con estensione .rtf.

myFileName = exportPath & "RichTextFormat.rtf"

myFileName = exportPath + "RichTextFormat.rtf";

4. Nell'istruzione Case ExportFormatType.WordForWindows, impostare la stringa del nome del file sulla stringa
exportPath, seguita da un nome di documento riconoscibile con estensione .doc.

myFileName = exportPath & "Word.doc"

fileName = exportPath + "Word.doc";

5. Nell'istruzione Case ExportFormatType.Excel, impostare la stringa del nome del file sulla stringa exportPath,
seguita da un nome di documento riconoscibile con estensione .xls.

myFileName = exportPath & "Excel.xls"

fileName = exportPath + "Excel.xls";

6. Nell'istruzione Case ExportFormatType.PortableDocFormat, impostare la stringa del nome del file sulla
stringa exportPath, seguita da un nome di documento riconoscibile con estensione .pdf.

myFileName = exportPath & "PortableDoc.pdf"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
470 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
fileName = exportPath + "PortableDoc.pdf";

7. Nell'istruzione Case ExportFormatType.HTML32, impostare la stringa del nome del file sulla stringa
exportPath, seguita da un nome di documento riconoscibile con estensione .html.

myFileName = exportPath & "HTML32.html"

fileName = exportPath + "HTML32.html";

8. Nell'istruzione Case ExportFormatType.HTML40, impostare la stringa del nome del file sulla stringa
exportPath, seguita da un nome di documento riconoscibile con estensione .html.

myFileName = exportPath & "HTML40.html"

fileName = exportPath + "HTML40.html";

9. Nell'istruzione Case ExportFormatType.ExcelRecord, impostare la stringa del nome del file sulla stringa
exportPath, seguita da un nome di documento riconoscibile con estensione .xls.

myFileName = exportPath & "ExcelRecord.xls"

fileName = exportPath + "ExcelRecord.xls";

1.5.2.7.6.4.4 Chiamata del metodo ExportToStream()

In questa sezione viene illustrato come chiamare il metodo ExportToStream() e come scrivere i dati del report
esportato in un file nel formato specificato.

1.5.2.7.6.4.4.1 Per chiamare il metodo ExportToStream() nel


metodo ExportSelection()

Procedura

1. Sopra la firma della classe, aggiungere una dichiarazione "Imports" [Visual Basic] o "using" [C#]
all'inizio della classe per lo spazio dei nomi System.IO.

Imports System.IO

using System.IO;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 471
2. Nel blocco Else del metodo ExportSelection(), chiamare il metodo ExportToStream() dell'istanza di
hierarchicalGroupingReport, passare ExportFormatType dall'elenco a discesa exportTypesList e
assegnare l'istanza alla classe Stream.

Stream myStream =
hierarchicalGroupingReport.ExportToStream(exportTypesList.SelectedIndex)

Stream stream =
hierarchicalGroupingReport.ExportToStream((ExportFormatType)exportTypesList.Selec
tedIndex);

3. Creare una nuova matrice di byte della stessa lunghezza dell'istanza Stream.

Dim myDataArray As byte() = New byte(myStream.Length)

byte[] dataArray = new byte[stream.Length];

4. Leggere i dati dall'istanza Stream alla matrice di byte, da un offset pari a zero alla lunghezza dell'istanza
Stream.

myStream.Read(myDataArray, 0, Convert.ToInt32(myStream.Length));

stream.Read(dataArray, 0, Convert.ToInt32(stream.Length));

5. Creare un'istanza FileStream che crei il file specificato dalla variabile di stringa del nome del file.

Dim myFileStream As FileStream = New FileStream(myFileName,


System.IO.FileMode.Create)

FileStream fileStream = new FileStream(fileName, System.IO.FileMode.Create);

6. Scrivere nel file i dati memorizzati nella matrice di byte, da un offset pari a zero alla lunghezza della matrice di
byte.

myFileStream.Write(myDataArray, 0, myDataArray.Length)

fileStream.Write(dataArray, 0, dataArray.Length);

7. Chiudere le istanze FileStream e Stream.

myFileStream.Close()
myStream.Close()

fileStream.Close();
stream.Close();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
472 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
8. Impostare la proprietà Text del controllo Label message sulla costante SUCCESS della classe
MessageConstants.

message.Text = MessageConstants.SUCCESS

message.Text = MessageConstants.SUCCESS;

Risultati

A questo punto è possibile creare ed eseguire il progetto per esportare il report Crystal in diversi formati.

Se si desidera utilizzare gli altri metodi API avanzati, fare clic sul collegamento appropriato per accedere alla
sezione desiderata:

● Utilizzo del metodo ExportToDisk() [pagina 449]


● Utilizzo del metodo ExportToHttpResponse() [pagina 459]

1.5.2.8 Esercitazione: Filtro di dati mediante formule di


selezione

In questa esercitazione viene descritto come filtrare i dati nel modello a oggetti ReportDocument mediante
l'impostazione della proprietà RecordSelectionFormula della classe DataDefinition.

Introduzione

Le formule di selezione consentono di filtrare i record da visualizzare in un report Crystal. Per scrivere formule di
selezione, è possibile utilizzare la sintassi Basic o la sintassi Crystal.

In questa esercitazione viene creata una formula di selezione per filtrare i record cliente in cui il valore del campo
Vendite anno precedente è maggiore rispetto a un valore specifico e il campo Nome cliente viene confrontato con
un'altra stringa. Un controllo DropDownList (Web) o ComboBox (Windows) consente di selezionare un operatore
di confronto per il campo Nome cliente. È possibile scegliere di visualizzare i nomi dei clienti che siano uguali,
minori, maggiori, minori o uguali, maggiori o uguali oppure diversi dal valore della stringa specificata.

La formula viene passata come variabile di stringa alla proprietà SelectionFormula della classe
CrystalReportViewer. Dopo aver impostato la proprietà, il report Crystal collegato al controllo
CrystalReportViewer viene filtrato prima di essere visualizzato.

Questa esercitazione può essere completata anche con classi del modello a oggetti CrystalReportViewer, ma si
consiglia di utilizzare il modello a oggetti ReportDocument.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 473
Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I file di ciascuna versione del
codice di esempio si trovano nelle seguenti cartelle:

● Sito Web C#: CS_Web_RDObjMod_SavedDataSelectionFormula


● Progetto Windows C#: CS_Win_RDObjMod_SavedDataSelectionFormula
● Sito Web Visual Basic: VB_Web_RDObjMod_SavedDataSelectionFormula
● Progetto Windows Visual Basic: VB_Win_RDObjMod_SavedDataSelectionFormula

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Scelta del modello a oggetti appropriato al progetto [pagina 31]


Directory dei report di esempio [pagina 14]

1.5.2.8.1 Creazione di un report

Iniziare creando un report Crystal in cui filtrare i dati.

1.5.2.8.1.1 Per creare un report Crystal

Contesto

Nota
questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice
richiesta per questa procedura; non è possibile completare la procedura senza questa configurazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
474 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Report
Crystal.
3. Nel campo Nome, inserire il nome "CustomersBySalesName.rpt", quindi fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella ODBC (RDO).
8. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database di esempio Xtreme e quindi
fare clic su Fine.
La cartella ODBC (RDO) si espande e visualizza il database Xtreme.
9. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
10. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
11. Tenendo premuto il tasto CTRL fare clic su Nome cliente, Vendite anno precedente e Città.
12. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Fine.
Il report CustomersBySalesName viene creato e caricato nella finestra principale di Visual Studio.
13. Fare clic su Anteprima report principale.
Il report viene visualizzato in anteprima con tutti i dati disponibili da filtrare a livello di codice.
14. Fare clic su Report principale per uscire dalla modalità Anteprima.

1.5.2.8.2 Collegamento del report

In Impostazione di un progetto [pagina 14] è stato inserito un controllo CrystalReportViewer nel Web Form o nel
Windows Form. Nel passaggio precedente è stato aggiunto al progetto un report CustomerBySalesName.

In questa sezione viene descritto come creare e collegare un'istanza del report CustomerBySalesName al
controllo CrystalReportViewer.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

● Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report come report
incorporato.
● Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report come
report non incorporato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 475
1.5.2.8.2.1 Per creare un'istanza del report
CustomerBySalesName come report incorporato e collegarla al
controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report
CustomerBySalesName, utilizzando il nome di variabile customerBySalesNameReport. Impostare il
modificatore di accesso su private.

Private customerBySalesNameReport As CustomerBySalesName

private CustomerBySalesName customerBySalesNameReport;

4. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

customerBySalesNameReport = New CustomerBySalesName()

customerBySalesNameReport = new CustomerBySalesName();

5. Nella riga successiva, sotto la creazione dell’istanza del report, collegare la proprietà ReportSource del
controllo CrystalReportViewer alla classe del report di cui è stata creata l’istanza (nome variabile:
customerBySalesNameReport).

myCrystalReportViewer.ReportSource = customerBySalesNameReport

crystalReportViewer.ReportSource = customerBySalesNameReport;

Risultati

A questo punto è possibile creare ed eseguire il progetto. Passare alla sezione successiva.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
476 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.8.2.2 Per creare un'istanza del report
CustomerBySalesName come report non incorporato e
collegarla al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile customerBySalesNameReport. Impostare il modificatore di accesso su private.

Private customerBySalesNameReport As ReportDocument

private ReportDocument customerBySalesNameReport;

Nota
La classe ReportDocument è un membro dello spazio dei nomi
CrystalDecisions.CrystalReports.Engine. per il quale è stata aggiunta una dichiarazione
"Imports" [Visual Basic] o "using" [C#] in Impostazione di un progetto [pagina 14]. Quando si
crea un'istanza di ReportDocument e si carica un report nello spazio dei nomi, si accede al report tramite
l'SDK, senza incorporare il report.

4. All'interno del metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14]),


creare un'istanza della classe ReportDocument.

customerBySalesNameReport = New ReportDocument()

customerBySalesNameReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarla al percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("CustomerBySalesName.rpt")

string reportPath = Server.MapPath("CustomerBySalesName.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 477
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"CustomerBySalesName.rpt"

string reportPath = Application.StartupPath + "\\" +


"CustomerBySalesName.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

customerBySalesNameReport.Load(reportPath)

customerBySalesNameReport.Load(reportPath);

7. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo
CrystalReportViewer all'istanza ReportDocument.

myCrystalReportViewer.ReportSource = customerBySalesNameReport

crystalReportViewer.ReportSource = customerBySalesNameReport;

Risultati

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di
report non incorporato, il nome di variabile utilizzato è sempre lo stesso: customerBySalesNameReport. Questo
consente di utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto.

1.5.2.8.2.3 Per verificare il caricamento del report


CustomerBySalesName

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
478 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.


Il report viene visualizzato con tutte le righe di dati disponibili. Nella sezione successiva viene descritto come
filtrare i dati mediante la proprietà RecordSelectionFormula.
5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.8.3 Applicazione di un filtro ai dati del report

In questa sezione viene descritto come applicare un filtro ai dati del report.

1.5.2.8.3.1 Per applicare un filtro ai dati del report

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Dal menu Visualizza, scegliere Codice.
3. All'inizio della classe, aggiungere tre nuove dichiarazioni di variabili a livello di classe che rappresenteranno i
valori in base ai quali filtrare i dati.

Private salesAmount As String


Private operatorValue As String
Private customerName As String

private string salesAmount;


private string operatorValue;
private string customerName;

4. Se si sta creando un progetto Windows, aggiungere una dichiarazione di variabile a livello di classe
supplementare e una variabile booleana denominata useDefaultValues a cui assegnare il valore True.

Private useDefaultValues As Boolean = True

private bool useDefaultValues = true;

5. Nel metodo ConfigureCrystalReports(), creare un blocco condizionale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 479
○ Se si sta creando un sito Web, creare un blocco condizionale Not IsPostBack e posizionarlo nel metodo
sopra il codice esistente.

If Not IsPostBack Then


End If

if (!IsPostBack)
{
}

○ Se si sta creando un progetto Windows, creare un blocco condizionale useDefaultValues e posizionarlo


nel metodo sopra il codice esistente.

If useDefaultValues Then
End If

if (useDefaultValues)
{
}

6. All'interno del blocco condizionale, assegnare i valori 4000, < e K alle tre variabili di livello classe.
Questi valori, assegnati all'interno di un blocco condizionale, vengono in seguito sostituiti dai valori di un
evento clic del controllo Button.

salesAmount = "4000"
operatorValue = "<"
customerName = "K"

salesAmount = "4000";
operatorValue = "<";
customerName = "K";

7. Subito fuori e sotto il blocco condizionale, creare una stringa selectionFormula in cui combinare valori letterali
con le variabili a livello di classe appena create.

Dim selectionFormula As String = "{Customer.Last Year's Sales} >


" _
& salesAmount _
& " AND Mid({Customer.Customer Name}, 1, 1) " _
& operatorValue _
& "'" _
& customerName _
& "'"

string selectionFormula = "{Customer.Last Year's Sales} > "


+ salesAmount
+ " AND Mid({Customer.Customer Name}, 1, 1) "
+ operatorValue
+ "'"
+ customerName
+ "'";

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
480 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
8. Nel codice di collegamento del report creato in precedenza, creare un'interruzione di riga proprio sopra la riga
di codice in cui customerBySalesName viene assegnato alla proprietà ReportSource del controllo
CrystalReportViewer.
9. In questa interruzione di riga, assegnare la variabile di stringa selectionFormula all'istanza di
ReportDocument.

customerBySalesNameReport.DataDefinition.RecordSelectionFormula =
selectionFormula

customerBySalesNameReport.DataDefinition.RecordSelectionFormula =
selectionFormula;

10. Compilare e visualizzare l'applicazione.


A questo punto è possibile filtrare i dati.
11. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

Nella sezione successiva viene descritto come creare sul form i controlli che consentono di regolare in modo
dinamico la formula di selezione.

1.5.2.8.4 Aggiunta di controlli di filtro dinamico

In questa sezione viene descritto come aggiungere i controlli da utilizzare nella formula di selezione. Questi
controlli consentono di filtrare i dati in modo dinamico.

1.5.2.8.4.1 Per aggiungere controlli da utilizzare nella


formula di selezione

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Se si sta sviluppando un sito Web, effettuare le seguenti operazioni:
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Premere il tasto freccia sinistra sulla tastiera per visualizzare un cursore lampeggiante, quindi premere
Invio cinque volte.
Il controllo CrystalReportViewer viene spostato di cinque righe verso il basso.
4. Se si sta sviluppando un progetto Windows, effettuare le seguenti operazioni:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 481
a) Fare clic sul controllo CrystalReportViewer per selezionarlo.
b) Nella finestra Proprietà, impostare Dock su "Bottom".
c) Ridimensionare il controllo CrystalReportViewer in modo che vengano visualizzate approssimativamente
tre righe sopra di esso.
d) Nella finestra Proprietà, impostare Anchor su "Top, Bottom, Left, Right".
5. Dalla casella degli strumenti, trascinare un controllo Label nella parte superiore sinistra del form.
6. Nella finestra Proprietà, impostare la proprietà Text su "Visualizza i nomi dei clienti".
7. Dalla casella degli strumenti, trascinare un secondo controllo Label sul form sotto il primo.
8. Nella finestra Proprietà, impostare la proprietà Text su "- vendite anno precedente > $."
9. Dalla casella degli strumenti, trascinare un terzo controllo Label sul form sotto il secondo.
10. Nella finestra Proprietà, impostare la proprietà Text su "- la prima lettera del nome è".
11. Dalla casella degli strumenti, trascinare un controllo TextBox a destra del secondo controllo Label.
12. Nella finestra Proprietà, impostare ID su "lastYearsSales".
13. Dalla casella degli strumenti, trascinare un controllo DropDownList (Web) o un controllo ComboBox
(Windows) a destra del terzo controllo Label.
14. Nella finestra Proprietà, impostare ID su "operatorValueList".
15. Dalla casella degli strumenti, trascinare un controllo TextBox a destra del controllo DropDownList (Web) o del
controllo ComboBox (Windows).
16. Nella finestra Proprietà, impostare ID su "letterOfName".
17. Dalla casella degli strumenti, trascinare un controllo Button sotto il terzo controllo Label.
18. Nella finestra Proprietà, impostare ID su "redisplay" e Text su "Rivisualizza report".
19. Dalla casella degli strumenti, trascinare un controllo Label sotto il controllo Button.
20. Nella finestra Proprietà, impostare ID su "formula" e lasciare vuota la proprietà Text.
Verificare che il controllo CrystalReportViewer si trovi subito sotto questi controlli.
21. Dal menu File, scegliere Salva tutto.

Risultati

Nella sezione successiva, compilare il controllo DropDownList (Web) o ComboBox (Windows).

1.5.2.8.5 Compilazione del controllo DropDownList o


ComboBox

Il controllo DropDownList (Web) o ComboBox (Windows) richiede un elenco di operatorValues (uguale, maggiore
di e così via). Il modo più generico per compilare questo controllo consiste nel fornire l'elenco dei valori come
enumerazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
482 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.8.5.1 Per compilare il controllo DropDownList o
ComboBox

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Classe.
3. Inserire il nome "CeComparisonOperator", quindi fare clic su OK.
4. Nel file della classe, modificare la parola "class" in "enum".

Nota
In Visual Basic ricordare di cambiare sia la firma di apertura che quella di chiusura. In C# eliminare il
costruttore.

5. Inserire i seguenti valori di enumerazione.

EqualTo
GreaterThan
GreaterThanOrEqualTo
LessThan
LessThanOrEqualTo
NotEqualTo

EqualTo,
GreaterThan,
GreaterThanOrEqualTo,
LessThan,
LessThanOrEqualTo,
NotEqualTo

6. Aprire il Web o Windows Form in visualizzazione Progettazione.


7. Dal menu Visualizza, scegliere Codice.
8. Nel metodo ConfigureCrystalReports() è ora possibile compilare l'istanza operatorValueList con i valori
dell'enumerazione CeComparisonOperator. Questo codice viene collocato in una posizione diversa, a seconda
che si stia creando un sito Web o un progetto Windows.

○ In un sito Web, posizionare l'assegnazione della proprietà DataSource e il collegamento all'interno del
blocco condizionale Not IsPostBack.

operatorValueList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))
operatorValueList.DataBind()

operatorValueList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
operatorValueList.DataBind();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 483
○ In un progetto Windows, posizionare all'interno del blocco condizionale useDefaultValues solo
l'assegnazione della proprietà DataSource.

operatorValueList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))

operatorValueList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));

Nota
In un progetto Windows non è necessario chiamare un metodo DataBind().

9. Alla fine del metodo ConfigureCrystalReports(), assegnare la stringa selectionFormula alla proprietà
Text del controllo Label formula.

formula.Text = selectionFormula

formula.Text = selectionFormula;

10. Compilare e visualizzare l'applicazione.


L'elenco degli operatori e tutti gli altri controllo dovrebbero essere visualizzati correttamente.
11. Chiudere il browser.

Risultati

Nella sezione successiva viene descritto come creare un metodo che recupera le selezioni dal controllo quando si
fa clic sul pulsante Rivisualizza report.

1.5.2.8.6 Recupero delle selezioni dal controllo

In questa sezione viene descritto come recuperare le selezioni dal controllo DropDownList (Web) o ComboBox
(Windows).

1.5.2.8.6.1 Per recuperare le selezioni dal controllo

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Dal menu Visualizza, scegliere Codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
484 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
3. Alla fine della classe, creare un metodo di supporto privato denominato GetSelectedOperator() che
restituisca un valore di stringa.

Private Function GetSelectedOperator() As String


End Function

private string GetSelectedOperator()


{
}

4. All'interno del metodo, dichiarare una stringa selectedOperator e assegnarle un valore di stringa vuoto.

Dim selectedOperator As String = ""

string selectedOperator = "";

5. Sempre all'interno del metodo, creare un'istruzione Select Case/switch che verifichi l'indice selezionato nel
controllo di elenco e restituisca il valore dell'enumerazione corrispondente.

Nota
In C#, è necessario eseguire il cast in modo esplicito dell'indice selezionato nell'enumerazione della firma di
commutazione.

Select Case operatorValueList.SelectedIndex


Case CeComparisonOperator.EqualTo
selectedOperator = "="
Case CeComparisonOperator.GreaterThan
selectedOperator = ">"
Case CeComparisonOperator.GreaterThanOrEqualTo
selectedOperator = ">="
Case CeComparisonOperator.LessThan
selectedOperator = "<"
Case CeComparisonOperator.LessThanOrEqualTo
selectedOperator = "<="
Case CeComparisonOperator.NotEqualTo
selectedOperator = "<>"
End Select

switch ((CeComparisonOperator)operatorValueList.SelectedIndex)
{
case CeComparisonOperator.EqualTo:
selectedOperator = "=";
break;
case CeComparisonOperator.GreaterThan:
selectedOperator = ">";
break;
case CeComparisonOperator.GreaterThanOrEqualTo:
selectedOperator = ">=";
break;
case CeComparisonOperator.LessThan:
selectedOperator = "<";
break;
case CeComparisonOperator.LessThanOrEqualTo:
selectedOperator = "<=";
break;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 485
case CeComparisonOperator.NotEqualTo:
selectedOperator = "<>";
break;
}

6. Restituire selectedOperator del metodo.

Return selectedOperator

return selectedOperator;

7. Dal menu File, scegliere Salva tutto.

Risultati

Nell'ultima sezione, aggiungere un evento clic del controllo Button per applicare al report i nuovi valori della
formula di selezione quando si fa clic sul pulsante.

1.5.2.8.7 Aggiunta di un evento clic del controllo Button

Il passaggio finale della configurazione del filtro dinamico prevede l'aggiunta dell'evento clic del controllo Button e
la scrittura del codice per applicare i nuovi valori della formula di selezione al report.

1.5.2.8.7.1 Per aggiungere un evento clic del controllo


Button

Procedura

1. Aprire il Web Form o il Windows Form in visualizzazione Progettazione.


2. Fare doppio clic sul controllo Button.
3. Viene caricata la classe di codice sottostante e viene creato un evento clic.
4. All'interno del metodo, impostare la variabile a livello di classe "salesAmount" sulla proprietà Text dell'istanza
del controllo lastYearsSales.

salesAmount = lastYearsSales.Text

salesAmount = lastYearsSales.Text;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
486 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Impostare la variabile a livello di classe "operatorValue" sul valore restituito del metodo di supporto
GetSelectedOperator.

operatorValue = GetSelectedOperator()

operatorValue = GetSelectedOperator();

6. Impostare la variabile a livello di classe "customerName" sulla proprietà Text dell'istanza del controllo
letterOfName.

customerName = letterOfName.Text

customerName = letterOfName.Text;

7. Se si sta creando un progetto Windows, impostare la variabile a livello di classe "useDefaultValues" su False.

Nota
Questo causa il salto del blocco condizionale che imposta i valori predefiniti per le variabili a livello di classe
all'interno di ConfigureCrystalReports().

useDefaultValues = False

useDefaultValues = false;

8. Sempre all'interno del metodo, chiamare il metodo ConfigureCrystalReports() per eseguire le


operazioni di filtro e collegamento del report.

ConfigureCrystalReports()

ConfigureCrystalReports();

Risultati

A questo punto è possibile verificare l'applicazione.

1.5.2.8.8 Verifica del filtro dei dati

Nella sezione finale viene testato il filtro dei dati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 487
1.5.2.8.8.1 Per verificare il filtro dei dati

Procedura

1. Compilare e visualizzare l'applicazione.


2. Verificare che il report sia visualizzato con i valori di filtro predefiniti.
3. Inserire "200000" in Vendite dell'anno precedente.
4. Selezionare GreaterThan da DropDownList (Web) o da ComboBox (Windows).
5. Inserire "M" in TextBox, quindi fare clic su Rivisualizza report.
Il report viene visualizzato nuovamente con i dati filtrati come specificato sopra.
6. Chiudere il browser.

1.5.2.8.9 Appendice: Miglioramenti al codice delle formule di


selezione

Se è installato SAP Crystal Reports 2008, è possibile accedere all'API avanzata che filtra i dati nel modello a
oggetti ReportDocument impostando la formula SavedDataSelection della classe DataDefinition.

Nelle precedenti procedure, veniva illustrato come utilizzare la formula RecordSelection per filtrare i dati dopo
un clic su un pulsante.

In questa esercitazione, si modifica il metodo redisplay_Click per utilizzare la formula SavedDataSelection


per filtrare i dati dopo un clic sul pulsante. La formula SavedDataSelection consente di filtrare i dati salvati
anziché accedere nuovamente al database.

1.5.2.8.9.1 Modifica del progetto per la formula


SavedDataSelection

Se sono state completate tutte le procedure in Esercitazione: Filtro di dati mediante formule di selezione [pagina
473], è innanzitutto necessario eliminare le righe di codice indicate nella seguente procedura.

1.5.2.8.9.1.1 Per modificare il progetto per l'utilizzo della


formula SavedDataSelection

Procedura

1. Aprire il progetto completato per questa esercitazione.


2. Aprire il Web Form o il Windows Form.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
488 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
3. Dal menu Visualizza scegliere Codice.
4. Se si sviluppa un progetto Windows, eliminare la variabile di livello classe denominata "useDefaultValues".
5. Se si sviluppa un progetto Web, nel metodo ConfigureCrystalReports() eliminare il blocco condizionale
senza eliminare il codice in esso contenuto.
Il metodo ConfigureCrystalReports() dovrebbe avere il seguente aspetto:

Private Sub ConfigureCrystalReports()


salesAmount = "4000"
operatorValue = "<"
customerName = "K"
Dim selectionFormula As String = "{Customer.Last Year's Sales} > " &
salesAmount _
& " AND Mid({Customer.Customer Name}, 1, 1) " & operatorValue & "'" &
customerName & "'"
operatorValueList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))
operatorValueList.DataBind()
customerBySalesNameReport = New ReportDocument()
Dim reportPath As String = Server.MapPath("CustomerSalesByReport.rpt")
customerBySalesNameReport.Load(reportPath)
customerBySalesNameReport.DataDefinition.RecordSelectionFormula =
selectionFormula
myCrystalReportViewer.ReportSource = customerBySalesNameReport
formula.Text = selectionFormula
End Sub

private void ConfigureCrystalReports()


{
salesAmount = "4000";
operatorValue = "<";
customerName = "K";
string selectionFormula = "{Customer.Last Year's Sales} > " + salesAmount
+ " AND Mid({Customer.Customer Name}, 1, 1) " + operatorValue + "'" +
customerName + "'";
operatorValueList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
operatorValueList.DataBind();
customerBySalesNameReport = new ReportDocument();
string reportPath = Server.MapPath("CustomerBySalesName.rpt");
customerBySalesNameReport.Load(reportPath);
customerBySalesNameReport.DataDefinition.RecordSelectionFormula =
selectionFormula;
crystalReportViewer.ReportSource = customerBySalesNameReport;
formula.Text = selectionFormula;
}

1.5.2.8.9.2 Aggiunta di un evento per l'applicazione della


formula SavedDataSelection

In questa sezione verrà modificato il metodo redisplay_Click applicando la formula SavedDataSelection sui
valori selectionFormula del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 489
1.5.2.8.9.2.1 Per aggiungere un evento clic del controllo
Button

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza scegliere Codice.
3. Nel metodo redisplay_Click, eliminare la riga che chiama il metodo ConfigureCrystalReports().
4. Creare una stringa selectionFormula in cui combinare valori letterali con variabili di livello di classe.

Dim selectionFormula As String = "{Customer.Last Year's Sales} > " _


& salesAmount _
& " AND Mid({Customer.Customer Name}, 1, 1) " _
& operatorValue _
& "'" _
& customerName _
& "'"

string selectionFormula = "{Customer.Last Year's Sales} > "


+ salesAmount
+ " AND Mid({Customer.Customer Name}, 1, 1) "
+ operatorValue
+ "'"
+ customerName
+ "'";

5. Assegnare la variabile String di selectionFormula sull'istanza di ReportDocument.

customerBySalesNameReport.DataDefinition.SavedDataSelectionFormula =
selectionFormula

customerBySalesNameReport.DataDefinition.SavedDataSelectionFormula =
selectionFormula;

6. Nella riga successiva collegare la proprietà ReportSource di CrystalReportViewer all'istanza di


ReportDocument.

myCrystalReportViewer.ReportSource = customerBySalesNameReport

crystalReportViewer.ReportSource = customerBySalesNameReport;

7. Alla fine del metodo, assegnare la stringa selectionFormula sulla proprietà Text del controllo Label della
formula.

formula.Text = selectionFormula

formula.Text = selectionFormula;

Risultati

A questo punto è possibile verificare l'applicazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
490 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.8.9.3 Verifica del filtro dei dati

In questa sezione viene testato il filtro dei dati.

1.5.2.8.9.3.1 Per verificare il filtro dei dati

Procedura

1. Compilare e visualizzare l'applicazione.


2. Verificare che il report sia visualizzato con i valori di filtro predefiniti.
3. Immettere "30000" in Vendite dell'anno precedente.
4. Selezionare GreaterThan da DropDownList (Web) o da ComboBox (Windows).
5. Immettere "H" in TextBox e quindi fare clic su Rivisualizza report.
Il report viene nuovamente visualizzato con tutti i clienti i cui nomi cominciano con le lettere comprese tra H e
K e che hanno effettuato vendite superiori a $30000.
6. Modificare "H" in "S" in TextBox e fare clic su Rivisualizza report.
Il report viene nuovamente visualizzato senza alcun dato. Il motivo è dovuto al fatto che "S" si trova all'esterno
dei parametri iniziali impostati nel metodo ConfigureCrystalReports().
7. Chiudere il browser.

1.5.2.9 Esercitazione: Visualizzazione delle parti di report


mediante il controllo CrystalReportPartsViewer

In questa esercitazione viene descritto come suddividere un report in varie parti e visualizzare ciascuna parte
attraverso una serie di collegamenti ipertestuali consecutivi.

Introduzione

In questa esercitazione viene descritto come suddividere un report in varie parti e visualizzare ciascuna parte
attraverso una serie di collegamenti ipertestuali consecutivi. I collegamenti ipertestuali vanno dal gruppo generale
di riepilogo del report a informazioni sul report sempre più dettagliate. L'utente imposta il punto di partenza
generale e ciascun collegamento ipertestuale successivo del report. Per visualizzare il report in parti, assegnare il
report a un controllo alternativo denominato controllo CrystalReportPartsViewer.

Nota
le parti di report vengono utilizzate solo nei siti Web e non sono disponibili per i progetti Windows.

Esistono due modi principali per visualizzare un report:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 491
● Come un unico elemento
● Come una serie di parti collegate.

Visualizzazione del report come un unico elemento

I report vengono in genere visualizzati come documento singolo, di una o più pagine, in cui le informazioni
dettagliate sono raggruppate per categorie, sottocategorie e singole righe di dettaglio.

Ad esempio, il database Access Xtreme fornito con SAP Crystal Reports contiene dati sui clienti di negozi di
biciclette in varie località di tutto il mondo. Un modo tipico di visualizzare i dati in un report consiste nel vedere i
singoli negozi di biciclette organizzati in gruppi in base alle varie regioni, quindi le città con righe singole di
informazioni su ciascun negozio mostrato a livello di dettaglio.

Il controllo CrystalReportViewer viene utilizzato per visualizzare i report un unico elemento.

Visualizzazione del report come una serie di parti collegate

Con l'introduzione dei portali Web e dell'esplorazione Web tramite i telefoni cellulari, che offrono entrambi un'area
di visualizzazione delle informazioni estremamente limitata, è stato sviluppato un nuovo modo di visualizzare i
report.

Il report come elemento unico, comprensivo di tutto, costituito da categorie e sottocategorie di gruppi e righe di
dettaglio è stato ridefinito come una serie di parti, che vengono visualizzate mediante una serie di visualizzazioni
di pagina collegate. In base a questo criterio, il gruppo della categoria di informazioni principale viene visualizzato
per primo. Quando si seleziona un elemento di tale gruppo, viene visualizzata una sottocategoria di informazioni
del gruppo. Questa analisi dettagliata continua finché non vengono raggiunte le singole righe di dettaglio di una
determinata sottocategoria.

Ad esempio, i dati relativi ai clienti dei negozi di biciclette nel database Xtreme vengono visualizzati inizialmente
come un elenco di regioni. Quando si seleziona una regione, vengono visualizzate le città che si trovano in tale
regione. Quando si seleziona una determinata città, vengono visualizzate le righe di dettaglio dei negozi di
biciclette che si trovano in quella città.

Questa suddivisione di un report in parti consente di accedere facilmente a un report esteso e complesso in
un'area di visualizzazione molto limitata.

Per visualizzare i report come una serie di parti collegate, viene utilizzato il controllo
CrystalReportPartsViewer.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni di questa esercitazione per creare un nuovo progetto o aprire
il progetto del codice di esempio per lavorare da una versione completata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
492 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_RDObjMod_ReportParts


● Sito Web in Visual Basic: VB_Web_RDObjMod_ReportParts

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.2.9.1 Creazione di un report

Per iniziare, creare un report con informazioni provenienti dal database Xtreme.

1.5.2.9.1.1 Creazione di un report con parametri

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello "Crystal
Report".
3. Nel campo Nome, inserire il nome "Customers.rpt", quindi fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella ODBC (RDO).
8. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi fare clic su
Fine.
La cartella ODBC (RDO) si espande e visualizza il database Xtreme.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 493
9. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
10. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
11. Tenendo premuto il tasto Ctrl fare clic su Paese, Nome cliente, Vendite anno precedente, Regione e Città.
12. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
13. Nel riquadro Campi disponibili, in Campi report, effettuare le seguenti operazioni:
a) Selezionare Paese, fare clic sul simbolo > per spostare il campo nel riquadro Raggruppa in base a.
b) Selezionare Regione, fare clic sul simbolo > per spostare il campo nel riquadro Raggruppa in base a.
c) Fare clic su Avanti.
Vengono creati campi di riepilogo per il campo Vendite dell'anno precedente nei gruppi Paese e Regione.
14. Fare clic su Fine.
Il report Customers viene creato e caricato nella finestra principale di Visual Studio.
15. Nella parte inferiore della finestra, fare clic su Anteprima report principale.
Il report viene visualizzato in modo gerarchico in livelli ordinati prima per paese e quindi per regione. Se si
modifica il report per visualizzarlo nelle relative parti, ciascun livello viene visualizzato separatamente.

Risultati

A questo punto è possibile convertire il report per visualizzarne le relative parti.

1.5.2.9.2 Conversione del report per la visualizzazione in


parti

In questa sezione viene descritto come impostare nel report i collegamenti ipertestuali per collegare informazioni
generali a informazioni più dettagliate.

1.5.2.9.2.1 Per convertire il report alla visualizzazione in


parti

Procedura

1. Nella parte inferiore della finestra, fare clic su Report principale.

Nota
Il gruppo più importante, Nome gruppo #1, viene visualizzato in due posizioni, nelle parti superiore e
inferiore del report.

Nella parte inferiore del report, nella sezione Piè di pagina di gruppo #1, Nome gruppo #1 è un'etichetta
seguita da un campo di riepilogo per Clienti.Vendite anno precedente. L'etichetta è quella da preferire per
l'utilizzo come punto di ingresso nelle parti del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
494 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Fare clic con il pulsante destro del mouse su Nome gruppo #1 nella sezione Piè di pagina di gruppo N. #1,
quindi fare clic su Copia.
3. Fare clic con il pulsante destro del mouse su un'area vuota del report, selezionare Report, quindi fare clic su
Opzioni report.
4. Nella finestra di dialogo Opzioni report, fare clic su Incolla collegamento.
L' ID per l'etichetta del Gruppo 1 "GroupNameCountry2" viene incollato nel campo Nome oggetto.

Il campo Contesto dati accetta un valore di stringa che filtra i dati del report. Per il momento, lasciare questo
campo vuoto.
5. Fare clic su OK.
6. Fare clic con il pulsante destro su Nome gruppo #1 nella sezione Piè di pagina di gruppo N. #1, quindi fare clic
su Formato oggetto.
7. Nell'Editor formato fare clic sulla scheda Collegamento ipertestuale, quindi selezionare l'opzione Analisi
dettagliata delle parti del report.
8. Nel riquadro Campi disponibili, espandere Piè di pagina di gruppo N. #2, fare doppio clic su
GroupNameRegion2, quindi fare clic su OK.
È stato impostato il Gruppo #1 per il collegamento al Gruppo #2 quando si fa clic sul Gruppo #1 in fase di
esecuzione.
9. Fare clic con il pulsante destro del mouse su Nome gruppo #2 nella sezione Piè di pagina di gruppo N. #2,
quindi fare clic su Formato oggetto.
10. Nell'Editor formato fare clic sulla scheda Collegamento ipertestuale, quindi selezionare l'opzione Analisi
dettagliata delle parti del report.
11. Nel riquadro Campi disponibili, effettuare le seguenti operazioni:
a) Espandere Dettagli.
b) Tenendo premuto il tasto Ctrl fare clic su NomeCliente1, VenditeAnnoPrecenente1 e Città1.
c) Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare.
d) Fare clic su OK.
Il Gruppo #2 è stato impostato per il collegamento a informazioni dettagliate sul cliente quando si fa clic
sul Gruppo #2 in fase di esecuzione.
12. Dal menu File, scegliere Salva tutto.

1.5.2.9.3 Collegamento del report

Durante lo svolgimento delle istruzioni riportate nella sezione Impostazione di un progetto [pagina 14] di
preparazione a questa esercitazione, un controllo CrystalReportViewer è stato inserito nel Web Form, ma per
visualizzare le parti del report è necessario utilizzare il controllo CrystalReportPartsViewer.

In questa sezione viene descritto come creare e collegare un'istanza del report Customers al controllo
CrystalReportPartsViewer. e come verificare se il report visualizza le parti create nelle procedure precedenti.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 495
● Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report come report
incorporato.
● Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report come
report non incorporato.

Passare a Filtro dei dati nel report [pagina 499].

1.5.2.9.3.1 Per creare un'istanza del report Customers come


report incorporato e collegarla al controllo
CrystalReportPartsViewer

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Eliminare il controllo CrystalReportViewer.
4. Nella casella degli strumenti, aprire il nodo Crystal Reports per individuare il controllo
CrystalReportPartsViewer.
5. Trascinare il controllo CrystalReportPartsViewer nel Web Form.
6. Nella finestra Proprietà, impostare la proprietà ID come segue:

○ Per i siti Web Visual Basic, su "myCrystalReportPartsViewer".


○ Per i siti Web C#, su "crystalReportPartsViewer".
7. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante del Windows Form.
8. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report Customers, utilizzando
il nome di variabile customersReport. Impostare il modificatore di accesso su private.

Private customersReport As Customers

private Customers customersReport;

9. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

customersReport = New Customers()

customersReport = new Customers();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
496 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
10. Nella riga successiva, al di sotto della creazione dell'istanza del report, collegare la proprietà ReportSource del
controllo CrystalReportPartsViewer alla classe del report di cui è stata creata l'istanza (nome
variabile:customersReport).

myCrystalReportPartsViewer.ReportSource = customersReport

crystalReportPartsViewer.ReportSource = customersReport;

Nota
L'istanza del controllo CrystalReportPartsViewer è accessibile nel codice perché il controllo è stato
aggiunto al Web Form o al Windows Form. Se IntelliSense non riconosce l'istanza del controllo
CrystalReportPartsViewer, verificare che il controllo CrystalReportPartsViewer sia stato aggiunto come
dichiarazione a livello di classe a questa classe di codice sottostante.

1.5.2.9.3.2 Per creare un'istanza del report Customers come


report non incorporato e collegarla al controllo
CrystalReportPartsViewer

Contesto

A questo punto è possibile creare ed eseguire il progetto.

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile customersReport. Impostare il modificatore di accesso su private.

Private customersReport As ReportDocument

private ReportDocument customersReport;

Nota
La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il
quale è stata aggiunta una dichiarazione "Imports" [Visual Basic] o "using" [C#] in Impostazione
di un progetto [pagina 14]. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio
dei nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 497
4. Nel metodo ConfigureCrystalReports() (aggiunto durante una delle procedure riportate in Impostazione
di un progetto [pagina 14]), creare un'istanza della classe ReportDocument.

customersReport = New ReportDocument()

customersReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("Customers.rpt")

string reportPath = Server.MapPath("Customers.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" & "Customers.rpt"

string reportPath = Application.StartupPath + "\\" + "Customers.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

customersReport.Load(reportPath)

customersReport.Load(reportPath);

7. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo
CrystalReportPartsViewer all'istanza ReportDocument.

myCrystalReportPartsViewer.ReportSource = customersReport

crystalReportPartsViewer.ReportSource = customersReport;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
498 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.2.9.3.3 Per verificare il caricamento del report
Customers

Contesto

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di
report non incorporato, il nome di variabile utilizzato è sempre lo stesso: customersReport. Questo consente di
utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto. È previsto che il caricamento del report abbia esito
negativo, poiché il codice per l'impostazione di un valore per campo parametro Città non è stato ancora scritto.
Più avanti nel corso di questa esercitazione viene descritto come aggiungere un valore per il campo parametro
Città.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Il report Customers viene visualizzato nel browser.
4. Fare clic su un paese per visualizzare un elenco di regioni.
5. Fare clic su una regione per visualizzare i campi Nome cliente, Vendite anno precedente e Città.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.2.9.4 Filtro dei dati nel report

In questa sezione viene descritto come impostare il campo Contesto dati per filtrare i dati visualizzati nel report.
Per ulteriori informazioni sulle impostazioni di Contesto dati, vedere Implementazione dell'analisi dettagliata delle
parti del report [pagina 735].

1.5.2.9.4.1 Per filtrare i dati nel report

Procedura

1. Aprire il report Crystal.


2. Fare clic con il pulsante destro del mouse in un'area vuota del report. Selezionare Report, quindi fare clic su
Opzioni report.
3. Nel campo Contesto dati, digitare "/Paese[USA]".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 499
4. Fare clic su OK per chiudere la finestra di dialogo Opzioni report.
5. Dal menu Genera, scegliere Genera soluzione.
6. Se si verificano errori di generazione, correggerli.
7. Dal menu Debug, scegliere Avvia.
Il report visualizza solo i record relativi agli Stati Uniti.
8. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.3 Esercitazioni basate sull'uso di codice ridotto in Visual


Studio

In questa sezione sono contenute diverse esercitazioni relative allo sviluppo con codice ridotto.

Nota
per le esercitazioni che utilizzano il modello con codice, vedere Esercitazioni relative al modello a oggetti
ReportDocument [pagina 334].

1.5.3.1 Esercitazione: Impostazione di un sito Web con


codice ridotto con SAP Crystal Reports mediante Smart Task

In questa esercitazione viene illustrato come utilizzare il nuovo modello di sviluppo di applicazioni basato su tag in
Visual Studio. Per impostare un sito Web con SAP Crystal Reports mediante Smart Task, viene utilizzato un
modello di sviluppo basato su codice ridotto.

Introduzione

In questa esercitazione viene descritto come creare un sito Web ASP.NET in Visual Studio. Viene quindi aggiunto
un controllo CrystalReportViewer al Web Form per avviare il nuovo riquadro Smart Task. In Smart Task, viene
creato un controllo CrystalReportSource e un report Crystal. Nel controllo CrystalReportSource viene
fatto riferimento al report.

In questa esercitazione, è possibile eseguire l'anteprima del report in tre diverse modalità:

● Nel componente incorporato SAP Crystal Reports Designer, con il nuovo pulsante Anteprima di SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio.
● Nel Web Form, con dati fittizi.

Nota
questa anteprima del Web Form è il risultato della nuova funzionalità Anteprima in fase di progettazione.

● In fase di esecuzione, durante la creazione e la compilazione dell’applicazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
500 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Al termine di questa esercitazione, si passa alla visualizzazione HTML (visualizzazione Origine) e si esamina la
relazione tra il controllo CrystalReportViewer e il controllo CrystalReportSource, nel nuovo modello di applicazioni
basato su tag di Visual Studio 2005 o versioni successive.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_ReducedCode_WebSiteSetup


● Sito Web in Visual Basic: VB_Web_ReducedCode_WebSiteSetup

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Visualizzazione di un report in fase di progettazione [pagina 220]


Directory dei report di esempio [pagina 14]

1.5.3.1.1 Creazione di un sito Web con un controllo


CrystalReportViewer

Prerequisiti

Prima di creare un sito Web, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio sia installato nel sistema.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 501
Procedura

1. Avviare Visual Studio.


2. Dal menu File, scegliere Nuovo, quindi fare clic su Sito Web.
3. Nella finestra di dialogo Nuovo sito Web, scegliere Sito Web ASP.NET.
4. Nell'elenco a discesa Percorso, selezionare File system.
5. Nell'elenco a discesa Lingua, selezionare la lingua del codice che si desidera utilizzare.
6. Nella campo di testo Percorso immettere il percorso di directory C:\WebSites\ seguito dal nome del
progetto.
7. Fare clic su OK.
Il progetto viene aperto in Esplora soluzioni e contiene una pagina Default.aspx.
8. Aprire la pagina Default.aspx (il Web Form).
9. Dal menu Visualizza, scegliere Finestra di progettazione.

Nota
Per passare alla visualizzazione Progettazione è anche possibile fare clic sul pulsante Progettazione nella
parte inferiore del form.

10. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.
11. Trascinare il controllo CrystalReportViewer nel Web Form.
Viene visualizzato il riquadro Smart Task "Attività di CrystalReportViewer".

Informazioni correlate

Installazioni necessarie [pagina 9]

1.5.3.1.2 Configurazione di CrystalReportSource in Smart


Task

Visual Studio 2005 e versioni successive dispone di una nuova funzionalità dell'interfaccia utente per i
controlli .NET denominata Smart Task. Per il controllo CrystalReportViewer nei progetti Windows, il riquadro
Smart Task è denominato "Attività di CrystalReportViewer".

Questo riquadro consente di configurare diverse funzioni del controllo CrystalReportViewer senza dover scrivere
codice. Qualsiasi selezione effettuata in Smart Task genera nella pagina ASPX un'impostazione basata su tag.

In questa sezione viene descritto come configurare l'opzione CrystalReportSource disponibile nel riquadro Smart
Task "Attività di CrystalReportViewer".

Più avanti in queste esercitazioni basate su codice ridotto, vengono esaminate altre funzioni del riquadro Smart
Task "Attività di CrystalReportViewer".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
502 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.1.2.1 Per configurare CrystalReportSource mediante
Smart Task

Procedura

1. Se il riquadro Smart Task è aperto, fare clic sul Web Form per chiuderlo.
2. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene visualizzato di nuovo il riquadro Smart Task "Attività di CrystalReportViewer". Nell'elenco Scegli
un'origine report è visualizzata l'opzione <Nessuno>.
3. Fare clic sull'elenco Scegli un'origine report e selezionare <Nuova origine report...>.
Viene visualizzata la finestra di dialogo Crea un'origine report.
4. Nella casella di testo Specifica un nome per il controllo, lasciare impostata la voce predefinita
CrystalReportSource1.
5. Fare clic sull'elenco Specificare un report Crystal per il controllo e selezionare <Nuovo report…>.
La selezione alternativa è <Sfoglia>. Questa opzione consente di selezionare un report Crystal esistente dalla
directory file. In questa esercitazione viene creato un nuovo report.
6. Nella finestra di dialogo Crea un nuovo report Crystal, inserire "XtremeCustomers.rpt", quindi fare clic su OK.
7. Fare nuovamente clic su OK per chiudere la finestra di dialogo Scegli un'origine report.

1.5.3.1.3 Configurazione del report per il controllo


CrystalReportSource

In questa sezione viene descritto come utilizzare la Procedura guidata report per configurare il report e
aggiungerlo al controllo CrystalReporSource. Viene descritto come creare una connessione di database, come
impostare i campi per il report e come aggiungere il report al controllo. Al termine delle operazioni è possibile
verificare il sito Web basato su codice ridotto.

1.5.3.1.3.1 Per configurare il report per il controllo


CrystalReportSource

Procedura

1. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
2. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
3. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
effettuare le seguenti operazioni:
a) Espandere la cartella Crea nuova connessione.
b) Espandere la cartella ODBC (RDO).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 503
4. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi fare clic su
Fine.
La cartella ODBC (RDO) si espande e visualizza il database Xtreme.
5. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
6. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
7. Espandere la tabella Clienti, quindi tenendo premuto il tasto Ctrl fare clic su Nome cliente, Titolo contatto,
Indirizzo1, Cognome contatto e Città.
8. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
9. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report XtremeCustomers viene creato e caricato nella finestra principale di Visual Studio.
10. Nella parte inferiore della finestra, fare clic su Anteprima report principale.

Nota
Il pulsante Anteprima è disponibile per la prima volta nel componente incorporato SAP Crystal Reports
Designer fornito con SAP Crystal Reports per Visual Studio 2005.

Il report viene visualizzato in modalità anteprima e mostra dati provenienti dal database Xtreme.
11. Nella parte inferiore della finestra, fare clic su Report principale per uscire dalla modalità di anteprima.
12. Aprire il Web Form.
13. Dal menu Visualizza, scegliere Finestra di progettazione.
Il report viene visualizzato in modalità Anteprima in fase di progettazione, che mostra il layout grafico del
report sul Web Form.
14. Dal menu File, scegliere Salva tutto.

1.5.3.1.3.2 Verifica del sito Web basato su codice ridotto

Contesto

Il report viene creato e designato come report per il controllo CrystalReportSource. A questo punto è possibile
creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Il report XtremeCustomers viene visualizzato nel browser.
5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
504 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.1.4 Esame del controllo CrystalReportSource in
visualizzazione Origine

Contesto

In questa sezione verrà esaminato il modello di applicazioni basato su tag utilizzato in ASP.NET versione 2.0.
Questo modello consente di configurare un sito Web con SAP Crystal Reports, versione per sviluppatori per
Microsoft Visual Studio senza dover scrivere codice. Viene inoltre descritta la struttura dei controlli DataSource
e CrystalReportSource, entrambi appartenenti ad ASP.NET 2.0.

Procedura

1. Aprire la pagina Default.aspx.


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Nella parte inferiore del Web Form, fare clic sul pulsante Origine.
Viene visualizzato il codice HTML della pagina Default.aspx che include due tag correlati per SAP Crystal
Reports:

○ Il tag CrystalReportSource, che contiene il tag Report nidificato. Il tag Report fa riferimento al report nella
proprietà FileName.

<CR:CrystalReportSource ID="CrystalReportSource1" Runat="server"


EnableCaching="False" GroupPath="">
<Report FileName="XtremeCustomers.rpt"></Report>
</CR:CrystalReportSource>

○ Il tag CrystalReportViewer, che fa riferimento a CrystalReportSource in base all'ID.

<CR:CrystalReportViewer ID="CrystalReportViewer1" Runat="server"


AutoDataBind="True"
Height="1158px" CssFilename="CssFilename"
ReportSourceID="CrystalReportSource1" Width="1059px" />

Risultati

Il codice mostra il nuovo modello di applicazione basato sui tag che fa parte di ASP.NET 2.0. Come in ASP.NET
versione 1.0, il controllo CrystalReportViewer è rappresentato da un tag XML. Tuttavia, in ASP.NET 2.0 le
proprietà disponibili per questo controllo sono in numero maggiore, per supportare il modello di sviluppo di
applicazioni basato su tag.

In ASP.NET 2.0 la connettività dati è stata incapsulata nel controllo DataSource. Il controllo
CrystalReportSource accetta la struttura del controllo DataSource, con la differenza che incapsula la
connettività report anziché la connettività dati. Questa struttura è gestita dalla proprietà ReportSourceID nel
controllo visivo principale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 505
Per ulteriori informazioni sulle proprietà aggiuntive del controllo CrystalReportSource, vedere Controllo
CrystalReportSource [pagina 51]. Le proprietà sono descritte anche in altre esercitazioni basate sull’uso di codice
ridotto di questa sezione.

1.5.3.2 Esercitazione: Impostazione di un progetto Windows


con codice ridotto con Crystal Reports mediante Smart Task

Introduzione

In questa esercitazione verrà illustrato come creare un progetto Windows in SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio. e aggiungere un controllo CrystalReportViewer al Windows Form. Dal
riquadro Smart Task, aprire il componente incorporato SAP Crystal Reports Designer per creare un nuovo report.
La funzionalità Smart Task genera codice che collega il report al controllo CrystalReportViewer.

In questa esercitazione, è possibile eseguire l'anteprima del report in tre diverse modalità::

● Nel componente incorporato SAP Crystal Reports Designer, con il nuovo pulsante Anteprima di SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio.
● Nel Windows Form, con dati fittizi.
● In fase di esecuzione, durante la creazione e la compilazione dell’applicazione.

Al termine di questa esercitazione si passerà alla visualizzazione codice per vedere come funziona il modello di
sviluppo a codice ridotto in SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Progetto Windows C#: CS_Win_ReducedCode_ProjectSetup


● Progetto Windows Visual Basic: VB_Win_ReducedCode_ProjectSetup

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
506 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.3.2.1 Creazione di un progetto Windows con un controllo


CrystalReportViewer

Prerequisiti

Prima di creare un progetto Windows, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio sia installato nel sistema.

Procedura

1. Avviare Visual Studio.


2. Scegliere Nuovo dal menu File e quindi fare clic su Progetto.
3. Nella finestra di dialogo Nuovo progetto selezionare una cartella della lingua per C# o Visual Basic dall'elenco
Tipi progetto.
4. Nell'elenco Modelli, scegliere Applicazione Windows.
5. Nel campo Nome, sostituire il nome predefinito con il nome del progetto creato.
6. Fare clic su OK.
Il progetto viene visualizzato in Esplora soluzioni e contiene una classe Form1.
7. Aprire la classe Form1.
8. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.
9. Trascinare il controllo CrystalReportViewer nel Windows Form.
10. Nella finestra Proprietà, impostare la proprietà Name come segue:

○ Per i progetti in Visual Basic, impostare il valore su "myCrystalReportViewer."


○ Per i progetti in C#, impostare il valore su "crystalReportViewer."
11. Dal menu File, scegliere Salva tutto.

Informazioni correlate

Installazioni necessarie [pagina 9]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 507
1.5.3.2.2 Configurazione del report nel riquadro Smart Task

Per il controllo CrystalReportViewer nei progetti Windows, il riquadro Smart Task è denominato Attività di
CrystalReportViewer.

Qualsiasi selezione effettuata nel riquadro Smart Task genera codice in una classe parziale Form1. In questa
sezione viene descritto come configurare un nuovo report con il riquadro Smart Task "Attività di
CrystalReportViewer" e il componente incorporato SAP Crystal Reports Designer. Più avanti in queste
esercitazioni basate su codice ridotto, vengono esaminate altre funzioni di Smart Task.

1.5.3.2.2.1 Configurazione del report mediante Smart Task

Procedura

1. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene aperto il riquadro Smart Task CrystalReportViewer Tasks.
2. Fare clic sul collegamento Crea un nuovo report.
3. Nella finestra di dialogo Crea un nuovo report Crystal immettere il nome XtremeCustomers.rpt e quindi fare
clic su OK.
Viene visualizzata la finestra di dialogo Galleria Crystal Reports.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
effettuare le seguenti operazioni:
a) Espandere la cartella Crea nuova connessione.
b) Espandere la cartella ODBC (RDO).
7. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database di esempio Xtreme e quindi
fare clic su Fine.
La cartella ODBC (RDO) si espande e visualizza il database Xtreme.
8. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
9. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
10. Tenendo premuto il tasto Ctrl fare clic su Nome cliente, Titolo contatto, Indirizzo1 e Città.
11. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
12. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report XtremeCustomers viene creato e caricato nella finestra principale di Visual Studio.
13. Nella parte inferiore della finestra, fare clic su Anteprima report principale.

Nota
il pulsante Anteprima è una nuova funzionalità del componente incorporato SAP Crystal Reports Designer
fornito con SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
508 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
14. Nella parte inferiore della finestra, fare clic su Report principale per uscire dalla modalità anteprima.
15. Tornare alla classe Form1.
Il report viene visualizzato in modalità Anteprima in fase di progettazione, che mostra il layout grafico del
report sul Web Form. Sotto Form1, il report XtremeCustomers viene visualizzato nella barra dei componenti.
16. Dal menu File, scegliere Salva tutto.

1.5.3.2.2.2 Modifica del nome della variabile report

Contesto

Il report viene creato e diventa il report designato per il controllo CrystalReportViewer. A questo punto è possibile
rinominare la variabile del report.

Procedura

1. Fare clic su XtremeCustomers1 nella barra dei componenti per selezionarlo.


2. Nella finestra Proprietà, impostare il campo Nome su "xtremeCustomersReport".

1.5.3.2.2.3 Verifica del progetto Windows basato su codice


ridotto

Contesto

A questo punto è possibile creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Il report XtremeCustomers viene visualizzato in una nuova applicazione Windows.
5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 509
1.5.3.2.3 Esame del codice generato da Smart Task

In questa sezione viene descritto come esaminare il codice generato da Smart Task, che consente di configurare
un progetto Windows con SAP Crystal Reports senza dover scrivere codice.

1.5.3.2.3.1 Per esaminare il codice generato da Smart Task

Procedura

1. Aprire la classe Form1.


2. Dal menu Visualizza, scegliere Codice.

La classe Form1 si apre in visualizzazione Codice e mostra una classe vuota.

Nota
In C# la classe vuota contiene solo il costruttore di classe.

public Form1()
{
InitializeComponent();
}

1.5.3.2.3.2 Per visualizzare la classe parziale Form1 nascosta

Contesto

Notare l'assenza dei seguenti elementi di codice:

● La dichiarazione dell’istanza del controllo CrystalReportViewer.


● L’istanza del report XtremeCustomers.
● Il codice che collega il report al controllo CrystalReportViewer.

Il codice assente è stato nascosto in una classe parziale. Le classi parziali consentono a una classe di accettare
un’aggiunta da un altro file di classe, assegnando a quest’ultimo lo stesso nome di classe con il prefisso "partial".
La classe parziale contiene in genere codice di progettazione generato automaticamente.

Per visualizzare il codice generato automaticamente che non compare nella classe Form1, è necessario esaminare
le istanze di CrystalReportViewer e del report nella classe parziale Form1 nascosta.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
510 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. In Esplora soluzioni, fare clic sull’icona Mostra tutti i file nella barra degli strumenti.
2. Espandere Form1.cs o Form1.vb.
Viene visualizzato Form1.Designer.cs o .vb.
3. Fare clic con il pulsante destro del mouse su Form1.Designer.cs o .vb e selezionare Visualizza codice.

Viene aperta la classe parziale Form1 che visualizza il codice generato automaticamente per questa classe È
inclusa la dichiarazione dell’istanza del controllo CrystalReportViewer, l’istanza del report
XtremeCustomers e il codice che collega il report all’istanza del controllo CrystalReportViewer.

Nota
Se si preferisce scrivere il codice e inserirlo nella classe di codice sottostante, vedere Impostazione di un
progetto [pagina 14].

1.5.3.3 Esercitazione: Accesso a un database protetto in un


sito Web tramite codice ridotto

In questa esercitazione relativa a un sito Web basato su codice ridotto, viene descritto come visualizzare un report
contenente informazioni provenienti da un database SQL Server protetto.

Introduzione

In questa esercitazione relativa a un sito Web basato su codice ridotto, viene descritto come visualizzare un report
contenente informazioni provenienti da un database SQL Server protetto. Per garantire l’accesso a un database
protetto, è necessario assegnare la proprietà DataSources del report al controllo SQLDataSource, che fa parte
della nuova struttura del controllo DataSource in .NET 2.0.

In questa esercitazione, per visualizzare un report contenente informazioni provenienti da un database SQL
Server protetto, per la connessione dei componenti chiave viene utilizzato il nuovo modello di sviluppo di
applicazioni basato su tag:

● Connessione di un controllo CrystalReportViewer a un controllo CrystalReportSource.


● Connessione del controllo CrystalReportSource a un report.
● Connessione della proprietà DataSources del report a un controllo SqlDataSource.

Nota
DataSources viene visualizzata come proprietà del report nella finestra Proprietà o come tag nella
visualizzazione del codice HTML (visualizzazione Origine).

Tutte queste operazioni verranno eseguite senza dover scrivere codice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 511
Nota
per questa esercitazione è disponibile anche un modello di sviluppo con codice. Vedere Esercitazione: Accesso
a un database SQL Server protetto mediante l'autenticazione SQL [pagina 346] o Esercitazione: Accesso a un
database SQL Server protetto mediante la protezione integrata [pagina 363]:

Iniziare aggiungendo un controllo CrystalReportViewer al Web Form. Da Smart Task, creare un controllo
CrystalReportSource, quindi creare un report Crystal con il componente incorporato SAP Crystal Reports
Designer, che acceda a un database SQL Server protetto. Nel controllo CrystalReportSource viene fatto
riferimento al report.

Viene poi descritto come configurare l’accesso al database SQL Server protetto per restituire le tabelle richieste
utilizzate dal report Crystal. Iniziare selezionando l’opzione "Attiva prompt per l'accesso al database" in Smart
Task. Quando quest’opzione è selezionata, l’eccezione generata durante un errore di accesso al database viene
sostituita da un prompt che richiede all'utente di effettuare manualmente l'accesso.

Per configurare un accesso coerente al database richiesto, aggiungere un controllo SqlDataSource e configurarlo
per fare riferimento al database SQL Server protetto e restituire le tabelle richieste.

Infine, assegnare la proprietà DataSource del report al controllo SqlDataSource appena creato.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_ReducedCode_DBLogon


● Sito Web in Visual Basic: VB_Web_ReducedCode_DBLogon

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.3.3.1 Creazione di un sito Web con un controllo


CrystalReportViewer

Prima di creare un sito Web, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio sia installato nel sistema.

Per questa esercitazione sono necessarie alcune operazioni di configurazione del database.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
512 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.3.1.1 Prerequisiti di configurazione del database

● Configurazione di SQL Server:

○ Se è stato installato SQL Server (o la versione OEM, MSDE), è necessario configurarlo in modo che
richieda l'Autenticazione SQL Server.
○ Se SQL Server (o la versione OEM, MSDE) non è stato installato, è necessario installare MSDE con
l'Autenticazione SQL Server impostata su "True".
● È necessario installare il database Northwind fornito con SQL Server e verificare che richieda l'Autenticazione
SQL Server.
● È necessario creare un account con accesso limitato da utilizzare nel sito Web.

Una volta configurato SQL Server e il database Northwind in base alle istruzioni fornite nelle sezioni indicate, è
possibile creare un sito Web per visualizzare un report Crystal le cui informazioni provengano in modo sicuro da
un database Northwind.

1.5.3.3.1.2 Per configurare un sito Web a codice ridotto in


SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio

Procedura

1. Avviare Visual Studio.


2. Dal menu File, scegliere Nuovo, quindi fare clic su Sito Web.
3. Nella finestra di dialogo Nuovo sito Web, scegliere Sito Web ASP.NET.
4. Nell'elenco a discesa Percorso, selezionare File system.
5. Nell'elenco a discesa Lingua, selezionare la lingua del codice che si desidera utilizzare.
6. Nella campo di testo Percorso immettere il percorso di directory C:\WebSites\ seguito dal nome del
progetto.
7. Fare clic su OK.
Il progetto si apre in Esplora soluzioni e contiene una pagina Default.aspx.
8. Aprire la pagina Default.aspx (il Web Form).
9. Dal menu Visualizza, scegliere Finestra di progettazione.

Nota
Per passare alla visualizzazione Progettazione è anche possibile fare clic sul pulsante Progettazione nella
parte inferiore del form.

10. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.
11. Trascinare il controllo CrystalReportViewer nel Web Form.

Viene visualizzato il riquadro Smart Task "Attività di CrystalReportViewer".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 513
1.5.3.3.2 Configurazione di CrystalReportSource in Smart
Task

Una nuova funzionalità dell'interfaccia utente grafica per i controlli .NET, denominata Smart Task, è stata aggiunta
in Visual Studio 2005. Per il controllo CrystalReportViewer nei progetti Windows, il riquadro Smart Task è
denominato "Attività di CrystalReportViewer".

Questo riquadro consente di configurare diverse funzioni del controllo CrystalReportViewer senza dover scrivere
codice.

Qualsiasi selezione effettuata in Smart Task genera nella pagina ASPX un'impostazione basata su tag.

In questa sezione viene descritto come configurare il controllo CrystalReportSource disponibile nel riquadro
Smart Task "Attività di CrystalReportViewer". Più avanti in queste esercitazioni basate su codice ridotto, vengono
esaminate altre funzioni di Smart Task.

Per iniziare, viene descritto come chiudere e riaprire Smart Task.

Informazioni correlate

Riquadro Smart Task [pagina 47]

1.5.3.3.2.1 Configurazione di CrystalReportSource mediante


Smart Task

Procedura

1. Se il riquadro Smart Task è aperto, fare clic sul Web Form per chiuderlo.
2. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene visualizzato di nuovo il riquadro Smart Task "Attività di CrystalReportViewer". Nell'elenco Scegli
un'origine report è visualizzata l'opzione <Nessuno>.
3. Fare clic sull'elenco Scegli un'origine report e selezionare <Nuova origine report...>.
Viene visualizzata la finestra di dialogo Crea un'origine report.
4. Nella casella di testo Specifica un nome per il controllo, lasciare impostata la voce predefinita
CrystalReportSource1.
5. Fare clic sull'elenco Specificare un report Crystal per il controllo ReportSource e selezionare <Nuovo report>.
La selezione alternativa è <Sfoglia>. Questa opzione consente di selezionare un report Crystal esistente dalla
directory file. In questa esercitazione viene creato un nuovo report.
6. Nella finestra di dialogo Crea un nuovo report Crystal, inserire "NorthwindCustomers.rpt".
7. Fare clic su OK e quindi nuovamente su OK per chiudere la finestra di dialogo Crea un'origine report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
514 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.3.3 Creazione e connessione del report a una database
protetto

Inizia ora il processo di creazione e connessione del report.

1.5.3.3.3.1 Per creare e connettere il report a un database


protetto

Procedura

1. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
2. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
3. Nel riquadro Origini dati disponibili, espandere la cartella Crea nuova connessione.
4. Dalla sottocartella, espandere la cartella OLE DB (ADO).
5. Nella finestra di dialogo OLE DB (ADO), selezionare Provider Microsoft OLE DB per SQL Server, quindi fare clic
su Avanti.
6. A questo punto è possibile utilizzare l'autenticazione SQL o l'autenticazione Windows con protezione
integrata:

○ Se si utilizza l'autenticazione SQL, inserire i valori per server di database, ID utente e password nei campi
Server, ID utente e Password, quindi nell'elenco Database selezionare "Northwind."

Nota
per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

○ Se si utilizza l'autenticazione Windows con la protezione integrata, inserire il valore del server di database
e selezionare la casella di controllo Protezione integrata, quindi nell'elenco Database selezionare
"Northwind."
7. Fare clic su Fine.
La cartella OLE DB è ora estesa, mostra il server di database e, al suo interno, il database Northwind.
8. Espandere i nodi Northwind, dbo e Tables, quindi selezionare la tabella Customers.
9. Fare clic sul simbolo > per spostare la tabella nel riquadro Tabelle selezionate, quindi scegliere Avanti.
10. Tenendo premuto il tasto Ctrl fare clic su CompanyName, ContactName e City.
11. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
12. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report NorthwindCustomers viene creato e caricato nella finestra principale di Visual Studio.
13. Nella parte inferiore della finestra, fare clic su Anteprima report principale.
Il report viene visualizzato in modalità anteprima e mostra dati recuperati dal database Northwind.
14. Nella parte inferiore della finestra, fare clic su Report principale per uscire dalla modalità anteprima.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 515
15. Aprire il Web Form.
16. Dal menu Visualizza, scegliere Finestra di progettazione.
Il report viene visualizzato in modalità Anteprima in fase di progettazione, che mostra il layout grafico del
report sul Web Form.
17. Dal menu File, scegliere Salva tutto.

1.5.3.3.3.2 Verifica del sito Web basato su codice ridotto

Contesto

Il report viene creato e designato come report per il controllo CrystalReportSource. A questo punto è possibile
creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
4. Viene visualizzata una pagina di accesso al database, in cui si richiede di inserire la password del database.
Questo è il risultato previsto per due motivi:

○ Non è stata ancora configurata l’origine dati.


○ Nel riquadro Smart Task per il controllo CrystalReportViewer, la casella di controllo "Attiva prompt per
l'accesso al database" è selezionata per impostazione predefinita.
5. Inserire la password e fare clic su Accesso.
6. Il report NorthwindCustomers viene visualizzato nel browser Web.
7. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.3.3.4 Configurazione della richiesta di accesso al


database nel riquadro Smart Task

In questa procedura viene esaminato l'effetto della disattivazione dell'opzione "Attiva prompt per l'accesso al
database" nel riquadro Smart Task.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
516 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.3.4.1 Per configurare la richiesta di accesso al
database nel riquadro Smart Task

Procedura

1. Aprire la pagina Default.aspx (il Web Form).


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene visualizzato il riquadro Smart Task "Attività di CrystalReportViewer".
4. Deselezionare la casella di controllo Attiva prompt per l'accesso al database.
5. Fare clic sul Web Form per chiudere Smart Task.
6. Dal menu Genera, scegliere Genera soluzione.
7. Se si verificano errori di generazione, correggerli.
8. Dal menu Debug, scegliere Avvia.
Poiché la richiesta di accesso al database non è più attiva, viene generata un'eccezione di accesso non
riuscito nella finestra dell'applicazione Web.
9. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.
10. Tornare al riquadro Smart Task per il controllo CrystalReportViewer.
11. Selezionare la casella di controllo Attiva prompt per l'accesso al database.
12. Chiudere Smart Task.
13. Dal menu File, scegliere Salva tutto.

1.5.3.3.5 Aggiunta di un controllo SqlDataSource

In ASP.NET 2.0, le origini dati sono ora configurate e accessibili tramite la nuova struttura del controllo
DataSource. Per impostazione predefinita, un report Crystal non ha più bisogno di un’origine dati separata, poiché
l’accesso ai dati è incapsulato nel report.

Tuttavia, se i dati provengono da un sistema SQL Server protetto, il report necessita di un’origine dati per gestire il
processo di accesso.

1.5.3.3.5.1 Aggiunta di un controllo SqlDataSource

Procedura

1. Aprire la pagina Default.aspx (il Web Form).


2. Dal menu Visualizza, scegliere Finestra di progettazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 517
Nota
Per passare alla visualizzazione Progettazione è anche possibile fare clic sul pulsante Progettazione nella
parte inferiore del form.

3. Fare clic a destra del controllo CrystalReportSource, quindi premere Invio.


Viene visualizzato un cursore lampeggiante sotto il controllo CrystalReportSource.
4. Nella casella degli strumenti, fare clic sul nodo secondario Dati per espandere i relativi controlli.
5. Dal nodo secondario Dati, trascinare un controllo SqlDataSource sul Web Form, sotto il controllo
CrystalReportSource.
6. Nel riquadro Smart Task (denominato Attività SqlDataSource) fare clic su Configura origine dati….
7. Nella finestra Configura origine dati, fare clic su Nuova connessione....
8. Nel campo Nome server della finestra di dialogo Aggiungi connessione, inserire il nome del server di database.
9. Nel riquadro Accesso al server, scegliere il pulsane di opzione Usa autenticazione di SQL Server o Usa
autenticazione di Windows.
10. Se si sceglie l'autenticazione SQL Server, effettuare le seguenti operazioni:

○ Inserire valori nei campi Nome utente e Password.

Nota
Ricordarsi di utilizzare un account di database con accesso limitato.

○ Selezionare la casella di controllo Salva password.


11. Se si sceglie l'autenticazione Windows, procedere con il passaggio successivo.
12. Nel riquadro Connessione al database, selezionare il pulsante di opzione Selezionare o immettere un nome di
database.
13. Dall’elenco, selezionare Northwind e fare clic su Test connessione.
14. Viene verificata la connessione al database Northwind. Se l'esito è negativo, verificare la password.
15. Una volta completata la verifica della connessione, fare clic su OK per chiudere la finestra Proprietà
connessione.
16. Nella campo Stringa di connessione della finestra Configura origine dati, sono riportate le informazioni di
connessione complete.

○ Se si sceglie l'autenticazione Windows, la proprietà IntegratedSecurity è impostata su True.

Data Source=ABCDE;Initial Catalog=Northwind;Integrated Security=True

○ Se si sceglie l'autenticazione SQL, vengono assegnati i valori di ID utente e password.

Nota
Per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Nel codice scritto, sostituire il nome di server, il nome di database, il nome utente e la password di
esempio con le proprie informazioni di connessione.

Server=ABCDE;User

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
518 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
ID=limitedPermissionAccount;Password=1234;Database=Northwind;Persist Security
Info=True

17. Fare clic su Avanti, quindi nella finestra successiva fare nuovamente clic su Avanti per salvare la connessione
con il nome predefinito "NorthwindConnectionString".
18. Fare clic sull’opzione Specificare le colonne di una tabella o vista.
19. Nell’elenco Nome, selezionare "Customers".
20. Nel riquadro Colonne, selezionare le caselle di controllo Company Name, Contact Name e City, quindi fare clic
su Avanti.

Nota
Le colonne selezionate in questo riquadro devono corrispondere a quelle selezionate nel report originale.
Se in un secondo momento si decide di cambiare le colonne selezionate nel report, con il componente
incorporato SAP Crystal Reports Designer è necessario cambiare le colonne in questa fase nell’istruzione
SQL. Per motivi di scalabilità, si consiglia di non utilizzare la selezione asterisco, ma scegliere le colonne
specifiche utilizzate nel report.

21. Nella finestra Test query, fare clic su Test query.


22. Se la query ha esito positivo, fare clic su Fine.
23. Il controllo SqlDataSource viene visualizzato nella parte inferiore della finestra, sotto i controlli
CrystalReportViewer e CrystalReportSource.

1.5.3.3.6 Connessione di CrystalReportSource al controllo


SqlDataSource

Sul Web Form sono ora presenti tre controlli correlati l'uno all'altro:

● Il controllo CrystalReportViewer, collegato al controllo CrystalReportSource per accedere al report e


visualizzarlo.
● Il controllo CrystalReportSource, che incapsula il report.
● Il controllo SqlDataSource, che incapsula le informazioni di accesso ai dati.

È importante ricordare che il controllo CrystalReportSource è stato collegato al controllo CrystalReportViewer al


momento dell’aggiunta di quest’ultimo al Web Form, mentre non è stata eseguita alcuna operazione per collegare
il controllo CrystalReportSource al controllo SqlDataSource. Pertanto, anche se sono esistenti le informazioni di
configurazione dei dati, in fase di esecuzione il report non sarà in grado di trovarle e richiederà di eseguire
l’accesso.

In questa sezione il controllo CrystalReportSource viene connesso al controllo SqlDataSource. Per eseguire
questa operazione è necessario utilizzare la finestra di dialogo Editor dell'insieme DataSource.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 519
1.5.3.3.6.1 Per collegare CrystalReportSource al controllo
SqlDataSource

Procedura

1. Aprire la pagina Default.aspx (il Web Form).


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Selezionare il controllo CrystalReportSource.
4. Da Proprietà, espandere Report.

Nota
Se Proprietà non è visibile, dal menu Visualizza scegliere Finestra Proprietà.

5. Nella proprietà Report, fare clic sui puntini di sospensione (...) a destra di DataSources (Insieme).
6. Nella finestra di dialogo Editor dell'insieme DataSource, effettuare le seguenti operazioni:
a) Fare clic su Aggiungi.
b) Nel pannello Report, selezionare Report principale.
c) Nella casella combinata Scegli origine dati, fare clic su SqlDataSource1.
d) Selezionare Specificare nome tabella e nel campo inserire "Customers".
7. Fare clic su OK.
8. Nella parte inferiore della pagina Default.aspx, fare clic su Origine.
9. Individuare i tag CrystalReportSource.
10. Nei tag di CrystalReportSource, individuare il tag Report.
11. All'interno dei tag Report (tra i tag di apertura e chiusura) verificare che siano state generate le seguenti
informazioni sui tag DataSources.

<DataSources>
<CR:DataSourceRef DataSourceID="SqlDataSource1" TableName="Customers" />
</DataSources>

12. Dal menu Genera, scegliere Genera soluzione.


13. Se si verificano errori di generazione, correggerli.
14. Dal menu Debug, scegliere Avvia.
Il report viene ora visualizzato con accesso protetto al database SQL Server.

1.5.3.4 Esercitazione: Impostazione di parametri in un sito


Web tramite codice ridotto

In questa esercitazione relativa a un sito Web basato su codice ridotto, viene descritto come visualizzare un report
contenente parametri e passare i valori dei parametri al report con il nuovo modello di parametri dei dati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
520 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Introduzione

In questa esercitazione viene descritto come utilizzare il nuovo modello di sviluppo di applicazioni basato su tag
per connettere i componenti chiave:

● Connessione di un controllo CrystalReportViewer a un controllo CrystalReportSource.


● Connessione del controllo CrystalReportSource a un report che contiene un parametro.
● Connessione del tag Parameters del report a una delle origini di parametri nel nuovo modello di parametri dei
dati, incluso in ASP.NET versione 2.0.

Tutte queste operazioni verranno eseguite senza dover scrivere codice.

Nota
per questa esercitazione è disponibile anche un modello con codice. Vedere Esercitazione: Lettura e
impostazione di parametri discreti [pagina 381].

Iniziare aggiungendo un controllo CrystalReportViewer al Web Form. Da Smart Task, creare un controllo
CrystalReportSource, quindi creare un report Crystal con il componente incorporato SAP Crystal Reports
Designer, che includa un parametro da applicare ai criteri di ricerca del report. Nel controllo CrystalReportSource
viene fatto riferimento al report.

Utilizzare quindi l'opzione Smart Task Attiva prompt al parametro report. Quando questa opzione è selezionata,
l’eccezione generata durante un errore di accesso al database viene sostituita dalla richiesta di un parametro.

Poiché è necessario personalizzare la selezione dei parametri, aggiungere un controllo DropDownList che
contenga un elenco di valori di parametri selezionabili per il report.

Infine, aprire l'Editor dell'insieme dei parametri per il report e configurare una connessione tra il parametro del
report e il controllo DropDownList aggiunto.

Nota
ControlParameter è l'unica origine dei parametri possibile nel modello di parametri dei dati. Altre possibile
origini dei parametri sono QueryStringParameter, SessionParameter, FormParameter o CookieParameter. Per
alcuni di questi tipi di origine dei parametri, è necessario modificare il tag Parameters direttamente nella
visualizzazione del codice HTML (visualizzazione Origine).

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_ReducedCode_Parameters


● Sito Web in Visual Basic: VB_Web_ReducedCode_Parameters

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 521
Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.3.4.1 Creazione di un sito Web con un controllo


CrystalReportViewer

Prerequisiti

Prima di creare un sito Web, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio sia installato nel sistema.

Procedura

1. Avviare Visual Studio.


2. Dal menu File, scegliere Nuovo, quindi fare clic su Sito Web.
3. Nella finestra di dialogo Nuovo sito Web, scegliere Sito Web ASP.NET.
4. Nell'elenco a discesa Percorso, selezionare File system.
5. Nell'elenco a discesa Lingua, selezionare la lingua del codice che si desidera utilizzare.
6. Nella campo di testo Percorso immettere il percorso di directory C:\WebSites\ seguito dal nome del
progetto.
7. Fare clic su OK.
Il progetto viene visualizzato in Esplora soluzioni e contiene una pagina Default.aspx.
8. Aprire la pagina Default.aspx (il Web Form).
9. Dal menu Visualizza, scegliere Finestra di progettazione.

Suggerimento
Per passare alla visualizzazione Progettazione è anche possibile fare clic sul pulsante Progettazione nella
parte inferiore del form.

10. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.
11. Trascinare il controllo CrystalReportViewer nel Web Form.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
522 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Viene visualizzato il riquadro Smart Task "Attività di CrystalReportViewer".

Informazioni correlate

Installazioni necessarie [pagina 9]

1.5.3.4.2 Configurazione di CrystalReportSource in Smart


Task

Contesto

Una nuova funzionalità dell'interfaccia utente grafica per i controlli .NET, denominata Smart Task, è stata aggiunta
in Visual Studio 2005. Per il controllo CrystalReportViewer nei progetti Windows, il riquadro Smart Task è
denominato "Attività di CrystalReportViewer".

Questo riquadro consente di configurare diverse funzioni del controllo CrystalReportViewer senza dover scrivere
codice. Qualsiasi selezione effettuata in Smart Task genera nella pagina ASPX un'impostazione basata su tag.

In questa sezione viene descritto come configurare la funzione principale disponibile nel riquadro Smart Task
"Attività di CrystalReportViewer": il controllo CrystalReportSource. Più avanti in queste esercitazioni basate su
codice ridotto, vengono esaminate altre funzioni di Smart Task.

Per iniziare, viene descritto come chiudere e riaprire Smart Task.

Procedura

1. Se il riquadro Smart Task è aperto, fare clic sul Web Form per chiuderlo.
2. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.

Viene visualizzato di nuovo il riquadro Smart Task "Attività di CrystalReportViewer". Nell'elenco Scegli
un'origine report è visualizzata l'opzione <Nessuno>.
3. Fare clic sull'elenco Scegli un'origine report e selezionare <Nuova origine report...>.

Viene visualizzata la finestra di dialogo Crea un'origine report.


4. Nella casella di testo Specifica un nome per il controllo CrystaReportSource, lasciare impostata la voce
predefinita CrystalReportSource1.
5. Fare clic sull'elenco Specificare un report Crystal per il controllo ReportSource e selezionare <Nuovo report>.

La selezione alternativa è <Sfoglia…>. Questa opzione consente di selezionare un report Crystal esistente
dalla directory file. In questa esercitazione viene creato un nuovo report.
6. Nella finestra di dialogo Crea un nuovo report Crystal, immettere il nome "XtremeCustomers.rpt" e fare clic su
OK, quindi nella finestra di dialogo Crea un'origine report fare nuovamente clic su OK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 523
1.5.3.4.3 Creazione di un report con parametri

Per iniziare, creare un report con informazioni provenienti dal database Xtreme.

1.5.3.4.3.1 Per creare un report con parametri

Procedura

1. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
2. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.

Viene visualizzata la finestra di dialogo Procedura guidata per la creazione di report standard.
3. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
4. Dalla sottocartella, espandere la cartella ODBC (RDO).
5. Nella finestra di dialogo ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi
fare clic su Avanti.
6. Lasciare vuoti i campi ID utente e Password, quindi fare clic su Fine.

La cartella ODBC (RDO) si espande e visualizza il database Xtreme.


7. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
8. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
9. Espandere la tabella Clienti, quindi tenendo premuto il tasto Ctrl fare clic su Nome cliente, Titolo contatto,
Indirizzo1, Cognome contatto e Città.
10. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
11. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.
Il report CustomersByCity viene creato e caricato nella finestra principale di Visual Studio.

Risultati

A questo punto è possibile aggiungere un parametro denominato Città e compilarlo con i valori predefiniti.

1.5.3.4.3.2 Aggiunta di un parametro Città

Prerequisiti

Explorer Campo deve essere visibile poiché garantisce l’accesso alle diverse funzionalità del report, inclusi i
parametri.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
524 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Nota
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

2. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi parametro, quindi selezionare Nuovo….
3. Nella finestra di dialogo Crea campo parametro:
a) Impostare Nome su Città.
b) Impostare Tipo su Stringa. Impostare Testo prompt su Selezionare una o più città.
c) Impostare Campo valore su Città.
d) Fare clic su Azioni, quindi selezionare Aggiungi tutti i valori del database. Verrà così aggiunto al riquadro
centrale l'intero elenco di città.
e) Nel riquadro Opzioni dei valori impostare Testo prompt su Selezionare una o più città.
f) Nello stesso riquadro impostare Consenti valori multipli su True.
g) Impostare Consenti valori discreti su True.
4. Fare clic su OK per chiudere la finestra di dialogo Crea campo parametro.

1.5.3.4.3.3 Collegamento del parametro Città alla colonna


Città del database

Contesto

A questo punto, utilizzare l’Esperto selezione per impostare una formula che connetta la colonna Città del
database al campo parametro Città appena creato.

Procedura

1. Nella barra degli strumenti di Crystal Reports, fare clic su Esperto selezione.
2. Nella finestra di dialogo Scegli campo, in Campi report, selezionare Clienti.Città, quindi scegliere OK.
3. Nella finestra di dialogo Esperto selezione, nella scheda Clienti.Città, impostare l’elenco a discesa su è uguale
a.
4. Nel nuovo elenco visualizzato a destra, selezionare la prima opzione disponibile, {?Città}, quindi fare clic su
OK.

Nota
questa selezione, {?Città}, corrisponde al parametro Città creato in precedenza.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 525
5. Dal menu File, scegliere Salva tutto.
6. Nella parte inferiore della finestra, fare clic su Anteprima report principale.
7. Nella finestra di dialogo Immetti valori dei parametri, selezionare almeno una città dall'elenco Valori discreti,
scegliere Aggiungi, quindi fare clic su OK.

Il report viene visualizzato in modalità anteprima, con il valore del parametro Città selezionato.
8. Nella parte inferiore della finestra, fare clic su Report principale per uscire dalla modalità anteprima.
9. Aprire il Web Form.
10. Dal menu Visualizza, scegliere Finestra di progettazione.

Il report viene visualizzato in modalità Anteprima in fase di progettazione, che mostra il layout grafico del
report sul Web Form.
11. Dal menu File, scegliere Salva tutto.

1.5.3.4.3.4 Verifica del sito Web basato su codice ridotto

Contesto

Il report viene creato e designato come report per il controllo CrystalReportSource. A questo punto è possibile
creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Viene visualizzata una pagina di richiesta di parametri, in cui si richiede di selezionare una richiesta da un
controllo DropDownList. Questo è il risultato previsto per due motivi:

○ Non è stato ancora configurato il tag Parameters nel report.


○ Nel riquadro Smart Tasks del controllo CrystalReportViewer, la casella di controllo Attiva prompt al
parametro report è selezionata per impostazione predefinita.
4. Selezionare un parametro e fare clic su OK.
5. Il report CustomersByCity viene visualizzato nel browser Web e mostra la città selezionata.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
526 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.4.4 Configurazione dei prompt di parametri del report
in Smart Task

Contesto

In questa procedura verrà esaminato l'effetto della disattivazione dell'opzione "Attiva richieste al parametro
report" in Smart Task.

Procedura

1. Aprire la pagina Default.aspx (il Web Form).


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.

Viene visualizzato il riquadro Smart Task "Attività di CrystalReportViewer".


4. Deselezionare la casella di controllo Attiva prompt al parametro report.
5. Fare clic sul Web Form per chiudere Smart Task.
6. Dal menu Genera, scegliere Genera soluzione.
7. Se si verificano errori di generazione, correggerli.
8. Dal menu Debug, scegliere Avvia.

Poiché la richiesta di parametri del report non è più attiva, viene generata un'eccezione "Valori di parametro
mancanti" nella finestra dell'applicazione Web.
9. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.
10. Tornare al riquadro Smart Task per il controllo CrystalReportViewer.
11. Selezionare la casella di controllo Attiva prompt al parametro report.
12. Chiudere Smart Task.
13. Dal menu File, scegliere Salva tutto.

1.5.3.4.5 Preparazione di un controllo con valori di


parametro

Contesto

In questa sezione viene descritto come preparare un controllo DropDownList con i nomi delle città. Nella sezione
successiva, i nomi delle città vengono passati come valori ai parametri del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 527
Procedura

1. Aprire la pagina Default.aspx (il Web Form).


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Sopra il controllo CrystalReportViewer digitare Selezionare una città:.
4. Dalla casella degli strumenti, trascinare un controllo DropDownList a destra del testo.

Viene visualizzato il riquadro Smart Task "Attività DropDownList comuni".


5. Nel riquadro Smart Task, fare clic su Modifica elementi.
6. Nella finestra di dialogo Editor dell'insieme voci elenco, fare clic su Aggiungi.

Nel riquadro Membri viene creata una nuova voce ListItem.


7. Nel riquadro Proprietà voci elenco, fare clic sul campo Testo e digitare Paris.
8. Fare di nuovo clic su Aggiungi.

Nel riquadro Membri viene creata una seconda voce ListItem.


9. Nel riquadro Proprietà voci elenco, fare clic sul campo Testo e digitare Tokyo.
10. Fare clic su OK.
11. Fare clic sul Web Form per chiudere il riquadro Smart Task per il controllo DropDownList.
12. Fare clic su DropDownList per selezionarlo.
13. Nella finestra Proprietà, impostare il campo ID su cityList.
14. Dalla casella degli strumenti, trascinare un controllo Button a destra del controllo DropDownList.
15. Nella finestra Proprietà:
a) Impostare il campo Text su Rivisualizza report.
b) Impostare il campo ID su rivisualizza.
16. Dal menu File, scegliere Salva tutto.

Risultati

A questo punto è disponibile un controllo DropDownList con due valori per il parametro Città e un pulsante per
inviare i valori da questo controllo. Tuttavia il report non riconosce ancora questo controllo e i valori in esso
contenuti. Nella sezione successiva, viene descritto come connettere il controllo DropDownList al tag
<Parameters> del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
528 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.4.6 Configurazione dei parametri per il controllo
CrystalReportSource

Contesto

Il controllo CrystalReportSource creato in questa esercitazione implementa il nuovo modello Parameters incluso
con ASP.NET 2.0. Qualsiasi tipo di parametro che faccia parte del modello Data Parameters può essere passato
come parametro a CrystalReportSource, inclusi i seguenti:

● ControlParameter
● QueryStringParameter
● SessionParameter
● FormParameter
● CookieParameter

In questa esercitazione viene utilizzato un controllo ControlParameter. Il controllo DropDownList creato e


compilato con un elenco di città nella sezione precedente viene configurato come origine parametri per il
parametro del report contenuto nel controllo CrystalReportSource.

Procedura

1. Aprire la pagina Default.aspx (il Web Form).


2. Dal menu Visualizza, scegliere Finestra di progettazione.
3. Selezionare il controllo CrystalReportSource.
4. Da Proprietà, espandere Report.
5. Nella proprietà Report, fare clic sui puntini di sospensione (...) a destra di Parameters (Insieme).
6. Nella finestra di dialogo Editor dell'insieme Parameters, effettuare le seguenti operazioni:
a) Fare clic su Aggiungi.
b) Nel pannello Report, selezionare Report principale.
c) Nella casella combinata Nome parametro, fare clic su Città.
d) Selezionare Specify Control ID e nella casella combinata fare clic su cityList.
7. Fare clic su OK.
8. Nella parte inferiore della pagina Default.aspx, fare clic su Origine.
9. Individuare le informazioni sui tag del controllo CrystalReportSource.
10. Nei tag di CrystalReportSource, individuare il tag Report.
11. All'interno dei tag Report (tra i tag di apertura e chiusura) verificare le seguenti informazioni sui tag
Parameters.

<Parameters>
<CR:controlparameter name="City" propertyname="SelectedValue"
controlid="cityList"></CR:controlparameter>
</Parameters>

12. Dal menu Genera, scegliere Genera soluzione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 529
13. Se si verificano errori di generazione, correggerli.
14. Dal menu Debug, scegliere Avvia.

Il report viene ora visualizzato correttamente con il valore di parametro che corrisponde alla selezione
predefinita (la prima) nell'elenco.
15. Impostare il valore di parametro su un altro valore e fare clic sul pulsante Rivisualizza report.

Nota
Se si desidera compilare con valori predefiniti il controllo DropDownList del parametro Città del report
CustomersByCity, vedere l'esercitazione Esercitazione: Lettura e impostazione di parametri discreti [pagina
381].

Il report mostra la città selezionata nel controllo DropDownList.

1.5.3.5 Esercitazione: Esposizione dei dati di report ad altri


controlli in un sito Web tramite codice ridotto

In questa esercitazione relativa a un sito Web basato su codice ridotto, viene descritto come esporre i dati del
report dal controllo CrystalReportViewer ad altri controlli in un sito Web.

Introduzione

In questa esercitazione viene descritto come esporre i dati del report Crystal dal controllo CrystalReportViewer a
un controllo Label in un sito Web.

Iniziare creando un sito Web ASP.NET in Visual Studio e aggiungere un controllo CrystalReportViewer al Web
Form. Aggiungere un controllo Label al Web Form per visualizzare i dati del report. In Smart Task, creare un
controllo CrystalReportSource e aggiungervi un report di esempio. Aggiungere un evento DrillDown al controllo
CrystalReportViewer ed infine esporre i dati del report dell’evento DrillDown al controllo Label.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_ReducedCode_ReportData


● Sito Web in Visual Basic: VB_Web_ReducedCode_ReportData

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
530 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.3.5.1 Creazione di un sito Web con un controllo


CrystalReportViewer

Contesto

Prima di creare un sito Web, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio sia installato nel sistema.

Procedura

1. Avviare Visual Studio.


2. Dal menu File, scegliere Nuovo, quindi fare clic su Sito Web.
3. Nella finestra di dialogo Nuovo sito Web, scegliere Sito Web ASP.NET.
4. Nell'elenco a discesa Percorso, selezionare File system.
5. Nell'elenco a discesa Lingua, selezionare la lingua del codice che si desidera utilizzare.
6. Nella campo di testo Percorso immettere il percorso di directory "C:\WebSites\" seguito dal nome del
progetto.
7. Fare clic su OK.
Il progetto viene visualizzato in Esplora soluzioni e contiene una pagina Default.aspx.
8. Aprire la pagina Default.aspx (il Web Form).
9. Dal menu Visualizza, scegliere Finestra di progettazione.

Nota
Per passare alla visualizzazione Progettazione è anche possibile fare clic sul pulsante Progettazione nella
parte inferiore del form.

10. Fare clic sul Web Form, quindi premere Invio tre volte per creare spazio per i controlli Label e
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 531
11. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.
12. Trascinare il controllo CrystalReportViewer nel Web Form, nella parte inferiore.
Viene visualizzato il riquadro Smart Task "Attività di CrystalReportViewer".
13. Premere Esc sulla tastiera per chiudere il riquadro Smart Task.
14. Fare clic sul controllo CrystalReportViewer per selezionarlo.
15. Nella finestra Proprietà, impostare la proprietà ID come segue:

○ Per i siti Web Visual Basic, impostare la proprietà ID su "myCrystalReportViewer".


○ Per i siti Web C#, impostare la proprietà ID su "crystalReportViewer".
16. Dal menu File, scegliere Salva tutto.

Informazioni correlate

Installazioni necessarie [pagina 9]

1.5.3.5.2 Aggiunta di un controllo Label a un sito Web

Contesto

In questa sezione viene descritto come aggiungere un controllo Label a un Web Form. Più avanti nel corso
dell'esercitazione, questo controllo Label viene utilizzato per visualizzare i dati del report esposti.

Procedura

1. Nella casella degli strumenti, aprire il nodo Standard per individuare il controllo Label.
2. Trascinare il controllo Label nel Web Form, all’inizio dalla pagina.
3. Fare clic sul controllo Label per selezionarlo.
4. Nella finestra Proprietà, impostare la proprietà ID su "drillLabel".
5. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
532 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.5.3 Configurazione di CrystalReportSource mediante
Smart Task

Contesto

Una nuova funzionalità dell'interfaccia utente grafica per i controlli .NET, denominata Smart Task, è stata aggiunta
in Visual Studio 2005. Per il controllo CrystalReportViewer nei siti Web, il riquadro Smart Task è denominato
Attività di CrystalReportViewer.

Questo riquadro consente di configurare diverse funzionalità del controllo CrystalReportViewer, senza dover
scrivere codice. Qualsiasi selezione effettuata in Smart Task genera nella pagina ASPX un'impostazione basata su
tag.

In questa sezione viene descritto come configurare la funzionalità principale disponibile nel riquadro Smart Task
Attività di CrystalReportViewer: il controllo CrystalReportSource. Più avanti in queste esercitazioni basate su
codice ridotto, vengono esaminate altre funzioni di Smart Task.

Procedura

1. Se il riquadro Smart Task è aperto, fare clic sul Web Form per chiuderlo.
2. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene nuovamente visualizzato il riquadro Attività di CrystalReportViewer. Nell'elenco Scegli un'origine report
è visualizzata l'opzione <Nessuno>.
3. Fare clic sull'elenco Scegli un'origine report e selezionare <Nuova origine report...>.
Viene visualizzata la finestra di dialogo Crea un'origine report.
4. Nella casella di testo Specifica un nome per il controllo, lasciare impostata la voce predefinita
CrystalReportSource1.
5. Fare clic sull'elenco Specifica un report per il controllo ReportSource e selezionare <Sfoglia…>.
Viene visualizzata la finestra di dialogo Seleziona un report Crystal.
6. Individuare il file World Sales Report.rpt nella cartella General Business della directory dei report di esempio di
SAP Crystal Reports.
7. Selezionare il file World Sales Report.rpt, quindi fare clic su Apri.
A questo punto il report diventa il report designato per il controllo CrystalReportViewer.
8. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 533
1.5.3.5.4 Aggiunta di un evento DrillDown al controllo
CrystalReportViewer

Contesto

In questa sezione viene descritto come aggiungere un evento DrillDown al controllo CrystalReportViewer in modo
che il controllo Label possa visualizzare il nome della parte del report analizzata in dettaglio quando l’utente
esegue un’analisi dettagliata del report

Procedura

1. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante del Windows Form.
2. Dal menu Visualizza, scegliere Finestra di progettazione per tornare alla visualizzazione Progettazione del
Windows Form.
3. Fare clic sul controllo CrystalReportViewer per selezionarlo.
4. Nella finestra Proprietà, fare clic sul pulsante Eventi per visualizzare l’elenco degli eventi associati al controllo
CrystalReportViewer.
5. Nell’elenco di eventi disponibili, nel nodo Azione, individuare l’evento Drill.
6. Per generare il codice del gestore dell'evento DrillDown, nella finestra Proprietà fare doppio clic sull’evento
Drill.

Viene generato il seguente codice che permette di gestire l’evento DrillDown:

Protected Sub myCrystalReportViewer_Drill(ByVal source As Object,


ByVal e As CrystalDecisions.Web.DrillEventArgs) Handles
myCrystalReportViewer.Drill

End Sub

protected void crystalReportViewer_Drill(object source,


CrystalDecisions.Web.DrillEventArgs e)
{

7. Dal menu File, scegliere Salva tutto.

1.5.3.5.5 Esposizione dei dati di report dell'evento DrillDown


a un controllo Label

In questa sezione viene descritto come aggiungere testo al controllo Label per indicare quale parte del report è
stata analizzata in dettaglio.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
534 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.3.5.5.1 Per esporre i dati del report dell'evento DrillDown
al controllo Label

Procedura

1. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante del Windows Form.
2. Individuare il seguente codice che gestisce l’evento DrillDown:

Protected Sub myCrystalReportViewer_Drill(ByVal source As Object,


ByVal e As CrystalDecisions.Web.DrillEventArgs) Handles
myCrystalReportViewer.Drill

End Sub

protected void crystalReportViewer_Drill(object source,


CrystalDecisions.Web.DrillEventArgs e)
{

3. Affinché il controllo Label visualizzi il nome della parte del report analizzata in dettaglio, aggiungere la
seguente riga di codice al metodo del gestore dell'evento:

drillLabel.Text = e.NewGroupName

drillLabel.Text = e.NewGroupName;

4. Dal menu File, scegliere Salva tutto.

1.5.3.5.5.2 Per creare ed eseguire il progetto

Contesto

A questo punto è possibile creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.
Se non si verificano errori di generazione, il progetto viene caricato nel browser Web e il Web Form viene
visualizzato con il report World Sales generato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 535
4. Per verificare che il controllo Label visualizzi correttamente i dati del report dell’evento DrillDown,
nell’intestazione I primi 5 paesi per vendite selezionare USA per analizzare in dettaglio questa parte del report.
La pagina viene nuovamente caricata per visualizzare il report "USA" relativo alle vendite di questo paese.
5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.3.6 Esercitazione: Esposizione dei dati di report ad altri


controlli in un'applicazione Windows tramite codice ridotto

In questa esercitazione basata su codice ridotto viene descritto come esporre i dati del report dal controllo
CrystalReportViewer ad altri controlli nel progetto Windows.

Introduzione

In questa esercitazione viene illustrato come esporre i dati del report Crystal dal controllo
CrystalReportViewer a un controllo Label in un progetto Windows.

Verrà illustrato come creare un progetto Windows in SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio. Verrà quindi aggiunto un controllo CrystalReportViewer al Windows Form. Aggiungere un
controllo Label al Windows Form per visualizzare i dati del report. In Smart Task, creare un controllo
CrystalReportSource e aggiungere ad esso un report di esempio. Aggiungere un evento DrillDown al controllo
CrystalReportViewer. ed infine esporre i dati del report dell’evento DrillDown al controllo Label.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Applicazione C# Windows: CS_Win_ReducedCode_ReportData


● Progetto Visual Basic Windows: VB_Win_ReducedCode_ReportData

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
536 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.3.6.1 Creazione di un progetto Windows con un controllo


CrystalReportViewer

Prerequisiti

Prima di creare un progetto Windows, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio sia installato nel sistema.

Procedura

1. Avviare Visual Studio.


2. Scegliere Nuovo dal menu File e quindi fare clic su Progetto.
3. Nella finestra di dialogo Nuovo progetto selezionare una cartella della lingua per C# o Visual Basic dall'elenco
Tipi progetto.
4. Nell'elenco Modelli, scegliere Applicazione Windows.
5. Nel campo Nome, sostituire il nome predefinito con il nome del progetto creato.
6. Fare clic su OK.
Il progetto viene visualizzato in Esplora soluzioni e contiene una classe Form1.
7. Aprire la classe Form1.
8. Nella casella degli strumenti, aprire il nodo Creazione report per individuare il controllo CrystalReportViewer.
9. Trascinare il controllo CrystalReportViewer nel Windows Form.
10. Nella finestra Proprietà, impostare la proprietà Name come segue:

○ Per i progetti Visual Basic, impostare il valore su myCrystalReportViewer.


○ Per i progetti C#, impostare il valore su crystalReportViewer.
11. Dal menu File, scegliere Salva tutto.

Informazioni correlate

Installazioni necessarie [pagina 9]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 537
1.5.3.6.2 Aggiunta di un controllo Label a un'applicazione
Windows

Contesto

In questa sezione viene descritto come aggiungere un controllo Label a un Windows Form. Più avanti nel corso
dell'esercitazione, questo controllo Label viene utilizzato per visualizzare i dati del report esposti.

Procedura

1. Se il riquadro Smart Task è aperto, premere il tasto Esc per chiuderlo.


2. Nella casella degli strumenti, aprire il nodo Controlli comuni per individuare il controllo Label.
3. Trascinare il controllo Label nel Windows Form e collocarlo direttamente sopra il controllo
CrystalReportViewer.
4. Fare clic sul controllo Label per selezionarlo.
5. Nella finestra Proprietà, impostare la proprietà Name su "drillLabel".
6. Dal menu File, scegliere Salva tutto.

1.5.3.6.3 Configurazione di CrystalReportSource mediante


Smart Task

Contesto

In Visual Studio 2005 è stata aggiunta una nuova funzionalità dell'interfaccia utente grafica per la configurazione
di controlli .NET, denominata Smart Task. Per il controllo CrystalReportViewer nei siti Web, il riquadro Smart Task
è denominato Attività di CrystalReportViewer.

Questo riquadro consente di configurare diverse funzioni del controllo CrystalReportViewer senza dover scrivere
codice. Qualsiasi selezione effettuata nel riquadro Smart Task genera codice di Progettazione Windows Form.

In questa sezione viene descritto come configurare la funzionalità principale disponibile nel riquadro Smart Task
Attività di CrystalReportViewer: il controllo CrystalReportSource. Più avanti in queste esercitazioni basate su
codice ridotto, vengono esaminate altre funzioni di Smart Task.

Procedura

1. Se il riquadro Smart Task è aperto, fare clic sul Web Form per chiuderlo.
2. Nell'angolo superiore destro del controllo CrystalReportViewer, fare clic sul piccolo pulsante triangolare.
Viene visualizzato nuovamente il riquadro Smart Task denominato Attività di CrystalReportViewer. Nell'elenco
Scegli un'origine report è visualizzata l'opzione <Nessuno>.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
538 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
3. Fare clic sull'elenco Scegli un'origine report e selezionare <Nuova origine report...>.
Viene visualizzata la finestra di dialogo Crea un'origine report.
4. Nella casella di testo Specifica un nome per il controllo, lasciare impostata la voce predefinita
CrystalReportSource1.
5. Fare clic sull'elenco Specifica un report per il controllo ReportSource e selezionare <Sfoglia…>.
Viene visualizzata la finestra di dialogo Seleziona un report Crystal.
6. Individuare il file World Sales Report.rpt nella cartella General Business della directory dei report di esempio di
SAP Crystal Reports.
7. Selezionare il file World Sales Report.rpt, quindi fare clic su Apri.
A questo punto il report diventa il report designato per il controllo CrystalReportViewer.
8. Dal menu File, scegliere Salva tutto.

1.5.3.6.4 Aggiunta di un evento DrillDown al controllo


CrystalReportViewer

Contesto

In questa sezione viene descritto come aggiungere un evento DrillDown al controllo CrystalReportViewer in modo
che il controllo Label possa visualizzare il nome della parte del report analizzata in dettaglio quando l’utente
esegue un’analisi dettagl

Procedura

1. Dal menu Visualizza, scegliere Codice per visualizzare la classe di codice sottostante del Windows Form.
2. Dal menu Visualizza, scegliere Finestra di progettazione per tornare alla visualizzazione Progettazione del
Windows Form.
3. Fare clic sul controllo CrystalReportViewer per selezionarlo.
4. Nella finestra Proprietà, fare clic sul pulsante Eventi per visualizzare l’elenco degli eventi associati al controllo
CrystalReportViewer.
5. Nell’elenco di eventi disponibili, nel nodo Azione, individuare l’evento Drill.
6. Per generare il codice del gestore dell'evento DrillDown, nella finestra Proprietà fare doppio clic sull’evento
Drill.
Viene generato il seguente codice che permette di gestire l’evento DrillDown:

Private Sub myCrystalReportViewer_Drill(ByVal source As


System.Object, ByVal e As
CrystalDecisions.Windows.Forms.DrillEventArgs) Handles
myCrystalReportViewer.Drill

End Sub

private void crystalReportViewer_Drill(object source,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 539
CrystalDecisions.Windows.Forms.DrillEventArgs e)
{

7. Dal menu File, scegliere Salva tutto.

1.5.3.6.5 Esposizione dei dati di report dell'evento DrillDown


a un controllo Label

In questa sezione viene descritto come aggiungere testo al controllo Label per indicare quale parte del report è
stata analizzata in dettaglio.

1.5.4 Esercitazioni sulla connettività dei dati

In questa sezione viene presentata una serie di esercitazioni per le opzioni di connettività dei dati in SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio.

1.5.4.1 Esercitazione: Connessione ai DataSet ADO.NET

Introduzione

In questa esercitazione viene descritto come connettere un report Crystal a un DataSet ADO.NET mediante uno
schema DataSet. Per la creazione di un report da un DataSet ADO.NET sono necessari alcuni passaggi aggiuntivi,
poiché il report non è connesso direttamente a un database.

Uno schema DataSet ADO.NET fornisce un modello della struttura dati in XML. Tuttavia, un report non può
recuperare i dati solo dallo schema DataSet. Innanzitutto è necessario creare un'istanza dello schema DataSet
come istanza DataSet con tipizzazione forte o generica, quindi compilare l'istanza di dati mediante l'utilizzo delle
classi DataAdapter.

In questa esercitazione, a causa della complessità della creazione di report da DataSet ADO.NET, i processi da
seguire per creare lo schema e compilare il DataSet sono tenuti rigorosamente separati dal codice di
collegamento di SAP Crystal Reports.

Nota
SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio offre un modello, denominato
DataSet, per creare uno schema DataSet ADO.NET. Nei siti Web creati con Visual Studio 2005 e versioni
successive, il modello DataSet non è accessibile dalla finestra di dialogo Aggiungi nuovo elemento ed è
disponibile solo il modello predefinito "Schema XML". Tuttavia, con alcune piccole modifiche al codice
(descritte nei passaggi riportati di seguito), è possibile utilizzare il modello predefinito Schema XML per
ottenere gli stessi risultati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
540 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Iniziare creando una connessione dati e uno schema DataSet basato su di essa. Quindi, creare una classe di
supporto con una proprietà che restituisca un'istanza compilata del DataSet. Infine, scrivere il codice di
collegamento del report Crystal al DataSet.

Nel codice di collegamento del report Crystal, inserire le istruzioni per effettuare le seguenti operazioni:

● Creare un'istanza del report.


● Impostarne la proprietà SetDataSource sulla proprietà DataSet compilata della classe di supporto.
● Collegare il report Crystal compilato al controllo CrystalReportViewer.

Infine, se si sta creando un sito Web, inserire l'istanza DataSet compilata nell'oggetto Cache ASP.NET per
migliorare le prestazione e la scalabilità.

Si consiglia di tenere distinti il processo di configurazione del DataSet e quello di collegamento del report Crystal,
per garantire chiarezza nel codice quando si collega il report e consentire di riutilizzare il DataSet nel sito Web o
nel progetto Windows.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_Data_DataSets


● Progetto Windows C#: CS_Win_Data_DataSets
● Sito Web in Visual Basic: VB_Web_Data_DataSets
● Progetto Visual Basic Windows: VB_Win_Data_DataSets

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Informazioni correlate

Directory dei report di esempio [pagina 14]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 541
1.5.4.1.1 Configurazione di una connessione al database di
esempio in Esplora server

Contesto

In questa esercitazione verrà utilizzato un approccio GUI per generare lo schema DataSet: nella finestra principale
di Visual Studio, si trascinerà una tabella di database da Esplora server a una finestra DataSet.

Il primo passaggio consiste nel configurare in Esplora server una connessione al database di esempio fornito con
report di esempio SAP Crystal Reports.

Procedura

1. Dal menu Visualizza, scegliere Esplora server.


2. In Esplora server, fare clic con il pulsante destro del mouse su Connessioni dati e selezionare Aggiungi
connessione....

I passaggi successivi variano a seconda che si stia aggiungendo la connessione in Visual Studio .NET 2003 o
oppure in una versione successiva di Visual Studio.
3. In Visual Studio, effettuare le seguenti operazioni:
a) Nella casella combinata Provider di dati della finestra di dialogo Modifica origine dati, selezionare Provider
di dati .NET Framework per OLE DB.
b) Nell'elenco Origine dati, selezionare File di database di Microsoft Access e fare clic su OK.

Nota
la prima volta che si aggiunge una connessione in Visual Studio 2005, viene visualizzata la finestra Modifica
origine dati. Se viene visualizzata la finestra di connessione Aggiungi connessione, scegliere Modifica...

4. Nel campo Nome file di database immettere il percorso del database Xtreme.
5. Lasciare vuoti i campi Nome utente e Password, quindi fare clic su Test connessione.
6. Se la verifica della connessione ha esito negativo, ricontrollare il percorso del database di esempio Xtreme e
verificare che i campi Nome utente e Password siano vuoti.
7. Fare clic su OK per chiudere la finestra di dialogo Verifica connessione e quindi fare nuovamente clic su OK per
chiudere la finestra di dialogo Aggiungi connessione.
8. In Esplora server, espandere il nodo Access e quindi il nodo Tabelle.
9. Verificare che la tabella Clienti sia visibile in Esplora server.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
542 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.4.1.2 Creazione di uno schema DataSet

Prerequisiti

Questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice richiesta
per questa procedura; non è possibile completare la procedura senza questa configurazione.

Contesto

A questo punto è possibile creare un nuovo progetto Windows o sito Web a cui aggiungere uno schema DataSet
ADO.NET basato su una tabella del database Access.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nell'elenco Modelli della finestra di dialogo Aggiungi nuovo elemento, effettuare le seguenti operazioni:

○ In un progetto Windows, selezionare DataSet.


○ In un sito Web, selezionare Schema XML.
3. Nel campo Nome, inserire CustomerDataSetSchema.xsd e fare clic su Apri.
4. Da Esplora server, trascinare la tabella Clienti (situata sotto il nodo ACCESS>Tabelle>Clienti) nella finestra
CustomerDataSetSchema.xsd.
5. Dal menu Genera, scegliere Genera soluzione.

Nota
Per poter essere normalmente utilizzabile, il file CustomerDataSetSchema.xsd deve risiedere nella
directory App_Code. Se nel progetto non è presente una directory App_Code, fare clic con il pulsante
destro del mouse sul nome del progetto in grassetto, quindi scegliere Nuova cartella. Nominare la nuova
cartella App_Code.

6. Dal menu File, scegliere Salva tutto.

1.5.4.1.3 Scrittura di una classe di supporto per compilare il


DataSet

Lo schema DataSet creato per la tabella Cliente è una struttura di dati. In fase di esecuzione, è necessario il codice
per compilare la struttura DataSet con dati provenienti dal database. In questa sezione viene descritto come
creare una classe di supporto per compilare il DataSet con i dati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 543
1.5.4.1.3.1 Per creare una classe di supporto per compilare il
DataSet con i dati

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nell'elenco Modelli Visual Studio installati della finestra di dialogo Aggiungi nuovo elemento, selezionare
Classe.
3. Nel campo Nome, inserire "DataSetConfiguration", quindi fare clic su Aggiungi.

Nota
se viene visualizzata una finestra di dialogo in cui si richiede se salvare la classe in una directory
denominata "Codice", fare clic su Sì.

4. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports"[Visual Basic]
o "using"[C#] per gli spazi dei nomi System.Data e System.Data.OleDb.

Imports System.Data
Imports System.Data.OleDb

using System.Data;
using System.Data.OleDb;

5. All'inizio della classe, creare una costante denominata CONNECTION_STRING per contenere la stringa di
connessione al database di esempio Xtreme.

Private Const CONNECTION_STRING As String ="Provider=Microsoft.Jet.OLEDB.


4.0;Data Source=C:\Programmi\Microsoft Visual Studio 8\Crystal Reports\Samples\it
\Database\xtreme.mdb"

private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data


Source=C:\Programmi\Microsoft Visual Studio 8\Crystal Reports\Samples\it\Database
\xtreme.mdb";

6. Sotto la prima costante, creare una seconda costante denominata QUERY_STRING per contenere la stringa di
query del database.

Nota
questa semplice stringa di query seleziona tutte le colonne, ma nessun criterio. Per il database di esempio
Xtreme, la stringa restituirà solo una piccola quantità di dati. Tuttavia, nella maggior parte dei casi si
consiglia di limitare la query includendo una clausola WHERE e selezionando un numero limitato di colonne.

Private Const QUERY_STRING As String = "SELECT * FROM CUSTOMER"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
544 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
private const string QUERY_STRING = "SELECT * FROM CUSTOMER";

7. Sotto la seconda costante, creare una terza costante denominata DATATABLE_NAME per il nome
dell'oggetto DataTable da compilare nel DataSet.

Nel passaggio seguente viene descritto come creare una costante DIRECTORY_FILE_PATH. Questa costante
è richiesta solo se si sta creando un sito Web in Visual Studio 2005. In caso contrario, saltare questo
passaggio.

Private Const DATATABLE_NAME As String = "Customer"

private const string DATATABLE_NAME = "Customer";

8. Sotto la terza costante, crearne una quarta denominata DIRECTORY_FILE_PATH per fare riferimento alla
posizione del percorso della directory del file xsd.

Nota
nel codice seguente è specificato un percorso per un sito Web.

Private Const DIRECTORY_FILE_PATH As String = "C:\WebSites\VB_Web_Data_DataSets\


\"

private const string DIRECTORY_FILE_PATH = @"C:\WebSites\CS_Web_Data_DataSets\\";

9. Modificare il file app.config o web.config nella soluzione per includere il seguente codice XML nel livello
superiore dei tag di configurazione.
Questa operazione è necessaria per risolvere il problema dell'utilizzo di un DataSet ADO.NET come origine
report in .NET Framework 4.0. Per ulteriori informazioni, vedere Problemi di migrazione [pagina 8].

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

1.5.4.1.3.2 Per creare una proprietà che compili il DataSet

Procedura

1. Creare una proprietà di sola lettura denominata CustomerDataSet che restituisca un'istanza DataSet.
Fornire al metodo un modificatore "Shared"[Visual Basic] o "static"[C#], in modo che la classe e la
proprietà possano essere chiamate direttamente senza la necessità di creare istanze.

Public Shared ReadOnly Property CustomerDataSet() As DataSet


Get

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 545
End Get
End Property

public static DataSet CustomerDataSet


{
get
{

}
}

2. Sono disponibili due opzioni: una da utilizzare con la classe DataSet con tipizzazione forte (disponibile per i
progetti Windows) e una da utilizzare con la classe DataSet generica (disponibile per i siti Web).

○ Per i progetti che utilizzano la classe DataSet tipizzata in modo sicuro, all'interno della clausola get della
proprietà CustomerDataSet, dichiarare e creare un'istanza della classe CustomerDataSetSchema (la
classe DataSet con tipizzazione forte generata dallo schema DataSet nella sezione precedente).

Dim myDataSet As CustomerDataSetSchema = New


CustomerDataSetSchema()

CustomerDataSetSchema dataSet = new CustomerDataSetSchema();

○ Per i progetti che utilizzano la classe DataSet generica nei siti Web Visual Studio, nella clausola get della
proprietà CustomerDataSet, dichiarare e creare un'istanza di una classe DataSet, quindi applicare lo
schema XML all'istanza DataSet. In altre parole, passare il percorso del file della directory
CustomerDataSetSchema.xsd come parametro stringa al metodo ReadXmlSchema() dell'istanza
DataSet.

Dim myDataSet As DataSet = New DataSet()


myDataSet.ReadXmlSchema(DIRECTORY_FILE_PATH & "XMLSchema.xsd")

DataSet dataSet = new DataSet();


dataSet.ReadXmlSchema(DIRECTORY_FILE_PATH + "XMLSchema.xsd");

3. Dichiarare e creare un'istanza della classe OleDbConnection e passarvi la costante CONNECTION_STRING


come parametro di metodo.

Dim myOleDbConnection As OleDbConnection = New OleDbConnection(CONNECTION_STRING)

OleDbConnection oleDbConnection = new OleDbConnection(CONNECTION_STRING);

4. Dichiarare e creare un'istanza della classe OleDbDataAdapter e passarvi la costante QUERY_STRING e


l'istanza OleDbConnection come parametri di metodo.

Dim myOleDbDataAdapter As OleDbDataAdapter = New OleDbDataAdapter(QUERY_STRING,


myOleDbConnection)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
546 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(QUERY_STRING,
oleDbConnection);

5. Chiamare il metodo Fill() dell'istanza OleDbDataAdapter e passargli l'istanza CustomerDataSetSchema e


la costante DATATABLE_NAME.

Nota
Il metodo Fill() compila l'oggetto DataTable specificato, all'interno dell'istanza DataSet, con i dati
recuperati dal database.

myOleDbDataAdapter.Fill(myDataSet, DATATABLE_NAME)

oleDbDataAdapter.Fill(dataSet, DATATABLE_NAME);

6. Per completare la proprietà, restituire l'istanza DataSet.

Return myDataSet

return dataSet;

Risultati

La proprietà CustomerDataSet viene creata e può essere chiamata da qualsiasi punto del progetto.

1.5.4.1.4 Creazione di un report connesso allo schema


DataSet

Contesto

Nei passaggi precedenti è stato creato un metodo che compila lo schema DataSet con dati recuperati dal
database. In questa sezione viene descritto come creare un report Crystal che basa la sua connettività dati sullo
schema CustomerDataSetSchema.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 547
2. Nell'elenco Modelli Visual Studio installati della finestra di dialogo Aggiungi nuovo elemento, selezionare
Report Crystal.
3. Nel campo Nome, inserire Customer.rpt e fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Dati del progetto.
7. Espandere il nodo DataSet ADO.NET.
8. Sono disponibili due opzioni: una per l'utilizzo con la classe DataSet tipizzata in modo sicuro (disponibile con
progetti Windows) e una per l'utilizzo con la classe DataSet generica (disponibile per i siti Web).

○ Per i progetti Windows che utilizzano la classe DataSet tipizzata in modo sicuro, espandere il nodo
CustomerDataSetSchema. Espandere il nodo Tabelle, se presente.
○ Per i siti Web che utilizzano la classe DataSet generica, espandere il nodo DataSetConfiguration.
Nella finestra di dialogo ADO.NET (XML), selezionare Utilizza insieme di dati dalla classe. Nella finestra di
dialogo Nomi insiemi di dati selezionare la proprietà CustomerDataSet e fare clic su Fine.
9. Selezionare il nodo della tabella Clienti.
10. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
11. Espandere la tabella Clienti, quindi tenendo premuto il tasto Ctrl fare clic su Nome cliente, Titolo contatto,
Indirizzo1, Cognome contatto e Città.
12. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
13. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.

Viene creato il report Customer, con connettività dei dati alla proprietà CustomerDataSetSchema (oppure,
in un sito Web Visual Studio 2005, alla proprietà CustomerDataSet della classe DataSetConfiguration.

1.5.4.1.5 Collegamento del report e impostazione di


DataSource nel DataSet compilato

In questa sezione viene descritto come creare un'istanza del report creato, compilare il DataSet del report e
visualizzare il report nel controllo CrystalReportViewer. Viene eseguita la compilazione del report mediante
l'assegnazione della proprietà SetDataSource al DataSet compilato, restituito dalla proprietà
CustomerDataSet della classe DataSetConfiguration. Infine, il report compilato viene collegato al controllo
CrystalReportViewer.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
548 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.4.1.5.1 Per creare e collegare un'istanza di un report
incorporato al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports"[Visual Basic]
o "using"[C#] per lo spazio dei nomi System.Data, se non è già presente.

Imports System.Data

using System.Data;

4. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report Customer, utilizzando il
nome di variabile customerReport.customerReport. Impostare il modificatore di accesso su private.

Private customerReport As Customer

private Customer customerReport;

5. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

customerReport = New Customer()

customerReport = new Customer();

6. Nella riga successiva sotto la creazione dell'istanza del report, dichiarare un DataSet.

Questo passaggio e quello successivo separano la dichiarazione della variabile dall'assegnazione della stessa.
Ogni riga di codice viene tenuta separata perché, in un'appendice di questa esercitazione relativa a un sito
Web, l'assegnazione della variabile verrà riprogettata in un blocco di codice che memorizza il DataSet
nell'oggetto Cache ASP.NET.

Dim myDataSet As DataSet

DataSet dataSet;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 549
7. Assegnare l'istanza DataSet alla proprietà DataSetConfiguration.CustomerDataSet.

myDataSet = DataSetConfiguration.CustomerDataSet

dataSet = DataSetConfiguration.CustomerDataSet;

8. Chiamare il metodo SetDataSource() dell'istanza CustomerReport e passargli l'istanza DataSet.

customerReport.SetDataSource(myDataSet)

customerReport.SetDataSource(dataSet);

9. Collegare la proprietà ReportSource del controllo CrystalReportViewer all’istanza CustomerReport.

myCrystalReportViewer.ReportSource = customerReport

crystalReportViewer.ReportSource = customerReport;

1.5.4.1.5.2 Per creare e collegare un'istanza di un report non


incorporato al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile customerReport. Impostare il modificatore di accesso su private.

Nota
La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il
quale è stata aggiunta una dichiarazione "Imports"[Visual Basic] o "using"[C#] in Impostazione di
un progetto [pagina 14]. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio dei
nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.

Private customerReport As ReportDocument

private ReportDocument customerReport;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
550 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
4. Nel metodo ConfigureCrystalReports() (aggiunto durante una delle procedure riportate in Impostazione
di un progetto [pagina 14]), creare un'istanza della classe ReportDocument.

customerReport = New ReportDocument()

customerReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("Customer.rpt")

string reportPath = Server.MapPath("Customer.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"Customer.rpt"

string reportPath = Application.StartupPath + "\\" +


"Customer.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

customerReport.Load(reportPath)

customerReport.Load(reportPath);

7. Dichiarare un DataSet e assegnargli la proprietà DataSetConfiguration.CustomerDataSet property.

Dim myDataSet As DataSet = DataSetConfiguration.CustomerDataSet

DataSet dataSet = DataSetConfiguration.CustomerDataSet;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 551
8. Chiamare il metodo SetDataSource() dell'istanza customerReport di ReportDocument e passargli l'istanza
DataSet.

customerReport.SetDataSource(myDataSet)

customerReport.SetDataSource(dataSet);

9. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo
CrystalReportViewer all'istanza ReportDocument.

myCrystalReportViewer.ReportSource = customerReport

crystalReportViewer.ReportSource = customerReport;

1.5.4.1.5.3 Per verificare il caricamento del report Customer


e del suo DataSet compilato

Contesto

A questo punto è possibile creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.


5. Il report Customer visualizza i dati compilati inseriti nel DataSet.
6. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
552 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

Se si crea un progetto Windows, l'esercitazione è terminata.

Se si sta creando un sito Web, passare a Memorizzazione in cache del DataSet in un sito Web [pagina 553].

1.5.4.1.6 Memorizzazione in cache del DataSet in un sito


Web

Contesto

Se si sta creando un sito Web, è possibile ottenere ulteriore scalabilità e prestazioni posizionando l'istanza
DataSet compilata nell'oggetto Cache ASP.NET. Questo impedisce chiamate ridondanti (e potenzialmente lente)
al database per la compilazione del DataSet.

Nota
Se il DataSet contiene valori standard per tutti gli utenti, utilizzare l'oggetto Cache. Tuttavia, se il DataSet
contiene valori univoci per ciascun utente (basati su un criterio specifico dell'utente nella clausola WHERE della
query SQL, come l'ID utente), utilizzare l'oggetto Session.

Procedura

1. Aprire il Web Form.


2. Dal menu Visualizza, scegliere Codice.
3. Individuare la riga di codice in cui l'istanza DataSet è assegnata alla proprietà
DataSetConfiguration.CustomerDataSet property (riportata di seguito).

myDataSet = DataSetConfiguration.CustomerDataSet

dataSet = DataSetConfiguration.CustomerDataSet;

4. Sostituire questa riga di codice con un blocco condizionale completo che ricerchi un valore Cache
denominato "customerDataSet".

Inserire il blocco condizionale e codificare esattamente come indicato di seguito.

If Cache("customerDataSet") Is Nothing Then


myDataSet = DataSetConfiguration.CustomerDataSet
Cache("customerDataSet") = myDataSet
Else
myDataSet = CType(Cache("customerDataSet"), DataSet)
End If

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 553
if (Cache["customerDataSet"] == null)
{
dataSet = DataSetConfiguration.CustomerDataSet;
Cache["customerDataSet"] = dataSet;
}
else
{
dataSet = (DataSet)Cache["customerDataSet"];
}

5. Per verificare la memorizzazione del DataSet nella cache, selezionare Avvia dal menu Debug.

Il report Customer visualizza i dati compilati inseriti nel DataSet.


6. Fare clic sul pulsante Aggiorna del browser.

Il report Customer viene visualizzato rapidamente, poiché il DataSet viene ora recuperato dall'oggetto Cache
ASP.NET.
7. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Informazioni correlate

Memorizzazione nella cache di DataSet [pagina 68]

1.5.4.2 Esercitazione: Connessione a IdataReader

In questa esercitazione sulla connettività dei dati viene descritto come collegarsi a un'istanza IDataReader.

Introduzione

Molti progetti .NET utilizzano DataReader anziché DataSet per recuperare i dati. Ad esempio, un modo tipico per
collegare un controllo (ad esempio GridView) ai dati consiste nel creare un metodo che recupera i dati tramite un
DataReader e quindi restituisce i dati dal metodo tramite un'interfaccia IDataReader.

In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio il componente incorporato Crystal
Report Designer può accedere a IDataReader, purché siano rispettate alcune condizioni:

● I dati devono essere restituiti da un metodo, tramite l'interfacciaIDataReader.


● Il provider dei dati utilizzato nel metodo deve essere OleDb .NET.

Nota
le classi per questo provider dei dati si trovano nello spazio dei nomi System.Data.OleDb.

● Il metodo deve essere condiviso [Visual Basic] oppure statico [C#].


● La classe che contiene il metodo deve far parte di un progetto di libreria di classi ed essere compilato in
un'assembly.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
554 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
In questa esercitazione viene descritto come connettere un report Crystal a un file di assembly DLL e come
accedere a una classe e a un metodo statico all'interno dell'assembly che restituisce IDataReader.

Iniziare creando una libreria di classi, aggiungere una classe e un metodo statico che restituisca IdataReader,
quindi compilare la libreria di classi in un'assembly.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_Data_IDataReader


● Progetto Windows C#: CS_Win_Data_IDataReader
● Sito Web in Visual Basic: VB_Web_Data_IDataReader
● Progetto Visual Basic Windows: VB_Win_Data_IDataReader

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.4.2.1 Creazione di una libreria di classi per DataReader

Per questa esercitazione sono necessarie alcune operazioni di configurazione.

1.5.4.2.1.1 Prerequisiti di configurazione del database

Procedura

1. Configurazione di SQL Server:

○ Se è stato installato SQL Server (o la versione OEM, MSDE), è necessario configurarlo in modo che
richieda l'Autenticazione SQL Server.
○ Se SQL Server (o la versione OEM, MSDE) non è stato installato, è necessario installare MSDE con
l'Autenticazione SQL Server impostata su "True".
2. È necessario installare il database Northwind fornito con SQL Server e verificare che richieda l'Autenticazione
SQL Server.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 555
Nota
Questa esercitazione utilizza il database Northwind con SQL Server, ma è possibile utilizzare qualsiasi
database conforme OleDb.

3. È necessario creare un account con accesso limitato da utilizzare nel sito Web.

1.5.4.2.1.2 Per creare una libreria di classi contenente un


metodo statico che restituisce IDataReader

Contesto

Dopo aver configurato SQL Server e il database Northwind, è possibile creare una libreria di classi che restituisce i
valori provenienti dal database Northwind come un IDataReader.

Nota
La libreria di classi deve essere creata all'interno della directory del progetto superiore Data_IDataReader
per evitare problemi con i diritti di accesso al programma.

Procedura

1. Dal menu File, scegliere Nuovo e fare clic su Progetto.


2. Nella finestra di dialogo Nuovo progetto selezionare una cartella della lingua per C# o Visual Basic dall'elenco
Tipi progetto.
3. Nell'elenco Modelli fare clic su Libreria di classi.
4. Nella casella Nome, sostituire il nome di progetto predefinito con "VB_Lib_DataLayer" [Visual Basic]
o "CS_Lib_DataLayer" [C#] e fare clic su OK.
5. In Esplora soluzioni, fare clic con il pulsante destro del mouse sulla classe predefinita (Class1), quindi fare clic
su Elimina.
6. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Classe.
Viene visualizzata la finestra Aggiungi nuovo elemento.
7. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Classe.
8. Nel campo Nome, inserire DataCenter, quindi scegliere Aggiungi.
9. Se si sta utilizzando Visual Basic, digitare Option Strict On all'inizio della classe.
10. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports" [Visual
Basic] o "using" [C#] per gli spazi dei nomi System.Data e System.Data.OleDb (se non sono già stati
dichiarati).

Imports System.Data
Imports System.Data.OleDb

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
556 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
using System.Data;
using System.Data.OleDb;

11. A livello di classe, creare una costante di stringa privata per la stringa di connessioneOleDb.

Nota
per motivi di sicurezza, è importante utilizzare un account di database con autorizzazioni di accesso
limitate.

Nel codice scritto, sostituire il nome del server di esempio DBServer01 e la password di esempio 1234
mostrata di seguito, con il nome del server e la password relativi al proprio database.

Private Const OLEDB_CONNECTION_STRING As String =


"provider=sqloledb;Data Source=DBSERVER01;Initial
Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234"

private const string OLEDB_CONNECTION_STRING =


"provider=sqloledb;Data Source=DBSERVER01;Initial
Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234";

12. Creare una seconda constante di stringa privata per la stringa di query del database.

Private Const CUSTOMER_TABLE_QUERY As String = "SELECT CustomerID,


CompanyName, ContactName, Address, City FROM Customers"

private const string CUSTOMER_TABLE_QUERY = "SELECT CustomerID,


CompanyName, ContactName, Address, City FROM Customers";

13. Creare un metodo pubblico "Shared" [Visual Basic] o "static" [C#] denominato
GetCustomersUsingOleDb() che restituisca IDataReader.

Public Shared Function GetCustomersUsingOleDb() As IDataReader


End Function

public static IDataReader GetCustomersUsingOleDb()


{
}

14. All'interno di questo metodo, dichiarare e creare un'istanza di OleDbConnection e passare la costante
OLEDB_CONNECTION_STRING.

Dim myOleDbConnection As OleDbConnection = New


OleDbConnection(OLEDB_CONNECTION_STRING)

OleDbConnection oleDbConnection = new


OleDbConnection(OLEDB_CONNECTION_STRING);

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 557
15. Chiamare il metodo Open() dall'istanza OleDbConnection per aprire la connessione al database.

myOleDbConnection.Open()

oleDbConnection.Open();

16. Dichiarare e creare un'istanza di OleDbCommand e passare la costante CUSTOMER_TABLE_QUERY e


l'istanza OleDbConnection.

Dim myOleDbCommand As OleDbCommand = New


OleDbCommand(CUSTOMER_TABLE_QUERY, myOleDbConnection)

OleDbCommand oleDbCommand = new OleDbCommand(CUSTOMER_TABLE_QUERY,


oleDbConnection);

17. Chiamare il metodo ExecuteReader() dell'istanza OleDbCommand e passarla a un'istanza IDataReader.

Dim myIDataReader As IDataReader = myOleDbCommand.ExecuteReader()

IDataReader iDataReader = oleDbCommand.ExecuteReader();

18. Restituire l'istanza IDataReader dal metodo.

Return myIDataReader

return iDataReader;

19. Dal menu Genera, scegliere Genera soluzione.


20. Dal menu File, fare clic su Chiudi soluzione.

1.5.4.2.2 Connessione di un report al un metodo statico


IDataReader

In questa sezione viene creato un progetto client che accede a IDataReader dall'assembly compilato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
558 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.4.2.2.1 Per connettere un report al metodo statico
IDataReader

Prerequisiti

Questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice richiesta
per questa procedura; non è possibile completare la procedura senza questa configurazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Report Crystal.
3. Nel campo Nome, inserire "CustomersViaIDR.rpt", quindi fare clic su OK.
4. Nella finestra di dialogo Galleria Crystal Reports, fare clic su OK.
5. Nella finestra di dialogo Procedura guidata per la creazione di report standard, espandere il nodo Crea nuova
connessione.
6. Espandere il nodo ADO.NET.
7. Nella finestra di dialogo ADO.NET, fare clic su ... alla fine del campo di testo Percorso file.
8. Nella finestra di dialogo Apri, impostare l'elenco Tipo file su Tutti i file.
9. Individuare l'assembly DLL dal seguente percorso della directory di file.

Nota
L'assembly DLL è stato creato nella procedura precedente, Creazione di una libreria di classi per
DataReader [pagina 555].

In Visual Basic, la DLL si trova nella directory bin. In C#, la DLL si trova nella subdirectory bin denominata
Debug. Il percorso specificato cambia a seconda della versione di Visual Studio utilizzata.

\Documenti\Visual Studio\Projects\VB_Lib_IDataReader\VB_Lib_IDataReader\bin
\VB_Lib_DataLayer.dll

\Documenti\Visual Studio\Projects\CS_Lib_DataReader\CS_Lib_IDataReader\bin\Debug
\CS_Lib_DataLayer.dll

10. Selezionare la DLL, quindi fare clic su Apri.


11. Dall'elenco Nome di classe, selezionare la classe DataCenter, quindi fare clic su Fine.

Nell'area Origini dati disponibili, viene visualizzato il metodo GetCustomersUsingOleDB().


12. Selezionare GetCustomersUsingOleDb, fare clic sul pulsante > per spostare il metodo nel riquadro Tabelle
selezionate, quindi scegliere Avanti.

Se la libreria di classi IDataReader non è stata configurata correttamente, viene generata un'eccezione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 559
1.5.4.2.3 Gestione delle eccezioni

Contesto

In questa sezione viene descritto come utilizzare le eccezioni che possono essere generate dal metodo
IDataReader della libreria di classi.

Procedura

1. Chiudere il sito Web o il progetto Windows, quindi riaprire il progetto della libreria di classi che contiene il
metodo statico IDataReader.

Nota
Il progetto della libreria di classi creato in Creazione di una libreria di classi per DataReader [pagina 555] si
chiama "VB_Lib_DataLayer" [Visual Basic] o "CS_Lib_DataLayer" [C#].

2. Verificare che la costante di stringa della connessione non contenga errori nel nome del server di database o
nella password.
3. Verificare che la costante di stringa di query non contenga errori nella query.
4. Dal menu Genera, scegliere Genera soluzione.
5. Dal menu File, fare clic su Chiudi soluzione.
6. Riaprire il sito Web o il progetto Windows.
7. Eliminare il file del report Crystal creato e creare un nuovo report Crystal.
8. Ripetere i passaggi della sezione precedente, Connessione di un report al un metodo statico IDataReader
[pagina 558].
9. Infine, modificare il file app.config o web.config nella soluzione per includere il seguente codice XML nel livello
superiore dei tag di configurazione.

Nota
Questa operazione è necessaria per risolvere il problema dell'utilizzo di un DataSet ADO.NET come origine
report in .NET Framework 4.0. Per ulteriori informazioni, vedere Problemi di migrazione [pagina 8].

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

Risultati

Il metodo GetCustomersUsingOleDb() è stato trasferito correttamente al riquadro Tabelle selezionate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
560 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Se si riceve un'altra eccezione, ripetere il processo di debug.

Per continuare con il debugging, creare un nuovo Web Form o Windows Form nel sito Web o nel progetto
Windows e aggiungere un controllo GridView. Nella classe di codice sottostante impostare la proprietà
DataSource del controllo GridView sul metodo statico IDataReader. Quindi compilare e visualizzare il Web
Form o il Windows Form per determinare se la visualizzazione è corretta.

1.5.4.2.4 Per progettare il report in base ai valori forniti dal


metodo statico IDataReader

Contesto

A questo punto è possibile progettare il report in base ai valori forniti dal metodo statico IDataReader.

Nota
Questa procedura presume che sia stato possibile accedere correttamente al metodo statico IDataReader di
GetCustomersUsingOleDb e che quindi il metodo sia stato trasferito nel riquadro Tabelle selezionate della
finestra di dialogo Procedura guidata per la creazione di report standard.

Procedura

1. Nel riquadro Campi disponibili, espandere GetCustomersUsingOleDb.


2. Premere CTRL e fare clic su CompanyName, ContactName e City.
3. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
4. Nel riquadro Campi disponibili, in Campi report, selezionare GetCustomerUsingOleDb.City, fare clic sul
simbolo > per spostare il campo nel riquadro Raggruppa in base a, quindi scegliere Fine.

Il report CustomersViaIDR viene creato e caricato nella finestra principale di Visual Studio.
5. Fare clic su Anteprima report principale per visualizzare l'anteprima del report in base a una chiamata al
metodo statico IDataReader.

Risultati

A questo punto è possibile collegare il report al controllo CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 561
1.5.4.2.5 Collegamento del report

In Impostazione di un progetto [pagina 14]è stato inserito un controllo CrystalReportViewer nel Web Form o
nel Windows Form. Nel passaggio precedente è stato aggiunto un report CustomersViaIDR al progetto.

In questa sezione viene descritto come creare e collegare un'istanza del report CustomersByCity al controllo
CrystalReportViewer.

Esistono due metodi per creare e collegare un'istanza del report:

● Come report incorporato.


● Come report non incorporato.

Scegliere una delle seguenti procedure.

● Se si utilizzano report incorporati, seguire la prima procedura per creare un'istanza del report
CustomersViaIDR come report incorporato.
● Se si utilizzano report non incorporati, seguire la seconda procedura per creare un'istanza del report
CustomersViaIDR come report non incorporato.

1.5.4.2.5.1 Per creare e collegare un'istanza del report


CustomersViaIDR incorporato al controllo CrystalReportViewer

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report CustomersViaIDR,
utilizzando il nome di variabile customersViaIdrReport. Impostare il modificatore di accesso su private.

Private customersViaIdrReport As CustomersViaIDR

private CustomersViaIDR customersViaIdrReport;

4. Nel metodo ConfigureCrystalReports(), creare un’istanza della classe wrapper del report.

Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14].

customersViaIdrReport = New CustomersViaIDR()

customersViaIdrReport = new CustomersViaIDR();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
562 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
5. Nella riga successiva, sotto la creazione dell’istanza del report, collegare la proprietà ReportSource del
controllo CrystalReportViewer alla classe del report di cui è stata creata l’istanza (nome variabile:
customersViaIdrReport).

myCrystalReportViewer.ReportSource = customersViaIdrReport

crystalReportViewer.ReportSource = customersViaIdrReport;

1.5.4.2.5.2 Per creare e collegare un'istanza del report


CustomersViaIDR non incorporato al controllo
CrystalReportViewer

Contesto

A questo punto è possibile creare ed eseguire il progetto. Passare alla sezione successiva.

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile customersViaIdrReport. Impostare il modificatore di accesso su private.

Nota
La classe ReportDocument è membro dello spazio dei nomi
CrystalDecisions.CrystalReports.Engine per il quale è stata aggiunta una dichiarazione
"Imports" [Visual Basic] o "using" [C#] in Impostazione di un progetto [pagina 14]. Quando si
crea un'istanza di ReportDocument e si carica un report nello spazio dei nomi, si ottiene l'accesso al
report tramite l'SDK, senza incorporare il report.

Private customersViaIdrReport As ReportDocument

private ReportDocument customersViaIdrReport;

4. All'interno del metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14]),


creare un'istanza della classe ReportDocument.

customersViaIdrReport = New ReportDocument()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 563
customersViaIdrReport = new ReportDocument();

5. Dichiarare una variabile di stringa, denominarla reportPath e assegnarle un percorso della fase di esecuzione
del report locale. Questo percorso viene determinato in modo diverso a seconda che si tratti di siti Web o di
progetti Windows:

○ In un sito Web, trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale
al percorso della directory di file del disco rigido.

Dim reportPath As String = Server.MapPath("CustomersViaIDR.rpt")

string reportPath = Server.MapPath("CustomersViaIDR.rpt");

○ In un progetto Windows, concatenare la proprietà Application.StartupPath con una barra rovesciata


e il nome del file di report locale. In questo modo viene eseguita la mappatura del report nella stessa
directory dell'eseguibile Windows.

Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.

Dim reportPath As String = Application.StartupPath & "\" &


"CustomersViaIDR.rpt"

string reportPath = Application.StartupPath + "\\"


+"CustomersViaIDR.rpt";

6. Chiamare il metodo Load() dell'istanza ReportDocument e passargli la variabile di stringa reportPath.

customersViaIdrReport.Load(reportPath)

customersViaIdrReport.Load(reportPath);

7. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo
CrystalReportViewer all'istanza ReportDocument.

myCrystalReportViewer.ReportSource = customersViaIdrReport

crystalReportViewer.ReportSource = customersViaIdrReport;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
564 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.4.2.5.3 Per verificare il caricamento del report
CustomersViaIDR

Contesto

A prescindere dal fatto che si sia scelto di creare un'istanza di una classe di report incorporato o di una classe di
report non incorporato (), il nome di variabile utilizzato è sempre lo stesso: customersViaIdrReport. Questo
consente di utilizzare le stesse righe di codice nelle procedure che seguono.

A questo punto è possibile creare ed eseguire il progetto.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Se si utilizza un report non incorporato in un progetto Windows, individuare l'eseguibile Windows compilato
nella sottodirectory \bin\ [Visual Basic] o \bin\debug\ [C#] e copiarvi il report.

Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.

4. Dal menu Debug, scegliere Avvia.

Il report viene visualizzato e mostra i dati dal metodo statico IDataReader.


5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.5.4.3 Esercitazione: Connessione agli insiemi di oggetti

In questa esercitazione sulla connettività dei dati viene descritto come utilizzare un insieme di oggetti come
origine dati per un report Crystal.

Introduzione

SAP Crystal Reports consente di creare report da dati oggetto. I dati oggetto possono essere semplici, ad
esempio dati di stringa o intero, o complessi, come una classe o un insieme. In questa esercitazione viene creata
un'applicazione in cui i report vengono creati in base a un insieme di oggetti personalizzati. Ogni oggetto
rappresenta informazioni relative al mercato azionario. Quando si crea un report Crystal, la Procedura guidata
report accede alla classe Stock come a una tabella di database, ma anziché aggiungere le colonne della tabella
come campi da visualizzare vengono aggiunte le proprietà della classe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 565
Il report accede a un ArrayList che contiene più istanze di un oggetto Stock. Ciascuna istanza Stock ha proprietà
esclusive impostate su valori univoci. Le informazioni vengono aggiunte all'ArrayList a livello di codice in fase di
progettazione, quindi dinamicamente in fase di esecuzione.

L'istanza ArrayList restituita è un insieme di oggetti assegnato alla proprietà SetDataSource del report Crystal.
Quando il report viene visualizzato, per ciascun oggetto dell'insieme di oggetti viene inclusa nel report una riga
Dettaglio.

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_Data_ObjectCollection


● Sito Web in Visual Basic: VB_Web_Data_ObjectCollection

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.4.3.1 Creazione della classe Stock

Contesto

In questa sezione viene descritto come creare una classe Stock, che contiene tre campi privati esposti come
proprietà pubbliche: società, volume e prezzo. SAP Crystal Reports 2008 consente di creare report in base ai dati
della classe, ad esempio campi o oggetti, e persino di chiamare un oggetto in modo ricorsivo. L'attributo
CrystalComplexTypeExpansionLevels consente di controllare l'entità del drill down in una classe.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del sito Web in grassetto, quindi
selezionare Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento:
a) Nel campo Modelli Visual Studio installati, scegliere Classe.
b) Nel campo Nome, digitare “Stock" e fare clic su Aggiungi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
566 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
c) Nella finestra di dialogo che viene visualizzata, fare clic su Sì.

Nota
in Visual Studio 2005 e versioni successive, tutte le classi devono essere inserite nella cartella App_Code
se si prevede di usarle tutte. Quando si seleziona il pulsante Aggiungi, viene visualizzato un avviso per
chiedere se si desidera inserire la classe nella cartella App_Code.

3. La classe Stock deve essere impostata come pubblica per potervi accedere quando si crea il report. Verificare
che la classe creata sia pubblica. In caso contrario, aggiungere il modificatore pubblico alla firma della classe
per esporre la classe al componente incorporato SAP Crystal Report Designer.

Public Class Stock


End Class

public class Stock


{
public Stock()
{
}
}

4. Se si scrive in Visual Basic, aggiungere un costruttore predefinito.

Sub New()
End Sub

5. All'interno della classe, aggiungere tre campi privati.

Private _company As Company


Private _volume As Integer
Private _price As Double

private Company _company;


private double _price;
private int _volume;

6. Creare una nuova proprietà denominata Price.

Public Property Price() As Double


Get
Return _price
End Get
Set(ByVal value As Double)
_price = value
End Set
End Property

public double Price


{
get
{
return _price;
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 567
set
{
_price = value;
}
}

7. Creare una nuova proprietà denominata Volume.

Public Property Volume() As Integer


Get
Return _volume
End Get
Set(ByVal value As Integer)
_volume = value
End Set
End Property

public int Volume


{
get
{
return _volume;
}
set
{
_volume = value;
}
}

8. Creare una nuova proprietà denominata Company.


L'attributo CrystalComplexTypeExpansionLevels deve essere impostato su un valore superiore a 1 per
consentire il drill down sui dati della classe. Se l'attributo CrystalComplexTypeExpansionLevels non
viene impostato, SAP Crystal Reports non sarà in grado di accedere ai dati dei campi all'interno della classe
Company. In seguito verrà creata una classe Company contenente due campi String.

<CrystalComplexTypeExpansionLevels(3)> _
Public Property Company() As Company
Get
Return _company
End Get
Set(ByVal value As Company)
_company = value
End Set
End Property

[CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(3)]
public Company Company
{
get
{
return _company;
}
set
{
_company = value;
}
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
568 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
9. Infine, creare un nuovo costruttore che acquisisca le tre proprietà pubbliche come argomenti.

Public Sub New(ByVal company As Company, ByVal volume As Integer, ByVal price As
Double)
_company = company
_volume = volume
_price = price
End Sub

public Stock(Company company, int volume, double price)


{
_company = company;
_volume = volume;
_price = price;
}

10. Dopo la classe Stock creare una nuova classe Company che esponga due proprietà pubbliche, simbolo e
nome.

Public Class Company


Private _symbol As String
Private _name As String

Sub New(ByVal symbol As String, ByVal name As String)


_symbol = symbol
_name = name
End Sub

Public Property Symbol() As String


Get
Return _symbol
End Get
Set(ByVal value As String)
_symbol = value
End Set
End Property

Public Property Name() As String


Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property

public class Company {


private string _symbol;
private string _name;

public Company() {}

public Company(String symbol, String name)


{
_symbol = symbol;
_name = name;
}

public string Symbol


{
get { return _symbol; }

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 569
set { _symbol = value; }
}

public string Name


{
get { return _name; }
set { _name = value; }
}
}

11. Dal menu Genera, scegliere Genera sito Web.

Risultati

A questo punto è possibile accedere a questo oggetto dal componente incorporato SAP Crystal Report Designer.

1.5.4.3.2 Connessione di un report Crystal all'oggetto Stock

Contesto

In questa sezione viene descritto come creare un nuovo report Crystal nel componente incorporato SAP Crystal
Report Designer e come connettere il report all'oggetto Stock.

Procedura

1. Fare clic con il pulsante destro del mouse sul nome del progetto e scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Report Crystal.
3. Nel campo Nome, inserire "StockObjects.rpt" e fare clic su Aggiungi.
4. Nella finestra di dialogo Galleria Crystal Reports, fare clic su OK.
5. Nella finestra di dialogo Procedura guidata per la creazione di report standard, espandere Dati del progetto e il
nodo secondario Oggetti .NET.

Viene visualizzato l'elenco delle classi incluse nel progetto. Ogni classe è preceduto dallo spazio dei nomi del
progetto.
6. Espandere la classe Stock per visualizzare un nodo secondario selezionabile.
7. Fare clic sulla freccia destra per spostare il nodo secondario della classe Stock nel riquadro Tabelle
selezionate, quindi fare clic su Avanti.
8. Espandere Stock e fare clic su >> per spostare tutte le colonne nel riquadro Campi da visualizzare, quindi fare
clic su Avanti.
9. Selezionare Company.Symbol e fare clic sulla freccia destra per spostarlo nel riquadro Raggruppa in base a,
quindi fare clic su Fine.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
570 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.4.3.3 Per creare un'istanza del report StockObjects come
report non incorporato e collegarla al controllo
CrystalReportViewer

Contesto

In Impostazione di un progetto [pagina 14] è stato inserito un controllo CrystalReportViewer nel Web Form o nel
Windows Form. Nella procedura precedente, il report StockObjects è stato aggiunto al progetto. In questa sezione
viene descritto come collegare il report StockObjects a SAP Crystal Reports Viewer, come impostare l’origine dei
dati del report su un insieme di oggetti e come compilare l'insieme di oggetti a livello di codice.

Procedura

1. Aprire la classe di codice sottostante predefinita, Default.aspx.cs o Default.aspx.vb.


2. Sopra la firma della classe, all'inizio della classe, aggiungere una dichiarazione "Imports" [Visual
Basic] o "using" [C#] per lo spazio dei nomi System.Collections.

Nota
Questo riferimento consente di accedere alla classe ArrayList. ArrayList implementa ICollection.
In questo modo la classe ArrayList viene qualificata come uno dei diversi tipi di classe che possono
essere utilizzati per creare un insieme di oggetti riconosciuto da SAP Crystal Reports.

Imports System.Collections

using System.Collections;

3. Aggiungere una nuova dichiarazione a livello di classe ArrayList per la classe e chiamarla stockValues.

Private stockValues As ArrayList

private ArrayList stockValues;

4. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile stockObjectsReport. Impostare il modificatore di accesso su private.

Private stockObjectsReport As ReportDocument

private ReportDocument StockObjectsReport;

5. All'interno del metodo ConfigureCrystalReports(), creato in Impostazione di un progetto [pagina 14],


dichiarare una variabile di stringa, nominarla reportPath e assegnarle un percorso della fase di esecuzione

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 571
del report locale. Trasferire il nome del file di report locale come parametro stringa nel metodo
Server.MapPath(). In questo modo, in fase di esecuzione viene eseguita la mappatura del report locale al
percorso di file.

Dim reportPath As String = Server.MapPath("StockObjects.rpt")

string reportPath = Server.MapPath("StockObjects.rpt");

6. Aggiungere due interruzioni di riga e creare un'istanza della classe ReportDocument.

stockObjectsReport = New ReportDocument()

stockObjectsReport = new ReportDocument();

7. Nella riga successiva, chiamare il metodo Load() dell'istanza ReportDocument e trasferirlo alla variabile di
stringa reportPath.

Nota
La classe ReportDocument fa parte dello spazio dei nomi
CrystalDecisions.CrystalReports.Engine per il quale è stata aggiunta una dichiarazione
"Imports" [Visual Basic] o "using" [C#] in Impostazione di un progetto. Quando si crea
un’istanza di ReportDocument e si carica un report, si accede al report tramite l’SDK.

stockObjectsReport.Load(reportPath)

stockObjectsReport.Load(reportPath);

8. Quindi, impostare l'origine dati del report su stockValues ArrayList.

stockObjectsReport.SetDataSource(stockValues)

stockObjectsReport.SetDataSource(stockValues);

9. Infine, collegare la proprietà ReportSource di CrystalReportViewer all'istanza ReportDocument.

myCrystalReportViewer.ReportSource = stockObjectsReport

crystalReportViewer.ReportSource = stockObjectsReport;

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
572 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

A questo punto, il report StockObjects è collegato a SAP Crystal Report Viewer e nella pagina viene visualizzato il
report corretto. Tuttavia, poiché è collegato a un'origine dati vuota, il report non contiene informazioni. Nella
sezione successiva, viene descritto come compilare stockValues ArrayList a livello di codice con dati
campione.

1.5.4.3.4 Compilazione dell'insieme di oggetti a livello di


codice

Procedura

1. Nel Web Form, fare clic con il pulsante destro del mouse su Esplora soluzioni, quindi scegliere Visualizza
codice.
2. All'interno della classe aggiungere un nuovo metodo di supporto pubblico, senza valore restituito, denominato
PopulateStockValuesArrayList().

Public Sub PopulateStockValuesArrayList()

End Sub

public void PopulateStockValuesArrayList()


{
}

3. Nel metodo PopulateStockValuesArrayList(), prima del codice esistente, creare un blocco


condizionale if/else che controlli se esiste un oggetto Session denominato stockValues.

If (Session("stockValues") Is Nothing) Then

Else

End If

if(Session["stockValues"] == null)
{
}
else
{
}

4. All'interno del blocco If, creare una nuova istanza ArrayList().

stockValues = New ArrayList

stockValues = new ArrayList();

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 573
5. Creare tre oggetti Company, ciascuno con un simbolo e un nome.

Dim c1 As Company = New Company("AWRK", "Arthur, Wren, Roberts and King")


Dim c2 As Company = New Company("CTSO", "Control Systems and Operations")
Dim c3 As Company = New Company("LTWR", "Letter Works")

Company c1 = new Company("AWRK","Arthur, Wren, Roberts and King");


Company c2 = new Company("CTSO","Control Systems and Operations");
Company c3 = new Company("LTWR","Letter Works");

6. Quindi, usare il costruttore overload della classe Stock per creare e assegnare tre istanze della classe Stock.

Dim s1 As Stock = New Stock(c1, 1200, 28.47)


Dim s2 As Stock = New Stock(c2, 800, 128.69)
Dim s3 As Stock = New Stock(c3, 1800, 12.95)

Stock s1 = new Stock(c1,1200,28.47);


Stock s2 = new Stock(c2,800,128.69);
Stock s3 = new Stock(c3,1800,12.95);

7. Aggiungere le tre istanze a stockValues.

stockValues.Add(s1)
stockValues.Add(s2)
stockValues.Add(s3)

stockValues.Add(s1);
stockValues.Add(s2);
stockValues.Add(s3);

8. Aggiungere la versione aggiornata di stockValues Array List nella sessione.

Session("stockValues") = stockValues

Session["stockValues"]=stockValues;

9. All'interno del blocco Else, scrivere una riga per assegnare i valori correnti della sessione a stockValues
ArrayList.

stockValues = Ctype(Session("stockValues"), ArrayList)

stockValues = (ArrayList)Session["stockValues"];

10. Infine, chiamare PopulateStockValuesArrayList() dal metodo ConfigureCrystalReports().


Questa è generalmente la prima riga di codice eseguita nel metodo ConfigureCrystalReports().

PopulateStockValuesArrayList()

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
574 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
PopulateStockValuesArrayList();

1.5.4.3.5 Compilazione dinamica dell'insieme di oggetti

Nella sezione precedente, un insieme di oggetti è stato compilato a livello di codice. In questa sezione viene
descritto come aggiungere dinamicamente informazioni all'origine dati dal sito Web, che verranno utilizzare per
aggiornare automaticamente il report.

1.5.4.3.5.1 Per aggiungere controlli al Web Form

Procedura

1. Aprire il file Default.aspx in visualizzazione Progettazione.

Nota
Per aprire la pagina ASPX in visualizzazione Progettazione, aprire il file, quindi fare clic sul pulsante
Progettazione nella parte inferiore del form.

2. Fare clic sul controllo CrystalReportViewer per selezionarlo.


3. Premere il tasto freccia sinistra sulla tastiera per visualizzare un cursore lampeggiante, quindi premere Invio
più volte.
4. Dalla casella degli strumenti, trascinare un controllo TextBox nel Web Form.
5. Nel menu Proprietà, impostare ID su “symbol."
6. Dalla casella degli strumenti, trascinare un controllo TextBox nel Web Form.
7. Nel menu Proprietà impostare ID su "name".
8. Trascinare un secondo controllo TextBox sul Web Form e posizionarlo sotto il primo controllo TextBox.
9. Nel menu Proprietà, impostare ID su “price".
10. Trascinare un terzo controllo TextBox sul Web Form e posizionarlo sotto il secondo controllo TextBox.
11. Nel menu Proprietà, impostare ID su “volume".

Nota
A questo punto può essere utile aggiungere del testo vicino a ciascun controllo TextBox per permette di
individuare più facilmente a quali parametri corrispondono i controlli.

12. Dalla casella degli strumenti, trascinare un controllo Button nel Web Form e posizionarlo sotto ai tre controlli
TextBox.
13. Nel menu Proprietà:
a) Impostare l’ID del controllo Button su "addStockInformation."
b) Impostare la proprietà Text del controllo Button su "Aggiungi informazioni azioni".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 575
14. Infine, fare doppio clic sul pulsante “Aggiungi informazioni azioni”.

Fare doppio clic sul controllo Button per aprire la classe di codice sottostante e generare automaticamente il
gestore dell'evento addStockInformation_Click().

1.5.4.3.5.2 Per aggiungere informazioni all'insieme

Contesto

In questa sezione viene descritto come scrivere il codice per il gestore dell'evento
addStockInformation_Click() che consente di aggiungere le informazioni inserite nel Web Form all'insieme
di stockValues.

Procedura

1. All'interno del gestore dell'evento addStockInformation_Click(), creare un nuovo oggetto Stock e


creare la relativa istanza.

Dim temp As Stock = New Stock()

Stock temp = new Stock();

2. Nel metodo addStockInformation_Click() creare un blocco Try/Catch.

Le informazioni inserite nel Web Form sono di tipo stringa. Poiché due dei campi della classe Stock sono
numerici, è necessario scrivere codice per convertire i valori stringa del Web Form in valori numerici.
L’istruzione Try/Catch aiuta a proteggere l’applicazione Web da eventuali blocchi durante la conversione nel
caso in cui si verifichino errori di mancata corrispondenza.

Try

Catch ex As Exception

End Try

try
{
}
catch
{
}

3. All’interno del blocco Try, assegnare il valore dei campi del simbolo e del nome del Web Form alla proprietà
Company dell’oggetto Stock.

temp.Company = New Company(symbol.Text, name.Text)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
576 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
temp.Company = new Company(symbol.Text, name.Text);

4. Nella riga successiva, assegnare il valore del campo del prezzo del Web Form alla proprietà Price dell’oggetto
Stock. Convertire il valore del Web Form in Double prima di effettuare l’assegnazione.

temp.Price = CType(price.Text, Double)

temp.Price = Convert.ToDouble(price.Text);

5. Quindi, assegnare il valore del campo del volume del Web Form alla proprietà Volume dell’oggetto Stock.
Convertire il valore del Web Form in Double prima di effettuare l’assegnazione.

temp.Volume = CType(volume.Text, Integer)

temp.Volume = Convert.ToInt32(volume.Text);

6. Fuori dal blocco Try/Catch, aggiungere l'oggetto Stock a stockValuesArrayList.

stockValues.Add(temp)

stockValues.Add(temp);

7. Aggiornare il valore di stockValues attualmente contenuto in Session.

Session("stockValues") = stockValues

Session["stockValues"] = stockValues;

8. Infine, chiamare il metodo ConfigureCrystalReports() per collegare nuovamente il report all'insieme di


oggetti stockValues aggiornato.

ConfigureCrystalReports()

ConfigureCrystalReports();

9. Dal menu Genera, scegliere Genera soluzione.


10. Dal menu Debug, scegliere Avvia debug.

Se non si verificano errori di generazione, la pagina Default.aspx viene caricata nel browser con tre valori
predefiniti. Per impostare valori aggiuntivi, inserire i valori desiderati nei controlli TextBox, quindi fare clic sul
pulsante Aggiungi informazioni azioni. Il report verrà aggiornato dinamicamente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 577
Risultati

Quando si esegue il sito Web, il report viene caricato nella finestra del browser con i tre valori predefiniti aggiunti a
livello di codice in Compilazione dell'insieme di oggetti a livello di codice [pagina 573]. Sopra al report sono
presenti tre controlli TextBox e un controllo Button che permettono di aggiornare dinamicamente l'insieme di
oggetti e di visualizzare i risultati dell'aggiornamento nel report.

1.5.4.3.6 Appendice: Potenziamento del report

Gli insiemi di oggetti sono origini dati versatili per i report Crystal. All’interno di un insieme di oggetti è possibile
scrivere una classe personalizzata che compili un oggetto con i dati sia a livello di codice che dinamicamente. Le
raccolte di oggetti possono essere usate anche per estendere il numero di origini dati fornite con l'installazione
predefinita di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio e scrivere oggetti di
accesso ai dati personalizzati.

A questo punto si dispone di un sito Web completamente funzionale che visualizza un report Crystal basato su un
insieme di oggetti. Il sito visualizza informazioni inserite a livello di codice nell'insieme di oggetti nonché
informazioni aggiunte dinamicamente in fase di esecuzione.

In questa sezione viene descritto come aggiungere due grafici, un campo calcolato e informazioni di riepilogo.

1.5.4.3.6.1 Per aggiungere un grafico semplice al report

Procedura

1. In Esplora soluzioni, aprire StockObjects.rpt.


2. Nel menu Crystal Reports, selezionare Inserisci, quindi fare clic su Grafico.
3. Nella finestra di dialogo Esperto grafico, selezionare il grafico Torta.
4. Selezionare la scheda Dati in Campi report.
5. Selezionare Stock.Company-Symbol e fare clic sulla prima freccia a destra in alto per spostare il campo
Stock.Company-Symbol sul campo Su modifica di.
6. Selezionare Stock.Volume, quindi fare clic sull'ultima freccia a destra per spostare il campo Stock.Volume sul
campo Mostra valore/i.
7. Fare clic su OK.

Viene creata una nuova sezione di intestazione del report e viene aggiunto un oggetto grafico.
8. Dal menu Debug, scegliere Avvia debug.

Se non si verificano errori di compilazione, la pagina Default.aspx viene caricata nel browser.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
578 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.4.3.6.2 Per aggiungere un grafico con un campo Formula

Contesto

In questa sezione viene descritto come creare un grafico che contenga informazioni aggregate. Per effettuare
questa operazione è necessario creare una formula che calcoli il valore di un titolo specifico, quindi creare un
grafico a torta che visualizzi il valore proporzionale di tutti i titoli.

Procedura

1. Nel menu Crystal Reports, selezionare Report, quindi fare clic su Workshop formule.
2. Nella finestra di dialogo Workshop formule, selezionare Campi formula.
3. Fare clic sul pulsante Nuova per creare una nuova formula.
4. Nella finestra di dialogo Nome funzione personalizzata, inserire "worth".
5. Fare clic su Usa Editor.
6. Aggiungere codice per moltiplicare il valore del campo del prezzo per il valore del campo del volume.

{Stock.Volume}*{Stock.Price}

7. Fare clic su Salva e chiudi.


8. Nel menu Crystal Reports, selezionare Inserisci, quindi fare clic su Grafico.
9. Nella finestra di dialogo Esperto grafico, selezionare il grafico Torta.
10. Fare clic sulla scheda Dati.
11. Selezionare Stock.Company-Symbol e fare clic sulla prima freccia a destra in alto per spostare il campo
Stock.Company-Symbol sul campo Su modifica di.
12. Selezionare Worth, quindi fare clic sull'ultima freccia a destra per spostare la formula Worth sul campo Mostra
valore/i.
13. Fare clic sulla scheda Testo.
14. Accanto a Titolo, deselezionare la casella di controllo Testo automatico.
15. Inserire Worth/Symbol nel campo Titolo.
16. Fare clic su OK.
17. Viene creata una nuova intestazione di report e viene aggiunto un oggetto grafico.

Nota
Per riposizionare gli oggetti nel report Crystal, trascinarli con il mouse e spostarli nella posizione
desiderata. Per visualizzare un’anteprima del report, è possibile utilizzare il pulsante Anteprima report
principale nella parte inferiore del form.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 579
1.5.4.3.6.3 Per aggiungere i campi formula e riepilogo al
report

Contesto

In questa sezione viene descritto come aggiungere campi formula e riepilogo per consentire il calcolo del valore
totale del portafoglio.

Procedura

1. Espandere il nodo Campi formula in Explorer campo.


2. Trascinare la formula worth nel report. Posizionare il campo nella sezione Dettagli del report.

Nota
Per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

Questo campo visualizzerà il valore di ciascun riga. Usare un campo di riepilogo per visualizzare il valore totale
del portafoglio.
3. Nel menu Crystal Reports, selezionare Inserisci, quindi fare clic su Riepilogo.
4. Nella finestra di dialogo Inserisci riepilogo:
a) Selezionare la formula Worth nel campo Scegliere il campo da riepilogare.
b) Selezionare Somma nel campo Calcolare questo riepilogo.
c) Selezionare Totale generale nel campo Percorso riepilogo.
5. Fare clic su OK.

Un campo di riepilogo viene aggiunto al report.


6. Dal menu Debug, scegliere Avvia debug.

Se non si verificano errori di compilazione, la pagina Default.aspx viene caricata nel browser.

1.5.5 Altre esercitazioni

In questa sezione viene presentata una serie di esercitazioni aggiuntive che non appartengono ad alcuna
categoria in particolare.

In questa sezione viene presentata una serie di esercitazioni aggiuntive che non appartengono ad alcuna
categoria in particolare.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
580 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.5.1 Esercitazione: Configurazione del supporto client
multilingue

In questa esercitazione viene descritto come configurare il supporto client multilingue in un sito Web o in un
progetto Windows.

Introduzione

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio include il supporto per i client Windows
e Web multilingue mediante la localizzazione dinamica.

La localizzazione dinamica consente agli utenti di visualizzare le descrizioni dei comandi e altri contenuti del
controllo CrystalReportViewer nella lingua preferita.

In questa esercitazione vengono esaminati i seguenti argomenti:

● Procedure di configurazione delle risorse di lingua per il controllo CrystalReportViewer sul client Windows
o sul server Web.
● Procedure di configurazione dell'accesso client alla localizzazione.
● Procedure di configurazione delle impostazioni generali o locali.

Codice di esempio

Questa esercitazione viene fornita con codice di esempio in linguaggio Visual Basic e C# che illustra la versione
completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo progetto o aprire
il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Sito Web in C#: CS_Web_Multilingual


● Progetto Windows C#: CS_Win_Multilingual
● Sito Web in Visual Basic: VB_Web_Multilingual
● Progetto Visual Basic Windows: VB_Win_Multilingual

Informazioni correlate

Directory dei report di esempio [pagina 14]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 581
1.5.5.1.1 Per verificare le impostazioni internazionali
predefinite di un report

Prerequisiti

Questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice richiesta
per questa procedura; non è possibile completare la procedura senza questa configurazione.

Contesto

Iniziare creando e compilando un sito Web o un progetto Windows, quindi visualizzare le impostazioni di lingua
predefinite per la barra degli strumenti di CrystalReportViewer.

Procedura

1. Dal menu Genera, scegliere Genera soluzione.


2. Se si verificano errori di generazione, correggerli.
3. Dal menu Debug, scegliere Avvia.

Il report Hierarchical Grouping viene visualizzato correttamente.


4. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti del controllo CrystalReportViewer.

Le descrizioni dei comandi vengono visualizzate nell'impostazione internazionale predefinita.


5. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Passi successivi

A questo punto è possibile impostare sul computer i file di risorse localizzati personalizzati per le lingue
personalizzate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
582 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.5.1.2 Impostazione della directory dei file di risorse
personalizzati

Contesto

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio è stato progettato per l'utilizzo di
diversi file di risorse di lingua predefiniti, nonché di eventuali file di risorse di lingua personalizzati creati e
compilati dallo sviluppatore.

I file di risorse di lingua predefiniti includono quanto segue:

● Inglese (en)
● Francese (fr)
● Tedesco (de)
● Spagnolo (es)
● Italiano (it)
● Giapponese (jp)
● Coreano (ko)
● Cinese semplificato (zh-chs)
● Cinese tradizionale (zh-cht)

Nota
i file di risorse predefiniti sono inclusi nel pacchetto del codice di esempio di SAP Crystal Reports .NET
SDK. Estrarre LanguageResourceFiles.zip nella directory principale dell'unità disco rigido.

Oltre che per le lingue predefinite è possibile creare file di risorse di lingua personalizzati per qualsiasi altra lingua.

In questa esercitazione viene descritto come eseguire la compilazione dei file di risorse personalizzati mediante
l'utilizzo di una cartella non compilata contenente i file di risorse di lingua predefiniti in spagnolo. È necessario
rinominare questa cartella in modo che rappresenti una lingua personalizzata.

Iniziare impostando la directory in cui verranno inseriti i file di risorse personalizzati.

Procedura

1. Passare alla directory principale dell'unità disco rigido e individuare la cartella LanguageResourceFiles.
2. Ridenominare la cartella in CrystalReportViewer_resource_files.

Nota
La procedura descritta è basata sul presupposto che la directory principale si trovi sull'unità C.

3. In Esplora risorse aprire la cartella C:\CrystalReportViewer_resource_files.

Individuare la sottocartella es, contenente le stringhe in spagnolo non compilate sotto forma di file .txt. Anche
se lo spagnolo è una delle lingue compilate predefinite, utilizzare questa directory per acquisire dimestichezza
con la creazione di un file di risorse personalizzato. A questo scopo cambiare la lingua della directory da

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 583
spagnolo a rumeno, una lingua non predefinita. Verificare quindi la directory come se contenesse stringhe in
rumeno.
4. Rinominare la directory es in ro.

Nota
ro è l'abbreviazione della lingua rumena.

Passi successivi

In questa esercitazione utilizzare quanto segue:

● Risorse predefinite per tre lingue fornite:

○ Tedesco (de)
○ Francese (fr)
○ Italiano (it)
● Risorse compilate manualmente per una lingua personalizzata:

○ Rumeno (ro)

Seguire le istruzioni fornite in Compilazione dei file di risorse [pagina 584] per compilare i file di risorse
personalizzati per la cartella della lingua ro.

Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.5.1.3 Compilazione dei file di risorse

Contesto

A questo punto è possibile compilare i file di risorse per la sottodirectory della lingua personalizzata creata nella
sezione precedente.

Se è necessario compilare i file di risorse personalizzati per lingue che contengono script non latini, ad esempio il
cirillico, il cinese, il coreano, il giapponese, l'ebraico e l'aramaico, configurare le impostazioni internazionali
dell'ambiente per tali lingue prima della compilazione per garantire la disponibilità degli script della lingua corretti.
Per ulteriori informazioni, vedere Riferimenti: configurazione delle impostazioni internazionali per l'ambiente
[pagina 595].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
584 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Aprire la sottodirectory della lingua ro.

In questa esercitazione vengono utilizzati tre file:

○ CRWebFormViewer.txt
○ SCRShared.txt
○ Viewer.txt

I primi due file contengono le stringhe di risorse per il controllo CrystalReportViewer basato sul Web,
mentre l'ultimo file contiene le stringhe di risorse per il controllo CrystalReportViewer basato su Windows.
2. Aprire il file Viewer.txt per visualizzarne il contenuto.

Nota
La cartella della lingua rumena contiene attualmente le stringhe in spagnolo. Per ulteriori informazioni,
vedere il passaggio precedente di questa esercitazione, Impostazione della directory dei file di risorse
personalizzati [pagina 583].

Le stringhe localizzate del controllo CrystalReportViewer sono visualizzate nella lingua corrente.
3. Chiudere il file Viewer.txt.

4. Dal menu Start scegliere Programmi Visual Studio Visual Studio Tools Prompt dei comandi di Visual
Studio .
5. Impostare la directory dei file di risorse.

cd c:\CrystalReportViewer_resource_files\\

6. Eseguire l'utility resgen per compilare i file .txt, seguendo la sintassi riportata di seguito.

Nota
Non inserire uno spazio prima o dopo la virgola.

resgen /compile CRWebFormViewer.txt,CrystalDecisions.Web.resources


resgen /compile SCRShared.txt,CrystalDecisions.Shared.resources
resgen /compile Viewer.txt,CrystalDecisions.Windows.Forms.resources

7. Eseguire l'utility al.exe per creare una DLL per ciascun file di risorse.

Nota
Il nome dell'output cambia l'estensione da resources.dll a custom_resources.dll.

al.exe /t:lib /embed:CrystalDecisions.Web.resources /culture:ro /


out:CrystalDecisions.Web.custom_resources.dll
al.exe /t:lib /embed:CrystalDecisions.Shared.resources /culture:ro /
out:CrystalDecisions.Shared.custom_resources.dll
al.exe /t:lib /embed:CrystalDecisions.Windows.Forms.resources /culture:ro /
out:CrystalDecisions.Windows.Forms.custom_resources.dll

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 585
8. Digitare dir per visualizzare le DLL compilate.

In questo modo viene completata la compilazione delle risorse per questa sottodirectory.
9. Se si desidera eseguire la compilazione in altre lingue personalizzate, ripetere questa procedura per ciascuna
lingua.

Suggerimento
Per risparmiare tempo, inserire i sei comandi in un file batch. Tenere presente che il file batch deve essere
eseguito dal prompt dei comandi di Visual Studio per accedere alle variabili di ambiente corrette.

10. Al termine della compilazione delle risorse personalizzate, chiudere Prompt dei comandi di Visual Studio.

Passi successivi

Nella sezione successiva è necessario configurare il sito Web o il progetto Windows per accedere alle risorse
personalizzate dalla posizione globale o personalizzata.

Se si sta creando un sito Web, passare a Per configurare risorse personalizzate globali o locali [pagina 586].

Se si sta creando un progetto Windows, passare a Configurazione del supporto client multilingue per
un'applicazione Windows [pagina 592].

1.5.5.1.4 Configurazione del supporto client multilingue per


un sito Web

1.5.5.1.4.1 Per configurare risorse personalizzate globali o


locali

Il sito Web accede alle risorse di lingua globalmente (a livello di sistema) o localmente (nell'ambito della cartella
del sito Web).

Le risorse di lingua personalizzate possono essere sistemate in una posizione globale o locale. Le risorse di lingua
predefinite sono sempre disponibili globalmente.

Nota
Se i file di risorse predefiniti non sono inclusi nell'installazione del prodotto, possono essere scaricati dal sito
Web di SAP Business Objects e installati in modo indipendente.

Per esporre le risorse personalizzate globalmente, sistemarle in una posizione centrale nella directory dei file da
cui possono essere condivise tra più applicazioni Web. Per accedere quindi a tali risorse globali in un sito Web
specifico, creare un riferimento al percorso della directory di file delle risorse globali nel file Web.config. Affinché
una risorsa globale venga caricata correttamente, è necessario che il nome della cartella che contiene i file di
risorse corrisponda all'impostazione della lingua.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
586 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Per esporre le risorse personalizzate localmente, sistemarle direttamente nella cartella del sito Web. Affinché una
risorsa locale venga caricata correttamente, la lingua dei file di risorse e il nome della cartella che contiene i file di
risorse devono corrispondere all'impostazione della lingua.

Per i siti Web, l'approccio globale è più comune poiché consente di eseguire la manutenzione di tutti i siti da
un'unica posizione del server Web, impedendo la ridondanza ed evitando il rischio di discrepanze tra le diverse
versioni.

Per accedere alle risorse personalizzate globali (più comune per i siti Web)

● Nel file Web.config, aggiungere una chiave globalResourcePath al nodo appSettings.

<appSettings>
<add key="globalResourcePath"
value="c:\CrystalReportViewer_resource_files\"/>
</appSettings>

Per accedere alle risorse personalizzate locali (meno comune per i siti Web)

● Copiare la sottodirectory delle risorse personalizzate (in questo caso la sottodirectory ro) dalla cartella C:
\CrystalReportViewer_resource_files\\nella directory bin nella cartella del sito Web. Nel progetto
Web non esiste una directory bin, crearne una facendo clic con il pulsante destro del mouse sul nome del
progetto e selezionando Nuova cartella. Denominare bin la cartella appena creata.

Nota
Se viene aggiunta una chiave globalResourcePath come indicato per le risorse globali, le risorse locali
vengono ignorate poiché nella gerarchia di accesso non hanno la precedenza rispetto alle risorse globali.

Il sito Web è ora configurato per l'accesso globale o locale alle risorse di lingua personalizzate e per l'accesso
globale alle risorse di lingua predefinite. Tuttavia, non avendo ancora impostato una lingua specifica per la
visualizzazione, il controllo CrystalReportViewer rimane visualizzato nella lingua predefinita dell'impostazione
internazionale.

Nelle sezioni successive vengono descritte le procedure per la localizzazione basata su browser, pagina o
ambiente del server Web.

1.5.5.1.4.2 Per configurare la localizzazione basata su


browser

Contesto

In questa sezione vengono fornite informazioni sullo scenario di localizzazione dinamica basata su browser. In
questo scenario una proprietà del controllo CrystalReportViewer imposta la localizzazione dinamica sulla
lingua utilizzata dal browser del client.

Poiché in questo scenario la localizzazione è basata su browser, ciascun browser dell'utente può recuperare una
lingua diversa per il controllo CrystalReportViewer. Questo scenario è il più flessibile se per il sito Web è richiesto il
collegamento di molti browser client con diverse impostazioni di lingua.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 587
Procedura

1. Avviare il browser.

Nota
In questa esercitazione si presuppone che venga utilizzato Internet Explorer, anche se altri browser sono
compatibili con HTML 4.0.

2. Dal menu Strumenti di Internet Explorer, fare clic su Opzioni Internet.


3. Nella scheda Generale della finestra di dialogo Opzioni Internet, fare clic su Lingue...
4. Nella finestra di dialogo Preferenza lingua, fare clic su Aggiungi...
5. Aggiungere le 4 lingue seguenti:

○ Tedesco (Austria) [de-at]


○ Francese (Francia) [fr]
○ Italiano (Italia) [it]
○ Rumeno [ro]
6. Selezionare Italiano (Italia) [it] e fare clic su Sposta su. Ripetere l'operazione finché Italiano (Italia) [it] non è la
prima lingua selezionata nell'elenco.
7. Fare clic su OK, quindi nuovamente su OK e chiudere il browser.
8. Aprire il sito Web in Visual Studio ed eseguire le operazioni di creazione e compilazione.
9. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti del controllo CrystalReportViewer.

Le stringhe delle descrizioni dei comandi sono ancora visualizzate in inglese e l'impostazione della lingua del
browser viene ignorata. È necessario configurare l'impostazione UseBrowserLocale nel file Web.config del
progetto in modo che il controllo CrystalReportViewer osservi le impostazioni internazionali del browser
nel rendering dei valori delle stringhe delle descrizioni dei comandi.
10. Chiudere il browser per uscire dalla modalità di debug.
11. Aprire il file Web.config.
12. Nel tag <configuration> inserire i seguenti tag nidificati per impostare la proprietà UseBrowserLocale su
True.

Un file Web.config può avere un solo blocco configSections, che deve essere il blocco principale del tag
configuration. Se il file Web.config comprende già un blocco configSections, è necessario modificare la
sezione in modo da includere i tag sectionGroup e section come mostrato nel seguente esempio.

Nota
Nelle versioni precedenti di SAP Crystal Reports le proprietà di CrystalReportViewer includevano una
proprietà UseBrowserLocale. Questa proprietà è stata sostituita con l'impostazione riportata sopra nel
file Web.config. Se nel file Web.config non viene inserita alcuna voce, per impostazione predefinita la
proprietà UseBrowserLocale è impostata su False.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
588 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="UseBrowserLocale" value="true"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

13. Ricreare e compilare l'applicazione utilizzata.


14. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti del controllo CrystalReportViewer.

Le stringhe delle descrizioni dei comandi sono ora visualizzate in italiano. Nel passaggio successivo viene
descritta la procedura per modificare le impostazioni della lingua del browser per selezionare la lingua
tedesca.
15. Dal menu Strumenti di Internet Explorer, fare clic su Opzioni Internet.
16. Nella scheda Generale della finestra di dialogo Opzioni Internet, fare clic su Lingue...
17. Selezionare Tedesco (Austria) [de-at] e fare clic su Sposta su. Ripetere l'operazione finché Tedesco (Austria)
[de-at] non è la prima lingua selezionata nell'elenco.
18. Fare clic su OK, quindi nuovamente su OK per tornare al browser.
19. Fare clic su Aggiorna.
20. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti del controllo CrystalReportViewer.

Le stringhe delle descrizioni dei comandi sono ora visualizzate in tedesco.


21. Ripetere la procedura per Francese (Francia) [fr] e Rumeno [ro].

In ogni caso le preferenze della lingua del browser determinano la stringa visualizzata nel controllo
CrystalReportViewer.

Nota
In questa esercitazione sono state compilate le risorse della lingua rumena personalizzate in base alle
stringhe della lingua che si sono prese in prestito da una directory in lingua spagnola e che quindi le
descrizioni dei comandi in rumeno personalizzate verranno visualizzate in spagnolo.

22. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

La localizzazione dinamica è stata correttamente configurata mediante le impostazioni basate su browser. Nella
sezione successiva vengono descritte le procedure per configurare la localizzazione utilizzando un'impostazione
della pagina ASPX.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 589
1.5.5.1.4.3 Per configurare la localizzazione basata sulla
pagina per una pagina Web

Contesto

In questa sezione vengono fornite informazioni sullo scenario di localizzazione dinamica basata su pagina. In
questo scenario la localizzazione dinamica viene determinata dall'istruzione di pagina definita nella pagina
Default.aspx.

Poiché in questo scenario la localizzazione è basata sulla pagina, ciascuna pagina del sito Web può essere
visualizzata in una lingua diversa, ignorando le impostazioni della lingua definite per il browser. Questo scenario è
utile per limitare le impostazioni internazionali visualizzate definendo un criterio diverso da pagina a pagina.

Procedura

1. Aprire il file Web.config.


2. Nel tag <configuration> inserire i seguenti tag nidificati per impostare la proprietà UseBrowserLocale su
False.

Nota
Nelle versioni precedenti di SAP Crystal Reports le proprietà CrystalReportViewer includevano una
proprietà UseBrowserLocale. Questa proprietà è stata sostituita con l'impostazione riportata sopra nel
file Web.config. Se nel file Web.config non viene inserita alcuna voce, per impostazione predefinita la
proprietà UseBrowserLocale è impostata su False.

<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>

<businessObjects>
<crystalReports=>
<crystalReportViewer>
<add key="UseBrowserLocale" value="false"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>

3. Aprire la pagina Default.aspx in visualizzazione Progettazione.


4. Fare clic sulla pagina Default.aspx per selezionarla.
5. Dalla finestra Proprietà, impostare la proprietà Culture su it-IT.

Se la proprietà Culture non è visualizzata, selezionare Documento dall'elenco presente nella parte superiore
della finestra Proprietà.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
590 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
6. Ricreare e compilare l'applicazione utilizzata.
7. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti del controllo CrystalReportViewer.

Le stringhe delle descrizioni dei comandi sono visualizzate in italiano.


8. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

Risultati

In questo scenario sono state configurate le seguenti impostazioni:

● La proprietà CrystalReportViewer.UseBrowserLocale è stata impostata su False. Pertanto,


l'impostazione internazionale del browser per cui nel passaggio precedente era stato definito lo spagnolo
viene ignorata.
● L'istruzione di pagina Culture è stata impostata sulla lingua italiana.

Le stringhe delle descrizioni dei comandi vengono quindi visualizzate in italiano.

Passi successivi

La localizzazione dinamica è stata configurata correttamente mediante le impostazioni basate su pagina. Nella
sezione successiva viene illustrato come configurare la localizzazione con le impostazioni internazionali
dell'ambiente del server Web.

1.5.5.1.4.4 Per configurare la localizzazione basata su


ambiente per un sito Web

Contesto

In questa sezione vengono fornite informazioni sullo scenario di localizzazione dinamica basata sull'ambiente del
server Web. In questo scenario la localizzazione dinamica viene determinata dalle impostazioni internazionali
dell'ambiente per il server Web.

Poiché in questo scenario la localizzazione è basata sull'ambiente, l'intero sito Web viene visualizzato in un'unica
lingua. Questo scenario è pertanto utile se si desidera restringere l'impostazione internazionale visualizzata per
l'intero sito Web all'impostazione internazionale dell'ambiente configurato sul server Web.

Nota
L'impostazione internazionale dell'ambiente è quella predefinita per il sito Web. Se si sceglie di configurare
l'istruzione Culture di una particolare pagina o la proprietà UseBrowserLocale di un particolare controllo
CrystalReportViewer nel sito Web, queste configurazioni sostituiscono l'impostazione internazionale
dell'ambiente predefinita e forniscono una localizzazione più personalizzata a livello di pagina o di controllo
CrystalReportViewer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 591
Procedura

1. Aprire la pagina Default.aspx in visualizzazione Progettazione.

"Documento" viene visualizzato nella parte superiore della finestra Proprietà.


2. Nella finestra Proprietà, eliminare la proprietà Culture.
3. Nel computer di sviluppo (il server Web utilizzato per l'esercitazione), sostituire l'impostazione internazionale
dell'ambiente predefinita nel pannello di controllo Opzioni internazionali con Tedesco (Austria).

Nota
Per istruzioni dettagliate sulla corretta configurazione delle impostazioni internazionali dell'ambiente in
Windows XP o Windows 2000, vedere la sezione finale di questa esercitazione:Riferimenti: configurazione
delle impostazioni internazionali per l'ambiente [pagina 595].

4. Per applicare le impostazioni internazionali, riavviare il computer.


5. Riaprire il sito Web in Visual Studio ed eseguire le operazioni di creazione e compilazione.
6. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti del controllo CrystalReportViewer.
7. Dopo aver verificato la lingua visualizzata, chiudere il browser per uscire dalla modalità di debug.

Risultati

In questo scenario:

● La proprietà CrystalReportViewer.UseBrowserLocale è stata impostata su False (impostazione


definita nei passaggi precedenti di questa esercitazione). Di conseguenza, la precedente impostazione
internazionale del browser (spagnolo) viene ignorata.
● L'impostazione di pagina Culture è stata eliminata e a livello di pagina non viene fornita alcuna istruzione.
● L'opzione di localizzazione predefinita corrisponde all'impostazione internazionale dell'ambiente del server
Web, precedentemente configurata su "Tedesco (Austria)".

Le stringhe delle descrizioni dei comandi vengono quindi visualizzate in tedesco.

Questo passaggio completa la descrizione del supporto client multilingue con la localizzazione dinamica nei siti
Web. Le restanti sezioni illustrano la localizzazione dinamica nei progetti Windows.

1.5.5.1.5 Configurazione del supporto client multilingue per


un'applicazione Windows

Il progetto Windows accede alle risorse di lingua globalmente (a livello di sistema) o localmente (nell'ambito della
cartella dell'eseguibile Windows).

Le risorse di lingua personalizzate possono essere sistemate in una posizione globale o locale. Le risorse di lingua
predefinite sono sempre disponibili globalmente.

Per esporre le risorse personalizzate globalmente, sistemarle in una posizione centrale nella directory dei file da
cui possono essere condivise tra più applicazioni Windows. Per accedere quindi a tali risorse globali in

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
592 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
un'applicazione Windows specifica, creare un riferimento al percorso della directory di file delle risorse globali in
un file di configurazione XML memorizzato nella stessa directory dell'eseguibile Windows. Affinché una risorsa
globale venga caricata correttamente, è necessario che il nome della cartella che contiene i file di risorse
corrisponda all'impostazione della lingua.

Per esporre le risorse personalizzate localmente, sistemarle nell'applicazione Windows allo stesso livello del file
eseguibile. Affinché una risorsa locale venga caricata correttamente, la lingua dei file di risorse e il nome della
cartella che contiene i file di risorse devono corrispondere all'impostazione della lingua.

Per la distribuzione, le risorse di lingua predefinite devono essere incluse nella distribuzione stessa. È necessario
accedere a queste risorse globalmente. Nel caso delle risorse personalizzate è più facile accedervi localmente. A
questo scopo configurare le risorse in modo che vengano installate nella stessa cartella dell'eseguibile Windows.

1.5.5.1.5.1 Per accedere alle risorse personalizzate locali

Procedura

1. Nelle Opzioni internazionali, impostare "Rumeno".

Nota
Per istruzioni dettagliate sulla corretta configurazione delle impostazioni internazionali dell'ambiente in
Windows XP o Windows 2000, vedere la sezione finale di questa esercitazione:Riferimenti: configurazione
delle impostazioni internazionali per l'ambiente [pagina 595].

2. Copiare la sottodirectory della lingua ro dalla cartella C:\CrystalReportViewer_resource_files\\ alla


cartella contenente l'eseguibile Windows.
Durante lo sviluppo, questa sarà probabilmente la cartella \bin\debug\ .
3. Compilare ed eseguire l'applicazione Windows.
4. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti.

Le stringhe delle descrizioni dei comandi vengono visualizzate in rumeno o più precisamente in spagnolo in
quanto la risorsa Rumeno personalizzata è stata compilata con stringhe di testo in spagnolo.

Nota
Se è stato aggiunto un file di configurazione globale contenente una chiave globalResourcePath, le risorse
locali vengono ignorate. poiché nella gerarchia di accesso non hanno la precedenza rispetto alle risorse
globali.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 593
1.5.5.1.5.2 Per accedere alle risorse personalizzate globali
(approccio meno tipico per le applicazioni Windows)

Contesto

Nella sezione successiva viene descritta la procedura per accedere alle risorse globali.

Procedura

1. Nelle Opzioni internazionali, impostare "Rumeno".

Nota
Per istruzioni dettagliate sulla corretta configurazione delle impostazioni internazionali dell'ambiente in
Windows XP o Windows 2000, vedere la sezione finale di questa esercitazione:Riferimenti: configurazione
delle impostazioni internazionali per l'ambiente [pagina 595].

2. In Esplora risorse, individuare la sottodirectory del progetto Windows contenente il file eseguibile.

\[PERCORSO_PROGETTO]\bin\debug\

3. In questa sottodirectory, creare un nuovo file di configurazione XML contenente le seguenti informazioni:

<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="globalResourcePath"
value="c:\CrystalReportViewer_resource_files\"/>
</appSettings>
</configuration>

4. Salvare questo file con lo stesso nome del file eseguibile, ma aggiungere l'estensione .config.

Ad esempio:

Nome dell'eseguibile:CS_Win_Multilingual.exe

Nome del file di configurazione:CS_Win_Multilingual.exe.config

Nota
Nelle applicazioni Visual Basic Windows questo file può essere generato automaticamente. In questo caso,
aggiungere il nodo <app settings> all'interno del nodo <configuration> esistente nel file di
configurazione generato automaticamente.

5. Compilare ed eseguire l'applicazione Windows.


6. Spostare il puntatore del mouse sui pulsanti della barra degli strumenti.

Le stringhe delle descrizioni dei comandi vengono visualizzate in rumeno o più precisamente in spagnolo in
quanto la risorsa Rumeno personalizzata è stata compilata con stringhe di testo in spagnolo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
594 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.5.5.1.6 Riferimenti: configurazione delle impostazioni
internazionali per l'ambiente

Questa sezione si applica ai siti Web e ai progetti Windows quando è necessario cambiare le impostazioni
internazionali dell'ambiente. Nell'esempio riportato sotto, l'impostazione internazionale definita è "Tedesco
(Austria)".

Le seguenti istruzioni si applicano a Windows XP e Windows 2000.

1.5.5.1.6.1 Per configurare le impostazioni internazionali


dell'ambiente in Windows XP

Procedura

1. Fare clic su Start, scegliere Pannello di controllo e selezionare Opzioni internazionali e della lingua.
2. Nella scheda Opzioni internazionali, selezionare Tedesco (Austria) dall'elenco Selezionare l'elemento
corrispondente alle preferenze.
3. Nella scheda Lingue, fare clic su Dettagli....

Viene visualizzata la finestra di dialogo Servizi di testo e lingue di input.


4. Nella scheda Impostazioni, fare clic su Aggiungi…
5. Nella finestra di dialogo Aggiungi lingua di input, effettuare le seguenti operazioni:
a) Impostare Tedesco (Austria) come Lingua di input.
b) Impostare Tedesco (IBM) come Layout di tastiera/Metodo di input (IME) e
6. fare clic su OK.
7. Nell'elenco Lingua di input predefinita, selezionare Tedesco (Austria) e fare clic su OK.
8. Nell'elenco Lingua per programmi non Unicode, selezionare Tedesco (Austria).
9. Fare clic su Applica, quindi su OK.

Risultati

In Windows XP non è necessario riavviare il computer per applicare le modifiche apportate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 595
1.5.5.1.6.2 Per configurare le impostazioni internazionali
dell'ambiente in Windows 2000

Procedura

1. Fare clic sul menu Start, selezionare Impostazioni, fare clic su Pannello di controllo, quindi su Opzioni
internazionali.

Viene visualizzato il pannello di controllo Opzioni internazionali.


2. Nella scheda Generale, effettuare le seguenti operazioni:
a) Nell'elenco Impostazioni internazionali (località), selezionare Tedesco (Austria).
b) Fare clic su Imposta valori predefiniti...
c) Selezionare Tedesco (Austria) nella finestra di dialogo Selezione impostazioni internazionali del sistema e
fare clic su OK.
3. Nella scheda Impostazioni internazionali di input, effettuare le seguenti operazioni:
a) Fare clic su Aggiungi...
b) Nella finestra di dialogo Aggiungi impostazione internazionale di input, impostare Tedesco (Austria)
nell'elenco Impostazione internazionali di input.
c) Impostare Tedesco (IBM) come Layout di tastiera/Metodo di input (IME) e fare clic su OK.
4. Fare clic su Applica.

Viene visualizzata una finestra di dialogo che richiede di installare i file dall'unità disco rigido o dal CD di
Windows Installer.
5. Fare clic su Sì e procedere con l'installazione.

Al termine dell'installazione, nella finestra di dialogo Cambia le opzioni internazionali viene richiesto di
riavviare il computer.
6. Fare clic su Sì.

Passi successivi

In Windows 2000 è necessario riavviare il computer per applicare le modifiche apportate.

1.5.5.2 Esercitazione: Creazione di una User Function Library


(UFL)

In questa esercitazione vengono descritte le procedure per la creazione di una User Function Library accessibile
dall'Esperto formule del componente incorporato SAP Crystal Report Designer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
596 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Introduzione

In questa esercitazione vengono descritte le procedure per la creazione di una User Function Library accessibile
dall'Esperto formule del componente incorporato SAP Crystal Report Designer.

Durante la creazione di un report Crystal nel componente incorporato SAP Crystal Report Designer, gli
sviluppatori creano spesso dei campi formula da utilizzare nel report. I campi formula sono costituiti da variabili e
funzioni. Il componente incorporato SAP Crystal Report Designer fornisce un'ampia gamma di funzioni.

Tuttavia, in alcuni scenari potrebbe essere utile avere la possibilità di creare una funzione personalizzata
sottoforma di libreria distribuibile tra più computer. La libreria UFL (User Function Library) fornisce questa
funzionalità.

La User Function Library è una libreria di classi .NET che presenta le seguenti caratteristiche:

● Il nome del progetto è preceduto dal prefisso con la stringa "CRUFL".


● Il progetto è costituito da un'interfaccia e da una classe di implementazione.
● L'interfaccia e la classe di implementazione utilizzano gli attributi COM e GUID.
● Al momento della compilazione l'assembly viene registrato per l'interoperabilità COM in modo da poter essere
visualizzato come oggetto COM.
● L'oggetto assembly/COM viene aggiunto alla cache assembly globale (GAC) disponibile su tutte le
applicazioni .NET del computer.
● L'oggetto assembly/COM (User Function Library o UFL) diventa visibile nel componente incorporato SAP
Crystal Reports Designer come funzione personalizzata in "Funzioni>Funzioni aggiuntive>u2lcom.dll".

Codice di esempio

Ciascuna esercitazione viene fornita con un codice di esempio in linguaggio Visual Basic e C# che illustra la
versione completa del progetto. Seguire le istruzioni riportate in questa esercitazione per creare un nuovo
progetto o aprire il progetto del codice di esempio per utilizzare una versione completa.

Il codice di esempio si trova in cartelle classificate per lingua e tipo di progetto. I nomi delle cartelle per ciascuna
versione di codice di esempio sono i seguenti:

● Libreria di classe in C#: CRUFL_CS_ExchangeRate


● Libreria di classe in VB: CRUFL_VB_ExchangeRate

Database Xtreme

In questa esercitazione viene utilizzato un database di esempio denominato Xtreme. Il file di database
xtreme.mdb è incluso nel pacchetto del codice di esempio di SAP Crystal Reports .NET SDK. Per utilizzare il
database Xtreme, è necessario creare manualmente una connessione ODBC a esso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 597
Informazioni correlate

Directory dei report di esempio [pagina 14]

1.5.5.2.1 Per creare una libreria di classi UFL

Contesto

In questa sezione vengono descritte le procedure per creare la libreria di classi UFL e configurarla per la
registrazione nell'interoperabilità COM.

Procedura

1. Avviare Visual Studio.


2. Scegliere Nuovo dal menu File e quindi fare clic su Progetto.
3. Nella finestra di dialogo Nuovo progetto selezionare una cartella della lingua per C# o Visual Basic dall'elenco
Tipi progetto.
4. Nell'elenco Modelli scegliere Libreria di classi.
5. Nel campo Nome, inserire una delle seguenti stringhe:

○ CRUFL_VB_ExchangeRate (Visual Basic)


○ CRUFL_CS_ExchangeRate (C#)

Nota
Tutte le librerie funzioni utente devono essere precedute da CRUFL per essere riconosciute da SAP Crystal
Reports Designer incorporato.

6. Fare clic su OK.


7. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, quindi
selezionare Proprietà.
8. Fare clic sulla scheda Generazione/Compilazione.
9. Se si utilizza Visual Basic, fare clic su On nell'elenco Option Strict.
10. Scorrere fino alla parte inferiore della finestra Generazione/Compilazione e selezionare Registra per
interoperabilità COM.

Nota
L'opzione "Registra per interoperabilità COM" determina la registrazione automatica dell'assembly da
parte dell'utility regasm.exe al termine della compilazione del progetto. Pertanto, non è necessario
eseguire manualmente il file regasm.exe dal prompt dei comandi.

11. Dal menu File, scegliere Salva tutto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
598 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
12. Chiudere la finestra Generazione/Compilazione.

Risultati

A questo punto è possibile creare l'interfaccia.

1.5.5.2.2 Per creare l'interfaccia con attributi COM

Contesto

In questa sezione vengono descritte le procedure per creare un'interfaccia e configurarla con gli attributi COM.

Procedura

1. Eliminare la classe predefinita (Class1).


2. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Classe.
3. Nel campo Nome, inserire "IExchangeUfl" e fare clic su Aggiungi.
4. Cambiare la firma della classe da classe a interfaccia e impostare l'ambito su pubblico.

Nota
In Visual Basic ricordare di cambiare sia la firma di apertura che quella di chiusura. In C# eliminare il
costruttore.

Public Interface IExchangeUfl


End Interface

public interface IExchangeUfl


{
}

5. Sopra la dichiarazione della classe aggiungere la seguente istruzione using/Imports:

Imports System.Runtime.InteropServices

using System.Runtime.InteropServices;

6. Dal menu Strumenti, fare clic su Crea GUID.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 599
7. Nella finestra di dialogo Crea GUID, selezionare Formato registro nel riquadro Formato GUID.
8. Scegliere Nuovo GUID.
9. Scegliere Copia e chiudere la finestra di dialogo.
10. Sopra la dichiarazione dell'interfaccia, creare un attributo con tre valori: ComVisible, InterfaceType e Guid (in
C#) o GuidAttribute (in Visual Basic) con le doppie virgolette della stringa del parametro.

Nota
Per una migliore leggibilità in Visual Basic, aggiungere un carattere di sottolineatura dopo il tag di chiusura
per inserire la classe nella riga successiva.

<ComVisible(), InterfaceType(), GuidAttribute("")> _


Public Interface IExchangeUfl
End Interface

[ComVisible(), InterfaceType(), Guid("")]


public interface IExchangeUfl
{
}

11. Inserire il valore di parametro "True" [Visual Basic] o "true" [C#] nell'attributo ComVisible.
12. Inserire un valore di parametro ComInterfaceType.InterfaceIsDual dall'enumerazione
ComInterfaceType all'attributo InterfaceType.
13. Incollare il valore GUID dagli Appunti al valore del parametro dell'attributo GUID. Rimuovere sempre le
parentesi graffe e i ritorni a capo.

Nota
Non utilizzare i GUID forniti nel frammento di codice successivo. Creare un GUID univoco per l'interfaccia
utilizzata.

<ComVisible(True),
InterfaceType(ComInterfaceType.InterfaceIsDual),
GuidAttribute("E7A4EC98-BF2B-4006-B266-74C74421C394")> _
Public Interface IExchangeUfl
End Interface

[ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsDual),
Guid("E7A4EC98-BF2B-4006-B266-74C74421C394")]
public interface IExchangeUfl
{
}

14. Creare una firma del metodo all'interno dell'interfaccia IExchangeUfl.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
600 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Questa firma del metodo diverrà il nome della funzione esposta in SAP Crystal Reports Designer
incorporato.

Function ConvertUSDollarsToCDN(ByVal usd As Double) As Double

double ConvertUSDollarsToCDN(double usd);

15. Chiudere la finestra di interfaccia.

Risultati

Successivamente viene descritto come creare la classe di implementazione.

1.5.5.2.3 Per creare la classe di implementazione con


attributi COM

Contesto

In questa sezione, viene creata una classe di implementazione che implementa l'interfaccia IExchangeUfl e
configura la classe con gli attributi COM.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi e fare clic su Classe.
2. Nel campo Nome, inserire "ExchangeUfl" e fare clic su Apri.
3. Modificare la firma della classe in modo da implementare l'interfaccia IExchangeUfl.

Public Class ExchangeUfl : Implements IExchangeUfl


End Class

public class ExchangeUfl : IExchangeUfl


{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 601
4. Sopra la dichiarazione della classe aggiungere la seguente istruzione using/Imports:

Imports System.Runtime.InteropServices

using System.Runtime.InteropServices;

5. Dal menu Strumenti, fare clic su Crea GUID.


6. Nella finestra di dialogo Crea GUID, selezionare Formato registro nel riquadro Formato GUID.
7. Scegliere Nuovo GUID.
8. Scegliere Copia e chiudere la finestra di dialogo.
9. Sopra la dichiarazione della classe, creare un attributo con tre valori: ComVisible, ClassInterface e Guid (in
C#) o GuidAttribute (in Visual Basic) con le doppie virgolette della stringa del parametro.

Nota
Per una migliore leggibilità in Visual Basic, aggiungere un carattere di sottolineatura dopo il tag di chiusura
per inserire la classe nella riga successiva.

<ComVisible(), ClassInterface(), GuidAttribute("")> _


Public Class ExchangeUfl : Implements IExchangeUfl
End Class

[ComVisible(), ClassInterface(), Guid("")]


public class ExchangeUfl : IExchangeUfl
{
}

10. Inserire il valore di parametro "True" [Visual Basic] o "true" [C#] nell'attributo ComVisible.
11. Inserire il valore di parametro ClassInterfaceType.None dall'enumerazione ClassInterfaceType
all'attributo ClassInterface.
12. Incollare il valore GUID dagli Appunti al valore del parametro dell'attributo GUID. Rimuovere sempre le
parentesi graffe e i ritorni a capo.

Nota
Non utilizzare il GUID fornito in questo frammento di codice. Creare un GUID univoco per la classe
utilizzata.

<ComVisible(True), ClassInterface(ClassInterfaceType.None),
GuidAttribute("F5DCE88F-AD38-4a9a-9A69-0F8DC0EDB4E3")> _
Public Class ExchangeUfl : Implements IExchangeUfl
End Class

[ComVisible(true), ClassInterface(ClassInterfaceType.None),
Guid("F5DCE88F-AD38-4a9a-9A69-0F8DC0EDB4E3")]
public class ExchangeUfl : IExchangeUfl
{
}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
602 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
13. All'interno di ExchangeUfl, completare con un metodo pubblico la firma del metodo contrattuale
dall'interfaccia.

Nota
Questa firma diverrà il nome della funzione esposta in SAP Crystal Reports Designer incorporato.

Public Function ConvertUSDollarsToCDN1(ByVal usd As Double) As


Double Implements IExchangeUfl.ConvertUSDollarsToCDN
End Function

public double ConvertUSDollarsToCDN(double usd)


{
}

14. Nel metodo, creare un blocco condizionale che controlli se il parametro del metodo usd è maggiore di
Double.MaxValue e genera un'eccezione.

Nota
È necessario eseguire il controllo per evitare il rischio di overflow.

If usd > Double.MaxValue Then


Throw New Exception("Value submitted is larger than the maximum value allowed
for a double.")
End If

if(usd > Double.MaxValue)


{
throw new Exception("Value submitted is larger than the maximum value allowed
for a double.");
}

15. Dopo il blocco condizionale, tornare al parametro di metodo usd moltiplicato per un tasso di cambio di 1.45.
In questa esercitazione viene eseguito solo un semplice calcolo matematico, anche se è comunque possibile
inserire qualunque codice nel metodo. Ad esempio, è possibile recuperare un tasso di cambio da un servizio
Web bancario per calcolarlo dinamicamente all'interno del report.

Return (usd * 1.45)

return (usd * 1.45);

16. Dal menu File, scegliere Salva tutto.


17. Chiudere la finestra della classe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 603
1.5.5.2.4 Per assegnare una chiave con nome sicuro alla
libreria di classi

Contesto

In questa sezione viene descritto come assegnare una chiave con nome sicuro alla libreria di classi.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, quindi
selezionare Proprietà.
2. Fare clic sulla scheda Firma digitale.
3. Selezionare la casella di controllo Firma assembly.
4. Dalla casella combinata Scegli un file chiave con nome sicuro: selezionare <Nuovo...>
5. Nella finestra di dialogo Crea chiave con nome sicuro, immettere un valore stringa nel campo di testo Nome
file di chiave.

Nota
Un possibile valore di stringa è ad esempio il cognome e la data corrente.

6. Deselezionare l'opzione Proteggi file di chiave con una password e fare clic su OK.
7. Chiudere la finestra Firma digitale.
8. Dal menu Genera, scegliere Genera soluzione.
9. Chiudere Visual Studio.

Passi successivi

Aggiungere quindi l'assembly alla cache assembly globale (GAC).

1.5.5.2.5 Per aggiungere l'assembly alla cache assembly


globale (GAC)

Contesto

In questa sezione viene descritto come aggiungere l'assembly alla cache assembly globale (GAC).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
604 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. In Esplora risorse, individuare il progetto nel computer.


2. All'interno del progetto creato, individuare la sottodirectory \bin\Debug\\. Verificare che la DLL
dell'assembly si trovi in questa directory.
3. Copiare il percorso della directory di file della DLL negli Appunti.
4. Fare clic sul pulsante Start, selezionare Programmi > Microsoft Visual Studio > Visual Studio Tools, quindi
scegliere Prompt dei comandi di Visual Studio.
5. È necessario passare alla directory che contiene la DLL. Per effettuare tale operazione, iniziare digitando il
comando per cambiare directory.

cd

6. Aggiungere uno spazio dopo il comando cd, quindi fare clic con il pulsante destro del mouse e incollare il
percorso della directory dagli Appunti.
7. Premere Invio.

Verificare che la nuova directory contenga effettivamente la DLL dell'assembly.


8. Digitare il comando successivo e sostituire la DLL dell'assembly indicata nel frammento di codice con il nome
della DLL dell'assembly utilizzata.

gacutil -if CRUFL_CS_ExchangeRate.dll

9. Premere Invio.
Verrà visualizzato un messaggio relativo alla memorizzazione nella cache dell'assembly. Se viene visualizzato
un messaggio di errore, verificare l'ortografia del nome del file DLL dell'assembly ed eseguire nuovamente
gacutil.
10. Chiudere Prompt dei comandi di Visual Studio.
11. In Esplora risorse individuare la sottodirectory \assembly\, nella directory \Windows\ o \WinNT\.

L'assembly aggiunto deve ora essere visibile nella sottodirectory corrispondente (nota come GAC o Global
Assembly Cache).

Risultati

A questo punto è possibile creare un report Crystal che acceda a questa funzione personalizzata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 605
1.5.5.2.6 Per aggiungere una funzione personalizzata a un
report Crystal

Prerequisiti

Questa procedura può essere utilizzata solo con progetti creati in base a quanto indicato in Impostazione di un
progetto [pagina 14], che prevede riferimenti specifici allo spazio dei nomi e la configurazione di codice richiesta
per questa procedura; non è possibile completare la procedura senza questa configurazione.

Contesto

In questa sezione viene descritto come creare un report Crystal che acceda alla funzione personalizzata.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Aggiungi nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Report
Crystal.
3. Nel campo Nome, inserire FunctionTest.rpt, quindi fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nel riquadro Scegli un esperto selezionare Standard, quindi fare clic su OK.
6. Nel riquadro Origini dati disponibili della finestra Procedura guidata per la creazione di report standard,
espandere la cartella Crea nuova connessione.
7. Dalla sottocartella, espandere la cartella ODBC (RDO).
8. Nella finestra ODBC (RDO) selezionare la voce ODBC DSN corretta per il database Xtreme e quindi fare clic su
Fine.

La cartella ODBC (RDO) si espande e visualizza il database Xtreme.


9. Espandere il nodo Tabelle, quindi selezionare la tabella Clienti.
10. Fare doppio clic sulla tabella Clienti per spostarla nel riquadro Tabelle selezionate, quindi scegliere Avanti.
11. Tenendo premuto il tasto CTRL fare clic su Nome cliente, Vendite anno precedente e Città.
12. Fare clic sul simbolo > per spostare questi campi nel riquadro Campi da visualizzare, quindi scegliere Avanti.
13. Nel riquadro Campi disponibili, in Campi report, selezionare Clienti.Città, fare clic sul simbolo > per spostare il
campo nel riquadro Raggruppa in base a, quindi scegliere Fine.

Il report FunctionTest viene creato e caricato nella finestra principale di Visual Studio.
14. Se Explorer Campo non è visibile, nella barra degli strumenti di Crystal Reports fare clic sul pulsante Alterna
visualizzazione campi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
606 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Suggerimento
per visualizzare Explorer Campo, è possibile anche selezionare il menu Crystal Reports e scegliere Explorer
Campo.

15. In Explorer campo, fare clic con il pulsante destro del mouse su Campi formula, quindi scegliere Nuovo...
16. Nella finestra di dialogo Nome formula, digitare MyFunctionFormula e fare clic su Usa Editor.

Viene visualizzata la finestra Workshop formule, costituita da quattro riquadri orizzontali.


17. Nel terzo riquadro, espandere Funzioni.
18. Espandere Funzioni supplementarie al suo interno le UFL COM e .NET (u212com.dll).

Viene visualizzata la funzione creata: CSExchangeRateExchangeUflConvertUSDollarsToCDN (o


VBExchangeRateExchangeUflConvertUSDollarsToCDN).
19. Fare doppio clic su CSExchangeRateExchangeUflConvertUSDollarsToCDN (o su
VBExchangeRateExchangeUflConvertUSDollarsToCDN).

La funzione CSExchangeRateExchangeUflConvertUSDollarsToCDN() (o
VBExchangeRateExchangeUflConvertUSDollarsToCDN()) viene visualizzata nel riquadro in basso, dove ora è
possibile creare la formula.
20. Nel riquadro in basso, posizionare il cursore all'interno delle parentesi della funzione.
21. Nel secondo riquadro, espandere Campi report e fare doppio clic su Clienti.Vendite anno precedente.

Clienti.Vendite anno precedente viene inserito come parametro all'interno della funzione
ConvertUSDollarsToCDN.
22. Nella barra degli strumenti, fare clic su Verifica.

La formula viene controllata senza rilevare errori.


23. Chiudere l'Editor delle formule.
24. Da Explorer Campo all'interno del nodo Campi formula, trascinare MyFunctionFormula a destra del campo
Vendite anno precedente nella sezione Dettagli del report.
25. Disporre i campi in modo da adattarli al report.
26. Fare clic su Anteprima report principale.

Il report viene visualizzato con la funzione personalizzata che ha calcolato il valore del campo
MyFunctionFormula.
27. Fare clic su Report principale per uscire dalla modalità Anteprima.

1.5.5.2.7 Per creare un'istanza del report FunctionTest come


report non incorporato e collegarla al controllo
CrystalReportViewer

Contesto

In Impostazione di un progetto [pagina 14]è stato inserito un controllo CrystalReportViewer nel Web Form o
nel Windows Form. Nel passaggio precedente, un report FunctionTest è stato aggiunto al progetto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 607
In questa sezione viene creata un'istanza del report FunctionTest come report non incorporato e collegarla al
controllo CrystalReportViewer.

Procedura

1. Aprire il Web Form o il Windows Form.


2. Dal menu Visualizza, scegliere Codice.
3. Aggiungere una nuova dichiarazione a livello di classe per la classe wrapper del report ReportDocument,
utilizzando il nome di variabile functionTestReport. Impostare il modificatore di accesso su private.

Nota
La classe ReportDocument è membro dello spazio dei nomi CrystalDecisions.CrystalReports.Engine per il
quale è stata aggiunta una dichiarazione "Imports" [Visual Basic] o "using" [C#] in Impostazione
di un progetto [pagina 14]. Quando si crea un'istanza di ReportDocument e si carica un report nello spazio
dei nomi, si ottiene l'accesso al report tramite l'SDK, senza incorporare il report.

Private functionTestReport As ReportDocument

private ReportDocument functionTestReport;

4. All'interno del metodo ConfigureCrystalReports() (creato in Impostazione di un progetto [pagina 14]),


creare un'istanza della classe ReportDocument.

functionTestReport = New ReportDocument()

functionTestReport = new ReportDocument();

5. Nella riga successiva chiamare il metodo Load() dell'istanza ReportDocument e incollarlo nel nome del file
di report.

Nota
Includere il nome del file del report in un metodo Server.MapPath() (progetto Web) o concatenare il
nome del report con la stringa restituita da Application.StartupPath() (Windows Form). Per i
progetti Web, questa operazione genera automaticamente il percorso del file del report in base al nome del
report. Per i progetti Windows Form, sarà quindi necessario copiare il report nella directory che contiene il
file eseguibile.

functionTestReport.Load(Server.MapPath("FunctionTest.rpt"))

functionTestReport.Load(Server.MapPath("FunctionTest.rpt"));

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
608 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
6. Nella riga successiva, sotto il caricamento del report, collegare la proprietà ReportSource del controllo
CrystalReportViewer all'istanza ReportDocument.

myCrystalReportViewer.ReportSource = functionTestReport

crystalReportViewer.ReportSource = functionTestReport;

A questo punto è possibile creare ed eseguire il progetto.


7. Dal menu Debug, scegliere Avvia.

Il report viene visualizzato con il nuovo campo che calcola il tasso di cambio per le vendite dell'anno
precedente in base alla User Function Library creata.
8. Tornare a Visual Studio e fare clic su Interrompi per uscire dalla modalità di debug.

1.6 Distribuzione

Questa sezione illustra il processo di distribuzione per le applicazioni Web o Windows che utilizzano SAP Crystal
Reports.

Questa sezione illustra il processo di distribuzione per le applicazioni Web o Windows che utilizzano SAP Crystal
Reports.

Nota
La distribuzione di siti Web e progetti Windows che utilizzano SAP Crystal Reports è disponibile unicamente se
è installato SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

1.6.1 Componenti della distribuzione

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio supporta progetti di distribuzione che
consentono di distribuire le applicazioni nei computer di destinazione. I progetti di distribuzione utilizzati sono
definiti "Progetto di installazione" per le applicazioni Windows o "Progetto di installazione Web" per le applicazioni
Web.

Per distribuire un'applicazione Visual Studio che utilizza SAP Crystal Reports, il progetto di distribuzione deve
disporre dei componenti riportati di seguito, in base al tipo di distribuzione che viene eseguito:

Output progetto Assembly, binari e file di supporto dal progetto necessari per la distribuzione
dell'applicazione sui computer client.

File di report Report incorporati e non incorporati da distribuire sui computer client.

Windows Installer (MSI) Componenti che consentono ai client di visualizzare le applicazioni che
utilizzano SAP Crystal Reports.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 609
.NET Framework 1.x o Componenti .NET necessari per l'esecuzione dell\rquote applicazione.
superiore

Distribuzione di Windows Installer

Quando si distribuisce un'applicazione tramite la distribuzione di Windows Installer, tutti i file di applicazione e i
file rpt vengono copiati dal computer di sviluppo al computer di destinazione separatamente da altri componenti
di terze parti.

I componenti aggiuntivi di terze parti che devono essere distribuiti per il funzionamento dell'applicazione sono gli
assembly di SAP Crystal Reports. Gli assembly di SAP Crystal Reports sono i file dll necessari per visualizzare,
esportare e stampare un report. Questi assembly sono distribuiti come file msi separato dai file dell'applicazione e
dai file rpt.

Se si distribuisce un sito Web ASP .NET, i file dell'applicazione inclusi nel progetto di distribuzione sono i seguenti:

● File Aspx
● File Aspx.cs oppure Aspx.vb
● File immagine, html o css

Se si distribuisce un'applicazione Windows, i file dell'applicazione inclusi nel progetto di distribuzione sono i
seguenti:

● File Form.cs oppure Form.vb


● File Form.Designer.cs oppure Form.Designer.vb
● File Resources.resx
● File Resources.Designer.cs oppure Resources.Designer.vb
● File immagine, html o css

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
610 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Grafico 1: Componenti per la distribuzione di Windows Installer

Distribuzione ClickOnce

Quando si distribuisce un'applicazione Windows tramite la distribuzione ClickOnce, tutti i file dell'applicazione e i
file .rpt vengono copiati su un server Web separatamente da .NET Frameworks, che viene copiato sullo stesso
server Web. Successivamente sarà possibile installare la versione più recente dell'applicazione nel computer di
destinazione da una pagina Web comune. I file dell'applicazione inclusi nel progetto di distribuzione sono i
seguenti:

● File Form.cs oppure Form.vb


● File Form.Designer.cs oppure Form.Designer.vb
● File Resources.resx
● File Resources.Designer.cs oppure Resources.Designer.vb

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 611
● File immagine, html o css

Grafico 2: Componenti per la distribuzione ClickOnce

1.6.1.1 Output progetto

L'output del progetto contiene i file delle applicazioni Web o Windows che devono essere aggiunti ai progetti di
distribuzione. È possibile scegliere di aggiungere uno o più dei seguenti tipi di output di progetto:

● Output primario, che aggiunge tutti i file .dll e .exe creati dall'applicazione Web o Windows.

Nota
In SAP Crystal Reports per Visual Studio 2005 e versioni successive, i siti Web sono stati modificati per
escludere i file dll ed exe. Pertanto non esiste un output primario da aggiungere ai siti Web.

● File di dati, che aggiunge il file Web.config, Global.asax e tutti i Web Form (pagine .aspx) creati nelle
applicazioni Web o il file App.ico per le applicazioni Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
612 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Al progetto di distribuzione è anche possibile aggiungere file di documentazione, risorse localizzate,
simboli di debug e file di origine, sebbene tali file di output del progetto non siano necessari per la
distribuzione.

È necessario aggiungere l'output primario a progetti di impostazione Winform e i file di contenuto per progetti
Web contenenti file ASPX.

1.6.1.2 File di report

I file di report da includere nel progetto di distribuzione variano in base allo scenario utilizzato per i progetti Web o
Windows. Gli scenari di collegamento di SAP Crystal Reports sono basati su report incorporati o non incorporati.

Nelle applicazioni SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio i report incorporati
sono compilati nell'applicazione. L'applicazione può quindi essere distribuita senza dover fornire i file di report
separatamente.

Per le applicazioni che utilizzano report non incorporati, è necessario distribuire i file di report con i progetti.

Nella tabella che segue sono descritte le operazioni necessarie per distribuire e visualizzare correttamente i
progetti di distribuzione che utilizzano scenari di collegamento dei report specifici.

Scenari di collegamento dei report Requisiti

● Collegamento a un percorso della directory di file ● Distribuire i file di report con il progetto di distribu­
tramite codice [pagina 169] zione.
● Collegamento a un percorso della directory di file ● Nel computer di destinazione salvare i file di report
mediante la finestra Proprietà [pagina 170] nella directory di percorso utilizzata nell'applica­
● Collegamento a un report non incorporato caricato zione Web o Windows. Seguire esattamente il
nella classe ReportDocument [pagina 198] nome del percorso utilizzato dall'applicazione.
● Collegamento a un report non incorporato caricato
in una classe di utilità per la gestione della cache
[pagina 203]

● Collegamento all'URL di un servizio Web report [pa­ ● Non è necessario distribuire i file di report; essi
gina 174] sono compilati nel progetto del servizio Web re­
port.

● Collegamento a un controllo CrystalReportSource ● Non è necessario distribuire i file di report; essi


(siti Web in Visual Studio) [pagina 172] sono compilati nel progetto.
● Collegamento a una classe di report incorporati
[pagina 196]
● Collegamento a una classe di report incorporati e
memorizzati nella cache [pagina 201]
● Collegamento a Crystal Enterprise (SAP Crystal Re­
ports 10 e versioni successive) [pagina 215]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 613
Informazioni correlate

Confronto tra i report incorporati e quelli non incorporati [pagina 162]

1.6.1.3 Common Language Runtime

Per distribuire applicazioni Visual Studio .NET, prima di installare il progetto di distribuzione è necessario
che .NET Framework sia installato nel computer di destinazione. Quando si crea un progetto di distribuzione, .NET
Framework non è incluso per impostazione predefinita

Nota
SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio supporta .NET Framework 2.0 e
versioni successive, inclusa la versione 4.0.

È possibile scaricare .NET Framework dal sito Web di Microsoft.

1.6.1.4 Supporto per applicazioni a 64 bit

Le applicazioni compilate in .NET Framework 2.0 o versioni successive possono essere installate in computer a 32
o a 64 bit. In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio a 32 bit e x64 (AMD64) è
supportata l'architettura a 64 bit.

Creazione di un'applicazione a 64 bit

È possibile compilare un'applicazione a 64 bit nei seguenti scenari:

● SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio a 32 bit in un sistema operativo
Windows a 32 bit.
● SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio a 32 bit in un server Windows a 64
bit. L'amministratore del server deve installare Common Language Runtime a 64 bit e i componenti del
pacchetto di runtime ridistribuibile SAP Crystal Reports a 64 bit.
● SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio a 32 bit in WOW64 (l'emulatore
x86 che esegue applicazioni a 32 bit in computer a 64 bit) in una workstation o in un server Windows a 64 bit. I
pacchetti di runtime ridistribuibili SAP Crystal Reports a 32 e a 64 bit devono essere installati nello stesso
computer.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
614 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.6.1.5 Package ridistribuibile del runtime di SAP Crystal
Reports

Il package ridistribuibile del runtime di SAP Crystal Reports contiene gli assembly necessari all'esecuzione delle
applicazioni .NET sviluppate con l'SDK di SAP Crystal Reports.

Se nel computer di destinazione non è installato SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio, è necessario installare separatamente il package ridistribuibile.

1.6.1.5.1 Moduli di installazione

SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio offre i tipi di moduli di installazione
ridistribuibili seguenti:

● Moduli MSI ridistribuibili destinati a ClickOnce, criteri di gruppo e distribuzioni simili.


● Moduli di unione di tipo MSM destinati a sviluppatori per la creazione di installazioni personalizzate nelle quali
il runtime CR.NET viene incorporato nell'installazione host.

Nota
il pacchetto MSI ha gli stessi componenti dei moduli MSM, ma non offre le stesse opzioni di configurazione. Il
pacchetto MSI viene utilizzato solo per la distribuzione completa del framework incorporato di reporting di SAP
Crystal Reports .NET.

Modulo di installazione Tipo Utilizzo di desti­ Descrizione


nazione

Framework di reporting incorpo­ MSI Distribuzione Clic­ Sono inclusi i seguenti gruppi di componenti:
rato di SAP Crystal Re­ kOnce, criteri di
gruppo e così via ● Runtime di reporting nativo (ad esempio
ports .NET, versione multilingue
motore di stampa, motore di query e così
Nome file: via)
● Driver di database ed esportazione
● CRRuntime_32bit_13_x.msi
● Componenti di SAP Crystal Reports .NET
● CRRuntime_64bit_13_x.msi
● Risorse multilingue per tutti i componenti
inclusi nel modulo in tutte le lingue sup­
portate.

Framework di reporting incorpo­ MSM Incorporato nelle Sono inclusi i seguenti gruppi di componenti:
rato di SAP Crystal Re­ installazioni
● Runtime di reporting nativo (ad esempio
ports .NET, versione multilingue motore di stampa, motore di query e così
Nome file: via)
● Driver di database ed esportazione
● CRRuntime_13_0_xx.msm
● Componenti di SAP Crystal Reports .NET
● Risorse multilingue per tutti i componenti
inclusi nel modulo in tutte le lingue sup­
portate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 615
Modulo di installazione Tipo Utilizzo di desti­ Descrizione
nazione

Nota
Per utilizzare questo modulo di unione è
necessario installare i moduli di unione Mi­
crosoft. Il pacchetto dei moduli di unione
(msm) è disponibile solo nella versione a
32 bit.

Informazioni correlate

File di risorse di lingua [pagina 226]

1.6.1.5.2 Installazione invisibile del runtime di SAP Crystal


Reports

Contesto

Per installazione invisibile si intende un'installazione che viene eseguita dalla riga di comando e che non richiede
interazione da parte dell'utente.

Procedura

1. Avviare il prompt dei comandi.


2. Individuare il percorso del file di Windows Installer.
3. Eseguire l'eseguibile CRRuntime_32bit_13_x.msi o CRRuntime_64bit_13_x.msi.
Sostituire il percorso "C:\install.msi" con il percorso del file di Windows Installer.

msiexec.exe /i "C:\install.msi" /qn

Risultati

Il runtime di SAP Crystal Reports viene installato automaticamente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
616 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.6.1.5.3 Opzioni di installazione dei moduli di unione
(facoltativo)

In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio i moduli di unione aggiunti al
progetto di distribuzione permettono di includere o escludere driver di esportazione e di database SAP Crystal
Reports specifici. In questa attività viene illustrato come configurare le opzioni di installazione.

1.6.1.5.3.1 Modifica di un'opzione di installazione specifica

Procedura

1. In Visual Studio aprire il progetto di distribuzione.


2. In Esplora soluzioni, espandere il nodo del progetto di installazione. Selezionare il modulo di unione aggiunto al
progetto di distribuzione in base al tipo di computer di distribuzione.
3. Nella finestra Proprietà espandere il nodo (MergeModulesProperties). Viene visualizzata una tabella con i
driver disponibili per l'installazione.
4. Impostare il valore di un driver specifico.

○ Impostare 1 per includere il driver nel progetto di distribuzione.


○ Impostare il valore su 0 per escludere il driver dal progetto di distribuzione.

1.6.1.5.3.2 Opzioni di installazione di SAP Crystal Reports

Driver di database

Nome della proprietà per il driver di database Descrizione

InstallACT Driver di database Crystal Reports per database PC

InstallBTRIEVE Driver di database Crystal Reports per database Perva­


sive

InstallCDO32 Driver di database Crystal Reports per oggetto Crystal


Data

InstallCRDB_ADO Driver di database Crystal Reports per oggetti dati Mi­


crosoft ActiveX/OLE DB

InstallCRDB_ADOPLUS Driver di database Crystal Reports per Microsoft


ADO.NET

InstallCRDB_CDO Driver di database Crystal Reports per oggetto Crystal


Data

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 617
Nome della proprietà per il driver di database Descrizione

InstallCRDB_COM Driver di database Crystal Reports per provider di dati


COM

InstallCRDB_DATASET Driver di database Crystal Reports per provider di Da­


taSet

InstallCRDB_ODBC Driver di database Crystal Reports per ODBC

InstallCRDB_ORACLE Driver di database Crystal Reports per Oracle

InstallCRDB_QUERY Driver di database Crystal Reports per dati di query

InstallDAO Driver di database Crystal Reports per Microsoft Data


Access Objects

InstallFIELDDEF Driver di database Crystal Reports per definizioni dei


campi

InstallFILESYSTEM Driver di database Crystal Reports per dati del file sy­
stem

InstallIBM_DB2 Driver di database Crystal Reports per server DB2

InstallINFORMIX Driver di database Crystal Reports per Informix Online


Server

InstallP2BBDE Driver di database Crystal Reports per IDAPI

InstallP2BXBSE Driver di database Crystal Reports per xBase

InstallP2IXBSE_DLL DLL di database fisico Crystal Reports per xBase

InstallP2SACL Driver di database Crystal Reports per ACL di cartelle


pubbliche

InstallP2SEVT Driver di database Crystal Reports per registro eventi


NT

InstallP2SEXSR Driver di database Crystal Reports per Exchange Ser­


ver Admin

InstallP2SMAPI Driver di database Crystal Reports per cartelle e rubri­


che di Exchange

InstallP2SMSIIS Driver di database Crystal Reports per file di registro


IIS

InstallP2SOUTLK Driver di database Crystal Reports per dati di Outlook

InstallP2SREPL Driver di database Crystal Reports per replica di car­


telle pubbliche di Exchange

InstallP2STRACK Driver di database Crystal Reports per registri di rileva­


mento messaggi Exchange Server

InstallP2SWBLG Driver di database Crystal Reports per file di registro


Web

InstallSYBASE Driver di database Crystal Reports per Sybase

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
618 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Driver di esportazione

Nome della proprietà per driver di esportazione Descrizione

InstallBTRIEVE Driver di esportazione per il formato di esportazione


BTRIEVE

InstallU2DMAPI Driver di esportazione per formato di esportazione


MAPI

InstallU2DNOTES Driver di esportazione per il formato di esportazione


della destinazione del database di Lotus Notes

InstallU2DVIM Driver di esportazione nel formato di posta di Lotus No­


tes

InstallU2FCR Driver di esportazione per formato di esportazione dei


report

InstallU2FHTML Driver di esportazione per formato di esportazione


HTML 4.0

InstallU2FODBC Driver di esportazione per formato di esportazione


ODBC

InstallU2FPDF Driver di esportazione per formato di esportazione PDF

InstallU2FREC Driver di esportazione per il formato di esportazione


dei record

InstallU2FRTF Driver di esportazione per il formato di esportazione


Rich Text Format (RTF)

InstallU2FSEPV Driver di esportazione per il formato di esportazione


(CSV)

InstallU2FTEXT Driver di esportazione per il formato di esportazione di


testo

InstallU2FXLS Driver di esportazione per il formato di esportazione


Microsoft Excel (97-2003)

InstallU2FXML Driver di esportazione per il formato di esportazione


XML

Altro

Proprietà dei moduli di unione Descrizione

ForceLargerFonts Le dimensioni dei caratteri non vengono ridotte quando


si esporta un report Crystal

InstallWebViewer Visualizzatore Web di SAP Crystal Reports

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 619
Proprietà dei moduli di unione Descrizione

Keycode Codice prodotto di SAP Crystal Reports

1.6.2 Distribuzione di Visual Studio

Esistono due modi per distribuire un progetto che utilizza SAP Crystal Reports, versione per sviluppatori per
Microsoft Visual Studio:

● Distribuzione ClickOnce
● Distribuzione di Windows Installer

Distribuzione di Windows Installer

La distribuzione di Windows Installer rappresenta il modo più appropriato per distribuire progetti che utilizzano
componenti SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio. Con la distribuzione
Windows Installer è possibile distribuire a singoli computer progetti e server Web.

Vantaggi:

● Consente di aggiornare il runtime di SAP Crystal Reports con i service pack o gli hot fix più recenti senza
ridistribuire l'applicazione.
● I file di runtime di SAP Crystal Reports vengono installati una volta.
● Consente all'utente finale di eseguire installazioni invisibili.

Limitazioni:

● Installazioni separate dell'applicazione e dei componenti di runtime di SAP Crystal Reports.


● Vengono installati tutti i database e i driver di esportazione.

Distribuzione ClickOnce

La distribuzione ClickOnce semplifica la distribuzione di applicazioni Windows in una rete. Con la distribuzione
ClickOnce, l'utente finale può installare la versione più recente dell'applicazione da una pagina Web comune
anziché distribuire singolarmente l'applicazione Windows a ciascun computer di destinazione.

Vantaggi:

● Consente all'utente finale di installare l'applicazione e tutte le dipendenze, ad esempio .NET Framework o SAP
Crystal Reports, con un semplice clic.
● Consente di rilevare automaticamente il momento in cui viene resa disponibile una versione più aggiornata
dell'applicazione e successivamente di scaricare e installare l'aggiornamento.

Limitazioni:

● Non funziona con .NET 1.x Framework.


● Aumento del tempo di installazione per il runtime di SAP Crystal Reports.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
620 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Distribuzione con moduli di unione

La distribuzione con moduli di unione può essere utilizzata per distribuire sia le applicazioni Windows, sia i
progetti Web. Mediante la distribuzione con moduli di unione è possibile allegare un insieme di componenti,
eliminando i conflitti tra le versioni e altri tipici problemi di installazione. Tra questi componenti possono figurare
file .dll, risorse, voci del registro di sistema, logica di installazione e i relativi file.

Vantaggi:

● Consente di scegliere quali driver di database e di esportazione si desidera installare.


● L'applicazione e i componenti di runtime di Crystal Reports vengono installati con un'unica operazione.
● Agli utenti finali non viene richiesto il codice di prodotto durante l'installazione. Il codice di prodotto è
incorporato nell'installazione.
● Consente all'utente finale di installare i file necessari per visualizzare mappe geografiche nei report.
● All'utente finale non vengono mostrate interfacce con il marchio Crystal Reports o Business Objects.

Limitazioni:

● L'aggiornamento dei componenti di runtime di Crystal Reports richiede la rigenerazione dell'installazione con i
più recenti moduli di unione e la ridistribuzione della propria applicazione nel computer di destinazione.
● Distribuisce agli utenti finali un pacchetto di installazione completo anche se nei computer di destinazione
sono già installati i componenti di runtime di Crystal Reports.

1.6.2.1 Requisiti

Per utilizzare le esercitazioni di distribuzione fornite in questa sezione, è necessario completare Impostazione di
un progetto [pagina 14].

Verificare i seguenti requisiti:

● Visual Studio è installato.


● Applicazione Web o Windows che utilizza SAP Crystal Reports.

Nota
Windows Installer fornisce i file di runtime di SAP Crystal Reports richiesti da un progetto di distribuzione.

Informazioni correlate

Versioni supportate di Visual Studio [pagina 9]

1.6.2.2 Distribuzione ClickOnce per Visual Studio

In questa sezione verrà illustrato come distribuire progetti che utilizzano la distribuzione ClickOnce.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 621
La distribuzione ClickOnce riduce il tempo e gli sforzi richiesti per distribuire applicazioni Windows in rete. Anziché
distribuire un eseguibile separato a ogni singola unità disco rigido, la distribuzione ClickOnce salva l'eseguibile in
una pagina Web comune da cui tutti gli utenti potranno avviarlo. Il processo di avvio prevede la copia
dell'eseguibile sul disco rigido dell'utente che può essere utilizzata per riavviare l'applicazione localmente. La
copia locale controlla con regolarità se l'eseguibile di origine è stato aggiornato sulla pagina Web.

Gli aggiornamenti all'applicazione Windows possono essere nuovamente pubblicati sul server Web, rendendoli
così disponibili per i client. Quando una versione obsoleta dell'applicazione Windows viene aperta localmente in un
computer client, viene visualizzata una finestra di dialogo di aggiornamento con l'opzione per verificare la
presenza di eventuali aggiornamenti sul server Web.

1.6.2.2.1 Per impostare le opzioni di distribuzione ClickOnce

Prerequisiti

È necessario disporre di un'applicazione Windows completata che utilizzi SAP Crystal Reports.

Contesto

È necessario impostare le proprietà relative a protezione e pubblicazione nella finestra Proprietà dell'applicazione.

● La proprietà Security imposta le autorizzazioni per l'applicazione. Per impostazione predefinita, la


distribuzione ClickOnce presenta un sottoinsieme limitato di autorizzazioni. È possibile impostare le
autorizzazioni in modo da permettere la distribuzione solo su computer client nell'ambito di Internet o di reti
intranet oppure concedere autorizzazioni complete.
● La proprietà Publish imposta il percorso di distribuzione sull'URL di un sito Web, su un server FTP o su un
percorso di file. nonché i prerequisiti e gli aggiornamenti necessari per l'applicazione distribuita.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, quindi
scegliere Proprietà.
2. Fare clic sulla scheda Protezione.
3. Selezionare Attiva le impostazioni di protezione ClickOnce.
Per impostazione predefinita, l'autorizzazione di protezione ClickOnce è impostata su È un'applicazione
completamente attendibile.
4. Fare clic sulla scheda Pubblica, quindi su Prerequisiti.
5. Nell'elenco Scegliere i prerequisiti da installare della finestra di dialogo Prerequisiti, selezionare le versioni
di .NET Framework e SAP Crystal Reports corrette. Per ulteriori informazioni, vedere di seguito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
622 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Se prima della distribuzione dell'applicazione Windows vengono installate le versioni di SAP Crystal
Reports e del runtime di .NET Framework corrette, il tempo di installazione diminuisce in maniera
significativa.

6. Fare clic su OK.


7. Nella scheda Pubblica, selezionare Aggiornamenti. Nella finestra di dialogo Aggiornamenti applicazione,
verificare che le seguenti opzioni siano selezionate:
a) Selezionare Controlla aggiornamenti dell'applicazione.
b) Nell'elenco Scegliere quando controllare la disponibilità di aggiornamenti, selezionare Prima dell'avvio
dell'applicazione.
8. Fare clic su OK per chiudere la finestra di dialogo.
9. Dal menu File, scegliere Salva tutto.

1.6.2.2.2 Per pubblicare l'applicazione Windows

Contesto

In questa sezione viene descritto come utilizzare la Pubblicazione guidata per pubblicare l'applicazione Windows
su un sito Web.

Nota
Quando si modifica l'applicazione nel computer di sviluppo, l'applicazione viene nuovamente pubblicata e le
proprietà relative all'aggiornamento vengono impostate. Quando una versione obsoleta dell'applicazione viene
aperta sul computer client, viene inviata una notifica al client per segnalare la disponibilità della nuova versione
dell'applicazione Windows.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, quindi
scegliere Pubblica.
2. Quando viene visualizzata la finestra di dialogo Pubblicazione guidata, specificare il percorso in cui pubblicare
l'applicazione, quindi fare clic su Avanti.
3. Nella finestra di dialogo Specificare se l'applicazione sarà disponibile non in linea, selezionare Applicazione
disponibile in linea o non in linea, quindi fare clic su Avanti.
4. Nella finestra di dialogo Pronto per la pubblicazione, prendere nota dell'URL in cui l'applicazione è stata
pubblicata, quindi fare clic su Fine.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 623
1.6.2.2.3 Installazione ed esecuzione di un'applicazione
Windows su un computer client

Contesto

Per completare la distribuzione ClickOnce, è necessario aprire il sito Web pubblicato sul computer client e
scegliere quale opzione utilizzare per installare l'applicazione Windows.

Procedura

1. Sul computer client aprire la finestra di un browser Web.


2. Nella barra degli indirizzi del browser, digitare l'URL del sito Web pubblicato, creato nel corso della procedura
precedente.

http://localhost/ProjectName/publish.htm

Il sito Web pubblicato visualizza il nome dell'applicazione Windows.


3. Tale sito contiene i collegamenti per installare ed eseguire l'applicazione Windows con o senza i prerequisiti.

○ Se i prerequisiti sono già stati installati sul computer client, fare clic sul collegamento di avvio per eseguire
l'applicazione.
○ Per installare i prerequisiti sul computer client ed eseguire l'applicazione, fare clic sul pulsante di
installazione.
4. Installare l'applicazione, accettando il Contratto di licenza se viene visualizzato.
5. Al termine dell'installazione, è possibile accedere all'applicazione Windows dal menu Start.

1.6.2.3 Distribuzione con Windows Installer per Visual Studio

In questa sezione viene spiegato come distribuire progetti che utilizzano SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio con tecnologia Windows Installer. Windows Installer consente di gestire
progetti di distribuzione piccoli e di ridurre i tempi di installazione.

Windows Installer può essere utilizzato quando è necessario installare più progetti di distribuzione nello stesso
computer di destinazione. In tal caso, i file di runtime di SAP Crystal Reports vengono installati una volta.

1.6.2.3.1 Creazione di un nuovo progetto di distribuzione di


un sito Web con Windows Installer

Per distribuire il sito Web, seguire le istruzioni dell'esercitazione riportate in questa sezione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
624 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Per prima cosa, creare un progetto di installazione Web per distribuire un sito Web che utilizzi SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio. Quindi, aggiungere i file di output necessari per
l'esecuzione dell'applicazione. Infine, generare i file di installazione che consentono di distribuire il sito Web.

1.6.2.3.1.1 Per creare un progetto di installazione per siti


Web

Prerequisiti

È necessario che il sito Web sia completo e utilizzi SAP Crystal Reports.

Contesto

In questo esempio, viene creato un progetto di installazione Web per siti Web dai progetti di distribuzione
disponibili in Visual Studio.

Procedura

1. In Visual Studio aprire il sito Web.


2. Dal menu File, scegliere Aggiungi, quindi fare clic su Nuovo progetto.
3. Spostarsi nel pannello Tipi progetto della finestra di dialogo Aggiungi nuovo progetto.
4. Espandere Altri tipi di progetto e selezionare Progetti di installazione e distribuzione.
5. Nel riquadro Modelli, selezionare Progetto di installazione Web.
6. Scegliere un nome appropriato per il progetto e specificarne il percorso, quindi fare clic su OK.
Il progetto di installazione utilizzato nell'esercitazione è denominato WebSetup1.
7. Nella scheda File System, fare clic su Cartella Applicazione Web.
8. Nella finestra Proprietà, impostare la proprietà DefaultDocument sulla pagina iniziale (un file ASPX) del sito
Web.
La proprietà VirtualDirectory del progetto di installazione Web è stata impostata sul nome del progetto.

1.6.2.3.1.2 Per aggiungere file di output al progetto di


installazione Web

Contesto

Questa attività consente di aggiungere al progetto di installazione Web i file di output utilizzati dal sito Web.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 625
Procedura

1. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebSetup1, scegliere Aggiungi, quindi Output
progetto.
2. Nella finestra di dialogo Aggiungi gruppo output progetto selezionare File di dati e Output primario (se
disponibile).

Lasciare l'impostazione di Configurazione su (Attiva).

1.6.2.3.1.3 Per generare un progetto di installazione Web

Prerequisiti

Nel computer di destinazione è installata la versione .NET Framework richiesta.

Contesto

La generazione del progetto di installazione Web crea i file di installazione da copiare in altri computer. Per
distribuire il sito Web, eseguire uno di questi file di installazione nel computer di destinazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su WebSetup1, quindi scegliere Proprietà.
Il progetto di installazione utilizzato nell'esercitazione è denominato WebSetup1.
2. Impostare Configurazione soluzione su Rilascia.
3. Dal menu Genera, scegliere Genera WebSetup1.

Risultati

Il processo di generazione crea i seguenti file di installazione:

● setup.exe
● setup1.msi

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
626 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.6.2.3.1.4 Per distribuire un progetto di installazione Web

Prerequisiti

Il server di applicazioni del computer di destinazione deve essere impostato sul numero della versione di .Net
Framework utilizzata per generare il progetto di installazione.

Procedura

1. All'esterno di Visual Studio, spostarsi nella directory in cui è stato salvato il progetto di distribuzione.
2. Fare doppio clic sulla cartella WebSetup1.
3. Aprire la cartella Release per trovare i file generati dal progetto di installazione Web.
4. Copiare tutti i file nel computer di destinazione.
5. Distribuire i report Crystal utilizzati nel sito Web.

Per ulteriori informazioni sugli scenari di collegamento che richiedono la distribuzione dei file di report, vedere
File di report [pagina 613].
6. Nel computer di destinazione fare doppio clic su Setup.exe o WebSetup1.msi per installare il sito Web.
7. Per visualizzare il sito Web distribuito, aprire una finestra del browser Web nel computer di destinazione,
quindi digitare http://localhost/WebSetup1 nella barra degli indirizzi.
Sostituire localhost con il nome del server.

1.6.2.3.2 Creazione di un nuovo progetto di distribuzione di


applicazioni Windows con Windows Installer

Per distribuire le applicazioni Windows, seguire le istruzioni dell'esercitazione riportate in questa sezione.

Per prima cosa, creare un progetto di installazione per applicazioni Windows per distribuire un'applicazione
Windows che utilizzi SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio. Quindi,
aggiungere i file di output necessari per l'esecuzione dell'applicazione. Infine, generare i file di installazione che
consentono la distribuzione dell'applicazione Windows.

1.6.2.3.2.1 Per creare un progetto di installazione per


applicazioni Windows

Prerequisiti

È necessario disporre di un'applicazione Windows completa che utilizzi SAP Crystal Reports.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 627
Contesto

In questo esempio, viene creato un progetto di installazione Web per siti Web dai progetti di distribuzione
disponibili in Visual Studio.

Procedura

1. In Visual Studio aprire l'applicazione Windows.


2. Dal menu File, scegliere Aggiungi, quindi fare clic su Nuovo progetto.
3. Spostarsi nel pannello Tipi progetto della finestra di dialogo Aggiungi nuovo progetto.
4. Espandere Altri tipi di progetto e selezionare Progetti di installazione e distribuzione.
5. Nel riquadro Modelli, selezionare Progetto di installazione.
6. Scegliere un nome appropriato per il progetto e specificarne il percorso, quindi fare clic su OK.
Il progetto di installazione utilizzato nell'esercitazione è denominato Setup1.

1.6.2.3.2.2 Per aggiungere file di output al progetto di


installazione Windows

Contesto

In questo esempio vengono aggiunti al progetto di installazione i file di output utilizzati dall'applicazione Windows.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Setup1, scegliere Aggiungi, quindi fare clic su
Output progetto.
2. Nella finestra di dialogo Aggiungi gruppo output progetto, selezionare Output primario. Lasciare
l'impostazione di Configurazione su (Attiva).

1.6.2.3.2.3 Per generare un progetto di installazione


Windows

Prerequisiti

Nel computer di destinazione deve essere installato .NET Framework.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
628 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Contesto

La generazione del progetto di installazione crea i file di installazione da copiare in altri computer. Per distribuire
l'applicazione Windows, eseguire uno di questi file di installazione nel computer di destinazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Setup1, quindi scegliere Proprietà.
2. Impostare Configurazione soluzione su Rilascia.
3. Dal menu Genera, fare clic su Build Setup1.

Risultati

Il processo di generazione crea i seguenti file di installazione:

● setup.exe
● setup1.msi

1.6.2.3.2.4 Per distribuire un progetto di installazione


Windows

Procedura

1. All'esterno di Visual Studio, spostarsi nella directory in cui è stato salvato il progetto di distribuzione.
2. Fare doppio clic sulla cartella Setup1.
3. Aprire la cartella Release per trovare i file generati dal progetto di installazione.
4. Copiare tutti i file nel computer di destinazione.
5. Distribuire i report Crystal utilizzati nell'applicazione Windows.
Per ulteriori informazioni sugli scenari di collegamento che richiedono la distribuzione dei file di report, vedere

File di report [pagina 613].


6. Nel computer di destinazione fare doppio clic su Setup.exe o Setup1.msi per installare l'applicazione Windows.
7. Per visualizzare l'applicazione Windows, spostarsi nel relativo percorso di installazione C:\Programmi
\Business Objects\Setup1 e fare doppio clic sul file exe dell'applicazione Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 629
1.6.2.3.3 Esecuzione di un'installazione automatica con
Windows Installer

Contesto

Windows Installer permette di effettuare l'installazione automaticamente su un computer client. Per installazione
invisibile si intende un'installazione che viene eseguita dalla riga di comando e che non richiede interazione da
parte dell'utente.

Procedura

1. Avviare il prompt dei comandi.


2. Individuare il percorso del file di Windows Installer.
3. Eseguire il file eseguibile msiexec.exe.
Sostituire il percorso "C:\install.msi" con il percorso del file di Windows Installer.

msiexec.exe /i "C:\install.msi" /qn

L'applicazione viene installata.

1.6.2.4 Distribuzione dei moduli di unione per Visual Studio

Le procedure descritte nelle sezioni seguenti creano progetti di distribuzione con moduli di unione per siti Web o
applicazioni Windows che utilizzano SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio.

Se si utilizzano scenari di collegamento dei report per Crystal Services, le procedure di distribuzione sono
leggermente diverse da quelle descritte in questa esercitazione.

Nota
Windows Installer rappresenta il modo più appropriato per distribuire progetti che utilizzano SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio.

Informazioni correlate

Distribuzione con Windows Installer per Visual Studio [pagina 624]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
630 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.6.2.4.1 Creazione di un nuovo progetto di distribuzione di
un sito Web con moduli di unione

Per distribuire il sito Web, seguire le istruzioni dell'esercitazione riportate in questa sezione.

Per prima cosa, creare un progetto di installazione Web per distribuire un sito Web che utilizzi SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio. Quindi, aggiungere i file di output e i moduli di
unione necessari per l'esecuzione dell'applicazione. Infine, generare i file di installazione che consentono di
distribuire il sito Web.

1.6.2.4.1.1 Per creare un progetto di installazione per siti


Web

Prerequisiti

È necessario che il sito Web sia completo e utilizzi SAP Crystal Reports.

Contesto

In questo esempio, viene creato un progetto di installazione Web per siti Web dai progetti di distribuzione
disponibili in Visual Studio.

Procedura

1. In Visual Studio aprire il sito Web.


2. Dal menu File, scegliere Aggiungi, quindi fare clic su Nuovo progetto.
3. Spostarsi nel pannello Tipi progetto della finestra di dialogo Aggiungi nuovo progetto.
4. Espandere Altri tipi di progetto e selezionare Progetti di installazione e distribuzione.
5. Nel riquadro Modelli, selezionare Progetto di installazione Web.
6. Scegliere un nome appropriato per il progetto e specificarne il percorso, quindi fare clic su OK.
Il progetto di installazione utilizzato nell'esercitazione è denominato WebSetup1.
7. Nella scheda File System, fare clic su Cartella Applicazione Web.
8. Nella finestra Proprietà, impostare la proprietà DefaultDocument sulla pagina iniziale (un file ASPX) del sito
Web.
La proprietà VirtualDirectory del progetto di installazione Web è stata impostata sul nome del progetto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 631
1.6.2.4.1.2 Per aggiungere file di output al progetto di
installazione Web

Contesto

Questa attività consente di aggiungere al progetto di installazione Web i file di output utilizzati dal sito Web.

Procedura

1. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebSetup1, scegliere Aggiungi, quindi Output
progetto.
2. Nella finestra di dialogo Aggiungi gruppo output progetto selezionare File di dati e Output primario (se
disponibile).

Lasciare l'impostazione di Configurazione su (Attiva).

1.6.2.4.1.3 Aggiunta di moduli di unione al progetto di


installazione Web

Procedura

1. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebSetup1, selezionare Aggiungi, quindi
Modulo unione....
2. Nella finestra di dialogo Aggiungi moduli spostarsi nella cartella del proprio computer in cui è stato salvato il
pacchetto dei moduli di unione.
3. Selezionare i moduli di unione necessari per la propria applicazione Web e aggiungerli all'applicazione.
4. In Esplora soluzioni, controllare che i moduli di unione selezionati siano stati aggiunti in Setup1.

1.6.2.4.1.4 Per generare un progetto di installazione Web

Prerequisiti

Nel computer di destinazione è installata la versione .NET Framework richiesta.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
632 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Contesto

La generazione del progetto di installazione Web crea i file di installazione da copiare in altri computer. Per
distribuire il sito Web, eseguire uno di questi file di installazione nel computer di destinazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su WebSetup1, quindi scegliere Proprietà.
Il progetto di installazione utilizzato nell'esercitazione è denominato WebSetup1.
2. Impostare Configurazione soluzione su Rilascia.
3. Dal menu Genera, scegliere Genera WebSetup1.

Risultati

Il processo di generazione crea i seguenti file di installazione:

● setup.exe
● setup1.msi

1.6.2.4.1.5 Per distribuire un progetto di installazione Web

Prerequisiti

Il server di applicazioni del computer di destinazione deve essere impostato sul numero della versione di .Net
Framework utilizzata per generare il progetto di installazione.

Procedura

1. All'esterno di Visual Studio, spostarsi nella directory in cui è stato salvato il progetto di distribuzione.
2. Fare doppio clic sulla cartella WebSetup1.
3. Aprire la cartella Release per trovare i file generati dal progetto di installazione Web.
4. Copiare tutti i file nel computer di destinazione.
5. Distribuire i report Crystal utilizzati nel sito Web.

Per ulteriori informazioni sugli scenari di collegamento che richiedono la distribuzione dei file di report, vedere
File di report [pagina 613].
6. Nel computer di destinazione fare doppio clic su Setup.exe o WebSetup1.msi per installare il sito Web.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 633
7. Per visualizzare il sito Web distribuito, aprire una finestra del browser Web nel computer di destinazione,
quindi digitare http://localhost/WebSetup1 nella barra degli indirizzi.
Sostituire localhost con il nome del server.

1.6.2.4.2 Creazione di un nuovo progetto di distribuzione di


applicazioni Windows con moduli di unione

Per distribuire le applicazioni Windows, seguire le istruzioni dell'esercitazione riportate in questa sezione.

Per prima cosa, creare un progetto di installazione per applicazioni Windows per distribuire un'applicazione
Windows che utilizzi SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio. Quindi,
aggiungere i file di output e i moduli di unione necessari per l'esecuzione dell'applicazione. Infine, generare i file di
installazione che consentono la distribuzione dell'applicazione Windows.

1.6.2.4.2.1 Per creare un progetto di installazione per


applicazioni Windows

Prerequisiti

È necessario disporre di un'applicazione Windows completa che utilizzi SAP Crystal Reports.

Contesto

In questo esempio, viene creato un progetto di installazione Web per siti Web dai progetti di distribuzione
disponibili in Visual Studio.

Procedura

1. In Visual Studio aprire l'applicazione Windows.


2. Dal menu File, scegliere Aggiungi, quindi fare clic su Nuovo progetto.
3. Spostarsi nel pannello Tipi progetto della finestra di dialogo Aggiungi nuovo progetto.
4. Espandere Altri tipi di progetto e selezionare Progetti di installazione e distribuzione.
5. Nel riquadro Modelli, selezionare Progetto di installazione.
6. Scegliere un nome appropriato per il progetto e specificarne il percorso, quindi fare clic su OK.
Il progetto di installazione utilizzato nell'esercitazione è denominato Setup1.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
634 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.6.2.4.2.2 Per aggiungere file di output al progetto di
installazione Windows

Contesto

In questo esempio vengono aggiunti al progetto di installazione i file di output utilizzati dall'applicazione Windows.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Setup1, scegliere Aggiungi, quindi fare clic su
Output progetto.
2. Nella finestra di dialogo Aggiungi gruppo output progetto, selezionare Output primario. Lasciare
l'impostazione di Configurazione su (Attiva).

1.6.2.4.2.3 Aggiunta di moduli di unione al progetto di


installazione Windows

Procedura

1. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebSetup1, selezionare Aggiungi, quindi
Modulo unione....
2. Nella finestra di dialogo Aggiungi moduli spostarsi nella cartella del proprio computer in cui è stato salvato il
pacchetto dei moduli di unione.
3. Selezionare i moduli di unione necessari per l'applicazione Windows e aggiungerli all'applicazione.
4. In Esplora soluzioni, controllare che i moduli di unione selezionati siano stati aggiunti in Setup1.

1.6.2.4.2.4 Per generare un progetto di installazione


Windows

Prerequisiti

Nel computer di destinazione deve essere installato .NET Framework.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 635
Contesto

La generazione del progetto di installazione crea i file di installazione da copiare in altri computer. Per distribuire
l'applicazione Windows, eseguire uno di questi file di installazione nel computer di destinazione.

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Setup1, quindi scegliere Proprietà.
2. Impostare Configurazione soluzione su Rilascia.
3. Dal menu Genera, fare clic su Build Setup1.

Risultati

Il processo di generazione crea i seguenti file di installazione:

● setup.exe
● setup1.msi

1.6.2.4.2.5 Per distribuire un progetto di installazione


Windows

Procedura

1. All'esterno di Visual Studio, spostarsi nella directory in cui è stato salvato il progetto di distribuzione.
2. Fare doppio clic sulla cartella Setup1.
3. Aprire la cartella Release per trovare i file generati dal progetto di installazione.
4. Copiare tutti i file nel computer di destinazione.
5. Distribuire i report Crystal utilizzati nell'applicazione Windows.
Per ulteriori informazioni sugli scenari di collegamento che richiedono la distribuzione dei file di report, vedere

File di report [pagina 613].


6. Nel computer di destinazione fare doppio clic su Setup.exe o Setup1.msi per installare l'applicazione Windows.
7. Per visualizzare l'applicazione Windows, spostarsi nel relativo percorso di installazione C:\Programmi
\Business Objects\Setup1 e fare doppio clic sul file exe dell'applicazione Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
636 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.6.2.5 Migrazione di un progetto che utilizza la distribuzione
dei moduli di unione in un progetto che utilizza la distribuzione
di Windows Installer

Per eseguire la migrazione di un progetto SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio che utilizza la distribuzione dei moduli di unione nella distribuzione di Windows Installer, è necessario
seguire le istruzioni incluse in questa sezione.

È necessario rimuovere i moduli di unione dal progetto di installazione. Quindi, ricreare il progetto di installazione.
Infine, usare il file .msi di Windows Installer per distribuire l'applicazione.

Il progetto di installazione utilizzato nell'esercitazione è denominato Setup1.

Nota
Se si utilizza un progetto Visual Studio .NET generato con una versione di Visual Studio precedente, è
innanzitutto necessario convertire l'applicazione Windows o il sito Web in un progetto Visual Studio 2010 o
versione successiva.

1.6.2.5.1 Per rimuovere i moduli di unione dal progetto di


installazione

Procedura

1. In Visual Studio aprire il progetto.


2. In Esplora soluzioni espandere Setup1, e posizionare il puntatore del mouse su un modulo di unione aggiunto
al progetto di installazione. Scegliere Rimuovi.
3. Ripetere le operazioni descritte al punto 2 per rimuovere tutti i moduli di unione di SAP Crystal Reports,
versione per sviluppatori per Microsoft Visual Studio.

1.6.2.5.2 Per generare e distribuire il progetto di


installazione

Dopo avere rimosso i moduli di unione dal progetto di installazione, è necessario creare e distribuire il progetto di
installazione. Per ulteriori informazioni, vedere Per generare un progetto di installazione Windows [pagina 635].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 637
1.7 Creazione di report

In questa sezione vengono fornite informazioni dettagliate sulle modalità di utilizzo di SAP Crystal Reports
Designer incorporato all'interno di Visual Studio. Contiene, inoltre, una panoramica sulla sintassi che è possibile
utilizzare per la creazione di formule in un report Crystal nonché una serie di riferimenti all'interfaccia utente.

SAP Crystal Reports Designer incorporato viene fornito con esercitazioni per facilitare l'apprendimento e la
comprensione di SAP Crystal Reports:

● Per le istruzioni dettagliate sulle modalità di utilizzo dell'SDK di SAP Crystal Reports .Net, vedere Utilizzo di
SDK [pagina 111]. Questo è utile se si ha già familiarità con i concetti di reporting.

Informazioni correlate

Utilizzo di SAP Crystal Reports Designer incorporato [pagina 638]

1.7.1 Utilizzo di SAP Crystal Reports Designer incorporato

SAP Crystal Reports viene utilizzato per aggiungere funzionalità di creazione di report all'applicazione o al servizio
Web. È possibile creare un report ex novo oppure utilizzare una delle Procedure guidate per la creazione di report
Crystal [pagina 649], che guidano l'utente nel processo di progettazione.

I report creati possono essere usati in applicazioni Web e Windows. È anche possibile pubblicare un report di
Crystal sotto forma di Report Web Service su un server Web.

Per creare e apportare modifiche al report, indipendentemente dalla funzione specifica di quest'ultimo, è possibile
utilizzare SAP Crystal Reports Designer incorporato. SAP Crystal Reports Designer incorporato consente di
progettare e modificare i report nell'IDE (Integrated Development Environment) di Visual Studio. È possibile
programmare la finestra di progettazione direttamente dall'IDE di Visual Studio. Non è necessario distribuire tale
finestra insieme al report.

1.7.1.1 Cenni preliminari su SAP Crystal Reports Designer


incorporato

Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

SAP Crystal Reports Designer incorporato consente di definire l'origine dati del report, di selezionare e
raggruppare i record di dati da utilizzare e di eseguire la formattazione del layout e degli oggetti del report. È
possibile creare un report ex novo oppure utilizzare una delle Procedure guidate per la creazione di report Crystal
[pagina 649], che guidano l'utente nel processo di progettazione.

SAP Crystal Reports Designer incorporato utilizza un approccio di trascinamento della selezione analogo a quello
di Visual Studio, che consiste nel trascinare un oggetto del report sulla finestra di progettazione (ad esempio un

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
638 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
campo di database o un oggetto di testo) e nell'utilizzo della finestra o del menu di scelta rapida delle proprietà
per formattare l'oggetto.

1.7.1.1.1 Accesso a SAP Crystal Reports Designer


incorporato

Quando si fa doppio clic su un oggetto report Crystal già presente nel progetto o si aggiunge un nuovo oggetto
report, SAP Crystal Reports Designer incorporato viene avviato automaticamente.

Informazioni correlate

Accesso e aggiunta di dati [pagina 657]

1.7.1.1.1.1 Per creare un nuovo report

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto per
visualizzare il menu di scelta rapida.
2. Scegliere Aggiungi, quindi Aggiungi nuovo elemento.
3. Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Crystal Report dal riquadro Modelli. Fare clic su
Aggiungi.
4. In Galleria Crystal Reports, selezionare una delle seguenti opzioni:

○ Uso della procedura guidata Report – guida l'utente nel processo di creazione del report e aggiunge le
scelte dell'utente a SAP Crystal Reports Designer incorporato.
○ Come Report vuoto – apre SAP Crystal Reports Designer incorporato.
○ Da un report esistente – crea un nuovo report con la stessa progettazione di un altro report specificato.

Nota
La galleria contiene diversi esperti che garantiscono assistenza nella creazione di tipi di report specifici.
È consigliabile creare i primi report utilizzando gli esperti, in modo da scegliere il metodo di creazione
più adatto alle proprie esigenze.

5. Fare clic su OK.


6. Salvare il report facendo clic su Salva sulla barra degli strumenti Standard.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 639
Risultati

Se si sceglie di utilizzare la Procedura guidata report, viene visualizzata la finestra di dialogo Procedura guidata
per la creazione di report standard insieme alla schermata Dati attiva. Selezionare i dati necessari per ogni
cartella, utilizzando le diverse schermate della creazione guidata report, quindi fare clic su Fine per accedere a
SAP Crystal Reports Designer incorporato e al report desiderato.

1.7.1.1.2 Layout di SAP Crystal Reports Designer


incorporato

Quando si crea un report, gran parte dell'attività di progettazione avviene in SAP Crystal Reports Designer
incorporato. La finestra di progettazione è suddivisa in sezioni di report con etichetta. È possibile inserire gli
oggetti report, quali i campi di database, di formule, di parametri e di totali parziali nella sezione in cui si desidera
visualizzarli.

SAP Crystal Reports Designer incorporato fornisce un ambiente estremamente valido per la progettazione di un
report, in quanto, anche se si utilizzano dati di database, non è richiesto l'aggiornamento a ogni modifica
apportata. Quando si inserisce un campo nel report, SAP Crystal Reports Designer incorporato utilizza una
cornice per identificare il campo sulla scheda, anziché recuperare i dati. Pertanto è possibile aggiungere ed
eliminare i campi e altri tipi di oggetto, spostarli e impostare formule complesse senza attendere l'aggiornamento
dei dati.

Il seguente diagramma illustra la visualizzazione di un esempio di report sulle vendite mondiali in SAP Crystal
Reports Designer incorporato.

Explorer Campo [pagina 646] e le Barre degli strumenti di Crystal Reports [pagina 647] (pulsanti sulla barra
degli strumenti) fanno parte del componente SAP Crystal Reports Designer incorporato. Le sezioni di report in
SAP Crystal Reports Designer incorporato mostrano gli oggetti report inclusi in ciascuna sezione.

Nell'esempio riportato di seguito, "Intestazione report a" contiene il logo della società mentre "Intestazione report
c" contiene un grafico delle vendite per paese relative all'ultimo anno. Il logo e il grafico sono gli oggetti report
trascinati sulla pagina di progettazione e formattati. Il logo e il grafico, poiché appartengono all'Intestazione
report, verranno visualizzati solo una volta nel report finito.

Explorer Campo [pagina 646] elenca tutti i campi disponibili per il report. I segni di spunta indicano i campi
inseriti nel report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
640 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Progettazione di nuovi report [pagina 653]


Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

1.7.1.1.2.1 Cenni preliminari sulle sezioni di report

Nel caso di un nuovo report, SAP Crystal Reports Designer incorporato è suddiviso in cinque sezioni. È possibile
scegliere di creare sezioni aggiuntive o nascondere determinate sezioni.

● Intestazione report
● Intestazione pagina
● Dettagli
● Piè di pagina report
● Piè di pagina

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 641
I dati visualizzati nel report finito dipendono dalle opzioni di progettazione scelte: in particolare, i dati del report
variano a seconda delle sezioni in cui si sceglie di inserire determinati oggetti report. Se, ad esempio, si inserisce
un oggetto grafico nella sezione Intestazione report, il grafico viene visualizzato una sola volta all'inizio del report e
riepiloga i dati contenuti nel report. Altrimenti, se viene aggiunto un oggetto grafico alla sezione Intestazione
gruppo, viene visualizzato un grafico diverso all'inizio di ogni gruppo di dati in cui sono riepilogati i dati relativi solo
a quel gruppo.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Modello di elaborazione dei report [pagina 651]
Sezioni del report nascoste [pagina 765]
Descrive come nascondere o eseguire un'analisi dettagliata sulle informazioni del report.

Progettazione di nuovi report [pagina 653]


Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

1.7.1.1.2.1.1 Intestazione report

Gli oggetti inseriti nella sezione Intestazione report vengono stampati una sola volta, all'inizio del report.

In genere, la sezione Intestazione report contiene il titolo del report e altre informazioni che si desidera
visualizzare solo all'inizio del report.

● I grafici e i campi incrociati inseriti nella sezione contengono i dati dell'intero report.
● Le formule presenti in questa sezione vengono calcolate una sola volta, all'inizio del report.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari su SAP Crystal Reports Designer incorporato [pagina 638]
Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

1.7.1.1.2.1.2 Intestazione pagina

Gli oggetti presenti nella sezione Intestazione pagina vengono stampati all'inizio di ciascuna pagina nuova.

In genere, la sezione Intestazione pagina contiene le informazioni che si desidera visualizzare nella parte superiore
di ogni pagina, ad esempio campi di testo, quali i nomi dei capitoli, il nome del documento o altre informazioni di
questo tipo. La sezione può anche contenere i titoli dei campi, che verranno visualizzati successivamente sotto
forma di etichette al di sopra delle colonne dei dati di campo del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
642 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● In questa sezione non è possibile inserire grafici e campi incrociati.
● Le formule presenti in questa sezione vengono valutate una sola volta per pagina, all'inizio di ogni pagina
nuova.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari su SAP Crystal Reports Designer incorporato [pagina 638]
Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

1.7.1.1.2.1.3 Dettagli

Gli oggetti presenti nella sezione Dettagli vengono stampati con ogni record nuovo.

La sezione Dettagli contiene i dati del corpo del report. Di solito, in questa sezione vengono visualizzati i dati di
report principali. Quando il report viene eseguito, la sezione Dettagli viene visualizzata per ogni record. Ad
esempio, se alla suddetta sezione si aggiunge un oggetto database che contiene 100 record, il report genererà
100 sezioni di dettaglio differenti durante l'esecuzione.

● In questa sezione non è possibile inserire grafici e campi incrociati.


● Le formule inserite in questa sezione vengono valutate una sola volta per record.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari su SAP Crystal Reports Designer incorporato [pagina 638]
Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

1.7.1.1.2.1.4 Piè di pagina report

Gli oggetti presenti nella sezione Piè di pagina report vengono stampati una sola volta alla fine del report.

La sezione contiene le informazioni che si desidera visualizzare una sola volta alla fine del report, ad esempio i
totali generali.

● I grafici e i campi incrociati inseriti nella sezione contengono i dati dell'intero report.
● Le formule presenti in questa sezione vengono valutate una sola volta, alla fine del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 643
Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari su SAP Crystal Reports Designer incorporato [pagina 638]
Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

1.7.1.1.2.1.5 Piè di pagina

Gli oggetti presenti nella sezione Piè di pagina vengono stampati alla fine di ogni pagina.

Di solito, la sezione contiene il numero di pagina e le informazioni che si desidera visualizzare nella parte inferiore
di ogni pagina.

● In questa sezione non è possibile inserire grafici e campi incrociati.


● Le formule presenti in questa sezione vengono valutate una sola volta per pagina, alla fine di ogni pagina
nuova.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari su SAP Crystal Reports Designer incorporato [pagina 638]
Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

1.7.1.1.2.1.6 Sezioni aggiuntive del report

Se si aggiunge un gruppo, un riepilogo o un totale parziale al report, vengono create altre due sezioni: Intestazione
di gruppo e Piè di pagina di gruppo.

Quando si aggiunge un gruppo, un riepilogo o un totale parziale, le sezioni Intestazione di gruppo e Piè di pagina di
gruppo vengono visualizzate rispettivamente al sopra e al di sotto della sezione Dettagli. Analogamente alle
sezioni di report originarie, ognuna delle sezioni aggiunte può contenere una o più sottosezioni. Per impostazione
predefinita, ciascuna area contiene una singola sezione.

Intestazione gruppo

Gli oggetti presenti nella sezione Intestazione di gruppo vengono stampati all'inizio di ciascun gruppo nuovo.

Di solito, la sezione contiene il campo del nome del gruppo e può essere utilizzata per visualizzare i grafici e i
campi incrociati in cui sono compresi i dati specifici del gruppo. La sezione Intestazione di gruppo viene stampata
una sola volta all'inizio di ogni gruppo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
644 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● I grafici e i campi incrociati inseriti in questa sezione contengono soltanto i dati del gruppo desiderato.
● Le formule presenti in questa sezione vengono valutate una sola volta per gruppo, all'inizio del gruppo.

Piè di pagina di gruppo

Gli oggetti presenti nella sezione Piè di pagina di gruppo vengono stampati alla fine di ogni gruppo.

In genere, questa sezione contiene eventuali valori di riepilogo e può essere utilizzata per la visualizzazione di
grafici e campi incrociati. La sezione Piè di pagina di gruppo viene stampata una sola volta alla fine di ogni gruppo.

● I grafici e i campi incrociati inseriti in questa sezione contengono soltanto i dati del gruppo desiderato.
● Le formule presenti in questa sezione vengono valutate una sola volta per gruppo, alla fine del gruppo.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Progettazione di nuovi report [pagina 653]
Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

1.7.1.1.2.2 Caratteristiche delle sezioni del report

Un report consiste di diverse sezioni, incluse Intestazione report, Intestazione pagina, Intestazione di gruppo,
Dettagli, Piè di pagina di gruppo, Piè di pagina e Piè di pagina report.

Ogni sezione del report è composta da una serie di linee. Quando un oggetto basato su testo viene inserito in una
sezione, viene posto su una linea, in modo che il testo sia allineato con la linea di base. L'altezza della linea, quindi,
viene regolata dal driver di stampa in modo che sia sufficiente per inserire l'oggetto.

In tal modo, l'altezza di una linea è determinata dall'oggetto basato su testo con il carattere di dimensioni maggiori
presente sulla linea.

● Se sulla stessa linea viene posizionato un altro oggetto basato su testo, con dimensioni di carattere maggiori
di quelle del primo oggetto, l'altezza della linea viene estesa per inserire il secondo oggetto.
● Se sulla stessa linea viene posizionato un altro oggetto basato su testo, con dimensioni di carattere ancora
maggiori di quelle dei primi due oggetti, l'altezza della linea viene estesa per inserire il terzo oggetto.

Quando si aggiungono oggetti basati su testo a un report, nella stessa o in altre sezioni, l’altezza della linea viene
adattata ai diversi caratteri. Poiché lo spazio verticale tra le linee è impostato dal driver di stampa, è difficile creare
report adatti a moduli prestampati, quando i report possono essere stampati in più ambienti.

Quando si progettano report, è necessario eseguire le operazioni riportate di seguito:

● utilizzare sempre le stesse dimensioni di carattere


● accertarsi di stampare i moduli prestampati dalla stessa macchina.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 645
Informazioni correlate

Oggetti campo e oggetti testo [pagina 665]


Modello di elaborazione dei report [pagina 651]
Sezioni del report nascoste [pagina 765]
Descrive come nascondere o eseguire un'analisi dettagliata sulle informazioni del report.

1.7.1.1.2.3 Formattazione delle sezioni del report

Utilizzare i comandi dei menu di scelta rapida per la formattazione delle sezioni dei report Ad esempio:

● Per formattare una sezione in un report, fare clic con il pulsante destro del mouse in SAP Crystal Reports
Designer incorporato, scegliere Report, quindi fare clic su Esperto sezione.
● Per modificare i margini di pagina, fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer
incorporato, scegliere Progettazione, quindi fare clic su Imposta pagina.
● Per attivare o disattivare il righello, fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer
incorporato, scegliere Progettazione, quindi fare clic su Righello.
● Per attivare o disattivare la griglia design, fare clic con il pulsante destro del mouse in SAP Crystal Reports
Designer incorporato, scegliere Progettazione, quindi fare clic su Griglia.

Informazioni correlate

Formattazione di dati [pagina 726]

1.7.1.1.2.4 Explorer Campo

Explorer Campo consente di inserire, modificare o eliminare campi dai report di Crystal.

Si tratta di un componente di SAP Crystal Reports Designer incorporato che visualizza una struttura ad albero dei
campi di database e dei campi speciali che è possibile aggiungere al report. Inoltre, Explorer Campo presenta i
campi Formula, Parametro, Nome gruppo, Totale parziale, Espressione SQL e Unbound definiti per il report.

Explorer Campo visualizza segni di spunta accanto ai campi aggiunti direttamente al report e a quelli di
riferimento o altrimenti utilizzati in altri campi e calcoli (ad esempio campi di formule, gruppi, totali parziali e
riepiloghi).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
646 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.1.2.4.1 Per visualizzare Explorer Campo da SAP Crystal
Reports Designer incorporato

Procedura

1. Dal menu Crystal Reports, fare clic su Explorer Campo.


2. Fare clic con il pulsante destro del mouse su un campo per visualizzarne le opzioni di menu.

Risultati

Nota
È possibile accedere a Explorer Campo anche in un altro modo. Fare clic sul menu Visualizza, scegliere Altre
finestre, quindi Struttura documento.

Informazioni correlate

Accesso e aggiunta di dati [pagina 657]


Cenni preliminari su SAP Crystal Reports Designer incorporato [pagina 638]
Fornisce informazioni sugli strumenti e sul layout di SAP Crystal Reports Designer incorporato.

1.7.1.1.2.5 Barre degli strumenti di Crystal Reports

Quando si apre SAP Crystal Reports Designer incorporato per creare o modificare un report, sulla barra degli
strumenti vengono automaticamente visualizzate due barre degli strumenti di SAP Crystal Reports:

Barra degli strumenti Questa barra degli strumenti contiene scelte rapide per le finestre di dialogo Explorer
Crystal Reports – Main Campo, Esperto selezione, Esperto ordinamento gruppo, Esperto ordinamento record e
Editor formato. Inoltre, la barra degli strumenti contiene le opzioni di formattazione di
base per gli oggetti di testo e una casella di riepilogo delle funzioni di zoom.

Barra degli strumenti Questa barra degli strumenti contiene i collegamenti alle finestre di dialogo Inserisci
Crystal Reports – Riepilogo, Inserisci Gruppo, Inserisci Sottoreport e Esperto grafico. Include inoltre una
Inserisci scelta rapida per l'aggiunta di un'immagine al report.

Per visualizzare/nascondere le barre degli strumenti di Crystal Reports

● Fare clic sul menu Visualizza, scegliere Barre degli strumenti, quindi Crystal Reports – Inserisci o Crystal
Reports – Principale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 647
Informazioni correlate

Layout di SAP Crystal Reports Designer incorporato [pagina 640]


Explorer Campo [pagina 646]
Personalizzazione del controllo CrystalReportViewer [pagina 221]

1.7.1.1.2.6 Menu di Crystal Reports

Quando si apre SAP Crystal Reports Designer incorporato per creare o modificare un report, il menu di SAP
Crystal Reports viene automaticamente visualizzato sulla barra degli strumenti dell'IDE di Visual Studio.

Il menu SAP Crystal Reports fornisce le stesse opzioni del menu visualizzato facendo clic con il pulsante destro
del mouse su SAP Crystal Reports Designer incorporato.

Questo menu contiene i sottomenu Inserisci, Database, Report e Progettazione e fornisce opzioni per chiudere il
sottoreport, visualizzarne un'anteprima, impostare la classe CSS del foglio di stile, aprire la visualizzazione report
precedente o successiva, controllare gli aggiornamenti e registrare SAP Crystal Reports.

Il sottomenu Inserisci viene utilizzato per inserire gli oggetti nel report, ad esempio i campi del database, gli
oggetti di testo, i riepiloghi, i gruppi, le sezioni, i campi incrociati, i sottoreport, i grafici e le immagini.

Il sottomenu Database fornisce le seguenti opzioni:

● Finestra di dialogo Esperto database [pagina 976]


● Finestra di dialogo Imposta percorso origine dati [pagina 938]
● Collegamento o scollegamento dal server (vedere Finestra di dialogo Explorer Dati [pagina 878])
● Verifica database
● Verifica su tutte le stampe
● Finestra di dialogo Mostra query SQL [pagina 941]

Il sottomenu Report fornisce le seguenti opzioni:

● Finestra di dialogo Esperto selezione [pagina 991]


● Formula di selezione (vedere Finestra di dialogo Editor delle formule [pagina 910])
● Finestra di dialogo Workshop formule [pagina 916]
● Esperto sezione [pagina 986]
● Finestra di dialogo Esperto gruppo [pagina 983]
● Finestra di dialogo Esperto ordinamento gruppo [pagina 984]
● Finestra di dialogo Opzioni dei gruppi gerarchici [pagina 917]
● Esperto ordinamento record [pagina 931]
● Finestra di dialogo Opzioni report [pagina 934]
● Finestra di dialogo Imposta data e ora di stampa [pagina 941]
● Informazioni di riepilogo (vedere Finestra di dialogo Proprietà documento [pagina 888])

Il sottomenu Progettazione fornisce le seguenti opzioni:

● Finestra di dialogo Imposta stampante [pagina 930]


● Finestra di dialogo Imposta pagina [pagina 929]
● Finestra di dialogo Impostazioni predefinite [pagina 878]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
648 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Righello
● Griglia
● Explorer Campo [pagina 646]

Informazioni correlate

Layout di SAP Crystal Reports Designer incorporato [pagina 640]


Riferimenti all'interfaccia utente [pagina 841]

1.7.1.1.2.7 Scheda Anteprima

La scheda Anteprima consente di visualizzare una versione di sola lettura del report Crystal (file .rpt), grazie
all'utilizzo del visualizzatore report ActiveX. Non è possibile modificare il report nella finestra di anteprima.

Il report corrente viene visualizzato con i relativi dati predefiniti. Se si verifica un errore di accesso al database o se
il report utilizza dati di applicazioni inclusi in report (ad esempio, raccolte di oggetti o DataSet), i dati verranno
generati temporaneamente. Un report che contiene dati salvati visualizza i dati salvati anziché accedere al
database. Fare clic sul pulsante di aggiornamento nella modalità di anteprima per generare nuovi dati. Per salvare
i dati in modalità di anteprima, selezionare l'opzione Salva i dati nel report nella parte superiore della schermata di
anteprima del report. Per impostare un report in modo da salvare sempre i dati quando il report viene salvato, è
necessario utilizzare la funzionalità di progettazione autonoma.

Nota
La scheda Anteprima non è disponibile nell'interfaccia SAP Crystal Reports Designer incorporata per Visual
Studio .NET 2003.

La scheda Anteprima è disponibile nella parte inferiore di SAP Crystal Reports Designer incorporato con il nome
"Anteprima report principale".

1.7.1.1.3 Procedure guidate per la creazione di report Crystal

È possibile utilizzare SAP Crystal Reports Designer incorporato per creare un report ex novo o una delle
procedure guidate per la creazione di report SAP Crystal Reports, che guidano l'utente nel processo di
progettazione. SAP Crystal Reports include le seguenti procedure guidate per la creazione di report:

● Standard
● Campi incrociati
● Etichetta postale

Ciascuna creazione guidata di report è costituita da numerose schermate che forniscono informazioni dettagliate
per la creazione del report specificato. Molte procedure guidate per la creazione di report sono dotate di schede
specifiche per un determinato tipo di report. Ad esempio, la Creazione guidata report etichette indirizzo [pagina
651] è dotata di una scheda che consente di specificare il tipo di etichette postali che si desidera utilizzare.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 649
1.7.1.1.3.1 Procedura guidata per la creazione di report
standard

Si tratta del più generico degli esperti. Guida l’utente nella scelta dell’origine dati e nel collegamento delle tabelle
del database. Inoltre, consente di aggiungere campi e specificare i criteri di raggruppamento, riepilogo (totali) e
ordinamento da utilizzare. Infine, guida l’utente nella creazione di grafici e nella selezione dei record.

La schermata Modello contiene layout predefiniti da applicare al report per conferirgli maggiore impatto visivo.

La Procedura guidata per la creazione di report standard si compone delle seguenti schermate:

● Schermata Dati (Creazione guidata report) [pagina 953]


● Schermata Collegamento (Creazione guidata report) [pagina 954]
● Schermata Campi (Creazione guidata report) [pagina 954]
● Schermata Raggruppamento (Creazione guidata report) [pagina 955]
● Schermata Riepiloghi (Creazione guidata report) [pagina 955]
● Schermata Ordinamento di gruppo (Creazione guidata report) [pagina 956]
● Schermata Grafico (Creazione guidata report) [pagina 957]
● Schermata Selezione record (Creazione guidata report) [pagina 958]
● Stile report (Creazione guidata report) [pagina 958]

1.7.1.1.3.2 Creazione guidata report a campi incrociati

La Creazione guidata report a campi incrociati guida l'utente nella creazione di un report nel quale i dati vengono
visualizzati in un Oggetti a campi incrociati [pagina 755]. Al suo interno sono disponibili due schermate speciali
(A campi incrociati e Stile griglia) che semplificano notevolmente la creazione e la formattazione dei campi
incrociati.

La Creazione guidata report a campi incrociati è formata dalle seguenti schermate:

● Schermata Dati (Creazione guidata report) [pagina 953]


● Schermata Collegamento (Creazione guidata report) [pagina 954]
● Schermata A campi incrociati (Creazione guidata report a campi incrociati) [pagina 959]
● Schermata Grafico (Creazione guidata report) [pagina 957]
● Schermata Selezione record (Creazione guidata report) [pagina 958]
● Schermata Stile griglia (Creazione guidata report a campi incrociati) [pagina 960]

Informazioni correlate

Oggetti a campi incrociati [pagina 755]


Illustra come aggiungere oggetti griglia a campi incrociati per organizzare i dati nel report.

Procedure guidate per la creazione di report Crystal [pagina 649]


Progettazione di nuovi report [pagina 653]
Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
650 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Oggetti a campi incrociati [pagina 755]
Illustra come aggiungere oggetti griglia a campi incrociati per organizzare i dati nel report.

1.7.1.1.3.3 Creazione guidata report etichette indirizzo


Si tratta di una procedura guidata che consente di creare report formattati per la stampa su etichette di qualsiasi
dimensione. È possibile utilizzare la schermata Etichetta per selezionare un tipo di etichetta commerciale oppure
si può definire un layout personalizzato di righe e colonne per qualsiasi tipo di report a più colonne.

La Creazione guidata report etichette indirizzo è formata dalle seguenti schermate:

● Schermata Dati (Creazione guidata report) [pagina 953]


● Schermata Collegamento (Creazione guidata report) [pagina 954]
● Schermata Campi (Creazione guidata report) [pagina 954]
● Schermata Etichetta (Creazione guidata report etichette indirizzo) [pagina 961]
● Schermata Selezione record (Creazione guidata report) [pagina 958]

Informazioni correlate

Procedure guidate per la creazione di report Crystal [pagina 649]


Progettazione di nuovi report [pagina 653]
Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

1.7.1.1.4 Modello di elaborazione dei report


SAP Crystal Reports utilizza un metodo di creazione di report a tre passaggi. Per passaggio si intende il processo
che SAP Crystal Reports esegue ogni volta che i dati vengono "letti" e manipolati. A seconda della complessità del
report, SAP Crystal Reports esegue 1, 2, o 3 passaggi. Questa funzione consente di creare report complessi e
manipolare le formule.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 651
Passaggio preliminare 1

Durante la visualizzazione dell'anteprima di un report, le formule "costanti" sono gli elementi che è necessario
valutare per primi. Le formule costanti presentano un valore costante nell’intero report e non cambiano da record
a record. non cambiano da report a report. Ad esempio, 100* 30 è una formula costante. Le formule costanti
vengono valutate all’inizio del processo di generazione di stampa e non vengono più valutate successivamente.
Questo processo viene definito “BeforeReadingRecords” (prima della lettura dei record). Se si posiziona il campo
di una formula costante, ad esempio 100*30, nella sezione Dettagli, il risultato sarebbe 3000 per ogni record
visualizzato.

Passaggio 1

Al termine del processo "BeforeReadingRecords", SAP Crystal Reports avvia la lettura dei record nel database.
Durante il processo di lettura dei record, vengono eseguite le operazioni riportate di seguito.

● Recupero dei record. In questa fase, se possibile, la selezione e l’ordinamento dei record sono inviati al
database.
● Valutazione delle formule ricorrenti. Queste formule contengono campi di database ma non riferimenti a totali
parziali o informazioni di riepilogo. Questo periodo di valutazione viene definito "WhileReadingRecords"
(durante la lettura dei record). Le formule contenenti riferimenti a totali parziali o informazioni di riepilogo
vengono elaborate nel secondo passaggio.
● Applicazione locale della selezione dei record. Se la selezione dei record è troppo complessa per essere
inviata al database, verrà applicata in questa fase da SAP Crystal Reports.
● Ordinamento, raggruppamento e calcolo dei totali. In questa fase, SAP Crystal Reports ordina e separa in
gruppi i record quindi calcola i riepiloghi e totali parziali necessari per ciascun gruppo.
● Generazione di campi incrociati, grafici e mappe. Nel passaggio 1 vengono generati solo i campi incrociati, i
grafici e le mappe che si basano interamente sui campi di database e sulle formule ricorrenti. Se tali oggetti
includono totali parziali e/o formule PrintTime, vengono generati nel passaggio 2.
● Memorizzazione dei dati salvati. Al termine del processo di calcolo dei totali, tutti i record e i totali vengono
salvati in memoria e su file temporanei. SAP Crystal Reports non legge nuovamente il database ma utilizza i
dati salvati nel corso di tutte le elaborazioni successive.
● Applicazione della formula di selezione dati salvati sui dati salvati. Se viene impostato un nuovo parametro
utilizzando questa formula, il parametro non comporta un'operazione di accesso al database.

Passaggio preliminare 2

Nel corso del passaggio preliminare 2, SAP Crystal Reports ordina i gruppi nel report per Primi/Ultimi N o
Raggruppamento gerarchico. I record non vengono letti in questo processo; SAP Crystal Reports valuta
unicamente istanze di gruppi dal passaggio n. 1 e considera Primi N appropriati oppure ordina i gruppi in base alle
impostazioni di raggruppamento gerarchico specificate.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
652 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Passaggio 2

SAP Crystal Reports sottopone i dati al secondo passaggio per eseguire la formattazione delle pagine. Le pagine
sono formattate a richiesta. Questo significa che SAP Crystal Reports non esegue la formattazione della pagina
fino a quando non verrà richiesto dall'utente o non sarà necessario per il conteggio delle pagine totali nel
passaggio 3.

Nel corso della formattazione delle pagine, SAP Crystal Reports esegue:

● formule di selezione dei gruppi


● totali intermedi
● calcolo di formule definite "WhilePrintingRecords".
Queste formule contengono riferimenti a totali parziali o informazioni di riepilogo, note anche come formule
“PrintTime”. Questo periodo di valutazione viene definito "WhilePrintingRecords" (durante la stampa dei
record).
● campi incrociati, grafici e mappe
Nel passaggio 2 vengono generati i campi incrociati, i grafici e le mappe che includono totali parziali e/o
formule PrintTime nonché i grafici che si basano sui campi incrociati.
● griglie OLAP
● Sottoreport
● generazione di pagine a richiesta

Nota
È possibile che i totali parziali, i totali generali e le informazioni di riepilogo non siano corretti se il report ha
una formula di selezione dei gruppi. Questo accade perché i totali generali e i riepiloghi sono calcolati
durante il passaggio 1, ma la formula di selezione dei gruppi filtra nuovamente i dati nel passaggio 2. È
possibile utilizzare i campi totale parziale al posto dei riepiloghi per eseguire il totale dei dati nei report con
una formula di selezione dei gruppi.

Passaggio 3

Il conteggio pagine totale è determinato nel passaggio n. 3, che è il passaggio finale. Esso riguarda report che
utilizzano i campi variabile speciale per il conteggio pagine totale (Pagina N di M).

1.7.1.2 Progettazione di nuovi report

Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

I report vengono creati in SAP Crystal Reports Designer incorporato. La finestra di progettazione viene avviata
automaticamente quando si aggiunge un oggetto SAP Crystal Reports al progetto o quando si fa doppio clic su un
oggetto SAP Crystal Reports esistente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 653
Informazioni correlate

Cenni preliminari sulle sezioni di report [pagina 641]

1.7.1.2.1 Pianificazione del contenuto del report

Prima di eseguire qualsiasi operazione, è necessario definire le informazioni che si desidera inserire nel report. Le
sezioni riportate di seguito forniscono una guida a riguardo.

Informazioni correlate

Accesso e aggiunta di dati [pagina 657]

1.7.1.2.1.1 Definizione della funzione del report

I report sono strumenti di gestione. che consentono di acquisire rapidamente gli elementi e le relazioni essenziali
presenti nei dati non elaborati e di prendere decisioni valide.

Prima di creare un report, è consigliabile identificarne brevemente per iscritto gli obiettivi. In tal modo, si
definiscono le necessità fondamentali, il punto di partenza e lo scopo.

Esempi di definizioni di funzioni

● La funzione del report consiste nell'illustrare le vendite mensili e annuali per agente di vendita, confrontare le
cifre dell'anno in corso con quelle dell'anno precedente e segnalare quali figure non soddisfano gli standard
aziendali relativi alle vendite.
● L’obiettivo del report consiste nel visualizzare l’attività di vendita per ogni voce dell’inventario e suggerire il
riordino delle quantità in base a tale attività.

La definizione dello scopo del report, prima di cominciarne la creazione, è una fase fondamentale dell’intero
processo.

Soddisfare le esigenze di diversi utenti

Un singolo report viene spesso utilizzato da più persone. Un report dettagliato sulle vendite di tutta la società, ad
esempio, può essere utilizzato dagli agenti di vendita, dai responsabili delle vendite regionali e nazionali e dal
direttore generale.

Tali figure saranno interessate a diversi aspetti del report. Poiché ciascun utente del report ha interessi diversi, è
importante progettare il report in modo che includa tutte le informazioni rilevanti per ciascun utente.

Di seguito sono riportati alcuni elementi che è possibile inserire nel report:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
654 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Inserimento di grafici [pagina 742] che riportano le informazioni più importanti ma consentono agli utenti
anche un'analisi più dettagliata.
● Impostazione dei parametri [pagina 689] che richiedono l'immissione di informazioni in modo da escludere i
dati superflui prima che il report venga visualizzato.

1.7.1.2.1.2 Origine dati

Questo passaggio dipende dalle tabelle di database disponibili. SAP Crystal Reports consente di combinare dati di
database differenti quando si creano report, in modo da ottenere la massima flessibilità.

● La maggior parte dei dati in un report tipico è estratta direttamente da campi dati. Specificare i campi dati da
utilizzare e la relativa posizione.
● Altri dati vengono calcolati in base ai campi dati. Specificare i campi dati che si desidera utilizzare per tali
calcoli.
● Gli altri dati verranno inseriti direttamente nel report utilizzando oggetti testo, quali intestazioni, note ed
etichette.

Nota
SAP Crystal Reports può generare informazioni quali la data corrente o i numeri di pagina.

Informazioni correlate

Selezione di un database [pagina 659]


Illustra come connettersi a un database o set di dati e selezionare le tabelle che si desidera utilizzare nel report.

Per inserire campi di database [pagina 664]


Descrive come aggiungere un campo database al report.

1.7.1.2.1.3 Modifica dei dati

Organizzazione dei dati in gruppi

SAP Crystal Reports fornisce diverse opzioni per la Selezione dei record [pagina 678] e il Raggruppamento di dati
[pagina 695] in un report.

È possibile creare un report sulla base di tutti i record o di un insieme limitato di record presenti in un determinato
database. SAP Crystal Reports può essere utilizzato per selezionare i record semplicemente sulla base di
confronti e intervalli di date o per creare formule complesse per l'identificazione dei record da includere.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 655
Riepilogo di dati

Si desidera calcolare il totale parziale, la media, il conteggio, aggiungere percentuali o determinare il valore
massimo o minimo incluso in tutti i valori di una colonna qualsiasi del report?

SAP Crystal Reports consente di eseguire tutti questi tipi di calcolo, nonché di inserire il totale generale (la relativa
media, il relativo conteggio e così via) nella parte inferiore della colonna selezionata.

Contrassegnare i dati con flag

È possibile richiamare l’attenzione su alcuni dati contrassegnandoli con dei flag nel report. Ad esempio, le voci
fisse di un inventario sono spesso contrassegnate nei report di inventario, in modo che a tali voci venga prestata
particolare attenzione. È possibile contrassegnare ogni voce che non ha mostrato attività durante l’ultimo mese,
durante gli ultimi tre mesi o durante un altro periodo definito. Per contrassegnare le informazioni, identificarle
insieme a qualunque condizione che attiva il flag.

Formattazione di dati con flag

SAP Crystal Reports consente di sottolineare gli elementi del report e di modificare il colore, la dimensione o il tipo
di carattere utilizzato per determinati elementi del report, nonché di delimitare gli elementi con bordi, tracciare
linee e caselle (per suddividere il report in sezioni), disattivare le intestazioni e così via. Tutti questi strumenti di
formattazione possono essere utilizzati per evidenziare i dati chiave di un report.

Informazioni correlate

Selezione dei primi o degli ultimi gruppi N [pagina 701]


Aggiunta di percentuali a un report [pagina 707]
Per eseguire il totale parziale dei dati [pagina 706]

1.7.1.2.1.4 Definizione delle caratteristiche dell'area di


stampa

Ogni sezione di report presenta caratteristiche di stampa specifiche. È importante valutare tali caratteristiche
perché influenzano l’ordine e la frequenza con cui vengono stampati i vari oggetti del report.

La stampa delle sezioni viene eseguita dall'alto verso il basso, a seconda dell'ordine in cui sono visualizzate in SAP
Crystal Reports Designer incorporato. Se una determinata sezione contiene più sottosezioni, queste ultime
verranno stampate nell'ordine in cui sono visualizzate. Se, ad esempio, esistono tre sezioni Intestazione report,
esse verranno stampate nell'ordine in cui si trovano, prima delle sezioni Intestazione pagina.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
656 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Le modalità di stampa degli oggetti determinano le modalità di progettazione del report. La conoscenza delle
caratteristiche dell'area di stampa consente infatti di determinare la posizione di grafici, campi incrociati e
formule per ottenere risultati specifici.

1.7.1.2.2 Accesso e aggiunta di dati

In SAP Crystal Reports Designer incorporato è innanzitutto necessario selezionare l'origine dati a cui il report farà
riferimento. È possibile utilizzare più di un'origine dati in un report.

In secondo luogo occorre scegliere le tabelle di database che si desidera utilizzare nel report. SAP Crystal Reports
è in grado di collegare automaticamente le tabelle oppure è possibile specificare personalmente come si desidera
collegarle. Le tabelle di un database sono collegate in modo che i record di un database corrispondano ai record
correlati di un altro.

Informazioni correlate

Impostazione dell'origine dati [pagina 148]

1.7.1.2.2.1 Origini dati supportate

SAP Crystal Reports si connette ai database mediante i relativi driver. Ciascun driver viene scritto per gestire un
tipo di database o di tecnologia di database specifica.

Con tutte le versioni di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio è possibile
accedere alle origini dati seguenti, da cui si possono ricavare report:

● Qualsiasi database con un driver ODBC


● Qualsiasi database con un provider OLEDB
● Database di Microsoft Access

Nota
Non è disponibile nessun driver a 64 bit per i database Microsoft Access. Non sarà possibile connettersi a
un database Microsoft Access se si progetta il report su un computer a 64 bit.

● Cartelle di lavoro di Microsoft Excel (97-2003)


● Set di dati ADO.NET
● Database ADO.NET
● Recordset ADO
● Recordset CDO
● IDataReader
● Raccolte di oggetti
● Recordset DAO

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 657
● Recordset RDO
● XML in SQL Server 2005
● Tipi definiti dall’utente (UDT) in SQL Server 2005

Altre versioni di SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio comprendono driver
nativi e il supporto per origini dati aggiuntive come JDBC, Teradata e OLAP.

1.7.1.2.2.2 Creazione di report da set di dati ADO.NET

Descrive le modalità di connessione del report a un set di dati ADO.NET.

SAP Crystal Reports supporta i report che accedono a set di dati ADO.NET.

Un oggetto set di dati ADO.NET è un insieme di classi di set di dati create nella memoria. È possibile creare un set
di dati ADO.NET da diverse origini dati, inclusi i database Access, Oracle e SQL Server, utilizzando Visual Studio
ADO.NET Data Set Designer, che fornisce una visualizzazione grafica del database con relative tabelle, campi e
tipi. È possibile trascinare le tabelle da Esplora server in un file di schema sulla scheda Schema del designer.

Generazione di DataSet ADO.NET

Un oggetto set di dati ADO.NET fornisce una descrizione dei dati da cui è possibile aggiungere tabelle al report di
Crystal. L'Esperto database in SAP Crystal Reports Designer incorporato viene utilizzato per aggiungere le tabelle
dall'oggetto set di dati ADO.NET.

È possibile richiamare l'Esperto database se si Accesso a SAP Crystal Reports Designer incorporato [pagina 639]
con una Creazione guidata report. In alternativa, per accedere all'Esperto database da un report già impostato
con ADO.NET, fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere
Database, quindi fare clic su Esperto database.

Visualizzazione dei report tramite i set di dati ADO.NET

Un oggetto set di dati generato con ADO.NET Data Set Designer contiene solo la descrizione dei dati, non i dati
stessi. Di conseguenza, quando si utilizza un report connesso a un oggetto set di dati di questo tipo, non è
possibile sfogliare i dati campo in SAP Crystal Reports Designer incorporato durante la progettazione.

Per fare in modo che il report visualizzi i dati effettivi durante l'esecuzione, è necessario innanzitutto inviare i dati
all'oggetto set di dati utilizzando ADO.NET Object Model, quindi inoltrare il set di dati al modulo report servendosi
di Report Engine Object Model. È inoltre necessario associare il report in base all'oggetto report nel file di origine
corrispondente del Web Forms o Windows.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
658 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Esercitazione: Connessione ai DataSet ADO.NET [pagina 540]

1.7.1.2.2.3 Selezione di un database

Illustra come connettersi a un database o set di dati e selezionare le tabelle che si desidera utilizzare nel report.

Per apportare modifiche all'origine dati di un report, fare clic con il pulsante destro del mouse in SAP Crystal
Reports Designer incorporato, scegliere Database e quindi selezionare Esperto database dal menu di scelta
rapida.

È possibile modificare un'origine dati ricollegando tabelle, aggiungendo e rimuovendo un database, impostando
un percorso di database, verificando un database e convertendo in un driver di database differente.

1.7.1.2.2.3.1 Per selezionare un database

Procedura

1. In Explorer Campo fare clic con il pulsante destro su Campi database, quindi fare clic su Esperto database.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Esperto Database, ricercare le tabelle di origine dati nelle cartelle.
3. Selezionare le tabelle che contengono i dati per i quali si desidera creare un report, quindi fare clic su OK.

Nota
Anziché selezionare le tabelle, fare doppio clic sul nodo Aggiungi comando per inserire una query SQL.

4. Nella scheda Collegamenti, fare clic su Collegamento per collegare automaticamente le tabelle del database,
oppure, fare clic e trascinare un campo del database da una tabella a un'altra per creare un collegamento
manuale.
5. Se sono state collegate più di due tabelle, fare clic su Ordina collegamenti per disporre i collegamenti
nell'ordine in cui si desidera che vengano elaborate.
6. Fare clic su OK.

Risultati

A questo punto, le tabelle di database selezionate vengono visualizzate nei campi database di Explorer Campo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 659
Informazioni correlate

Connessione ai DataSet ADO.NET [pagina 155]


Definizione delle tabelle virtuali in base a un Comando/Query SQL [pagina 660]
Collegamento di tabelle di database [pagina 663]
Illustra le procedure necessarie per collegare le tabelle di database in modo che i record di una tabella
corrispondano a quelli di un'altra.

Per inserire campi di database [pagina 664]


Descrive come aggiungere un campo database al report.

1.7.1.2.2.3.2 Per cambiare la posizione dell'origine dati

Contesto

Per indicare il nuovo nome o la nuova posizione delle tabelle attive nel report, utilizzare il comando Imposta
posizione che risulta particolarmente utile se viene inviato un report che utilizza un database con un percorso
diverso nel sistema, oppure se è stata cambiata la directory o la posizione su disco del database. Inoltre, il
comando Imposta percorso converte automaticamente il driver del database nell’origine dei dati selezionata. Ad
esempio, utilizzando il comando Imposta percorso è possibile convertire automaticamente un’origine dei dati ad
accesso diretto in un’origine dei dati ODBC.

La procedura è la stessa, sia che si sostituiscano tutte le tabella di una particolare origine dati con quelle omonime
di una diversa origine dati, sia che si sostituisca una singola tabella con un'altra.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Database,
quindi fare clic su Imposta percorso origine dati.
2. Nell'elenco Origine dati corrente, scegliere la tabella di origine dati da cambiare.
3. Nell'elenco Sostituisci con, specificare la nuova origine dati.
4. Selezionare la tabella per la sostituzione.
5. Fare clic su Aggiorna.
6. Dopo aver modificato tutte le tabelle da cambiare, fare clic su Chiudi; in alternativa, ripetere questi passaggi
per le tabelle o le origini dati non modificate.

1.7.1.2.2.3.3 Definizione delle tabelle virtuali in base a un


Comando/Query SQL

Se il database in uso supporta un linguaggio di query, ad esempio SQL, è possibile scrivere comandi personalizzati
che verranno rappresentati come oggetti Table in SAP Crystal Reports. Gli utenti esperti di database dispongono

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
660 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
così di un controllo completo dell'elaborazione dei dati che viene inviata al server del database. Gli utenti esperti
possono scrivere un comando ottimizzato che può ridurre in modo considerevole la dimensione del set di dati
restituito dal server.

Con il nodo Aggiungi comando in Esperto Database, è possibile scrivere comandi personalizzati per creare una
tabella virtuale che rappresenti i risultati dell'elaborazione del comando.

Se si utilizza una tabella virtuale creata come comando, SAP Crystal Reports non modifica la sintassi del codice
SQL inviato al server (in altre parole, non aggiunge automaticamente virgolette o caratteri di escape). Questo
accade anche per i parametri utilizzati nei comandi. Quindi, occorrerà aggiungere manualmente le virgolette e i
caratteri di escape necessari per il driver di database.

Informazioni correlate

Per inserire campi di database [pagina 664]


Descrive come aggiungere un campo database al report.

1.7.1.2.2.3.3.1 Per creare un oggetto comando

Procedura

1. In Explorer Campo fare clic con il pulsante destro su Campi database, quindi fare clic su Esperto database.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Esperto Database, ricercare le tabelle di origine dati nelle cartelle.
3. Nell'origine dati, fare doppio clic sul nodo Aggiungi comando.
4. Nella finestra di dialogo Aggiungi comando al report, inserire un comando/query adatto per l'origine dati
aperta.
Ad esempio:

SELECT
Customer.`Customer ID`,
Customer.`Customer Name`,
Customer.`Last Year's Sales`,
Customer.`Region`,
Customer.`Country`,
Orders.`Order Amount`,
Orders.`Customer ID`,
Orders.`Order Date`
FROM
Customer Customer INNER JOIN Orders Orders ON
Customer.`Customer ID` = Orders.`Customer ID`
WHERE
(Customer.`Country` = 'USA' OR
Customer.`Country` = 'Canada') AND
Customer.`Last Year's Sales` < 10000.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 661
ORDER BY
Customer.`Country` ASC,
Customer.`Region` ASC

5. Fare clic su OK.


Ritornare a SAP Crystal Reports Designer incorporato. Nella finestra di dialogo Explorer campo, in Campi
database, viene visualizzata una tabella Comando con l'elenco dei campi database specificati.

Nota
Per impostazione predefinita, il comando viene denominato comando. È possibile modificarne l'alias
selezionandolo e premendo F2.

1.7.1.2.2.3.3.2 Per modificare un oggetto comando

Procedura

1. Nell’area Tabelle selezionate dell’Esperto database, scegliere il comando che si desidera modificare.
2. Fare clic con il pulsante destro del mouse sul comando e selezionare Modifica comando dal menu di scelta
rapida.
3. Effettuare le modifiche desiderate nella finestra di dialogo Modifica comando e, al termine, fare clic su OK.

Risultati

Durante l’utilizzo delle finestre di dialogo Aggiungi comando al report o Modifica comando, è possibile creare un
campo di parametro.

1.7.1.2.2.3.3.3 Per creare un parametro per un oggetto


comando

Procedura

1. Nell'area Elenco parametri della finestra di dialogo Aggiungi comando al report o Modifica comando, fare clic
su Crea.
2. Nella finestra di dialogo Parametro comando, inserire le seguenti informazioni nei campi a disposizione:

Nome parametro Immettere il nome mediante il quale si desidera identificare il parametro.

Testo richiesta Immettere il testo che si desidera visualizzare quando il programma effettua una
richiesta all’utente.

Tipo valore Immettere il tipo di dati del campo di parametro.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
662 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Valore predefinito Immettere il valore che il programma deve utilizzare se non si è provveduto a fornire un
nuovo valore.

3. Fare clic su OK.


Il parametro viene aggiunto all’Elenco parametri. È possibile modificarlo o eliminarlo ritornando alla finestra di
dialogo Modifica comando.

1.7.1.2.2.3.3.4 Per aggiungere un parametro a un oggetto


comando

Procedura

1. Posizionare il cursore nel testo della query.


2. Fare doppio clic sul nome del parametro in Elenco parametri.
Il parametro sarà aggiunto nel punto in cui è posizionato il cursore. La sintassi dovrebbe essere simile alla
seguente:

WHERE
Customer.`Country` = '{?CountryParam}'

Se si desidera modificare il campo di parametro creato, aprire la Explorer Campo e selezionare il campo in
questione dal nodo Campi di parametro.

1.7.1.2.2.4 Collegamento di tabelle di database

Illustra le procedure necessarie per collegare le tabelle di database in modo che i record di una tabella
corrispondano a quelli di un'altra.

Le tabelle vengono collegate in modo che i record di una tabella corrispondano ai record correlati di un’altra
tabella. Quando si esegue un collegamento, viene utilizzato un campo comune a entrambe le tabelle. SAP Crystal
Reports utilizza il collegamento per associare i record di una tabella a quelli dell'altra. Ad esempio, se si attivano la
tabella Ordini e la tabella Clienti, è possibile collegare le due tabelle in modo che ogni ordine della tabella Ordini
può essere associato al cliente della tabella Clienti che ha inoltrato l’ordine. In questo esempio, il collegamento
garantisce che i dati di ogni riga del report si riferiscano allo stesso ordine.

Per collegare le tabelle di database, utilizzare la scheda di collegamento nella finestra di dialogo Esperto Database.
Il metodo più semplice per collegare le tabelle consiste nella selezione di Collegamento automatico. Il
Collegamento automatico sceglie automaticamente i collegamenti per le tabelle in base ai campi comuni o ai
campi indicizzati (se il database supporta tali campi).

È inoltre possibile collegare manualmente le tabelle di database. I soli limiti della struttura di collegamento sono
quelli definiti dal fornitore di database. Se sono presenti più collegamenti, è possibile utilizzare la funzione Ordina
collegamenti per disporre i collegamenti nell'ordine con cui si desidera elaborarli.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 663
1.7.1.2.2.4.1 Per accedere all'Esperto Database

Procedura

1. In Explorer campo, fare clic con il pulsante destro del mouse su Campi database e selezionare Esperto
database.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo dell'Esperto database fare clic sulla scheda Collegamenti.
3. Nella scheda Collegamenti, fare clic su Collegamento per collegare automaticamente le tabelle del database,
oppure, fare clic e trascinare un campo del database da una tabella a un'altra per creare un collegamento
manuale.
4. Se sono disponibili più di due tabelle, fare clic su Ordina collegamenti per disporre i collegamenti nell'ordine in
cui si desidera che vengano elaborate.
5. Fare clic su OK.

Informazioni correlate

Per inserire campi di database [pagina 664]


Descrive come aggiungere un campo database al report.

1.7.1.2.2.5 Per inserire campi di database

Descrive come aggiungere un campo database al report.

Contesto

Explorer Campo visualizza tutti i campi database disponibili.

Procedura

1. In Explorer campo, espandere Campi database per visualizzare le tabelle del database.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
664 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Espandere una tabella di database e selezionare un campo del database.
Quando si seleziona un nome di campo, è possibile visualizzare i valori del campo, nonché la dimensione e il
tipo, facendo clic con il pulsante destro del mouse e selezionando Sfoglia dati dal menu di scelta rapida. Nella
finestra di dialogo Sfoglia viene visualizzato un sottoinsieme di valori di campo oltre alla lunghezza, al tipo e al
nome del campo.
3. Trascinare il campo selezionato sulla sezione Dettagli o su qualsiasi sezione del report. Non è possibile
aggiungere contemporaneamente più campi al report.

Risultati

Durante il trascinamento del campo sul report, la cornice dell'oggetto si ancora al puntatore del mouse. La cornice
rappresenta l'oggetto selezionato per il posizionamento. La dimensione della cornice dell'oggetto corrisponde
approssimativamente alla lunghezza dei dati del campo.

1.7.1.2.3 Oggetti campo e oggetti testo

SAP Crystal Reports Designer incorporato utilizza un approccio di trascinamento della selezione analogo a quello
di Visual Studio .NET, che consiste nel trascinamento di un oggetto del report sulla finestra di progettazione, ad
esempio un campo di database o un oggetto di testo, e nell'utilizzo della finestra o del menu di scelta rapida delle
proprietà per formattare l'oggetto.

Oggetti campo

● Inserimento e spostamento di campi


● Ridimensionamento di campi
● Eliminazione di campi
● Visualizzazione dei nomi dei campi
● Aggiunta di intestazioni di campo

Oggetti testo

● Inserimento di oggetti testo


● Inserimento di campi database in oggetti testo
● Rotazione del testo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 665
Campi speciali

● Inserimento di campi speciali

Risoluzione dei problemi

● Risoluzione dei problemi di oggetti campo e oggetti testo

1.7.1.2.3.1 Inserimento e spostamento di campi

Per inserire campi, trascinare il campo desiderato da Explorer Campo sul report. Utilizzare il menu di scelta rapida
per inserire oggetti campo e altri tipi di oggetto report non disponibili in Explorer Campo, ad esempio oggetti di
testo, campi di riepilogo, grafici, sottoreport, immagini e così via.

Informazioni correlate

Ridimensionamento di campi [pagina 667]

1.7.1.2.3.1.1 Inserimento di campi o oggetti report aggiuntivi

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi selezionare un campo o un altro oggetto dal sottomenu.
2. Se richiesto, inserire i dati necessari nelle finestre di dialogo visualizzate.
3. Trascinare la cornice dell'oggetto sulla sezione desiderata del report.

1.7.1.2.3.1.2 Selezione degli oggetti campo

Per eseguire un'operazione con un campo (modifica o spostamento del carattere e così via), occorre innanzitutto
selezionarlo. Quando si seleziona un campo, vengono visualizzati gli handle sui bordi destro, sinistro, superiore e
inferiore della cornice dell'oggetto. Gli handle indicano che il campo è selezionato e attivo.

● Posizionare il puntatore all'interno della cornice dell'oggetto, quindi fare clic. Vengono visualizzati gli handle di
ridimensionamento, che indicano che l'oggetto è selezionato.
● Allontanare il puntatore dalla cornice dell'oggetto, quindi fare clic in un'area vuota della finestra. Gli handle
non saranno più visualizzati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
666 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.3.2 Ridimensionamento di campi

Procedura

1. Selezionare il campo che si desidera ridimensionare.

Suggerimento
Ridimensionare un campo e la relativa intestazione premendo CTRL e contemporaneamente facendo clic
per selezionare entrambi gli oggetti.

2. Posizionare il puntatore su uno degli handle di ridimensionamento della cornice dell'oggetto.


3. Quando il puntatore assume l'aspetto di una freccia di ridimensionamento, trascinare l'handle per
ridimensionare il campo.

Informazioni correlate

Prevenzione del testo troncato [pagina 674]

1.7.1.2.3.3 Eliminazione di campi

Procedura

1. Selezionare il campo che si desidera eliminare.

Suggerimento
Eliminare un campo e la relativa intestazione premendo CTRL e contemporaneamente facendo clic per
selezionare entrambi gli oggetti.

2. Premere Elimina.

Informazioni correlate

Oggetti campo e oggetti testo [pagina 665]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 667
1.7.1.2.3.4 Visualizzazione dei nomi dei campi

Quando si aggiungono campi al report, è possibile scegliere il tipo di informazioni da visualizzare, durante la
progettazione del report.

Opzioni campo

Opzione campo Definizione Esempio

Mostra nomi campi Visualizza il nome del campo. ID cliente

PrintDate

Mostra nomi Oggetto Visualizza il nome oggetto del Field1


campo.
Field2

Mostra simboli Formato Visualizza il formato di output del 5.555.555


campo.
1:23:45AM

Informazioni correlate

Formattazione di dati [pagina 726]


Prevenzione del testo troncato [pagina 674]

1.7.1.2.3.4.1 Per visualizzare i nomi dei campi o modificare le


impostazioni delle opzioni campo

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere
Progettazione, quindi fare clic su Impostazioni predefinite.
2. Nella scheda Layout della finestra di dialogo Opzioni, selezionare la casella di controllo Mostra nomi campi (o
qualsiasi altra opzione).
3. Fare clic su OK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
668 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.3.5 Aggiunta di intestazioni di campo

Quando si aggiunge un campo database a un report, il programma aggiunge automaticamente un'intestazione in


base al nome del campo database.

1.7.1.2.3.5.1 Per aggiungere un’intestazione di campo

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Oggetto di testo.

Nota
Dopo aver scelto Oggetto testo e aver spostato il puntatore sul report, viene visualizzata una cornice di
oggetto vuota accanto al puntatore del mouse.

2. Inserire l'oggetto testo nella sezione Intestazione pagina, quindi allineare la cornice dell'oggetto al di sopra del
campo desiderato.
3. Fare doppio clic sull'oggetto testo per posizionare il punto di inserimento nella cornice dell'oggetto.
4. Digitare il nome dell'intestazione nell'oggetto testo.
5. Per formattare l'intestazione, fare clic con il pulsante destro del mouse sull'oggetto di testo, quindi scegliere
Formato oggetto.

Informazioni correlate

Prevenzione del testo troncato [pagina 674]

1.7.1.2.3.6 Inserimento di oggetti testo

La funzione principale di un oggetto testo è contenere il testo utilizzato per creare titoli, intestazioni, riepiloghi di
etichette e così via.

Tuttavia, gli oggetti di testo possono anche contenere campi database. Questa caratteristica li rende ideali per la
creazione di lettere modulo personalizzate.

Informazioni correlate

Formattazione di dati [pagina 726]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 669
Prevenzione del testo troncato [pagina 674]

1.7.1.2.3.6.1 Per inserire un oggetto di testo

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Oggetto di testo.
2. Posizionare l’oggetto di testo nel punto in cui si desidera che sia visualizzato nel report.

○ Selezionare l'oggetto di testo, quindi trascinare gli handle per ridimensionarlo.


○ Trascinare l'oggetto di testo per spostarlo.
○ Fare doppio clic all'interno dell'oggetto di testo per selezionarlo e apportare modifiche al testo.
○ Non progettare report nei quali lo spazio fra gli oggetti sia scarso. Lasciare a disposizione spazio per
consentire l’aumento, espandendo la larghezza dell’oggetto approssimativamente del 5%. Oppure, se ciò
non è possibile, ridurre le dimensioni del carattere.
○ Se si visualizza il report tramite un Web Forms Viewer, è consigliabile utilizzare spazi anziché tabulazioni
per mantenere una spaziatura costante.

1.7.1.2.3.6.2 Inserimento di campi database in oggetti testo

Procedura

1. Inserire un oggetto di testo nel report.


2. Fare doppio clic sull'oggetto di testo e digitare il testo che si desidera visualizzare prima del primo campo
database.
3. In Explorer Campo, individuare il campo database che si desidera inserire nell'oggetto di testo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

4. Trascinare il campo database da Explorer Campo sull'oggetto di testo.


5. Trascinare l'oggetto fino a posizionare il punto di inserimento all'interno dell'oggetto di testo, dove si desidera
visualizzare il campo database, quindi rilasciare il campo nell'oggetto di testo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
670 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.3.7 Rotazione del testo

Contesto

Nella scheda Comune dell’Editor formato, è possibile utilizzare le opzioni di rotazione testo per allineare in senso
verticale i campi e gli oggetti basati su testo del report. È possibile ruotare il testo di 90 o 270 gradi.

Procedura

1. Fare clic con il pulsante destro del mouse sull'oggetto report e selezionare Formatto oggetto.
2. Nella scheda Comune, selezionare il grado di rotazione nel campo Rotazione testo.

○ Quando si seleziona una rotazione testo di 90 gradi, il testo si sposta di 90 gradi in senso antiorario.
○ Se la rotazione testo resta su 0 gradi, il report viene formattato in senso orizzontale.
○ Per la rotazione del testo di oggetti basati su testo, viene automaticamente deselezionata l’opzione Può
aumentare che impedisce il troncamento del testo all’interno di un oggetto. Per ulteriori informazioni
sull'opzione Può aumentare, vedere Prevenzione del testo troncato [pagina 674].
○ Il testo formattato in senso verticale che eccede il margine della pagina non può essere visualizzato come
parte del report.

1.7.1.2.3.8 Utilizzo dei campi speciali

I campi speciali contengono i tipi di informazioni che non sono derivati da una tabella di database sottostante o da
una formula di report. SAP Crystal Reports Designer incorporato fornisce un elenco di campi speciali da cui
scegliere.

Data della Utilizzare il campo Data della stampa per includere la data corrente al momento in cui il report
stampa viene stampato. Questo campo può essere posizionato in qualsiasi sezione del report, a
seconda della frequenza con cui si desidera stamparlo. È possibile modificare la data nella
finestra di dialogo Imposta data e ora di stampa.

Ora della Utilizzare il campo Ora della stampa per includere un campo contenente l'ora in cui il report
stampa viene stampato. Questo campo può essere posizionato in qualsiasi sezione del report, a
seconda della frequenza con cui si desidera stamparlo.

Data ultima Utilizzare il campo Data ultima modifica per includere un campo contenente la data dell'ultima
modifica modifica apportata al report. Per modifica si intende qualsiasi cambiamento, anche
un'operazione semplice come lo spostamento di un campo. Quando si modifica il report e lo si
stampa, anche senza prima salvarlo, la data di modifica viene stampata automaticamente.
Questo campo può essere posizionato in qualsiasi sezione del report, a seconda della
frequenza con cui si desidera stamparlo.

Ora ultima Utilizzare il campo Ora ultima modifica per includere un campo contenente l'ora dell'ultima
modifica modifica apportata al report. Il campo funziona allo stesso modo del campo Data di modifica.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 671
Questo campo può essere posizionato in qualsiasi sezione del report, a seconda della
frequenza con cui si desidera stamparlo.

Data dei dati Utilizzare il campo Data dei dati per includere un campo contenente la data dell'ultimo
recupero (aggiornamento) dei dati. Questo campo può essere posizionato in qualsiasi sezione
del report, a seconda della frequenza con cui si desidera stamparlo.

Ora dei dati Utilizzare il campo Ora dei dati per includere un campo contenente l'ora dell'ultimo recupero
(aggiornamento) dei dati. Questo campo può essere posizionato in qualsiasi sezione del
report, a seconda della frequenza con cui si desidera stamparlo.

Numero di Utilizzare il campo Numero di record per numerare i report stampati nella sezione Dettagli del
record report.

Numero di Utilizzare il campo Numero di pagina per inserire un campo che stampi il numero della pagina
pagina corrente. Di solito questi campi vengono posizionati nella sezione Intestazione o Piè di pagina
del report.

Numero di Utilizzare il campo Numero di gruppi per numerare i gruppi del record. Questo campo può
gruppi essere posizionato nella sezione Intestazione del gruppo o Piè di pagina del gruppo del report.

Totale delle Utilizzare il campo Totale delle pagine per stampare il numero totale di pagine del report.
pagine Questo campo può essere utilizzato in diverse situazioni. Ad esempio, è possibile utilizzarlo in
combinazione con il campo Numero di pagina per creare un oggetto di testo del tipo "Pagina
x/y", dove x è il campo Numero di pagina e y è il campo Totale delle pagine. Questi campi
possono essere posizionati in qualsiasi sezione del report, a seconda della frequenza con cui
si desidera stamparli.

Titolo report Utilizzare il campo Titolo report per includere un campo che contiene il titolo specificato nella
finestra di dialogo Proprietà documento. Questo campo può essere posizionato in qualsiasi
sezione del report, a seconda della frequenza con cui si desidera stamparlo.

Commenti del Utilizzare il campo Commenti report per includere un campo che contiene i commenti
report specificati nella finestra di dialogo Proprietà documento. Questo campo può essere
posizionato in qualsiasi sezione del report, a seconda della frequenza con cui si desidera
stamparlo.

Nota
Verranno visualizzati solo i primi 256 caratteri del commento immesso nella scheda
Riepilogo della finestra di dialogo Proprietà documento.

Formula di Utilizzare il campo Formula di selezione dei record per inserire nel report un campo con la
selezione dei formula di selezione dei record. Utilizzare l'Esperto selezione per creare una formula di
record selezione dei record per il report.

Formula di Utilizzare il campo Formula di selezione dei gruppi per inserire nel report un campo con la
selezione dei formula di selezione dei gruppi. Utilizzare l'Esperto selezione per creare una formula di
gruppi selezione dei gruppi per il report.

Percorso e Utilizzare il campo Percorso e nome del file per inserire un campo in cui siano visualizzati il
nome del file nome e il percorso del file per il report.

Autore del file Utilizzare il campo Autore del file per inserire un campo in cui sia visualizzato il nome
dell'autore del report (come specificato nella finestra di dialogo Proprietà documento).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
672 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Data di Utilizzare il campo Data di creazione file per includere un campo in cui sia visualizzata la data
creazione file in cui il report è stato creato.

Pagina N/M Utilizzare il campo Pagina N/M per inserire un campo che indichi il numero di pagina e il
numero totale delle pagine del report. Ad esempio, un valore di campo Pagina 1/8 indicherà la
prima pagina delle otto di cui è composto il report.

Nota
Se si include il campo speciale "Pagina N di M" o "Conteggio pagine totali" nel report,
quest'ultimo deve concludere l'elaborazione prima di poter calcolare il valore del campo.
Evitare l'utilizzo di questi campi speciali nel report, a meno che il report non sia molto
piccolo o che non si abbia assolutamente bisogno del valore di tali campi.

1.7.1.2.3.8.1 Inserimento di campi speciali

Contesto

Per visualizzare informazioni speciali, ad esempio numeri di pagina, data di stampa e commenti sul report,
utilizzare i campi disponibili nel nodo Campi speciali di Explorer Campo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Procedura

1. In Explorer Campo, espandere il nodo Campi speciali.


2. Trascinare il campo necessario dall'elenco Campi speciali sulla sezione desiderata del report.

Nota
Per i comandi dei campi speciali che consentono di stampare le informazioni di riepilogo sul report (ad
esempio l'autore o i commenti sul report), accertarsi di immettere le informazioni necessarie nella finestra
di dialogo Proprietà documento. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer
incorporato, scegliere Report, quindi fare clic su Informazioni di riepilogo.

Informazioni correlate

Cenni preliminari sulle formule [pagina 713]


Descrive come creare le formule e incorporarle nei report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 673
1.7.1.2.3.9 Risoluzione dei problemi di oggetti campo e
oggetti testo

In questa sezione vengono fornite informazioni su come risolvere i problemi comuni relativi a oggetti campo e di
testo.

1.7.1.2.3.9.1 Per evitare il troncamento di testo all’interno di


un oggetto

Procedura

1. Fare clic con il pulsante destro del mouse sull'oggetto da formattare, quindi fare clic su Formato oggetto.
2. Nella finestra di dialogo Editor formato, fare clic sulla scheda Comune e selezionare la casella di controllo Può
aumentare.
3. Fare clic su OK per salvare le modifiche.

L’oggetto viene quindi formattato per la stampa su più linee. Se la larghezza del testo stampato è superiore a
quella dell’oggetto, il testo in eccesso viene mandato a capo.

1.7.1.2.3.9.1.1 Prevenzione del testo troncato

Quando un oggetto basato su testo viene posizionato nel report, è rappresentato da una cornice di oggetto.
L’altezza della cornice è basata sull’altezza del carattere. La larghezza, invece, è determinata in modo diverso a
seconda dell’oggetto su cui si lavora.

Se le larghezze predefinite vengono accettate o se gli oggetti basati su testo vengono ridimensionati, è possibile
che si verifichi un problema nel caso in cui il testo interno all’oggetto venga stampato sul margine della cornice
dell’oggetto. Anche se l’aspetto del report può sembrare corretto sulla macchina con il quale è stato progettato,
quando il report viene stampato utilizzando un altro driver di stampa che impiega caratteri più larghi, la lunghezza
del testo aumenta, ma la cornice dell’oggetto non cambia dimensioni. Il risultato è che il testo viene troncato o
tagliato.

Campi del database

Per i campi di database che non sono campi memo, la larghezza è determinata inizialmente dalla larghezza del
campo definita nel database, mentre la larghezza media del carattere è quella fornita dal carattere selezionato e
dalle relative dimensioni.

Ad esempio, si supponga di disporre del campo di database {clienti.COGNOME} e che nel database tale campo sia
definito come campo di testo lungo 35 caratteri. Quando si posiziona questo campo nel report, la larghezza del
margine sarà pari a 35 volte la larghezza media del carattere relativo e delle dimensioni con le quali è stato

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
674 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
formattato il campo del database. Tenere presente che questa è la larghezza iniziale predefinita per il margine. È
comunque possibile ridimensionare la larghezza per aumentarla o ridurla a seconda delle necessità.

Oggetti basati su testo

Per gli oggetti basati su testo, la larghezza predefinita è pari a circa 17 volte la larghezza del carattere medio. Gli
oggetti differiscono dai campi di database in quanto la loro larghezza si espande automaticamente quando viene
immesso il testo e/o i campi di database. Come per gli altri oggetti basati su testo, la larghezza può essere
modificata dall’utente.

Campi numerici

Per i diversi campi numerici, quali doppio, singolo, intero, intero lungo e byte, le larghezze predefinite sono
diverse. Come per tutti gli oggetti basati su testo, la larghezza può essere modificata dall’utente.

1.7.1.2.3.9.2 Prevenzione della sovrapposizione del testo

Non progettare report nei quali lo spazio fra gli oggetti sia scarso. Lasciare a disposizione spazio per consentire
l’aumento, espandendo la larghezza dell’oggetto approssimativamente del 5%. Oppure, se ciò non è possibile,
ridurre le dimensioni del carattere.

Oggetti basati su testo a linea multipla

Se il driver di stampa espande o contrae gli spazi presenti nel testo, il ritorno a capo del testo può variare insieme
al numero di linee necessarie per stampare l’oggetto adattandolo all’aumento o alla riduzione.

Quando vengono posizionati oggetti basati su testo su più linee, possono verificarsi problemi se nella stessa
sezione sono presenti altri oggetti, posti direttamente sotto quelli da posizionare.

A differenza degli oggetti basati su testo su linea singola, per gli oggetti basati su testo su più linee non è
consigliabile espandere la cornice dell’oggetto per adattarla al possibile aumento delle dimensioni. Infatti, la
larghezza della linea aumenterebbe per adattarsi al nuovo margine.

Quindi, se possibile, posizionare gli oggetti basati su testo su più linee nella parte inferiore della sezione. Se sono
necessarie più linee per stampare l’oggetto, la sezione si espande verso il basso per adattarsi all’aumento delle
dimensioni, senza interferire con altri oggetti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 675
1.7.1.2.3.9.3 Aumento dello spazio tra le sezioni

L’altezza di una sezione in relazione agli oggetti in essa contenuti influenza lo spazio visualizzato tra le righe del
report.

Per aggiungere ulteriori spazi fra le righe del report, spostare semplicemente il puntatore sulla linea di margine
della sezione inferiore. Il puntatore si trasformerà in un cursore di ridimensionamento. Quando viene visualizzato il
cursore di ridimensionamento, trascinare verso il basso il margine della sezione per aggiungere ulteriori spazi.

Per correggere gli errori di spaziatura negli oggetti testo, è consigliabile utilizzare spazi anziché tabulazioni. In tal
modo si manterrà una spaziatura costante se il report viene visualizzato tramite un Web Forms Viewer.

1.7.1.2.3.9.4 Prevenzione dei numeri troncati

Contesto

SAP Crystal Reports utilizza la rappresentazione dei campi di overflow per semplificare l'uso di valori numerici o di
valuta nelle celle del report. In genere, se la larghezza di un campo è inferiore al valore numerico o di valuta in esso
contenuto, il valore viene troncato o "ridimensionato". Ad esempio, valori quali 100.000.000 possono apparire sul
report come 1.000 o come 000 (a seconda delle proprietà impostate). Ciò potrebbe creare confusione quando si
esamina il report.

Quando si elimina l'opzione Consenti ridimensionamento campo, i valori numerici o di valuta contenuti nel campo
eccedenti le dimensioni del campo vengono rappresentati come segni numerici (######) che consentono di
sapere immediatamente se le dimensioni del campo sono troppo piccole.

Procedura

1. Fare clic con il pulsante destro del mouse sul campo valuta o sul campo numerico da formattare, quindi fare
clic su Formato oggetto.

Viene visualizzata la finestra Editor formato con la scheda Numero attiva.


2. Fare clic sul pulsante Personalizza.

Viene visualizzata la finestra di dialogo Stile Personalizzato con la scheda Numero attiva.
3. Per consentire la rappresentazione dei campi di overflow, deselezionare la casella di controllo Consenti
ridimensionamento campo.

In alternativa, è possibile fare clic sul pulsante Formato per immettere una formula nell'Editor Formula di
Formato. Nell'Editor Formula di Formato, è possibile disattivare il ridimensionamento del campo solo quando
si verificano determinate condizioni.
4. Fare clic su OK per salvare le modifiche.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
676 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Risultati

Disattivando il ridimensionamento campo, tutti i valori numerici o di valuta che eccedono le dimensioni del campo
che li contiene verranno rappresentati da segni numerici (######).

1.7.1.2.3.10 Utilizzo delle lingue da destra a sinistra

Contesto

SAP Crystal Reports supporta la visualizzazione delle lingue da destra a sinistra per i report formattati come
mostrato di seguito. Quando si utilizzano lingue da destra a sinistra, la direzione di lettura del testo viene
rappresentata in base alle impostazioni della lingua del browser.

Procedura

1. Fare clic con il pulsante destro del mouse su un campo del report, quindi scegliere Formatta campo.
Viene visualizzata la finestra di dialogo Editor del formato.
2. Nella scheda Comune, modificare le impostazioni adiacenti all'etichetta allineamento orizzontale.

○ Se il report contiene dati in una sola lingua da destra a sinistra, selezionare Destra nella casella.
○ Se il report contiene dati in più lingue, fare clic sul pulsante della formula condizionale e applicare una
formula per verificare il formato della lingua.

if {UnicodeData.Right_to_Left} then
crRightAligned
else
crLeftAligned

Nota
l'esempio si riferisce a un campo di database denominato Right_to_Left di una tabella denominata
UnicodeData.

3. Nella scheda Paragrafo della finestra di dialogo Editor del formato, modificare le impostazioni sotto l'etichetta
Direzione di lettura.

○ Se il report contiene dati in una sola lingua da destra a sinistra, selezionare Da destra a sinistra.
○ Se il report contiene dati in più lingue, selezionare il pulsante della formula condizionale e applicare una
formula per verificare il formato della lingua.

if {UnicodeData.Right_to_Left} then
crRightToLeftTextReadingOrder
else
crLeftToRightTextReadingOrder

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 677
Nota
l'esempio si riferisce a un campo di database denominato Right_to_Left di una tabella denominata
UnicodeData.

4. Fare clic su OK.

Risultati

Le lingue da destra a sinistra verranno visualizzate correttamente nel report.

1.7.1.2.4 Filtro di dati

Questa sezione descrive in che modo è possibile filtrare i record da inserire in un report. È possibile filtrare i dati
utilizzando formule e parametri di selezione dei record.

Ad esempio, utilizzando gli strumenti di selezione dei record è possibile limitare i record nel report per includere
solo i record relativi a uno specifico gruppo di clienti, uno specifico intervallo di numeri di conto oppure un
particolare intervallo di dati.

1.7.1.2.4.1 Selezione dei record

Quando si seleziona un campo per visualizzarlo nel report, per impostazione predefinita vengono stampati i valori
di campo di ogni record nelle tabelle attive. In molti casi, è possibile che non si desideri includere tutti i valori, ma
solo una parte di essi.

SAP Crystal Reports include un linguaggio delle formule molto sofisticato che può essere utilizzato per specificare
teoricamente qualunque tipo di selezione di record. In molti casi, tuttavia, la flessibilità di selezione dei record
offerta dal linguaggio delle formule non è necessaria. L’Esperto selezione interviene in tali casi.

È possibile selezionare i record in due modi:

● Selezione di base dei record [pagina 681]


● Personalizzazione delle formule di selezione dei record [pagina 684]

Definizione dei campi da utilizzare

Quando si selezionano i record, il report viene basato solo sui record che soddisfano le condizioni impostate. Tali
condizioni dipendono dal tipo di informazioni che si desidera ottenere nel report finale.

Ad esempio, si supponga di creare un report che visualizzi solo i dati della California. Il problema consiste nel
trovare il modo migliore di identificare i record relativi alla California.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
678 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Se la tabella che si utilizza per il report dispone di un campo relativo allo stato o alla regione, nella richiesta è
possibile specificare che il programma deve utilizzare solo i record per i quali il valore nel campo relativo allo
stato è uguale a California (la regione è uguale a CA).
● Se la tabella non dispone di un campo relativo allo stato, ma nel report si desiderano ugualmente solo i record
relativi alla California, può esistere il modo di identificare comunque tali dati.
● Se la tabella dispone di un campo relativo al codice postale, è possibile basare la selezione dei record
sull'intervallo di codici postali relativi alla California (il codice postale è compreso tra n e N).
● Se la tabella dispone di un campo relativo al prefisso telefonico, è possibile basare la selezione dei record sui
prefissi telefonici della California (il prefisso telefonico è uno dei x, y...z).

Nota
○ Se il prefisso è inserito nel campo del numero telefonico, non è possibile eseguire la selezione dei
record in base al prefisso mediante l’Assistente selezione. È necessario creare una formula per la
selezione dei record mediante il linguaggio delle formule per estrarre il prefisso dal numero telefonico
ed eseguire la selezione dei record in basse ad esso.
○ In generale, se è possibile basare la selezione dei record su più di un campo (come nell’esempio),
selezionare un campo indicizzato anziché un campo non indicizzato.

1.7.1.2.4.1.1 Invio della selezione di record al server del


database

La componente più importante per rendere più veloce l'elaborazione dei report è limitare la quantità di dati
restituiti dal database. Lo strumento principale per tale scopo è rappresentato dalle formule di selezione dei
record.

I driver forniti da SAP Crystal Reports per origini di dati SQL consentono l'invio di selezioni di record al server del
database. Se si specifica una formula di selezione dei record in un report basato su un'origine di dati SQL, SAP
Crystal Reports analizza la formula, genera una query SQL basata sulla formula e invia la query SQL al server del
database. La selezione dei record è quindi eseguita in due fasi:

● La prima fase della selezione dei record ha luogo quando il server del database elabora la query SQL e
restituisce a SAP Crystal Reports una serie di record.
● Nella seconda fase, SAP Crystal Reports valuta a livello locale la formula di selezione dei record relativa alla
serie di record restituiti dal server del database.

I server di database sono generalmente più veloci delle stazioni di lavoro ed è quindi utile specificare formule per
la selezione dei record che il server è in grado di elaborare nel corso della prima fase. In questo modo, la selezione
dei record da eseguire sul computer locale nella seconda fase è ridotta al minimo. È possibile inviare al server i
seguenti tipi di formule di selezione record:

● selezioni con campi indicizzati e non (i campi indicizzati consentono risposte più rapide).
● query SQL con clausole AND e OR.
● campi di espressioni SQL che eseguono i calcoli delle formule per la selezione dei record (per informazioni sui
tipi di espressioni SQL supportati dal server SQL, consultare la documentazione fornita con il server).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 679
Esempio
Invio della selezione di record al server del database

Questo esempio illustra i vantaggi della scrittura di formule di selezione dei record che possono essere inviate
al server del database.

Nella tabella Ordini del database di esempio Xtreme sono presenti 2.192 record; 181 di questi hanno date
dell'ordine precedenti al 2001. Ipotizzando che l'utente desideri creare un report con questi record. È possibile
utilizzare questa formula di selezione dei record:

Year ({Orders.Order Date}) < 2001

La query SQL generata invia i 2.192 record a SAP Crystal Reports, in seguito la formula di selezione dei record
ne riduce il numero a 181. Per visualizzare questa operazione, richiamare la finestra di dialogo Mostra query
SQL dal menu del database e notare che la query SQL non presenta clausole WHERE. Questo si verifica perché
SAP Crystal Reports non è in grado di inviare la funzione Year ( ) nella clausola WHERE.

D'altro canto, questa formula di selezione dei record genera lo stesso report:

{Orders.Order Date} < #Jan 1, 2001#

Questa seconda formula, tuttavia, può essere eseguita sul server del database, in modo che venga inviata. La
query SQL generata invierà soltanto 181 record a SAP Crystal Reports. Quindi, quando la formula di selezione
dei record viene valutata da SAP Crystal Reports, non sarà necessario eliminare nessun altro record. Scegliere
Mostra query SQL dal menu Database e notare che la query SQL presenta una clausola WHERE.

Come mostrato da questo esempio, la velocità di elaborazione del report migliora quando si potenzia la formula
di selezione del record. In questo caso entrambe le formule generano lo stesso report, ma la seconda sfrutta la
potenza e le ottimizzazioni che il server del database può utilizzare quando gestisce i propri dati.

1.7.1.2.4.1.1.1 Suggerimenti per la selezione dei record

Quando si impostano le richieste di selezione dei record, è opportuno considerare i seguenti elementi relativi alle
prestazioni:

Generale

● Per inviare una selezione dei record, occorre selezionare "Usa indici o server per velocità" nella finestra di
dialogo Opzioni report (fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer
incorporato, scegliere Report, quindi selezionare Opzioni report).
● Nelle formule di selezione dei record evitare conversioni di tipi di dati su campi che non sono campi di
parametro.
Ad esempio, evitare l'utilizzo di ToText ( ) per convertire un campo numerico in un campo di database stringa.
● È possibile inviare alcune formule di selezione dei record che utilizzano espressioni fisse.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
680 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Database SQL

● È possibile inviare selezioni dei record su campi indicizzati e non indicizzati.


● Il server SQL risponde più velocemente se si utilizzano campi indicizzati.
● È possibile inviare clausole AND e OR.
● È possibile inviare formule di selezione di record che contengono alcuni tipi di formule incorporate.
● Si devono incorporare i campi Espressione SQL per inviare i calcoli delle formule necessari per la selezione dei
record.
● Nel menu Database fare clic su Mostra query SQL per visualizzare l'SQL che verrà inviato al server del
database.

1.7.1.2.4.1.2 Selezione di base dei record

L’Esperto selezione consente di specificare rapidamente i record da includere nel report. Quando si lavora con
l’Esperto selezione, si seleziona il campo al quale si desidera applicare le condizioni di selezione, quindi si
specificano tali condizioni.

L’Esperto selezione può essere utilizzato per impostare semplici richieste di selezione dei record. Ad esempio:

● clienti dall’Arizona
● ordini del primo trimestre
● vendite superiori a € 10.000

L’Esperto selezione può essere utilizzato anche per impostare richieste complesse:

● clienti il cui nome inizia per "A", "M" o "S"


● clienti dalla California o dalla Florida che hanno effettuato ordini in luglio

Queste richieste sono tutte limitate da intervalli. L’intervallo è definito da una o più costanti. Il programma
confronta il valore di campo in ogni record con le costanti e rifiuta i record con valori non compresi nell’intervallo. Il
report è limitato ai valori compresi nell’intervallo. È possibile impostare questo tipo di richieste di selezione dei
record senza conoscere il linguaggio delle formule.

Nota
L'Esperto selezione può essere utilizzato per impostare sia richieste di selezione dei record sia di selezione di
gruppo. Se si seleziona un nome di gruppo o un campo di riepilogo, i criteri di selezione impostati valgono per la
selezione dei gruppi. In tutti gli altri casi, si imposta la selezione dei record.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 681
1.7.1.2.4.1.2.1 Per impostare la selezione dei record
mediante l’Esperto selezione

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Esperto selezione.
2. Nella finestra di dialogo Scegli campo, evidenziare il campo su cui si desidera basare la selezione dei record,
quindi fare clic su OK.
3. Nella finestra di dialogo Esperto selezione, utilizzare gli elenchi a discesa per inserire i criteri di selezione per il
campo indicato.

Suggerimento
Fare clic sulla scheda Nuovo per basare la selezione dei record su più di un campo. Selezionare il campo
successivo dalla finestra di dialogo Scegli Campo.

4. Al termine, fare clic su OK.

Nota
Per visualizzare la formula di selezione, fare clic sul pulsante Mostra formula. L’Esperto selezione si
espande per mostrare la formula. Fare clic sul pulsante Editor di Formula per modificare la formula.

Risultati

Viene generata una formula di selezione basata sulle selezioni eseguite che limitano il report ai record indicati.

1.7.1.2.4.1.3 Filtro dei dati del report con le formule di


selezione

Le formule di selezione consentono di definire e filtrare i record e i gruppi che appaiono in un report. Per filtrare i
dati sono disponibili tre tipi di formule di selezione:

● Formula di selezione dei record


● Formula di selezione dei dati salvati
● Formula di selezione dei gruppi

Nella tabella che segue sono riportati i tipi di campi consentiti nei diversi filtri dei report:

Formula di selezione dei Formula di selezione dei Formula di selezione dei


record dati salvati gruppi

Parametri X X X

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
682 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Formula di selezione dei Formula di selezione dei Formula di selezione dei
record dati salvati gruppi

Riepiloghi - - X

Formule ora di stampa/ - - -


totali cumulativi

La tabella che segue mostra le differenze di comportamento associate ai diversi filtri dei report:

Formula di selezione dei Formula di selezione dei Formula di selezione dei


record dati salvati gruppi

Può riferirsi al riepilogo? No, Sì. Sì.

Quando viene valutata la Durante la lettura dei re­ Se si utilizza un riepilogo, In fase di stampa
formula? cord in fase di stampa, altri­
menti durante la lettura
dei record.

Quando viene aggiornato il Se il risultato della valuta­ Se i record vengono letti, N/D
report? zione è falso, quando i re­ durante la valutazione. Se
cord vengono scartati. il risultato della valuta­
zione è falso, quando i re­
cord vengono scartati.

Influisce sul calcolo del rie­ Sì, i record filtrati non ven­ No, se il filtro viene valu­ No, i record vengono con­
pilogo? gono conteggiati. tato durante la lettura dei teggiati anche se filtrati.
record, altrimenti sì.

È possibile applicare la formula di selezione dei dati salvati all'output della formula di selezione dei record. Lo
schema che segue indica la procedura con cui le formule di selezione dei record e di selezione dei dati salvati
vengono utilizzate:

Formula di selezione dei record

La formula di selezione dei record specifica i record che costituiscono i dati salvati del report. Questa formula di
selezione consente due livelli di filtro:

● In base al database
● In base al motore di elaborazione del report

Formula di selezione dei dati salvati

SavedDataFilter consente agli utenti di visualizzare un sottoinsieme dei dati salvati in un report. La modifica di
SavedDataFilter non implica l'eliminazione dei dati salvati in un report o una chiamata al database.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 683
Formula di selezione dei gruppi

La formula di selezione dei gruppi specifica i record che verranno presi in considerazione durante il rendering delle
pagine del report. Normalmente questa formula utilizza i valori generati nelle fasi precedenti dell'elaborazione del
report, ad esempio i riepiloghi.

Nota
La formula di selezione dei gruppi filtra i record e non i gruppi.

1.7.1.2.4.1.4 Personalizzazione delle formule di selezione dei


record

Per creare una formula di selezione dei record, utilizzare la sintassi Crystal.

Informazioni correlate

Sintassi Crystal [pagina 807]


Risoluzione dei problemi nelle formule di selezione dei record [pagina 687]
Invio della selezione di record al server del database [pagina 679]
Finestra di dialogo Editor delle formule [pagina 715]

1.7.1.2.4.1.4.1 Per impostare la selezione dei record


utilizzando una formula

Procedura

1. Fare clic con il pulsante destro del mouse in Crystal Reports Designer incorporato, selezionare Report,
scegliere Formula di selezione, quindi fare clic su Record.
2. Nell'Editor delle formule per la selezione dei record, Immettere la formula digitando i componenti oppure
selezionandoli dalle relative strutture.

Nota
La formula risultante deve essere booleana, ovvero deve restituire un valore True (vero) o False (falso).

3. Fare clic sul pulsante Verifica per identificare eventuali errori nella formula.
4. Correggere gli errori di sintassi eventualmente identificati dal programma di controllo delle formule.
5. Quando la formula presenta la sintassi corretta, fare clic sul pulsante Salva e chiudi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
684 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.4.1.5 Modelli di formula per la selezione dei record

I seguenti esempi di formule possono essere utilizzati come modelli per facilitare la creazione di formule di
selezione mediante l’Editor delle formule per la selezione dei record. Questi esempi illustrano diverse selezioni
possibili, non necessariamente le migliori.

Selezione dei record mediante stringhe di caratteri

{file.FIELD} startswith "C"

Seleziona solo i record nei quali il valore del campo {file.CAMPO} inizia con il carattere "C" (include valori quali
CyclePath, Corp. e Cyclist's Trial Co., esclude valori quali Bob's Bikes Ltd. e Feel Great Bikes, Inc.).

not ({file.FIELD} startswith "C")

Seleziona solo i record nei quali il valore del campo {file.CAMPO} non inizia con il carattere "C" (include valori quali
Bob's Bikes Ltd. e Feel Great Bikes, Inc., esclude valori quali CyclePath, Corp. e Cyclist's Trial Co.).

"999" in {file.FIELD}[3 to 5]

Seleziona i record nei quali le cifre dalla terza alla quinta del campo {file.CAMPO} sono uguali a "999" (include
valori quali 10999, 70999 e 00999, esclude valori quali 99901 e 19990).

"Cycle" in {file.FIELD}

Seleziona i record nei quali il valore del campo {file.CAMPO} contiene la stringa "Cycle" (include valori quali
CyclePath Corp. e CycleSporin,Inc., mentre esclude valori quali Cyclist's Trial Co. e Feel Great Bikes, Inc.).

Selezione dei record mediante singoli valori numerici

{file.FIELD} > 99999

Seleziona i record nei quali il valore del campo {file.CAMPO} è maggiore di 99999.

{file.FIELD} < 99999

Seleziona i record nei quali il valore del campo {file.CAMPO} è inferiore a 99999.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 685
Selezione dei record mediante un intervallo di valori numerici

{file.FIELD} > 11111 and {file.FIELD} < 99999

Seleziona i record nei quali il valore del campo {file.CAMPO} è maggiore di 11111 ma minore di 99999 (l’intervallo di
valori non comprende né 11111 né 99999).

{file.FIELD} >= 11111 and


{file.FIELD} <= 99999

Seleziona i record nei quali il valore del campo {file.CAMPO} è maggiore di 11111 ma minore di 99999 (l’intervallo di
valori comprende sia 11111 sia 99999).

Selezione di record mediante date

Le funzioni Month, Day e Year possono essere utilizzate negli esempi riportati di seguito:

Year ({file.DATE}) < 1999

Seleziona i record nei quali l’anno contenuto nel campo {file.DATA} è precedente al 1999.

Year ({file.DATE}) > 1992 and


Year ({file.DATE}) < 1996

Seleziona i record nei quali l’anno contenuto nel campo {file.DATA} è compreso tra il 1992 e il 1996 (1992 e 1996
non sono inclusi).

Year({file.DATE}) >= 1992 and


Year({file.DATE}) <= 1996

Seleziona i record nei quali l’anno contenuto nel campo {file.DATA} è compreso tra il 1992 e il 1996 (1992 e 1996
sono inclusi).

Month({file.DATE}) in 1 to 4

Seleziona i record in cui il mese presente nel campo {file.DATA} è uno dei primi quattro mesi dell'anno: gennaio,
febbraio, marzo e aprile.

Month({file.DATE}) in [1,4]

Seleziona i record nei quali il mese contenuto nel campo {file.DATA} è il primo o il quarto mese dell’anno (include
gennaio e aprile ed esclude febbraio e marzo).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
686 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Selezione di record mediante intervalli di date predefiniti

È possibile utilizzare intervalli di date predefiniti per creare formule di selezione simili alle seguenti:

{file.DATE} in LastFullMonth

Seleziona i record nei quali la data contenuta nel campo {file.DATA} è compresa nel mese precedente. Se il mese è
maggio, seleziona tutti i record con data di aprile.

not({file.DATE} in LastFullMonth)

Seleziona tutti i record tranne quelli la cui data nel campo {file.DATA} è compresa nel mese precedente (se il mese
è maggio, seleziona tutti i record tranne quelli con data di aprile).

{file.DATE} < CurrentDate

Seleziona tutti i record nei quali la data contenuta nel campo {file.DATA} è precedente alla data odierna.

Selezione di record mediante combinazioni di data/numero/carattere

"C" in {file.FIELD}[1] and Month({file.DATE}) in [1,4]

Seleziona i record nei quali il valore contenuto nel campo {file.CAMPO} inizia con "C" e il mese è gennaio o aprile.
Ad esempio, se questo tipo di formula è stato utilizzato con un database di ordini, è possibile richiedere un report
che includa tutti i clienti i cui nomi iniziano con "C" e che hanno effettuato ordini in gennaio o in aprile.

"AOK" in {file.HISTORY}[3 to 5] and


{file.OPENCRED} >= 5000

Seleziona i record nei quali il campo {file.STORICO} contiene i caratteri "AOK" rispettivamente come terzo, quarto
e quinto carattere, mentre il campo {file.CREDAPER} (importo del credito disponibile) è almeno pari a 5000.

Questi modelli possono essere utilizzati così come sono (con i dati dell’utente) o possono essere combinati per
creare formule complesse.

1.7.1.2.4.1.6 Risoluzione dei problemi nelle formule di


selezione dei record

Per risolvere i problemi correlati alle formule di selezione, assicurarsi dapprima che tutti i campi citati nella
formula di selezione siano inseriti nel report. Quindi eliminare la formula di selezione e verificarla durante la
ricostruzione, nei singoli passaggi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 687
Correzione delle selezioni che non generano dati

È possibile riscontrare una situazione in cui, in una formula di selezione record le informazioni di intestazione e piè
di pagina vengono stampate nel report mentre non sono presenti le informazioni dettagliate. Il problema è
causato dalla formula di selezione che rifiuta tutti i record. Questo si verifica generalmente a causa di un errore
nella creazione della formula di selezione.

Esistono alcune cause possibili del problema nella formula di selezione:

● incoerenze tra lettere maiuscole e minuscole


● spazi aggiuntivi

Correzione di incoerenze tra lettere maiuscole e minuscole

Le formule di selezione dei record distinguono tra lettere maiuscole e minuscole. "Bob" corrisponde soltanto a
"Bob". Non ha corrispondenza con "bob", "BOB", "BoB", "bOB", "boB" o "BOb". Pertanto, se la formula di
selezione è impostata per includere solo i record che contengono "BOB" nel campo {clienti.NOME CONTATTO},
ma tutte le voci del campo {clienti.NOME CONTATTO} contengono sia lettere maiuscole che minuscole (ad
esempio "Bob"), la formula di selezione non trova corrispondenze e non stampa alcun dettaglio per il report.

È possibile risolvere questo problema utilizzando le funzioni UpperCase (str) o LowerCase (str) nella formula di
selezione per convertire i dati dei campi in modo uniforme prima che il programma inizi la selezione. Ad esempio,
se si utilizza la formula riportata di seguito:

{customer.CONTACT FIRST NAME} = "BOB"

è possibile modificarla in questo modo:

UpperCase({customer.CONTACT FIRST NAME}) = "BOB"

Questa seconda formula converte il valore del campo {cliente.NOME CONTATTO} in lettere maiuscole, quindi
controlla se il valore presente nel campo corrisponde a "BOB". Mediante questa formula, ogni occorrenza delle tre
lettere "b", "o" e "b" costituisce una corrispondenza, indipendentemente dal fatto che siano maiuscole o
minuscole, poiché vengono dapprima convertite in maiuscole.

È possibile utilizzare la funzione LowerCase in modo simile per trovare le corrispondenze con "bob".

Controllare con attenzione la formula di selezione e accertarsi che le dimensioni delle lettere siano corrette in ogni
testo in cui si desidera trovare le corrispondenze. In caso di dubbio, utilizzare la funzione UpperCase (o
LowerCase) per garantire coerenza e corrispondenze corrette.

Un’altra formula che esegue in parte le stesse funzioni è:

"BOB" in UpperCase({customer.CONTACT FIRST NAME})

Spazi non desiderati in una formula di selezione

Gli spazi sono caratteri e quando vengono inclusi nella chiave di ricerca di una formula di selezione dei record, la
formula cerca i record che contengono la corrispondenza esatta nel campo selezionato, inclusi gli spazi. Ad
esempio, questa formula:

"Mr . " in {customer.TITLE}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
688 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
non trova corrispondenze con la forma "Sig." dato che la chiave di ricerca contiene uno spazio aggiuntivo tra la
lettera "g" e il punto. Analogamente, "Dott ." non corrisponde a "Dott.".

Controllare con attenzione la formula di selezione e accertarsi che gli spazi nella formula di selezione
corrispondano agli spazi presenti nei campi in cui si cerca la corrispondenza.

1.7.1.2.4.2 Impostazione dei parametri

I parametri richiedono all’utente del report l’immissione di informazioni. Il parametro è simile a una domanda alla
quale l’utente deve rispondere prima che il report venga generato. Le informazioni immesse determinano il
contenuto del report. Ad esempio, è possibile che in un report utilizzato dai rappresentanti di vendita sia presente
un parametro che richieda all’utente di specificare una regione geografica. Il report riporta quindi i risultati relativi
a una specifica regione piuttosto che i risultati relativi a tutte le regioni.

Utilizzando i campi di parametri nelle formule, nelle formule di selezione e nel report stesso, è possibile creare un
singolo report modificabile ogni volta risulti necessario. I campi di parametro possono essere utilizzati anche nei
sottoreport.

Se un parametro risulta mancante o non valido, nel programma verrà visualizzato un errore. Se invece si imposta
la proprietà EnableParameterPrompt di SAP Crystal Report Viewer su true, verrà richiesta di nuovo l'immissione
del parametro.

Considerazioni sui campi di parametro

Quando si utilizzano campi di parametro, è necessario tenere presente alcuni aspetti:

● Per richiedere un parametro all'utente, occorre includere il parametro nel report, in una selezione di record o
di gruppo, in una formula o semplicemente come campo nel report.
● Per utilizzare un campo di parametro in una formula di selezione dei record o dei gruppi, non è necessario
inserirlo nel report. È sufficiente creare il campo di parametro e inserirlo nella formula come un qualsiasi altro
campo.
● Il tipo dati del campo di parametro deve essere uguale a quello del campo con cui viene confrontato. Ad
esempio, se nel report si utilizza un campo {Nome cliente} di tipo stringa che limita le selezioni dei record a un
particolare Nome cliente, anche il campo di parametro creato per questo scopo deve essere di tipo stringa.
● I campi di parametro supportano i tipi di dati riportati di seguito:

Tipo dati Definizione Esempio parametro

Booleano è richiesta una risposta Sì/No, "Includere le cifre del bilancio pre­
True/False (vero/falso). ventivo nel riepilogo?"

Valuta è richiesta l’immissione di un va­ "Visualizzare i clienti con vendite


lore espresso in dollari USA. superiori a XXXXX".

Data è richiesta una risposta in formato "Immettere la data iniziale e finale


data. del trimestre".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 689
Tipo dati Definizione Esempio parametro

DateTime sono richieste data e ora. "Visualizzare le statistiche relative


al giorno 04.07.2000, orario
13.00-14.00".

Numero è richiesto un valore numerico. "Immettere il numero di identifica­


zione del cliente".

Stringa è richiesta una risposta in formato "Immettere la regione".


testo.

Ora è richiesta una risposta in formato "Visualizzare il totale delle telefo­


ora. nate effettuate tra le 13.00 e le
14.00".

● È possibile creare un elenco scelta utente per selezionare i valori dei parametri piuttosto che inserirli
manualmente.
● Le richieste del campo di parametro possono avere una lunghezza massima di quattro righe contenenti circa
60-70 caratteri per riga (in base alla larghezza del carattere, fino a un limite di 254 caratteri). In caso di
richieste più lunghe di una riga viene eseguita l’andata a capo automatica.

Tipi di parametri

In SAP Crystal Reports 2008 è possibile accedere ai seguenti tipi di parametri:

Parametri statici Vengono recuperati i valori dei parametri memorizzati nel report.

Parametri dinamici I valori dei parametri vengono recuperati da un'origine dati esterna al report.

Nota
I prompt dinamici sono supportati da tutti i visualizzatori tranne quello dell'applet Java.

Parametri L'utente viene guidato attraverso una sequenza di prompt dinamici per determinare un
sovrapposti valore finale per il parametro.

Parametri Non richiedono un valore del parametro e possono essere ignorati. Nella finestra di dialogo
facoltativi non è indicato se un parametro è facoltativo, tuttavia è possibile aggiungere al prompt un
testo personalizzato per indicare che è facoltativo.

Nota
I prompt statici vengono visualizzati se il servizio di richiesta non è in grado di recuperare l'elenco di valori, non
è possibile accedere alla sessione di Enterprise o l'origine dati non è accessibile.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
690 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.4.2.1 Progettazione dei campi di parametro

Contesto

Per richiedere un parametro all'utente, occorre includere il parametro nel report, in una selezione di record o di
gruppo, in una formula o semplicemente come campo nel report.

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi parametro, quindi scegliere Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Immettere un nome per il parametro nel campo Nome (fino a 255 caratteri alfanumerici).
3. Immettere il testo di richiesta desiderato nel campo Testo richiesta (fino a 255 caratteri alfanumerici).

Si tratta del testo che viene visualizzato nella finestra di dialogo Immetti valori dei parametri quando il report
viene aggiornato.
4. Immettere il Tipo valore.
5. Per limitare o specificare le opzioni per l'utente, fare clic su Valori predefiniti.
6. Nella finestra di dialogo Imposta valori predefiniti, specificare la tabella e il campo del valore di parametro.
7. Per spostare i valori nell'area Valori predefiniti, fare clic su >>.

L'utente sarà in grado di scegliere i valori spostati nell'area Valori predefiniti. Per limitare la selezione,
spostare solo i valori di cui si desidera consentire la selezione.

Suggerimento
Per il campo di parametro stringa di cui si impostano i valori predefiniti, è possibile selezionare
l'immissione di una maschera di modifica nel campo Masch. Mod. invece di specificare un intervallo.

8. Fare clic su OK.

Viene visualizzata la finestra di dialogo Crea campo parametro.


9. Fare clic su OK.
10. Trascinare il parametro nel report.

Informazioni correlate

Limitazione di tipo di immissione e formato nei parametri [pagina 692]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 691
1.7.1.2.4.2.2 Parametri di dati e parametri non di dati
In base alle modalità di utilizzo, i parametri vengono contrassegnati come parametri di dati o parametri non di
dati. I parametri di dati vengono memorizzati in un database. I parametri non di dati, ad esempio il titolo di un
report, vengono memorizzati con il report. Il modo in cui i parametri vengono utilizzati in un report stabilisce se i
dati del report verranno automaticamente aggiornati quando i valori dei parametri vengono modificati. Il numero
di parametri aggiornati influisce sulle esigenze di elaborazione del database.

I parametri di dati vengono utilizzati nei seguenti casi:

● Formule di selezione dei record (direttamente o indirettamente, incapsulate in una formula)


● Oggetti comando
● Procedure memorizzate
● Parametri di universo

Le modifiche apportate ai valori di un parametro di dati richiedono l'aggiornamento del report per consentire il
recupero di nuovi dati dal database. Ad esempio, un report viene automaticamente aggiornato quando si utilizza
un parametro di dati per generare una query.

I parametri non di dati vengono utilizzati nei seguenti casi:

● Formule di selezione dei dati salvati


● Formule condizionali
● Parametri inseriti nel report

Le modifiche apportate al valore di un parametro non di dati filtrano i dati salvati del report e non richiedono un
aggiornamento. Questo processo riduce al minimo l'entità dell'elaborazione del database. Un titolo, ad esempio, è
un parametro non di dati.

Nota
i parametri non di dati modificano la presentazione dei dati esistenti ed è opportuno utilizzarli solo se lo scopo
del report lo richiede. Ad esempio, non utilizzare una formula di selezione dei dati salvati come filtro per
visualizzare valori inferiori a 100.000 se la formula di selezione dei record in uso è in grado di selezionare solo i
valori superiori a 100.000 dal database. L'utilizzo improprio delle formule di selezione può generare risultati
confusi o addirittura pagine vuote.

Informazioni correlate

Filtro dei dati del report con le formule di selezione [pagina 145]
Riquadro del parametro [pagina 136]
Il riquadro del parametro consente di formattare e filtrare in modo interattivo i dati del report.

1.7.1.2.4.2.3 Limitazione di tipo di immissione e formato nei


parametri
Per il campo di parametro stringa di cui si impostano i valori predefiniti, è possibile selezionare l'immissione di una
maschera di modifica nel campo Masch. Mod. invece di specificare un intervallo. Una maschera di modifica può

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
692 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
essere costituita da un insieme di caratteri utilizzati per restringere i valori che è possibile immettere come valori
dei parametri (la maschera di modifica limita inoltre i valori che è possibile immettere come valori di richiesta
predefiniti).

È possibile immettere uno delle seguenti combinazioni di caratteri di mascheratura:

Carattere di mascheratura Risultato della mascheratura

"A" Consente un carattere alfanumerico e richiede l'immissione


di un carattere nel valore di parametro.

"a" Consente un carattere alfanumerico e non richiede


l'immissione di un carattere nel valore di parametro.

"0" Consente una cifra [da 0 a 9] e richiede l'immissione di un


carattere nel valore di parametro.

"9" Consente una cifra o uno spazio e non richiede l'immissione


di un carattere nel valore di parametro.

"#" Consente una cifra, uno spazio o un segno più/meno e non


richiede l'immissione di un carattere nel valore di parametro.

"L" Consente una lettera [da A a Z] e richiede l'immissione di un


carattere nel valore di parametro.

"?" Consente una lettera e non richiede l'immissione di un


carattere nel valore di parametro.

"&" Consente qualsiasi carattere o spazio e richiede l'immissione


di un carattere nel valore di parametro.

"C" Consente qualsiasi carattere o spazio e non richiede


l'immissione di un carattere nel valore di parametro.

". , : ; - /" Caratteri di separazione. L’inserimento di caratteri di


separazione in una maschera di modifica è simile alla
memorizzazione della formattazione del campo di
parametro. Posizionando il campo nel report, il carattere di
separazione è visualizzato nella cornice di oggetto del campo
come riportato di seguito: LLLL/0000. In questo esempio è
illustrata una maschera di modifica che richiede quattro
lettere seguite da quattro numeri.

"<" I caratteri successivi sono convertiti in minuscole.

">" I caratteri successivi sono convertiti in maiuscole.

"\" Il carattere successivo è visualizzato come letterale. Ad


esempio, la maschera di modifica "\A" visualizza un valore di
parametro "A". Se la maschera di modifica è "00\A00", il

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 693
Carattere di mascheratura Risultato della mascheratura

valore di parametro valido consiste di due cifre, la lettera "A"


seguita da due cifre aggiuntive.

"Password" Consente di impostare la maschera di modifica su


"Password"; è possibile creare formule condizionali
specificando che determinate sezioni del report siano
visualizzate solo una volte immesse determinate password
utente.

alcuni dei caratteri della maschera di modifica richiedono l’immissione di una carattere al loro posto (quando si
immette un valore di parametro): gli altri caratteri consentono di lasciare uno spazio, se necessario. Ad esempio,
se la maschera di modifica è 000099, è possibile immettere un valore di parametro con quattro, cinque o sei cifre
in quanto il carattere ’9’ della maschera di modifica non richiede l’immissione di una carattere. Tuttavia, ’0’
richiede tale immissione e non è possibile immettere un valore di parametro con meno di quattro cifre.

Informazioni correlate

Inserimento dei parametri nelle formule [pagina 694]


Impostazione dei parametri [pagina 689]

1.7.1.2.4.2.4 Inserimento dei parametri nelle formule

Per utilizzare un campo di parametro in una formula di selezione dei record o dei gruppi, non è necessario inserirlo
nel report. È sufficiente creare il campo di parametro e inserirlo nella formula come un qualsiasi altro campo.

Selezione dei record con le formule

Per diminuire il numero di dati trasferiti dal server del database, e migliorare le prestazioni, incorporare tali campi
di parametro direttamente nella formula di selezione dei record.

Tale formula di selezione dei record richiede all'utente di immettere una quota di vendite e visualizza solo tutti i
clienti le cui vendite nell'anno precedente hanno superato tale quota.

{Cliente.Vendite anno precedente} > {?SalesQuota}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
694 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Raggruppamento e ordinamento con i campi di parametro

Questa formula con sintassi Crystal incorpora il parametro ?group, che richiede agli utenti di scegliere Cliente o
Gruppo come opzione di gruppo. La funzione UpperCase converte, per coerenza, il valore di parametro in
maiuscolo.

WhileReadingRecords; If UpperCase ({?group})= "CLIENTE" then {Cliente.Nome Cliente}


Else if UpperCase ({?group}) = "REGIONE" then {Cliente.Regione}

Formattazione condizionale con i campi di parametro

Utilizzare i campi di parametro per creare formule di formattazione condizionale. È possibile utilizzare la formula
di formattazione condizionale per identificare tramite colori i dati che soddisfano determinate condizioni. Se le
condizioni in base alle quali è stato attribuito il flag a questi elementi non cambiano, non utilizzare i campi di
parametro, ma utilizzare le formule o la formattazione condizionale.

Questa formula con sintassi Crystal incorpora il parametro ?SalesTarget, che richiede agli utenti un valore
relativo agli obiettivi di vendita. Tutti i clienti che superano tale valore appaiono in rosso nel report.

If {Clienti.Vendite anno precedente} > {?SalesTarget} Then Red Else Black

1.7.1.2.5 Raggruppamento, ordinamento e calcolo dei totali


dei dati

Quando si inserisce un campo di database nel report per la prima volta, i dati presenti nei campi vengono
visualizzati nell’ordine originale in cui sono stati inseriti nel database. L'ordinamento, il raggruppamento e il
calcolo dei totali trasformano i dati non organizzati in informazioni utili sotto forma di report.

1.7.1.2.5.1 Raggruppamento di dati

Illustra come raggruppare e riepilogare i dati dei report in base a un campo report. Descrive inoltre come
selezionare i primi e gli ultimi N gruppi.

In molti report è necessario suddividere i dati in gruppi per facilitarne la lettura e l'analisi.

Questa sezione illustra le modalità di raggruppamento dei dati in un report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 695
1.7.1.2.5.1.1 Per raggruppare i dati dei report

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Gruppo.
2. Dal primo elenco a discesa della finestra di dialogo Inserisci gruppo selezionare il campo in base al quale
ordinare e raggruppare i dati.
3. Selezionare la direzione di ordinamento dal secondo elenco a discesa.
4. Se si desidera mostrare un valore differente nell’intestazione di gruppo, fare clic sulla scheda Opzioni.

Suggerimento
Per impostazione predefinita, l'intestazione di gruppo del report visualizza il valore del campo in base al
quale si sta effettuando il raggruppamento.

5. Selezionare la casella di controllo Personalizza Campo Nome gruppo e scegliere un nuovo nome di gruppo.

Se, ad esempio, si esegue il raggruppamento in base a {Cliente.ID Cliente}, a ogni modifica del gruppo verrà
visualizzato l'ID del cliente corrispondente. Per visualizzare un valore diverso (l'ID cliente e il nome cliente),
personalizzare il campo del nome gruppo scegliendo un campo di dati alternativo oppure creando una
formula.
6. Fare clic su OK.
Notare che le due nuove sezioni sono ora visualizzate nella scheda Progettazione: Intestazione di gruppo n. 1 e
Piè di pagina di gruppo n. 1. In tal modo il programma indica che il report è stato raggruppato.

Suggerimento
Per nascondere il nome intestazione gruppo, fare clic con il pulsante destro del mouse sull’intestazione
gruppo, selezionare Formato oggetto e fare clic su Ometti nella scheda Comune dell’Editor formato.

Informazioni correlate

Riepilogo dei dati raggruppati [pagina 698]


Selezione dei primi o degli ultimi gruppi N [pagina 701]

1.7.1.2.5.1.2 Raggruppamento dei dati in ordine gerarchico

È possibile raggruppare i dati in un report per mostrarne le relazioni gerarchiche. Quando si raggruppano
gerarchicamente i dati, SAP Crystal Reports ordina le informazioni in base alle relazioni esistenti tra due campi.
Una relazione gerarchica deve essere inerente ai dati utilizzati per il report:

● Affinché la relazione tra i campi principale e secondario sia riconosciuta, essi devono essere dello stesso tipo
di dati del programma.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
696 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● I dati del campo principale devono essere un sottoinsieme dei dati del campo secondario.
● Affinché il livello superiore di una gerarchia sia visualizzato nel report è necessario che il valore sia compreso
nei dati secondari e che la riga corrispondente dei dati principali sia vuota.
● Non è ammessa la logica circolare dei dati; A non è può correlato a B mentre B è correlato a C, e C è a sua
volta correlato ad A.

Ad esempio, se si desidera mostrare la struttura gerarchica di un reparto, è possibile raggruppare i dati per ID dei
dipendenti e indicare la gerarchia utilizzando l’elenco dei campi di dati ai quali fanno riferimento i dipendenti.

1.7.1.2.5.1.2.1 Per raggruppare i dati in ordine gerarchico

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Gruppo.
2. Nella finestra di dialogo Inserisci Gruppo, selezionare il campo sul quale basare l'ordine gerarchico, ossia il
campo secondario.
Se si desidera visualizzare la struttura gerarchica dei dipendenti della società, ad esempio, selezionare il
campo dei dipendenti.
3. Selezionare in ordine crescente.
Per impostazione predefinita, l'intestazione di gruppo del report visualizza il valore del campo in base al quale
si sta effettuando il raggruppamento.
4. Fare clic sulla scheda Opzioni e selezionare la casella di controllo Personalizza Campo Nome gruppo per
mostrare un valore differente nell’intestazione di gruppo.
Se, ad esempio, si esegue il raggruppamento in base al campo dipendente, a ogni modifica del gruppo verrà
visualizzato il nome del dipendente corrispondente. Se si desidera visualizzare un valore differente (nome del
dipendente invece di ID dipendente), personalizzare il campo Nome gruppo selezionando un campo dati
sostitutivo, oppure creando una formula.
5. Fare clic su OK.
Il gruppo creato viene aggiunto al report.
6. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Opzioni di raggruppamento gerarchico.
7. Nell'elenco Gruppi disponibili della finestra di dialogo Opzioni dei gruppi gerarchici, selezionare il gruppo che si
desidera organizzare gerarchicamente.
8. Selezionare la casella di controllo Ordina dati gerarchicamente.
9. Selezionare il campo per il quale si desidera organizzare il Campo ID istanze dall’elenco Campo ID principale.
Ad esempio, per un report gerarchico dei dipendenti è possibile selezionare il campo dati che elenca il
supervisore a cui fanno riferimento i dipendenti.

Nota
Il tipo dati dei campi ID istanze e ID principale deve essere uguale. Ad esempio, se il campo ID istanze
contiene dati stringa, anche il campo ID principale deve contenere dati stringa.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 697
10. Nel campo Rientro gruppo, immettere la quantità in base alla quale si desidera fare rientrare ciascun
sottogruppo.

Nota
Il valore immesso nel campo Rientro Gruppo interessa tutti gli altri oggetti presenti nella stessa area del
gruppo gerarchico. Ad esempio, se nel report il campo stipendio si trova sulla stessa riga del nome del
dipendente, quando viene utilizzato il campo dipendente per creare un gruppo gerarchico, il rientro verrà
esteso anche al campo stipendio.

11. Fare clic su OK.


I dati del report vengono ora ordinati in ordine gerarchico.

Nota
Il livello del nome nella gerarchia del report è determinato dal numero degli impiegati subordinati. Gli
impiegati senza subordinati sono riportati all'ultimo livello della gerarchia.

Informazioni correlate

Calcolo dei totali dei dati [pagina 706]


Illustra come calcolare il totale parziale dei dati raggruppati, aggiungere percentuali ai report e creare totali
parziali.

1.7.1.2.5.1.3 Riepilogo dei dati raggruppati

Uno degli scopi principali della suddivisione dei dati in gruppi consiste nella possibilità di eseguire calcoli su ogni
gruppo di record anziché su tutti i record del report. Nell’effettuare il riepilogo dei dati, il programma li ordina, li
suddivide in gruppi, quindi effettua il riepilogo dei valori di ogni gruppo. Tutto ciò avviene in maniera automatica.

Il programma include inoltre varie opzioni di riepilogo. A seconda del tipo di dati del campo che si intende
riepilogare, è possibile:

● Riepilogare i valori di ciascun gruppo.


● Conteggiare tutti i valori o soltanto quelli diversi.
● Definire il valore massimo, minimo, medio o l'ennesimo valore massimo.
● Calcolare un massimo di due tipi di varianza e deviazione standard.

Ad esempio:

● I report degli elenchi dei clienti determinano il numero di clienti in ogni stato. Il riepilogo conteggia i singoli
clienti di ogni gruppo relativo allo stato.
● I report degli ordini determinano la media degli ordinativi effettuati ogni mese. Il riepilogo calcola il valore
dell’ordine medio mensile per ciascun gruppo.
● I report delle vendite determinano le vendite totali per ogni agente di vendita. Il riepilogo calcola la somma o il
totale parziale degli importi degli ordini per ogni gruppo relativo all’agente di vendita.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
698 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Nascondere i dettagli nei report di riepilogo [pagina 701]


Ordinamento dei gruppi in base ai valori riepilogati [pagina 699]
Per eseguire il totale parziale dei dati [pagina 706]
Aggiunta di percentuali a un report [pagina 707]
Selezione dei primi o degli ultimi gruppi N [pagina 701]

1.7.1.2.5.1.3.1 Per riepilogare dati raggruppati

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato per accedere al menu
di scelta rapida.
2. Scegliere Inserisci, quindi fare clic su Riepilogo.
3. Nella finestra di dialogo Inserisci riepilogo selezionare il campo da riepilogare nell'elenco "Scegliere il campo
da riepilogare".
4. Selezionare l’operazione di riepilogo dall’elenco Calcolare questo riepilogo.
5. Selezionare il percorso in cui inserire il riepilogo dall’elenco Percorso riepilogo.

Suggerimento
Facendo clic sul pulsante Inserisci gruppo, è possibile creare un nuovo gruppo per il report.

6. Se si desidera visualizzare il valore di riepilogo come percentuale di un totale, selezionare Mostra come
percentuale di dall’area Opzioni, quindi scegliere un campo totale dall’elenco.
7. Se si desidera eseguire il riepilogo attraverso una gerarchia, selezionare Riepiloga attraverso gerarchia.
Per ulteriori informazioni sulle gerarchie, vedere Raggruppamento dei dati in ordine gerarchico [pagina 696].
8. Fare clic su OK.
Per conteggiare, ad esempio, il numero di clienti in ogni paese, creare un campo conteggio in base al cliente e
raggrupparlo in base al paese.

1.7.1.2.5.1.4 Ordinamento dei gruppi in base ai valori


riepilogati

Contesto

I gruppi possono essere organizzati in ordine crescente o decrescente per valore di riepilogo. Ad esempio, in un
report di ordini, se si esegue il totale parziale dell’importo degli ordini in base allo stato, è possibile ordinare i
gruppi:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 699
● Dal numero di ordinativi più basso a quello più alto (crescente).
● Dal numero di ordinativi più alto a quello più basso (decrescente).

È possibile ordinare i gruppi in base ai valori di riepilogo utilizzando Esperto ordinamento gruppo.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Esperto ordinamento gruppo.

Nota
Affinché Esperto ordinamento gruppo sia disponibile, è necessario che il report contenga un campo di
riepilogo. Vedere Riepilogo dei dati raggruppati [pagina 698].

Verrà visualizzata la finestra di dialogo Esperto ordinamento gruppo con una scheda per ognuno dei gruppi
riepilogati del report.
2. Fare clic sulla scheda corrispondente al gruppo che si desidera ordinare.
3. Selezionare Tutti dall'elenco a discesa posto a sinistra.
4. Scegliere il riepilogo sul quale si desidera basare la selezione dall’elenco a discesa di riepilogo posto sulla
destra.
L’elenco a discesa per i riepiloghi a destra è utile quando sono presenti più riepiloghi in una sola sezione di
gruppo. Ad esempio, in un report di ordini, è possibile sommare gli ordini di ogni cliente ed eseguirne la media,
quindi visualizzare sia la somma che la media nella stessa sezione di gruppo. In tal caso, è possibile
selezionare la somma o la media dall’elenco a discesa.
5. Specificare la direzione di ordinamento facendo clic su Crescente o Decrescente.
6. Per selezionare l’ordinamento di un secondo gruppo, ripetere la fasi 2-5.
7. Al termine, fare clic su OK.

Risultati

Quando si esegue il report, il programma ordina i gruppi in base ai valori di riepilogo specificati.

Informazioni correlate

Aggiunta di percentuali a un report [pagina 707]


Miglioramento della presentazione del report [pagina 742]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
700 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.5.1.5 Nascondere i dettagli nei report di riepilogo

Contesto

Nascondendo la sezione Dettagli di un report di riepilogo, si evita di sovraccaricare gli utenti con dati di cui non
hanno immediato bisogno. Quando la sezione Dettagli è nascosta, gli utenti possono navigare utilizzando
Struttura di gruppo per individuare i dati desiderati. Effettuando successivamente un'analisi dettagliata nel report,
possono richiedere dati specifici, che vengono rapidamente restituiti senza record superflui.

Per facilitare questo tipo di navigazione occorre innanzitutto raggruppare i dati e inserirli nei campi di riepilogo
che si desidera includere nel report.

Procedura

Fare clic con il pulsante destro del mouse nella sezione Dettagli del report e selezionare Nascondi (con analisi
dettagliata).

Informazioni correlate

Selezione dei primi o degli ultimi gruppi N [pagina 701]


Aggiunta di percentuali a un report [pagina 707]
Miglioramento della presentazione del report [pagina 742]

1.7.1.2.5.1.6 Selezione dei primi o degli ultimi gruppi N

Contesto

Talvolta, è necessario indicare solo i "primi" o gli "ultimi" gruppi in un report: le linee di prodotti di più facile
vendita, le aree di vendita meno produttive, gli stati che in cui viene effettuato il numero massimo di ordinativi e
così via. Poiché si tratta di un tipo di selezione dei gruppi di utilizzo molto frequente, è disponibile l'Esperto
ordinamento gruppo per impostarla facilmente:

● Con il raggruppamento in base ai primi gruppi N, verranno visualizzati i gruppi che presentano i valori di
riepilogo più alti.
● Con il raggruppamento in base agli ultimi gruppi N, verranno visualizzati i gruppi che presentano i valori di
riepilogo più bassi.

Occorre tenere presente un altro elemento quando si selezionano i primi o gli ultimi gruppi N: le modalità di
utilizzo dei record dei gruppi rimanenti, ovvero dei gruppi che non soddisfano i criteri specificati per i primi o gli
ultimi gruppi N. È necessario decidere se eliminarli completamente dal report oppure inserirli tutti in un unico
gruppo. È possibile scegliere entrambe le opzioni.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 701
Nota
Questa procedura descrive come selezionare i primi o gli ultimi N gruppi. Per le prime o ultime percentuali il
metodo è identico, solo che invece del numero di gruppi si definisce il valore della percentuale.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Esperto ordinamento gruppo.

Nota
Per eseguire la selezione in base ai primi o agli ultimi gruppi N, il report deve contenere un valore di
riepilogo. Vedere Riepilogo dei dati raggruppati [pagina 698].

Viene visualizzato l'Esperto ordinamento gruppo con una scheda per il gruppo. se sono presenti più gruppi, il
programma visualizza una scheda per ciascun gruppo.
2. Selezionare Primi N o Ultimi N nell'elenco a discesa.
3. Scegliere il riepilogo sul quale si desidera basare la selezione dall’elenco a discesa di riepilogo posto sulla
destra.

L’elenco a discesa per i riepiloghi a destra è utile quando sono presenti più riepiloghi in una sola sezione di
gruppo. Ad esempio, in un report di ordini, è possibile sommare gli ordini di ogni cliente ed eseguirne la media,
quindi visualizzare sia la somma che la media nella stessa sezione di gruppo. In tal caso, è possibile
selezionare la somma o la media dall’elenco a discesa.
4. Nella casella di testo "Dove N è", immettere il numero di gruppi da visualizzare.
Ad esempio:

○ Per creare un report delle tre linee di prodotti di più facile vendita, selezionare l'opzione Primi N in Esperto
Primi N/Ordina gruppo, quindi impostare il valore N su tre.
○ Per creare un report delle cinque aree di vendita meno produttive, selezionare l'opzione Ultimi N in
Esperto Primi N/Ordina gruppo, quindi impostare il valore N su cinque.
5. Per raggruppare tutti i record rimanenti in un unico gruppo, selezionare l'opzione Includi Altri, con il nome e
immettere un nome appropriato.
6. Selezionare Includi collegamenti per inserire i gruppi che presentano valori di riepilogo uguali.

Ad esempio, si supponga di avere i seguenti gruppi:

○ Ordine 1 = 100
○ Ordine 1 = 100
○ Ordine 1 = 100
○ Ordine 1 = 100

Se si impostano i primi N su tre, ma non si seleziona "Includi collegamenti", il report visualizzerà Ordine 1,
Ordine 2 e Ordine 3.

Se, nello stesso scenario, si seleziona "Includi collegamenti", il report visualizzerà Ordine 1, Ordine 2, Ordine 3
e Ordine 4 anche se N è impostato su tre. In tal modo, nel programma vengono inseriti i valori uguali degli
ordini 3 e 4.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
702 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
7. Fare clic su OK.

Risultati

Quando il programma esegue il report, include solo i gruppi specificati.

Informazioni correlate

Aggiunta di percentuali a un report [pagina 707]


Miglioramento della presentazione del report [pagina 742]

1.7.1.2.5.2 Ordinamento di dati

Descrive come ordinare i dati in un campo specifico. Illustra inoltre le diverse opzioni di ordinamento.

Quando si aggiunge un campo database al report, i valori dei dati del campo vengono visualizzati nell'ordine in cui
sono stati originariamente immessi nel database. L'ordinamento dei record consente di disporre i dati in un
determinato ordine, in modo da individuare e valutare le informazioni desiderate.

1.7.1.2.5.2.1 Per ordinare i dati

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato per accedere al menu
di scelta rapida.
2. Scegliere Report, quindi fare clic su Esperto ordinamento record per accedere a Esperto ordinamento record.
3. Evidenziare il campo da ordinare dall'area Campi disponibili.
4. Fare clic sulla freccia >.
Il campo selezionato viene aggiunto all’elenco Campi di ordinamento.
5. Nel riquadro Ordine della finestra di dialogo, fare clic su Crescente o Decrescente.
6. Se si esegue l’ordinamento per più campi, evidenziare il secondo campo che si desidera ordinare e
aggiungerlo all’elenco Campi di ordinamento.

Nota
I dati verranno ordinati seguendo l'ordine dei campi presenti nell'elenco Campi di ordinamento.

7. Al termine, fare clic su OK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 703
1.7.1.2.5.2.2 Opzioni di ordinamento

Quando si esegue un ordinamento, il programma richiede la definizione di due elementi:

● Il campo in base al quale eseguire l'ordinamento (il campo di ordinamento).


● La direzione di ordinamento.

Campo di ordinamento

Il campo di ordinamento determina l'ordine in cui i dati vengono visualizzati nel report. Quasi tutti i campi possono
essere utilizzati come campo di ordinamento, inclusi i campi delle formule. Il tipo di dati di un campo determina il
metodo di ordinamento dei dati in esso contenuti.

Nota
Non è possibile eseguire l'ordinamento con campi memo o BLOB.

Tipo di Campo Ordinamento

Campi di stringa a un carattere Spazi vuoti

Segni di punteggiatura

Numeri

Lettere maiuscole

Lettere minuscole

Campi stringa a più caratteri Due lettere

Tre lettere

Quattro lettere e così via

Ad esempio:

● "BOB" precede "bob"


● "123" precede "124"
● " " (spazio vuoto) precede "aaa"

Campi valuta Ordine numerico

Campi numerici Ordine numerico

Campi data Ordine cronologico

Campi DateTime Ordine cronologico

I valori con la stessa data vengono ordinati in base al­


l'ora

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
704 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Tipo di Campo Ordinamento

Campi ora Ordine cronologico

Campi di confronto booleani Valori False (0)

Valori True (1)

Valori Null Valori Null

Valori non nulli

Direzione di ordinamento

La direzione di ordinamento è l'ordine in cui vengono visualizzati i valori, una volta ordinati.

Crescente L'ordine crescente va dai valori minimi ai valori massimi (1 - 9, A - Z, Falso - Vero). Il programma
esegue l’ordinamento dei record con criterio crescente in base ai valori selezionati nel campo di
ordinamento.

Decrescente L'ordine decrescente va dai valori massimi ai valori minimi (9 - 1, Z - A, Vero - Falso). Il programma
esegue l’ordinamento dei record con criterio decrescente in base ai valori selezionati nel campo di
ordinamento.

1.7.1.2.5.2.3 Controlli di ordinamento


SAP Crystal Reports 2008 consente di modificare un campo o una direzione di ordinamento senza dover
aggiornare le informazioni del database. Questa operazione è possibile utilizzando un controllo di ordinamento. Se
si aggiunge un controllo di ordinamento a un campo di testo, verranno posizionate due frecce ai lati del campo
quando il report viene visualizzato in anteprima. Gli utenti possono ordinare i campi selezionati facendo clic sulle
frecce di ordinamento visualizzate accanto all'oggetto di testo.

I controlli di ordinamento sono disponibili in tutti i visualizzatori di SAP Crystal Reports, tuttavia non è possibile
aggiungerli dalla pagina di progettazione incorporata. Per aggiungere un controllo di ordinamento al report, è
necessario utilizzare la funzionalità di progettazione autonoma.

Un controllo di ordinamento può risultare particolarmente utile per diversi motivi:

● Consente agli utenti di ordinare i dati del report per eseguire ulteriori analisi senza dover lasciare l'area di
disegno del report.
● Riduce l'elaborazione per il database.
● Riduce il tempo di attesa dell'ordinamento dei dati.
● Consente agli utenti di ordinare i campi del report anche se non dispongono di una connessione o dei diritti di
accesso al database al momento della visualizzazione.

Quando si pianifica l'inserimento di un controllo di ordinamento nel report, è importante considerare i seguenti
punti:

● I controlli di ordinamento vengono applicati a un intero insieme di record, non è possibile ordinare un solo
gruppo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 705
● I controlli di ordinamento non possono essere utilizzati nei sottoreport.
● L'utilizzo dei controlli di ordinamento causa la chiusura di eventuali schede di drill down aperte (un prompt
avvisa gli utenti).
● I controlli di ordinamento devono essere aggiunti a un report mediante la funzionalità di progettazione
autonoma.

1.7.1.2.5.3 Calcolo dei totali dei dati

Illustra come calcolare il totale parziale dei dati raggruppati, aggiungere percentuali ai report e creare totali
parziali.

Per consentire agli utenti l'analisi dei dati dei report, a questi ultimi è possibile aggiungere i totali. Il calcolo dei
totali può essere un'operazione semplice come l'inserimento del totale generale alla fine di un elenco di record o
complessa come la visualizzazione di un totale parziale in base alle condizioni specificate da una formula.
Utilizzare gli esperti forniti dal programma per eseguire il calcolo dei totali dei dati.

Informazioni correlate

Esecuzione di calcoli nei report [pagina 713]

1.7.1.2.5.3.1 Per eseguire il totale parziale dei dati

Contesto

Un totale parziale è un riepilogo che totalizza o somma valori numerici in un gruppo.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato per accedere al menu
di scelta rapida.
2. Scegliere Inserisci, quindi fare clic su Riepilogo.
3. Nella finestra di dialogo Inserisci riepilogo fare clic sull'elenco a discesa e selezionare il campo di cui si
desidera calcolare il totale parziale.
4. Fare clic sul pulsante Inserisci gruppo.
Viene visualizzata la finestra di dialogo Inserisci Gruppo in modo che sia possibile specificare il gruppo che si
desidera aggiungere al report.
5. Scegliere il campo in base al quale si desidera raggruppare i dati, specificare una direzione di ordinamento e
fare clic su OK al termine delle operazioni.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
706 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
6. Nella finestra di dialogo Inserisci riepilogo selezionare il gruppo appena creato dall'elenco Percorso riepilogo e
fare clic su OK.
Viene calcolato il totale parziale dei valori di ogni gruppo.
7. Fare clic su OK.

Informazioni correlate

Raggruppamento di dati [pagina 695]


Illustra come raggruppare e riepilogare i dati dei report in base a un campo report. Descrive inoltre come
selezionare i primi e gli ultimi N gruppi.

Aggiunta di percentuali a un report [pagina 707]

1.7.1.2.5.3.2 Aggiunta di percentuali a un report

Contesto

È possibile calcolare la percentuale di un gruppo all’interno di un raggruppamento di maggiori dimensioni. È


possibile, ad esempio, indicare le vendite di ogni città sotto forma di percentuale delle vendite totali per ciascun
paese. In alternativa, è possibile rappresentare il contributo, espresso in percentuale, di ciascun paese al totale
generale delle vendite.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato per accedere al menu
di scelta rapida.
2. Scegliere Inserisci, quindi fare clic su Riepilogo.
3. Nella finestra di dialogo Inserisci riepilogo selezionare il campo di cui si desidera calcolare la somma.
4. Nel secondo elenco a discesa selezionare Somma.

Nota
Il calcolo della "somma" viene visualizzato nell'elenco solo quando il primo elenco a discesa presenta un
campo che contiene dati numerici.

5. Selezionare il percorso del riepilogo.

Nota
Quando si calcola una percentuale, il percorso del riepilogo non può essere Totale generale (Piè di pagina
report).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 707
6. Selezionare la casella di controllo Mostra come percentuale di.
7. Nell'elenco Mostra come percentuale di, selezionare il gruppo in base al quale calcolare la percentuale.

È possibile scegliere di visualizzare la percentuale di un gruppo all'interno di un altro gruppo oppure la


percentuale del totale generale.
8. Fare clic su OK.

Il campo di riepilogo percentuale viene aggiunto al report.

Informazioni correlate

Raggruppamento di dati [pagina 695]


Illustra come raggruppare e riepilogare i dati dei report in base a un campo report. Descrive inoltre come
selezionare i primi e gli ultimi N gruppi.

Miglioramento della presentazione del report [pagina 742]

1.7.1.2.5.3.3 Creazione di totali parziali

I campi dei totali parziali, sebbene simili ai campi di riepilogo, garantiscono un controllo maggiore sulle procedure
di calcolo e sui tempi di reimpostazione del totale. I campi dei totali parziali sono particolarmente adatti
all'esecuzione delle seguenti funzioni di calcolo dei totali:

● Indicare i valori di un totale durante il calcolo record per record.


● Indicare il valore del totale indipendentemente dal raggruppamento del report.
● Indicare il valore del totale condizionale.
● Indicare il valore del totale in seguito all'applicazione di una formula di selezione dei gruppi.

Un campo di totale parziale può essere utilizzato su formule di prima fase e campi database, non su formule di
seconda fase o che fanno riferimento ad altre formule di questo tipo.

1.7.1.2.5.3.4 Inserimento di campi di totale parziale

Il calcolo di un campo di totale parziale è determinato dalle impostazioni selezionate nell'Esperto totale parziale.
Tuttavia, l'inserimento del totale parziale determina il valore reale visualizzato sul report. Se, ad esempio, si
inserisce un totale parziale che valuta tutti i record e non viene mai reimpostato (totale generale) nella sezione
Intestazione report, verrà visualizzato solo il valore del primo record. Inserendo lo stesso totale parziale nella
sezione Piè di pagina report verrà restituito il valore desiderato. Il totale parziale viene calcolato correttamente in
entrambi i casi, ma nel primo caso viene visualizzato in anticipo.

Di seguito è riportato un elenco delle sezioni di report e dei record che verranno utilizzati dal totale parziale.

Sezione del report Totale parziale calcolato per

Intestazione report Il primo record del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
708 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Sezione del report Totale parziale calcolato per

Intestazione pagina Tutti i record fino al primo record incluso della pagina
corrente.

Intestazione gruppo Tutti i record fino al primo record incluso del gruppo
corrente

Dettagli Tutti i record fino al record corrente, incluso.

Piè di pagina di gruppo Tutti i record fino all’ultimo record incluso del gruppo
corrente.

Piè di pagina Tutti i record fino all’ultimo record incluso della pagina
corrente.

Piè di pagina report Tutti i record del report.

Informazioni correlate

Creazione di totali parziali in un elenco [pagina 709]


Creazione di totali parziali per un gruppo [pagina 710]
Creazione di totali parziali condizionali [pagina 711]

1.7.1.2.5.3.5 Creazione di totali parziali in un elenco

I totali parziali sono i totali che, di solito, vengono visualizzati per ciascun record Essi includono il totale di tutti i
record (del report, del gruppo e così via) fino al record corrente incluso. Il tipo più semplice di totale parziale è un
singolo totale parziale gestito in un elenco.

È possibile creare i campi di totale parziale mediante l'apposito esperto, che consente di selezionare il campo da
riepilogare, l'operazione di riepilogo da effettuare, la condizione in base alla quale eseguire la valutazione e la
condizione in base alla quale reimpostare la valutazione.

Nota
Un campo di totale parziale può essere utilizzato su formule di prima fase e campi database, non su formule di
seconda fase o che fanno riferimento ad altre formule di questo tipo. Vedere Modello di elaborazione dei report
[pagina 651].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 709
1.7.1.2.5.3.5.1 Per creare un totale parziale in un elenco

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi totale parziale, quindi scegliere Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Crea campo totale parziale, immettere un nome per l'oggetto totale parziale nel
campo Nome totale parziale.
3. Nel riquadro Tabelle e campi disponibili, selezionare il campo da riepilogare.
4. Fare clic sulla prima freccia per aggiungere il campo alla casella Campo da riepilogare.
5. Nella sezione Valutazione della finestra di dialogo, scegliere quando eseguire il totale parziale.
Per inserire un totale parziale in un elenco, fare clic su "Su modifica di campo".
6. Nel riquadro Tabelle e campi disponibili, selezionare il campo "su modifica di".
7. Fare clic sulla seconda freccia per aggiungere il campo alla casella Su modifica di campo.
8. Nella sezione Reimposta della finestra di dialogo, fare clic su Mai.

In questo modo, viene fornito un totale parziale che non viene mai reimpostato, in altre parole un totale
parziale che viene mantenuto in tutto il report, fornendo quindi un totale generale.
9. Fare clic su OK per salvare il campo di totale parziale.
A questo punto il totale parziale verrà visualizzato in Explorer Campo, in Campi totale parziale.
10. Trascinare il campo di totale parziale sulla sezione Dettagli del report.

Nota
Un totale parziale inserito in un report viene preceduto dal prefisso # (ad esempio, #Total1).

Informazioni correlate

Inserimento di campi di totale parziale [pagina 708]


Creazione di totali parziali [pagina 708]

1.7.1.2.5.3.6 Creazione di totali parziali per un gruppo

Di solito, i totali parziali vengono utilizzati per conteggiare gli elementi di un gruppo. Il totale parziale inizia con il
primo elemento del gruppo e termina con l’ultimo elemento. Quindi, la stessa operazione viene ripetuta per il
gruppo successivo e così via.

Per creare il totale parziale di un gruppo, è necessario innanzitutto raggruppare i dati. Per raggruppare i dati,
vedere Raggruppamento di dati [pagina 695].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
710 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.5.3.6.1 Per creare un totale parziale per un gruppo

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi totale parziale, quindi scegliere Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Crea campo totale parziale, immettere un nome per l'oggetto totale parziale nel
campo Nome totale parziale.
3. Nel riquadro Tabelle e campi disponibili, selezionare il campo da riepilogare.
4. Fare clic sulla prima freccia per aggiungere il campo alla casella Campo da riepilogare.
5. Nella sezione Valutazione della finestra di dialogo, fare clic su Per ciascun record.
6. Nella sezione Reimposta della finestra di dialogo, fare clic su Su modifica di gruppo e accettare il nome del
gruppo predefinito.
7. Fare clic su OK per salvare il campo di totale parziale.
A questo punto il totale parziale verrà visualizzato in Explorer Campo, in Campi totale parziale.
8. Trascinare il campo del totale parziale sulla sezione Dettagli del report oppure, se si desidera visualizzare un
totale generale di ogni gruppo, trascinare il campo del totale parziale sulla sezione Piè di pagina di gruppo.

Nota
Un totale parziale inserito in un report viene preceduto dal prefisso # (ad esempio, #Total1).

Informazioni correlate

Inserimento di campi di totale parziale [pagina 708]


Creazione di totali parziali [pagina 708]

1.7.1.2.5.3.7 Creazione di totali parziali condizionali

Nel caso di un elenco di valori non raggruppati è possibile che si desideri calcolare il totale intermedio solo di
alcuni valori nell’elenco.

Si supponga che esistano le seguenti condizioni:

● Si dispone di un elenco che contiene clienti canadesi e statunitensi.


● Si desidera conservare i record dei clienti in ordine alfabetico, in base al nome del cliente.
● Non si desidera suddividere i dati in gruppi in base al paese.
● Si desidera il totale relativo solo ai valori dei record canadesi.
● Inoltre si desidera il totale riferito solo ai valori dei record statunitensi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 711
Per ottenere tali risultati, creare due totali parziali: uno per visualizzare il totale parziale dei record relativi ai clienti
americani e uno per il totale parziale dei record relativi a clienti canadesi.

● USTotal
Contiene un totale parziale dei record statunitensi.
● CanadaTotal
Contiene un totale parziale dei record canadesi.

1.7.1.2.5.3.7.1 Per creare un totale parziale condizionale

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi totale parziale, quindi scegliere Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Crea campo totale parziale, immettere un nome per l'oggetto totale parziale nel
campo Nome totale parziale.
3. Nel riquadro Tabelle e campi disponibili, selezionare il primo campo da riepilogare.
4. Fare clic sulla prima freccia per aggiungere il campo alla casella Campo da riepilogare.
5. Nell'elenco Tipo di riepilogo, fare clic su somma.
6. Nella sezione Valutazione della finestra di dialogo, fare clic su Usa formula, quindi scegliere il pulsante Formula
(x+2).
7. Nella finestra di dialogo Formula condizione totale parziale, immettere la formula nell'apposita casella.
Se, ad esempio, si utilizza la sintassi Crystal per creare un totale parziale delle vendite negli Stati Uniti,
immettere il seguente codice:

{Cliente.Paese} = "USA"

Se si utilizza la sintassi Basic, immettere il seguente codice:

Formula = {Cliente.Paese} = "USA"

Impostando questa formula, il programma valuta il totale parziale ogni volta che arriva a un record in cui
{Cliente.PAESE} è uguale a "USA". Il totale parziale ignorerà tutti gli altri record.
8. Fare clic sul pulsante Salva e chiudi.
9. Nella sezione Reimposta della finestra di dialogo Crea campo totale parziale, fare clic su Mai.
10. Fare clic su OK per salvare il campo di totale parziale.
11. Creare un altro totale parziale ripetendo i passaggi precedenti. L'unica differenza sarà il valore presente nella
formula.
12. Tornare a Explorer Campo, quindi individuare i campi di totale parziale desiderati.
13. Trascinare entrambi i campi di totale parziale sulla sezione Dettagli del report oppure, se si desidera
visualizzare un totale generale, trascinarli sulla sezione Piè di pagina report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
712 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Un totale parziale inserito in un report viene preceduto dal prefisso # (ad esempio, #Total1).

Informazioni correlate

Inserimento di campi di totale parziale [pagina 708]


Creazione di totali parziali [pagina 708]

1.7.1.2.6 Esecuzione di calcoli nei report

In molti casi, i dati necessari per la creazione di un report sono già presenti nei campi delle tabelle del database.
Tuttavia, può essere necessario inserire dati nel report che non esistono in alcun campo di dati. In tal caso, è
necessario creare una formula.

1.7.1.2.6.1 Cenni preliminari sulle formule

Descrive come creare le formule e incorporarle nei report.

In SAP Crystal Reports sono disponibili numerosi tipi di formule: formule di report, formattazione condizionale,
selezione, ricerca e condizione totale parziale. La maggior parte delle formule di un report sono costituite da
formule di report e di formattazione condizionale.

Formule di report

Le formule di report sono create per rimanere autonome all’interno di un report. Ad esempio, una formula che
calcola i giorni che intercorrono tra la data dell’ordine e la data di spedizione è una formula di report.

Formule di formattazione condizionale

Le formule di formattazione modificano il layout e la struttura di un report, l’aspetto del testo, dei campi di
database, degli oggetti o di intere sezioni del report. Il testo viene formattato tramite l’Editor formato. Se è
necessario creare una formula di formattazione, è possibile accedere all’Editor di Formula dall’Editor formato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 713
Formule di selezione

Le formule di selezione sono utilizzate per definire e limitare i record e i gruppi che appaiono in un report. Di solito,
tali formule non vengono immesse direttamente ma si specifica la selezione utilizzando l’Esperto selezione. SAP
Crystal Reports genera quindi le formule di selezione dei record e dei gruppi. È possibile modificare manualmente
le formule ma sarà necessario utilizzare la sintassi Crystal.

Formule di ricerca

Le formule di ricerca consentono di individuare i dati all’interno dei report. Analogamente alle formule di selezione,
di solito queste formule non vengono immesse direttamente, ma vengono specificati i criteri di ricerca mediante
l'Esperto ricerca. SAP Crystal Reports genera la formula. È possibile modificare manualmente le formule ma sarà
necessario utilizzare la sintassi Crystal.

se si conosce già la sintassi Basic, è sufficiente una conoscenza limitata della sintassi Crystal per modificare la
maggior parte delle formule di selezione e di ricerca.

Formule di condizione totale parziale

Le formule di condizione totale parziale consentono di definire la condizione in base alla quale valutare o
reimpostare il totale parziale. Per ulteriori informazioni, vedere Creazione di totali parziali condizionali [pagina
711].

Informazioni correlate

Inserimento di formule [pagina 714]


Esercitazione: Filtro di dati mediante formule di selezione [pagina 284]
In questa esercitazione viene descritto come utilizzare le formule di selezione per filtrare i record da visualizzare
in un report Crystal.

1.7.1.2.6.1.1 Inserimento di formule

Quando si creano le formule, è possibile scegliere di utilizzare la sintassi Crystal o Basic. Quasi tutte le formule
scritte utilizzando una sintassi possono essere riscritte con le regole dell'altra sintassi. I report possono includere
formule create sia con la sintassi Crystal sia con la sintassi Basic.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
714 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Sintassi Basic [pagina 772]


Sintassi Crystal [pagina 807]
Esercitazione: Filtro di dati mediante formule di selezione [pagina 284]
In questa esercitazione viene descritto come utilizzare le formule di selezione per filtrare i record da visualizzare
in un report Crystal.

1.7.1.2.6.1.1.1 Per inserire una formula in un report

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi Formula, quindi scegliere Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Nome formula, immettere un nome per la formula.


3. Fare clic su Usa Editor.
4. Nella finestra di dialogo Editor delle formule, scegliere Sintassi Crystal o Sintassi Basic.
5. Immettere la formula digitando e selezionando i componenti dalla struttura dei componenti.

Suggerimento
Le strutture Campi report, Funzioni e Operatori presenti nella parte superiore dell'Editor di Formula
contengono i componenti di formula principali. Fare doppio clic su un componente per aggiungerlo alla
formula. Vedere Finestra di dialogo Editor delle formule [pagina 715].

6. Fare clic sul pulsante Verifica per identificare eventuali errori nella formula.
7. Correggere gli errori di sintassi identificati dallo strumento di controllo delle formule.
8. Quando la formula presenta la sintassi corretta, fare clic sul pulsante Salva e chiudi.
A questo punto, la formula verrà visualizzata in Explorer Campo, in Campi Formula.
9. Trascinare la formula nel punto del report in cui si desidera visualizzarla.

Nota
Una formula inserita in un report viene preceduta dal prefisso @ (ad esempio, @ProcessTime).

1.7.1.2.6.1.2 Finestra di dialogo Editor delle formule

Le formule di selezione e di ricerca possono essere definite utilizzando l'Esperto selezione e l'Esperto ricerca; le
altre formule vengono create nell'Editor delle formule di SAP Crystal Reports.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 715
Accesso all’Editor di Formula

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi Formula, quindi scegliere Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

2. Nella finestra di dialogo Nome formula, immettere il nome con cui si desidera identificare la formula.
3. Fare clic su Usa Editor.
Verrà visualizzato l’Editor di Formula.

Sezioni dell'Editor di Formula

L’Editor di Formula contiene quattro finestre principali.

Finestra Descrizione del contenuto

Campi report I campi report comprendono tutti i campi database del report
cui è possibile accedere, nonché le formule o i gruppi già
creati per il report.

Funzioni Le funzioni sono procedure predefinite che restituiscono


valori. Eseguono calcoli come la media, la somma, il
conteggio, il calcolo del seno, il troncamento e la conversione
in maiuscolo.

Operatori Gli operatori sono i "verbi di azione" utilizzati nelle formule.


Descrivono un’operazione o un’azione che deve avere luogo
tra due o più valori.

Esempi di operatori: addizione, sottrazione, minore di e


maggiore di.

Finestra Testo formula Area in cui si crea la formula.

Opzioni di sintassi

L'angolo superiore destro dell'Editor delle formule contiene un elenco a discesa in cui è possibile scegliere tra la
sintassi Crystal e la sintassi Basic per la formula creata.

Passando dalla sintassi Crystal alla sintassi Basic o viceversa verranno modificati l'elenco delle funzioni nella
finestra Funzioni e l'elenco degli operatori nella finestra Operatori. Le funzioni e gli operatori disponibili
differiscono infatti nei due modelli di sintassi.

I campi report rimangono invariati, in quanto sono disponibili per entrambe le sintassi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
716 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Immissione dei componenti delle formule

Le strutture Campi report, Funzioni e Operatori presenti nella parte superiore dell'Editor di Formula contengono i
componenti di formula principali. Fare doppio clic su un componente per aggiungerlo alla formula.

Informazioni correlate

Personalizzazione delle formule di selezione dei record [pagina 684]


Esercitazione: Filtro di dati mediante formule di selezione [pagina 284]
In questa esercitazione viene descritto come utilizzare le formule di selezione per filtrare i record da visualizzare
in un report Crystal.

1.7.1.2.6.2 Funzioni personalizzate

Descrive come creare funzioni personalizzate cui è possibile fare riferimento nelle formule.

Le formule personalizzate sono procedure che è possibile creare in SAP Crystal Reports per valutare i dati,
trasformarli o eseguirvi calcoli. Quando si utilizza una funzione personalizzata in una formula, tutte le operazioni
della relativa definizione vengono eseguite senza che sia necessario specificarle singolarmente all’interno della
formula stessa.

Nota
Le funzioni personalizzate non possono essere inserite direttamente nei report, ma devono essere utilizzate
all'interno di formule.

Informazioni correlate

Vantaggi dell'uso di funzioni personalizzate [pagina 717]


Procedure per l'utilizzo di funzioni personalizzate [pagina 718]
Creazione di funzioni personalizzate [pagina 719]
Sintassi Basic per le funzioni personalizzate [pagina 720]
Sintassi Crystal per le funzioni personalizzate [pagina 722]

1.7.1.2.6.2.1 Vantaggi dell'uso di funzioni personalizzate

Per valutare l'opportunità di utilizzare una funzione personalizzata vanno considerati i seguenti vantaggi:

● Le funzioni personalizzate possono sostituire le sezioni della logica della formula comuni a molte formule
differenti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 717
● È possibile convertire le formule esistenti in funzioni personalizzate mediante la Finestra di dialogo Estrai
funzione personalizzata dalla formula [pagina 894].
● Le funzioni personalizzate possono contenere argomenti, il che le rende flessibili.
● Per le funzioni personalizzate è possibile definire il testo della guida in linea e i valori degli argomenti
predefiniti, rendendo più agevole il loro utilizzo per gli utenti.
● Diversamente dalle User Function Libraries (UFL) cui sono correlate, le funzioni personalizzate vengono
salvate come parte del file del report (.rpt) e non dipendono da elementi esterni.
● Le funzioni personalizzate sono senza stato, per cui lo stesso input produce sempre lo stesso risultato.

1.7.1.2.6.2.2 Procedure per l'utilizzo di funzioni


personalizzate

Sebbene in SAP Crystal Reports esistano diversi modi per lavorare con le funzioni personalizzate, con la
procedura di esempio esposta di seguito si intende fornire una prima idea di come esse possano essere utilizzate:

Informazioni correlate

Creazione di funzioni personalizzate [pagina 719]

1.7.1.2.6.2.2.1 Per aggiungere una funzione personalizzata a


un report

Procedura

1. Estrarre la funzione personalizzata da una formula del report esistente mediante la Finestra di dialogo Estrai
funzione personalizzata dalla formula [pagina 894].
2. Creare la funzione personalizzata direttamente nell'Editor funzione personalizzata.

1.7.1.2.6.2.2.2 Per includere una funzione personalizzata in


una formula del report

Procedura

1. Inserire la funzione personalizzata direttamente nella logica della formula nell'Editor delle formule.
2. Scegliere una funzione personalizzata che fornisca la logica necessaria dalla Esperto formule [pagina 981].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
718 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.6.2.3 Creazione di funzioni personalizzate

Per creare una nuova funzione personalizzata è possibile immetterne la logica direttamente nell'Editor funzione
personalizzata oppure estrarla da una precedente formula del report.

1.7.1.2.6.2.3.1 Utilizzo dell'Editor funzione personalizzata

Procedura

1. Nel Workshop Formula fare clic su Nuova e scegliere Funzione personalizzata dall'elenco.
2. Immettere un nome per la funzione personalizzata nella finestra di dialogo Nome funzione personalizzata.
3. Fare clic su Usa Editor.
4. Definire la funzione personalizzata nell'Editor funzione personalizzata.

L'utilizzo dell'Editor funzione personalizzata è simile a quello dell'Editor delle formule per creare una formula
del report. Per informazioni sulle modalità di utilizzo dell'Editor delle formule, vedere Finestra di dialogo Editor
delle formule [pagina 715]. Per ulteriori informazioni su quale sintassi utilizzare per scrivere una funzione
personalizzata, vedere Sintassi Basic per le funzioni personalizzate [pagina 720] o Sintassi Crystal per le
funzioni personalizzate [pagina 722].

Suggerimento
Con la combinazione di tasti Ctrl+Barra spaziatrice viene visualizzato un elenco delle funzioni disponibili.
Se si è già iniziato a digitare, con la stessa combinazione viene visualizzato un elenco di parole chiave
potenzialmente corrispondenti a ciò che si è già digitato.

5. Controllare e salvare la funzione personalizzata.

Risultati

Una volta salvata, la funzione personalizzata può essere modificata o utilizzata all'occorrenza nelle formule del
report.

1.7.1.2.6.2.3.2 Utilizzo della finestra di dialogo Estrai


funzione personalizzata dalla formula

Contesto

Quando si estrae una funzione personalizzata da una formula esistente, la formula viene copiata
automaticamente e i campi vengono sostituiti da argomenti. Una funzione personalizzata creata con il

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 719
programma di estrazione può restituire solo tipi semplici, come stringhe e numeri interi. Non può invece restituire
matrici. Per creare una funzione personalizzata che sia in grado di restituire matrici è necessario utilizzare l'Editor
funzione personalizzata. Per ulteriori informazioni sui tipi restituiti e le regole sintattiche associate alle funzioni
personalizzate, vedere Sintassi Basic per le funzioni personalizzate [pagina 720] o Sintassi Crystal per le funzioni
personalizzate [pagina 722].

Procedura

1. Nel Workshop Formula fare clic su Nuova e scegliere Funzione personalizzata dall'elenco.
2. Immettere un nome per la funzione personalizzata nella finestra di dialogo Nome funzione personalizzata.
3. Fare clic su Usa programma di estrazione.
4. Nell'elenco Formula selezionare la formula del report la cui logica si intende utilizzare nella funzione
personalizzata.

Suggerimento
In genere è consigliabile assegnare nomi significativi agli argomenti della funzione personalizzata. Per
impostazione predefinita il programma assegna nomi generici (v1, v2, v3 e così via).

Quando si seleziona una formula, nei campi Tipo restituito, Argomenti e Testo formula vengono
automaticamente inserite le informazioni relative a tale formula. Il contenuto di questi campi non può essere
modificato, se non selezionando una formula diversa. Gli altri campi sono facoltativi. Per una descrizione
dettagliata dei campi, vedere la Finestra di dialogo Estrai funzione personalizzata dalla formula [pagina 894].
5. Fare clic su OK per salvare la funzione personalizzata nel nodo Funzioni personalizzate report del Workshop
formule.

Risultati

Una volta estratta e salvata, la funzione personalizzata può essere modificata o utilizzata all'occorrenza nelle
formule del report.

Nota
Non è possibile aggiungere nuovi argomenti alla funzione personalizzata durante la procedura di creazione
dalla finestra di dialogo Estrai funzione personalizzata dalla formula. Per aggiungere nuovi argomenti, salvare la
funzione personalizzata e modificarla nell'Editor funzione personalizzata.

1.7.1.2.6.2.4 Sintassi Basic per le funzioni personalizzate

La sintassi Basic per le funzioni personalizzate è molto simile a quella per le funzioni in Visual Basic.

Nomefunzione [(argList)] [ As type]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
720 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
[istruzioni]

[nome=espressione]

[Funzione Exit]

...

Funzione End

name Obbligatorio. È il nome della funzione. Deve corrispondere a quello assegnato alla funzione al
momento della sua creazione. Il nome non può cominciare con un numero e non può contenere
spazi o segni di punteggiatura ad eccezione del carattere di sottolineatura. Inoltre, non può essere
uguale a una parola chiave della sintassi Basic o Crystal.

tipo Facoltativo. Rappresenta il tipo di valore restituito dalla funzione. Può essere uno qualsiasi dei tipi
semplici di SAP Crystal Reports (Numero, Valuta, Stringa, Booleano, Data, Ora, DataOra) o dei tipi
di intervallo (intervallo numerico, intervallo di valuta, intervallo di stringa, intervallo di data,
intervallo di ore o intervallo DataOra). Se non si specifica il tipo di valore restituito, esso viene
dedotto dal tipo di espressione nella prima assegnazione a nome (dichiarazione implicita).

Nota
Per indicare un valore restituito di tipo matrice è necessario utilizzare la dichiarazione implicita
poiché per questo caso non esiste una notazione esplicita.

espressione Assegnare espressione a nome per specificare il valore restituito dalla funzione. Se il tipo è stato
specificato questa operazione è facoltativa, in caso contrario è necessaria per consentire a SAP
Crystal Reports di dedurre dalla dichiarazione implicita il tipo di valore restituito dalla funzione.

L'istruzione Exit Function consente a SAP Crystal Reports di uscire immediatamente da una funzione. Può essere
utilizzata per un numero di volte illimitato e in qualsiasi punto della funzione.

Nota
Le uniche istruzioni che è possibile inserire prima dell'inizio della funzione o dopo la dichiarazione finale sono i
commenti, contrassegnati da apostrofi o da istruzioni Rem.

Sintassi argList

[ Facoltativo] nomeVar [()] ComeTipovar [= Valorepredefinito]

● Facoltativo
Facoltativo. Indica che l'argomento può essere omesso quando viene richiamata la funzione personalizzata.
Se un argomento è facoltativo, anche tutti gli argomenti successivi devono esserlo. Se si fornisce un valore
per un argomento facoltativo, è necessario fare altrettanto per ciascuno degli argomenti precedenti.
● nomeVar
Obbligatorio. Specifica il nome della variabile che rappresenta l'argomento.
● ()
Facoltativo. La sua presenza indica che la variabile dell'argomento è una variabile di matrice.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 721
● tipoVar
Obbligatorio. Indica il tipo della variabile dell'argomento, che può essere uno dei sette tipi semplici o uno dei
sei tipi di intervallo già citati nella precedente descrizione di argList. La presenza delle parentesi opzionali
indica che si tratta di un tipo di matrice i cui elementi sono di tipo tipoVar.
● :=Valorepredefinito
Obbligatorio per gli argomenti facoltativi. defaultValue è una costante o espressione costante, vale a dire
un'espressione che non contiene variabili e che al momento della compilazione è possibile semplificare in un
valore costante. Se quando si richiama la funzione un argomento facoltativo viene omesso, verrà utilizzato il
relativo valore predefinito.

Nota
Diversamente da quanto avviene in Visual Basic, per gli argomenti facoltativi è necessario indicare valori
predefiniti.

Passaggio per valore

Tutti gli argomenti vengono passati per valore. In Visual Basic, gli argomenti possono essere passati per valore o
per riferimento, e per impostazione predefinita vengono passati per riferimento. Tuttavia, le funzioni
personalizzate non supportano gli argomenti per riferimento.

1.7.1.2.6.2.5 Sintassi Crystal per le funzioni personalizzate

Come le formule, le funzioni personalizzate con sintassi Crystal sono orientate alle espressioni. È possibile
utilizzare uno dei formati di sintassi elencati di seguito.

Function ([argList])

espressioni

Function ([argList])

espressioni

Sintassi argList

Facoltativo. Un elenco di variabili che rappresentano argomenti che vengono passati nella funzione quando viene
richiamata. Le variabili multiple sono separate da virgole. Un argList può essere vuoto; tuttavia, le parentesi in cui
è racchiuso non sono facoltative e devono essere utilizzate anche in questo caso.

[ Optional ] tipoSemplice [ Range ] [ Array ] nomeVar [:=defaultValue]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
722 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Optional
Facoltativo. Indica se l'argomento può essere omesso quando viene richiamata la funzione personalizzata. Se
un argomento è facoltativo, anche tutti gli argomenti successivi devono esserlo. Se si fornisce un valore per
un argomento facoltativo quando si richiama la funzione, è necessario fare altrettanto per ciascuno degli
argomenti precedenti.
● tipoSemplice
Obbligatorio. È possibile utilizzare uno dei seguenti tipi:

○ VarNumero
○ VarValuta
○ VarStringa
○ VarBooleana
○ VarData
○ VarOra
○ VarDataOra
● Range
Facoltativo. Specifica se l'argomento è una variabile di intervallo.

Nota
Non sono ammessi intervalli booleani.

● Array
Facoltativo. Specifica se l'argomento è una variabile di matrice.
● nomeVar
Obbligatorio. Il nome della variabile che rappresenta l'argomento.
● :=defaultValue
Obbligatorio per gli argomenti facoltativi. defaultValue è una costante o espressione costante, vale a dire
un'espressione che non contiene variabili e che al momento della compilazione è possibile semplificare in un
valore costante. Se quando si richiama la funzione personalizzata un argomento facoltativo viene omesso,
verrà utilizzato il relativo valore predefinito.
● espressioni
Obbligatorio. Il valore restituito dalla funzione personalizzata in sintassi Crystal è il valore dell'ultima
espressione valutata nella sequenza di espressioni. La sintassi è la stessa delle formule con sintassi Crystal.

Portata

Per impostazione predefinita, le dichiarazioni delle variabili all'interno di una funzione personalizzata hanno
portata locale. Al contrario, per impostazione predefinita le stesse dichiarazioni nelle formule con sintassi Crystal
hanno portata globale.

1.7.1.2.6.2.6 Regole di sintassi per le funzioni personalizzate

La natura indipendente delle funzioni personalizzate dà luogo ad alcune limitazioni:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 723
● Non è possibile utilizzarvi campi di report o database, ivi compresi i campi di riepilogo.
● Non è possibile utilizzarvi variabili condivise o globali, ma quando la funzione personalizzata viene richiamata
dall'interno di una formula tali variabili possono essere passate come argomenti.
● Non ammettono l'uso della ricorsione, né diretta né indiretta.
● Non è possibile utilizzarvi direttamente UFL.
● Non è possibile richiamare funzioni Momento di valutazione, Stato stampa o Proprietà documento. Inoltre,
non è possibile utilizzarvi le seguenti funzioni: Rnd, CurrentFieldValue, DefaultAttribute e
GridRowColumnValue.

Queste restrizioni sono state progettate allo scopo di rendere le funzioni personalizzate indipendenti dai report in
cui vengono utilizzate.

Variabili

Nelle funzioni personalizzate è possibile utilizzare variabili locali e variabili di argomento. Quando è necessario
utilizzare variabili condivise o globali, è possibile passarle come argomenti.

1.7.1.2.6.2.7 Periodo di valutazione per le funzioni


personalizzate

Le formule non vengono valutate secondo un criterio "a richiesta" o richiamate, vale a dire che una formula non
può richiamarne un'altra perché esegua una elaborazione, neppure mediante il ricorso a variabili globali.

Rem Formula PrintSquare


Global x As Number
x = 5
formula = "Il quadrato di " & CStr(x,0) & " è " & ToText ({@square}, 0) & "."

Rem Formula Square


Global x As Number
formula = x * x

Utilizzando PrintSquare per la formula in un report, si ottiene:

Il quadrato di 5 è 0.

In questo esempio la formula PrintSquare utilizza Square, così SAP Crystal Reports ordina le rispettive
valutazioni. Prima viene eseguita la valutazione di Square, quindi di PrintSquare. Al momento della valutazione di
Square il valore della variabile globale x è 0, poiché questo è il valore di una variabile numerica non inizializzata.

Le funzioni personalizzate, viceversa, vengono valutate su richiesta o richiamate. Utilizzando una funzione
personalizzata nell'esempio precedente restituirà quanto segue:

Rem Formula PrintSquare


formula = "Il quadrato di " & CStr (5,0) & " è " &
CStr(cf9Square (5),0) + "."

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
724 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Rem Custom Function cf9Square
Function cf9Square (x As Number)
cf9Square = x * x
End Function

Ora, utilizzando PrintSquare per la formula nel report, si otterrà:

Il quadrato di 5 è 25.

1.7.1.2.6.3 Espressioni SQL

Descrive quando utilizzare le Espressioni SQL nei report.

Le espressioni SQL sono simili alle formule, ma vengono scritte in linguaggio SQL (Structured Query Language).
Un'espressione SQL può essere utilizzata per interrogare il database su specifici insiemi di dati. È possibile
ordinare, raggruppare e selezionare i dati in base ai campi espressione SQL.

Le espressioni SQL sono utili nell'ottimizzazione delle prestazioni dei report perché le azioni sono normalmente
eseguite nel server del database (in contrapposizione alle formule normali, che a volte sono eseguite nei computer
locali).

Non utilizzare le espressioni SQL in modo esclusivo, poiché SAP Crystal Reports include il proprio linguaggio per
le formule, che è molto più potente dello standard SQL. Sia Crystal Syntax che Basic Syntax consentono di
migliorare e raffinare le formule in un modo che è difficilmente eguagliabile o impossibile con SQL. In alcune
circostanze, tuttavia, la creazione e l'utilizzo di campi Espressione SQL può velocizzare l'elaborazione dei report.

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 715]


Ottimizzazione delle prestazioni dei report [pagina 768]
Illustra i modi in cui è possibile migliorare le prestazioni dei report.

1.7.1.2.6.3.1 Per creare un campo espressione SQL

Procedura

1. In Explorer Campo, fare clic con il pulsante destro del mouse su Campi espressione SQL, quindi scegliere
Nuovo.

Nota
Quando viene utilizzata un'origine di dati SQL/ODBC per progettare un report, il programma aggiunge
campi di espressioni SQL a Explorer Campo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 725
2. Immettere un nome nella casella Nome e quindi fare clic su OK.
Viene visualizzato l'Editor Espressione SQL. l'Editore espressioni SQL funziona allo stesso modo dell'Editor
Formule.
3. Digitare l'espressione nell'Editor espressioni SQL.
4. Fare clic sul pulsante Salva e chiudi.

1.7.1.2.7 Formattazione di dati

La formattazione si riferisce alla modifica del layout e della struttura di un report, dell’aspetto del testo, degli
oggetti o di intere sezioni del report.

È possibile utilizzare la formattazione per diversi scopi, tra cui:

● richiamare l’attenzione su alcuni dati


● conferire al report un aspetto professionale
● modificare la presentazione di date, numeri, valori booleani, di valuta e stringhe di testo

È possibile utilizzare i comandi dei menu di scelta rapida per la formattazione dei dati. Ad esempio:

● Per formattare un oggetto, fare clic con il pulsante destro del mouse sull'oggetto, quindi scegliere Formato
oggetto.
● Per formattare un oggetto grafico, fare clic con il pulsante destro del mouse sul grafico, quindi fare clic su
Esperto grafico.
● Per formattare una sezione del report, fare clic con il pulsante destro del mouse sulla sezione del report e
selezionare Esperto sezione.

Suggerimento
Per formattare oggetti o sezioni, è possibile utilizzare la finestra Proprietà di Visual Studio.

1.7.1.2.7.1 Formattazione assoluta

La formattazione assoluta viene applicata in qualsiasi condizione. Questo tipo di proprietà di formattazione segue
sempre una procedura in cui è prevista la selezione prima dell'applicazione. In altri termini, si seleziona l'elemento
che si desidera formattare (l'oggetto o la sezione), quindi alla selezione si applica la formattazione mediante le
impostazioni delle proprietà.

Per formattare un oggetto, fare clic con il pulsante destro del mouse sull'oggetto e selezionare Formatta, oppure
utilizzare la finestra Proprietà di Visual Studio.

1.7.1.2.7.1.1 Formattazione di numeri e date

Per supportare le convenzioni utilizzate nelle attività contabili, SAP Crystal Reports consente di stabilire il modo in
cui visualizzare simboli di valuta, valori negativi e pari a zero nei report finanziari. È anche possibile impostare nel
report l’inversione dei segni per gli importi relativi a debiti e crediti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
726 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
In un report inglese è possibile scegliere di utilizzare vari formati data, ma se il report viene inviato a un sistema
giapponese, si possono verificare alcune irregolarità nella formattazione. Non tutti i formati data inglesi
possono essere visualizzati su un sistema giapponese, e lo stesso vale quando si passa dal sistema giapponese
a quello inglese. Ad esempio, i nomi dei mesi abbreviati in inglese non vengono visualizzati sui sistemi
giapponesi e le ere giapponesi in formato abbreviato non sono visualizzate sui sistemi inglesi.

1.7.1.2.7.1.1.1 Per formattare numeri e date

Procedura

1. Fare clic con il pulsante destro del mouse sul campo valuta, numerico o data e selezionare Formato oggetto.
2. Selezionare un'opzione di formato, oppure fare clic su Personalizza per specificare un altro formato.

1.7.1.2.7.1.2 Aggiunta di bordi, colori e forme ai campi

SAP Crystal Reports consente di aggiungere bordi, colore e ombreggiatura ai campi del report per evidenziare i
dati importanti e per creare report di aspetto professionale.

1.7.1.2.7.1.2.1 Per aggiungere bordi, colore e ombreggiatura

Procedura

1. Fare clic con il pulsante destro del mouse sull'oggetto e selezionare Formato oggetto.
2. Fare clic sulla scheda Bordo e selezionare lo stile e il colore della linea e il colore di sfondo del campo.
3. Fare clic su OK per salvare le modifiche.

1.7.1.2.7.1.3 Inserimento di forme

Contesto

Quando si progettano i formati di report con SAP Crystal Reports, è possibile inserire una serie di forme, ad
esempio cerchi, ovali e caselle con angoli arrotondati come parte del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 727
Procedura

1. Per aggiungere una casella al report, fare clic con il pulsante destro del mouse in SAP Crystal Reports
Designer incorporato, selezionare Inserisci e fare clic su Casella.

Suggerimento
Per selezionare e trascinare un oggetto, è possibile utilizzare la casella degli strumenti.

2. Utilizzando il cursore a forma di matita, tracciare la casella nel punto desiderato.


3. Fare clic con il pulsante destro del mouse sulla casella e selezionare Formato oggetto.
4. Fare clic sulla scheda Arrotondamento.
5. Spostare il dispositivo di scorrimento verso destra per aumentare la curvatura degli angoli della casella.
6. Fare clic su OK.

Informazioni correlate

Formattazione assoluta [pagina 726]


Formattazione condizionale [pagina 728]

1.7.1.2.7.2 Formattazione condizionale

La formattazione condizionale viene applicata solo in determinate condizioni. Ad esempio, è possibile che in un
report si desideri solo:

● stampare in rosso i saldi scaduti dei clienti


● visualizzare le date nel formato Giorno, Mese, Anno se il cliente è canadese
● visualizzare il colore di sfondo in tutte le altre linee.

Specificare la formattazione condizionale utilizzando le formule. Quando si imposta una formula per la
formattazione condizionale, questa sostituisce qualunque impostazione fissa eseguita nell’Editor formato. Se, ad
esempio, si seleziona l'opzione Ometti e si imposta una formula condizionale per tale opzione, la proprietà verrà
applicata solo se viene soddisfatta la condizione espressa nella formula.

È possibile impostare le proprietà di tipo "on o off" e le proprietà di attributi in maniera condizionale. Tuttavia,
ognuno di questi tipi di proprietà richiede un tipo di formula diverso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
728 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.7.2.1 Per aggiungere formattazione condizionale a un
oggetto

Procedura

1. Fare clic con il pulsante destro del mouse sull'oggetto e selezionare Formato oggetto.
2. Fare clic sul pulsante Formula appropriato nella parte destra della finestra di dialogo.
3. Nella finestra di dialogo Editor formato, immettere la formula.
4. Fare clic su Salva e chiudi.

○ Se la formula contiene un errore, viene visualizzata un messaggio che chiede se si desidera uscire senza
esaminare l’errore. Facendo clic su No, viene visualizzato un secondo messaggio, con informazioni
dettagliate sull’errore.

○ Se nella formula non sono presenti errori, si torna all'Editor Formato. Notare che il pulsante Formula è
cambiato. Ciò indica che per quella proprietà è stata immessa una formula.
5. Fare clic su OK per tornare al report.

1.7.1.2.7.2.2 Proprietà On o Off condizionali

Una proprietà "on o off" condizionale verifica se è stata soddisfatta una condizione. La proprietà è on se la
condizione è soddisfatta, off se si verifica il contrario. Per questo tipo di formattazione è necessario utilizzare le
formule booleane.

Il programma controlla ogni valore per verificare se soddisfa la condizione e restituisce una risposta affermativa o
negativa. Quindi applica la proprietà ad ogni valore che restituisce una risposta affermativa.

Esempio
Esempio di sintassi Crystal

condition

Esempio
Esempio di sintassi Basic

formula = condition

Informazioni correlate

Funzioni di formattazione condizionale (sintassi Basic) [pagina 794]


Funzioni di formattazione condizionale (sintassi Crystal) [pagina 826]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 729
1.7.1.2.7.2.3 Proprietà di attributi condizionali
Una proprietà di attributo condizionale verifica quale di due o più condizioni viene soddisfatta. Il programma
applica quindi la formattazione appropriata alla condizione. Si supponga, ad esempio, di voler stampare in rosso i
valori al di sotto della quota, in nero tutti gli altri valori. Il programma verifica se il valore è inferiore alla quota o
meno. In caso affermativo, viene applicato l'attributo rosso; in caso negativo, viene applicato l'attributo nero.

Utilizzare una formula If-Then-Else per questo tipo di formattazione condizionale.

Esempio di sintassi Crystal

If Condition A Then
crRed
Else
crBlack

Esempio di sintassi Basic

If Condition A Then
formula = crRed
Else
formula = crBlack
End If

Se si impostano delle proprietà di attributo condizionale, SAP Crystal Reports carica una selezione di attributi
nell'elenco Funzioni dell'Editor delle formule. Fare doppio clic su uno degli attributi per aggiungerlo a una formula.
Ad esempio, se si deve impostare in modo condizionale l'allineamento orizzontale, l'elenco funzioni contiene
attributi quali DefaultHorAligned, LeftAligned e Justified. Se è necessario impostare in modo condizionale i bordi,
l’elenco funzioni contiene attributi quali NoLine, SingleLine e DashedLine.

Nota
Nelle formule condizionali è necessario includere sempre la parola chiave Else. In caso contrario i valori che non
soddisfano la condizione If potrebbero non mantenere il formato originale. Per mantenere il formato originale
dei valori che non soddisfano la condizione If, utilizzare la funzione DefaultAttribute.

Esempio di sintassi Crystal

If Condition A Then
crRed
Else If Condition B Then
crBlack
Else If Condition C Then
crGreen
Else
crBlue

Esempio di sintassi Basic

If Condition A Then
formula = crRed
ElseIf Condition B Then
formula = crBlack
ElseIf Condition C Then
formula = crGreen

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
730 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Else
formula = crBlue
End If

Informazioni correlate

Funzioni di formattazione condizionale (sintassi Basic) [pagina 794]


Funzioni di formattazione condizionale (sintassi Crystal) [pagina 826]

1.7.1.2.7.3 Formattazione dei report mediante le classi CSS


(Cascading Style Sheets)

Contesto

Anziché formattare sezioni o oggetti report in SAP Crystal Reports Designer incorporato, è possibile utilizzare le
classi in un foglio di stile CSS per applicare la formattazione ai report visualizzati sul Web.

In genere, quando si crea un report, un determinato oggetto report (ad esempio, un campo del database o un
oggetto di testo) viene formattato all'interno di SAP Crystal Reports Designer incorporato. Quando viene
effettuato il rendering in formato HTML del report e quest'ultimo viene visualizzato tramite Web Forms Viewer, le
opzioni di formattazione vengono automaticamente convertite in formato HTML. Per modificare la formattazione
della pagina HTML sarebbe necessario effettuare una modifica al report di Crystal.

L'opzione di impostazione di classi CSS consente di applicare le classi agli oggetti report e alle sezioni di un report,
invece di modificarne manualmente la formattazione. È necessario specificare il nome della classe e il suo ambito
in SAP Crystal Reports Designer incorporato, e quindi il valore della classe all'interno del file .aspx del progetto o
tramite un foglio di stile esterno. Il foglio di stile esterno o la formattazione specificata nel file .aspx vengono
applicati al report al momento del rendering in formato HTML.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, quindi selezionare
Imposta classe CSS.
2. Nel campo Portata oggetto, selezionare gli oggetti o le sezioni a cui si desidera applicare la classe.
3. Immettere il nome della classe nel campo CSS Class Name.

Suggerimento
Utilizzare la classe CSS nella finestra delle proprietà per visualizzare, modificare o eliminare i valori della
classe per un determinato oggetto report o sezione.

4. Fare clic su OK.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 731
5. Salva report.
6. Accedere al file .aspx del progetto.
7. Nella scheda HTML del file .aspx, fare riferimento a un foglio di stile esterno in cui la classe è già definita,
oppure inserire il valore della classe.

<HTML>
<STYLE>
.classname
{
background-color:808080; border-color:000000; color:000000;
font-family:Arial; font-weight:bold; font-style:italic; }
<STYLE>
</HTML>

1.7.1.2.8 Analisi dettagliata delle parti del report e


personalizzazione dei collegamenti ipertestuali

In linea generale i controlli CrystalReportViewer sono visualizzatori di pagine che consentono di esaminare pagine
complete dei report Crystal. Tuttavia, la classe CrystalReportPartsViewer permette di esaminare oggetti
report specifici senza visualizzare l'intera pagina. Gli oggetti così visualizzati vengono definiti parti del report.

Lo spostamento tra parti del report (con il controllo CrystalReportPartsViewer) e il normale spostamento tra
pagine differiscono sostanzialmente perché nel primo caso sono visibili solo gli oggetti identificati come parti del
report. Nella normale modalità di spostamento l'utente accede agli oggetti identificati, ma vede l'intera pagina.

1.7.1.2.8.1 Cenni preliminari sulle parti del report

Si definiscono parti del report gli oggetti del report visualizzati da soli in un visualizzatore, senza gli altri elementi
della pagina di report. Più precisamente, le parti del report sono oggetti che utilizzano collegamenti ipertestuali
per puntare da un oggetto report di partenza a uno di destinazione.

Le parti del report operano con il sottoinsieme dei visualizzatori DHTML del visualizzatore di report SAP Crystal in
modo da estendere le possibilità di spostamento all'interno dei report e tra di essi. I collegamenti ipertestuali per
le parti del report possono rinviare ad altri oggetti del report corrente o a oggetti di altri report. Questo sistema di
collegamenti consente di creare un percorso guidato tra i report, tale che in ciascuna delle sue tappe vengano
visualizzate solo determinate informazioni.

Report Part Viewer

Report Part Viewer è un visualizzatore che consente di rendere visibili solo parti del report estrapolate dal
contesto dell'intera pagina. È possibile integrare questo visualizzatore in applicazioni Web, in modo che gli utenti
vedano solo specifici oggetti senza dover necessariamente visualizzare il resto del report.

I collegamenti ipertestuali per le parti del report possono essere impostati in SAP Crystal Reports Designer
incorporato o tramite codice, ma si usufruisce delle loro funzioni nei visualizzatori report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
732 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Differenze tra le modalità di visualizzazione dei collegamenti ipertestuali nei
diversi visualizzatori

Visualizzatori di pagina Report Part Viewer

Un altro oggetto report: Un altro oggetto report:

● Passa agli oggetti di destinazione e mostra il conte­ ● Passa agli oggetti di destinazione e mostra solo tali
nuto dell'intera pagina. oggetti.

Analisi dettagliata delle parti del report: Analisi dettagliata delle parti del report:

● Passa al gruppo e ne mostra l'intero contenuto. ● Passa agli oggetti di destinazione e mostra solo tali
oggetti.

Analisi dettagliata predefinita (nessun collegamento Analisi dettagliata predefinita (nessun collegamento
ipertestuale): ipertestuale):

● L'analisi dettagliata del gruppo eseguita da un'inte­ ● Non disponibile.


stazione o un piè di pagina del gruppo, da un gra­
fico o una mappa mostra la visualizzazione gruppo.
● L'analisi dettagliata sottoreport mostra la visualiz­
zazione sottoreport.

1.7.1.2.8.2 Cenni preliminari sullo spostamento tramite


collegamenti ipertestuali

La funzione di spostamento di SAP Crystal Reports consente di spostarsi ad altri oggetti dello stesso o di un altro
report, con uno specifico contesto per i dati. Questo tipo di spostamento è disponibile solo nei visualizzatori
DHTML (zero-client e sul server). Presenta il vantaggio di consentire il collegamento diretto da un oggetto a un
altro; il necessario contesto per i dati viene passato automaticamente, pertanto si passa all'oggetto e ai dati
pertinenti.

Questa funzione di spostamento viene utilizzata per il collegamento tra oggetti nelle parti del report. Lo
spostamento tra parti del report (con il Report Part Viewer) e il normale spostamento tra pagine differiscono
sostanzialmente perché nel primo caso sono visibili solo gli oggetti identificati come Parti del report. Nella
normale modalità di spostamento l'utente accede agli oggetti identificati, ma vede l'intera pagina.

Impostazione dello spostamento

Lo spostamento (tra pagine o parti del report) viene impostato nella scheda Collegamento ipertestuale della
Finestra di dialogo Editor formato [pagina 897].

Nell'area Solo visualizzatore DHTML della scheda Collegamento ipertestuale, è possibile selezionare due opzioni:

● Analisi dettagliata delle parti del report


L'opzione Analisi dettagliata delle parti del report è disponibile per i campi di riepilogo, grafici di gruppo e
mappe, nonché per i campi dell'intestazione o del piè di pagina del gruppo. Questa opzione è relativa solo alle

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 733
parti del report; nella normale modalità di spostamento (con la visualizzazione di pagina) l'analisi dettagliata
viene eseguita per impostazione predefinita. Per ulteriori informazioni, vedere Funzioni specifiche per lo
spostamento tra parti del report [pagina 735].
● Un altro oggetto report
È possibile utilizzare l’opzione Un altro oggetto report sia per lo spostamento tra parti del report che per
quello tra pagine. Questa opzione consente di specificare l’oggetto o gli oggetti di destinazione che si desidera
visualizzare e il contesto dati da passare.

Se si seleziona Analisi dettagliata delle parti del report, l’area "Informazioni collegamento ipertestuale" conterrà le
seguenti opzioni:

● Campi Disponibili
Nell’area Campi disponibili sono riportate, in una visualizzazione struttura, tutte le sezioni del report che
contengono gli oggetti del report utilizzabili per l’analisi dettagliata delle parti del report. Selezionare gli
oggetti da quest’area e aggiungerli all’area Campi da visualizzare.
● Campi da visualizzare
Nell’area Campi da visualizzare sono riportati, in una visualizzazione struttura, la sezione e gli oggetti
selezionati per l’analisi dettagliata.

Per informazioni sul modo in cui utilizzare queste opzioni, vedere Implementazione dell'analisi dettagliata delle
parti del report [pagina 735].

Se si seleziona Un altro oggetto report, l’area "Informazioni collegamento ipertestuale" conterrà le seguenti
opzioni:

● Incolla collegamento a una parte del report


Utilizzare il pulsante Incolla collegamento per aggiungere informazioni dettagliate su un oggetto del report
precedentemente selezionato e copiato. Le informazioni incollate dipendono, in parte, dall’opzione
selezionata dall’elenco associato al pulsante.
● Seleziona da
Dopo aver incollato le informazioni di collegamento, il campo Seleziona da conterrà il percorso e il nome file
del report selezionato e copiato (è vuoto quando è riferito al report corrente). È possibile aggiungere
informazioni in questo campo solo incollando un collegamento a una parte del report.
● Titolo report
Nel campo Titolo report è inserito, per impostazione predefinita, il titolo del report specificato nel campo
Seleziona da (quando si riferisce al report corrente contiene il testo <Report corrente>). Se non è stato
definito un titolo del report nella finestra di dialogo Proprietà documento, nel campo viene inserito il nome file
del report. È possibile aggiungere informazioni in questo campo solo incollando un collegamento a una parte
del report.
● Nome oggetto
Aggiungendo uno o più oggetti in questo campo si identificano gli oggetti di destinazione per lo spostamento.
Nello spostamento tra pagine queste informazioni determinano a quale oggetto della pagina si passerà. Nel
caso dello spostamento tra parti del report le informazioni determinano quali oggetti verranno visualizzati nel
corso dello spostamento (verranno visualizzati solo gli oggetti identificati).
Nel campo Nome oggetto è possibile selezionare uno o più oggetti della stessa sezione del report a scelta tra i
seguenti tipi di oggetti:

○ Oggetti campo
○ Grafici o mappe
○ Bitmap
○ Campi incrociati
○ Oggetti di testo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
734 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Non è possibile selezionare come destinazione i seguenti tipi di oggetti del report:

○ Oggetti contenuti nell’intestazione o nel piè di pagina.


○ Righe o caselle.
○ Sottoreport o qualsiasi oggetto interno a un sottoreport.
○ Intere sezioni (gli oggetti all’interno della sezione devono essere selezionati singolarmente).

È possibile aggiungere informazioni specifiche in uno dei due modi seguenti:

○ Digitando i nomi degli oggetti così come vengono visualizzati in Explorer Report.
○ Copiando gli oggetti del report dal report corrente a un altro report e incollando le relative informazioni nel
campo oggetto.
● Contesto dati
Il programma completa, in genere, il campo Contesto dati quando si incollano informazioni relative all’oggetto
o agli oggetti di destinazione. È anche possibile personalizzare questa opzione utilizzando il pulsante Formula
condizionale. Per ulteriori informazioni, vedere Formati per il contesto dati [pagina 741].

Per informazioni sul modo in cui utilizzare queste opzioni, vedere Opzione Un altro oggetto report [pagina 738].

1.7.1.2.8.2.1 Funzioni specifiche per lo spostamento tra parti


del report

Per spostarsi tra parti del report si utilizza la funzione di spostamento di SAP Crystal Reports. Tuttavia, esistono
alcune situazioni particolari valide solo per le parti del report:

● Viene visualizzato solo l’oggetto identificato come oggetto di destinazione.


● È necessario utilizzare l’opzione Analisi dettagliata delle parti del report, in modo che sia possibile specificare
l’oggetto o gli oggetti di destinazione.
● Per ogni report che costituisce la prima tappa del percorso di spostamento tra parti del report è necessario
specificare le Impostazioni parti report iniziali.

1.7.1.2.8.3 Implementazione dell'analisi dettagliata delle


parti del report

Utilizzare l’opzione Analisi dettagliata delle parti del report solo per spostarsi tra gli oggetti dello stesso report. Se
si desidera spostarsi ad altri report, vedere Opzione Un altro oggetto report [pagina 738].

L'opzione Drill down delle parti del report nella scheda Collegamento ipertestuale dell'Editor del formato consente
di definire un collegamento ipertestuale in modo che il visualizzatore di parti di report sia in grado di emulare la
funzione di drill down di SAP Crystal Reports. Nel Report Part Viewer vengono visualizzati solo gli oggetti di
destinazione; pertanto, per eseguire analisi dettagliate è necessario definire un percorso di spostamento da un
oggetto principale a uno o più oggetti di destinazione. Se gli oggetti di destinazione sono più di uno, devono
trovarsi tutti nella stessa sezione del report.

L'opzione Drill down delle parti del report non influisce in alcun modo sui visualizzatori di pagine DHTML, poiché
emula il comportamento predefinito di SAP Crystal Reports per il drill down (che è già supportato dai
visualizzatori di pagina). Tuttavia, nei visualizzatori di pagina non sono previste limitazioni relative agli oggetti da
visualizzare: vengono sempre visualizzati tutti gli oggetti del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 735
1.7.1.2.8.3.1 Definizione dell'oggetto principale

Contesto

Nel Report Part Viewer vengono visualizzati solo gli oggetti di destinazione ed è quindi necessario definire le
Impostazioni parti report iniziali (vale a dire un oggetto principale predefinito) per rendere attivi i collegamenti
ipertestuali relativi all'Analisi dettagliata delle parti del report. Le Impostazioni parti report iniziali per un report
definiscono l'oggetto che verrà visualizzato per primo nel Report Part Viewer. Questo oggetto costituirà il punto di
partenza del percorso di collegamenti ipertestuali per l'analisi dettagliata.

Procedura

1. Aprire il report per cui si desidera definire l'oggetto principale predefinito.


2. Fare clic sull'oggetto che si desidera impostare come oggetto principale predefinito e copiarne il nome
elencato nel campo Nome della finestra delle proprietà (ad esempio: Testo1, Campo1, Grafico1 e così via).
3. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Opzioni report.
4. Nell'area Impostazioni parti report iniziali della finestra di dialogo Opzioni report, fare clic sul pulsante Incolla
collegamento.

Suggerimento
Includere un altro oggetto della stessa sezione del report immettendo un punto e virgola (;) e digitando il
nome dell’oggetto.

Il nome e il contesto dati dell'oggetto del report selezionato come oggetto principale vengono incollati nei
campi appropriati.
5. Fare clic su OK.

1.7.1.2.8.3.2 Definizione dell'oggetto di destinazione

Prerequisiti

Prima di intraprendere la procedura descritta di seguito, vedere Cenni preliminari sullo spostamento tramite
collegamenti ipertestuali [pagina 733] per informazioni sulle limitazioni inerenti alla creazione di collegamenti
ipertestuali di questo tipo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
736 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Contesto

Per definire l'oggetto di destinazione è necessario creare un collegamento ipertestuale Analisi dettagliata delle
parti del report.

Procedura

1. Aprire un report e fare clic con il pulsante destro del mouse sull'oggetto di destinazione desiderato, quindi
selezionare Formato oggetto dal menu di scelta rapida.
2. Nell'Editor formato fare clic sulla scheda Collegamento ipertestuale.
3. Nell'area Solo visualizzatore DHTML selezionare Analisi dettagliata delle parti del report.

Nota
L’area Campi disponibili non riporta gli oggetti report eliminati.

L'area Informazioni collegamento ipertestuale si modifica per visualizzare i campi appropriati per questo tipo
di collegamento ipertestuale.

L’area Campi disponibili riporta solo le sezioni e gli oggetti del report selezionabili per l’analisi dettagliata. In
generale, questi oggetti includono gli oggetti campo, i grafici, le mappe, le bitmap, i campi incrociati e gli
oggetti di testo contenuti nella successiva sezione di livello inferiore (ad esempio, gli oggetti del gruppo due,
se l’oggetto selezionato si trova nel gruppo uno).
4. Nell’area Campi disponibili selezionare la sezione o gli oggetti del report da utilizzare come destinazione
dell’analisi dettagliata.

Suggerimento
Utilizzare la finestra delle proprietà per identificare rapidamente i nomi predefiniti assegnati a ciascuno
degli oggetti del report.

5. Utilizzare i pulsanti freccia per spostare la sezione o gli oggetti selezionati nell’area Campi da visualizzare.

Nota
Per semplificare l’identificazione, viene creato un nodo della sezione nell’area Campi da visualizzare.
Questo nodo contiene gli oggetti selezionati nell’area Campi disponibili.

6. Se si desidera aggiungere un altro oggetto all’area Campi da visualizzare, selezionarlo nell’elenco Campi
disponibili e trascinarlo in posizione.

Suggerimento
La posizione di un oggetto nell’area Campi da visualizzare determina il modo in cui l’oggetto sarà
visualizzato in Report Part Viewer. Se l’oggetto è disposto dall’alto verso il basso nell’area Campi da
visualizzare, sarà riportato da sinistra a destra nel visualizzatore. Utilizzare le frecce sopra l’area Campi da
visualizzare per modificare l’ordine degli oggetti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 737
Nota
L’area Campi da visualizzare può contenere una sola sezione alla volta. Se si tenta di aggiungere un'altra
sezione, essa sostituirà qualsiasi sezione esistente nell'area Campi da visualizzare.

7. Fare clic su OK.

In questo modo è stato stabilito un collegamento dall'oggetto principale del report a uno o più oggetti di
destinazione. Nel Report Part Viewer verrà visualizzato per primo l'oggetto principale e quindi, quando si fa
clic su di esso per l'analisi dettagliata, verranno visualizzati gli oggetti di destinazione.

1.7.1.2.8.3.3 Opzione Un altro oggetto report

L'opzione Un altro oggetto report nella scheda Collegamento ipertestuale dell'Editor formato consente di definire
un percorso di collegamenti ipertestuali per il collegamento di oggetti dello stesso report o di report diversi. Se si
definisce un percorso di collegamenti ipertestuali per un diverso report, è necessario che quest'ultimo sia gestito
nella piattaforma SAP BusinessObjects Business Intelligence. Il controllo CrystalReportPartsViewer
visualizza solo gli oggetti specificati. Come l'opzione Analisi dettagliata delle parti del report, è necessario che tutti
gli oggetti di destinazione provengano dalla stessa sezione del report.

L'opzione Un altro oggetto report, inoltre, può essere utilizzata dal visualizzatore di pagina DHTML ai fini dello
spostamento.

1.7.1.2.8.3.3.1 Per creare un collegamento ipertestuale per


l'analisi dettagliata delle parti del report

Contesto

Poiché l'opzione Un altro oggetto report consente di creare collegamenti ipertestuali tra oggetti ubicati in report
diversi gestiti da SAP Crystal Reports Server o dalla piattaforma SAP BusinessObjects Business Intelligence, è
necessario effettuare ulteriori impostazioni nella scheda Collegamento ipertestuale. La procedura che segue
illustra i passaggi necessari per impostare in maniera corretta un collegamento ipertestuale.

● Aprire il report che contiene l'oggetto che si desidera definire come oggetto di destinazione e copiarlo.
● Aprire il report che contiene l'oggetto principale, selezionarlo e aprire l'Editor formato.
● Nella scheda Collegamento ipertestuale, incollare nei campi appropriati le informazioni relative all'oggetto di
destinazione.

Nota
Prima di intraprendere la procedura descritta di seguito, vedere Cenni preliminari sullo spostamento
tramite collegamenti ipertestuali [pagina 733] per informazioni sulle limitazioni inerenti alla creazione di
collegamenti ipertestuali di questo tipo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
738 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura

1. Aprire i report di origine e di destinazione.

Il report di origine è quello da cui si copia un oggetto; il report di destinazione, invece, è quello in cui si
aggiungono le informazioni del collegamento ipertestuale.

Quando si visualizza il report di destinazione in ReportPartViewer, viene mostrato innanzitutto l’oggetto


principale. Quando si esegue l’analisi dettagliata di tale oggetto, si passa all’oggetto di destinazione
selezionato nel report di origine.
2. Nel primo report fare clic sull'oggetto di destinazione desiderato e copiarne il nome elencato nel campo Nome
della finestra Proprietà (ad esempio Testo1, Campo1, Grafico1 e così via).
3. Nel report di destinazione fare clic con il pulsante destro del mouse sull’oggetto principale desiderato e
scegliere Formato oggetto dal menu di scelta rapida.
4. Nell'Editor formato fare clic sulla scheda Collegamento ipertestuale, quindi selezionare l'opzione Un altro
oggetto report.
5. Nell’area "Informazioni collegamento ipertestuale" fare clic su Incolla collegamento.

Nota
Il pulsante Incolla collegamento non è disponibile se l’oggetto di destinazione non è stato copiato.

6. Le informazioni di identificazione vengono incollate dall’oggetto di destinazione selezionato nel report di


origine ai campi appropriati.

Il pulsante Incolla collegamento include un elenco di opzioni che possono essere utilizzate per incollare un
collegamento nell’oggetto di destinazione. A seconda del tipo di collegamento che si sta creando (ad esempio,
un collegamento a un contesto dati specifico invece che a un contesto dati generico), vengono visualizzate le
opzioni seguenti:

○ Parte report in contesto


Questa è l’opzione predefinita, che viene selezionata quando si fa clic su Incolla collegamento senza
visualizzare le altre opzioni dell’elenco. Utilizzare questa opzione per incollare un collegamento che
include il contesto dati più completo che possa essere determinato. Per ulteriori informazioni, vedere
Scenari di utilizzo dell'opzione Parte report in contesto [pagina 740].
○ Parte report in visualizzazione Design
Utilizzare questa opzione per incollare un collegamento che include un contesto dati generico, ossia un
contesto dati che non punta a un record specifico. L’opzione deve essere utilizzata quando si desidera
disporre di un ampio contesto dati o quando i dati non sono ancora presenti nel report di origine.
○ Parte report in anteprima
Utilizzare quest’opzione per incollare un collegamento che include un contesto dati specifico, ossia un
contesto dati che punta a un record specifico. L’opzione deve essere utilizzata quando si desidera
disporre di un contesto dati ristretto o quando i dati sono già presenti nel report di origine.

Nota
Se si seleziona l'opzione Parte report in visualizzazione Design (o si seleziona l'opzione Parte report in
contesto per un oggetto copiato dalla visualizzazione Design di un report) e i report di origine e
destinazione presentano strutture dati diverse, verrà visualizzata la finestra di dialogo Mappatura
campi. Ogni campo dell’area Campi non mappati rappresenta un gruppo del report di origine. Utilizzare

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 739
questa finestra di dialogo per mappare i gruppi ai campi del report di destinazione. Dopo aver mappato
tutti i gruppi, diventa disponibile il pulsante OK e si può procedere con le operazioni.

7. Se si desidera aggiungere altri campi contenuti nella stessa sezione del collegamento al report, fare clic sul
campo Nome oggetto e spostare il cursore alla fine del testo esistente. Immettere un punto e virgola (;) e
quindi il nome del campo o dei campi.
8. È possibile allargare il Contesto dati utilizzando un asterisco (*) per rappresentare tutti i record di un gruppo.

Ad esempio, un Contesto dati /USA/CA/Changing Gears (per cui verrebbe visualizzato solo questo
specifico record), potrebbe essere modificato in /USA/CA/* in modo da visualizzare tutti i record compresi
nel gruppo.

Suggerimento
Se il report ha una formula di selezione dei gruppi, verificare che il contesto dati dell'oggetto di
destinazione contenga l'indice corretto degli elementi secondari.

9. Fare clic su OK.

In questo modo è stato stabilito un collegamento dall'oggetto principale a uno o più oggetti di destinazione.
Nel Report Part Viewer verrà visualizzato per primo l'oggetto principale e quindi, quando si fa clic su di esso
per l'analisi dettagliata, verranno visualizzati gli oggetti di destinazione.

1.7.1.2.8.3.4 Scenari di utilizzo dell'opzione Parte report in


contesto

Quando si incollano le informazioni di collegamento di una parte del report, l’opzione Parte report in contesto
incide principalmente sul contesto dati del collegamento; i campi Seleziona da (l’URI del report) e Nome oggetto
sono sempre gli stessi per tutte le opzioni disponibili nell’elenco Incolla collegamento. In questa sezione sono
riportati diversi scenari e per ognuno di essi viene descritta la modalità di creazione di un contesto dati.

Scenario 1

Se il report di origine contiene dati, se, cioè, il report si trova in visualizzazione Anteprima, il contesto dati Parte
report in contesto (nel report di destinazione) corrisponde al contesto dati Anteprima del report di origine per tutti
gli elementi figlio del campo selezionato. Nel campo Contesto dati potrebbe, ad esempio, essere visualizzato
quanto segue: /Country[USA]/Region[*]. In tutti gli altri casi, il contesto dati di visualizzazione Design del report
di origine sarà utilizzato come contesto dati Parte report in contesto nel report di destinazione.

Scenario 2

Se i report di origine e di destinazione coincidono, l’oggetto scelto come origine è ricavato dalla visualizzazione
Anteprima e l’oggetto di destinazione a cui si è deciso di collegarsi si trova su un livello superiore rispetto a quello
dell’oggetto di origine, il contesto dati sarà lasciato vuoto. Se, ad esempio, il contesto dati di origine è /

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
740 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Country[Australia]/ChildIndex[5] e quello di destinazione è /Country[Australia], il contesto dati Parte report in
contesto sarà lasciato vuoto.

Scenario 3

Se i report di origine e di destinazione coincidono, l’oggetto scelto come origine è ricavato dalla visualizzazione
Anteprima e l’oggetto di destinazione a cui si è deciso di collegarsi si trova su un livello inferiore rispetto a quello
dell’oggetto di origine, il contesto dati incollato è un contesto dati di visualizzazione Design, sotto forma di
formula. Se, ad esempio, il contesto dati di origine è /Country[Australia] e quello di destinazione è /
Country[Australia]/ChildIndex[5], il contesto dati Parte report in contesto sarà "/"+{Paese.Cliente}.

Campi incrociati

Se l'oggetto copiato nel report di origine è parte di un campo incrociato, il contesto dati Parte report in contesto è
basato sull'oggetto selezionato incorporato nel campo incrociato. SAP Crystal Reports crea il contesto dati
verificando se l'oggetto selezionato nel campo incrociato è una riga, una colonna o una cella. A questo punto, il
programma recupera i nomi delle righe e delle colonne. Quindi analizza il contesto dati di visualizzazione Design.
Infine, genera il contesto dati Parte report in contesto aggiungendo la funzione GridRowColumnValue, se il gruppo
della formula del contesto dati viene visualizzato nei nomi di riga o di colonna recuperati in precedenza. Potrebbe,
ad esempio, essere visualizzato un contesto dati di questo tipo:

"/"+GridRowColumnValue("Customer.Country")+"/"+GridRowColumnValue("Customer.Region")

1.7.1.2.8.3.5 Formati per il contesto dati

Di solito, una formula di contesto dati ha il seguente formato:

"/" + {Table.Field} + "/" + {Table.Field}

È possibile utilizzare anche i formati seguenti:

● Formato di tipo XPath:

/USA/Bicycle

● Formato con tipizzazione forte:

/Country[USA]/Product Class[Bicycle]

● Informazioni relative al livello di dettaglio in formato a base zero:

/USA/Bicycle/ChildIndex[4]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 741
● Un carattere jolly per identificare tutte le istanze:

/USA/*

● Per gli oggetti a campi incrociati è possibile utilizzare lo spostamento su celle, colonne o righe. Per definire il
contesto dati, utilizzare la funzione di formattazione GridRowColumnValue. Ad esempio:

"/" + GridRowColumnValue ("Supplier.Country") + "/" +


GridRowColumnValue ("Product.Product Class").

1.7.1.2.9 Miglioramento della presentazione del report

In questa sezione vengono illustrati i metodi che è possibile utilizzare per focalizzare l'attenzione sui dati,
modificare la presentazione di date, numeri e altri valori, nascondere le sezioni inutili ed eseguire altre attività di
formattazione, in modo che il report abbia un aspetto professionale.

1.7.1.2.9.1 Inserimento di grafici

Elenca i grafici disponibili e illustra come inserirli nei report.

SAP Crystal Reports consente di inserire grafici sofisticati e colorati nei report. Un grafico non rappresenta solo
un mezzo per la presentazione dei dati ma anche uno strumento di analisi. È possibile analizzare in modo
dettagliato un grafico o la relativa legenda per ottenere ulteriori informazioni.

È possibile ottenere dei grafici dai seguenti dati:

● campi di riepilogo e di totale


● campi dettagli, formula e totale parziale
● riepiloghi a campi incrociati

Nota
È possibile inserire nei grafici dati OLAP in altre versioni di SAP Crystal Reports. SAP Crystal Reports,
versione per sviluppatori per Microsoft Visual Studio non supporta le griglie OLAP.

Quando un grafico viene aggiunto al report, generalmente viene ricavato dalle informazioni di riepilogo e di totale
parziale a livello di gruppo.

1.7.1.2.9.1.1 Per inserire un grafico

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Grafico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
742 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Nella scheda Tipo, selezionare il Tipi di grafici [pagina 744].
3. Selezionare Imposta automaticamente le opzioni del grafico se si desidera che l’Esperto grafico utilizzi le
opzioni predefinite nelle schede Assi e Opzioni.
4. Fare clic sulla scheda Dati.
5. Nell'area Posizione, specificare il numero di volte che il grafico appare sul report, quindi fare clic su
Intestazione o Piè di pagina per specificare dove posizionare il grafico.
6. Nell'area Layout, selezionare il Layout grafico [pagina 743].
7. Nell'area Dati, specificare i campi di database che si desidera utilizzare come condizioni.
8. Se vengono visualizzate le schede Assi e Opzioni, è possibile personalizzare alcune proprietà del grafico, quali
le proporzioni degli assi, la legenda e le coordinate.
9. Fare clic sulla scheda Testo. Accettare le informazioni relative al titolo o aggiungere nuovi titoli al grafico.
10. Fare clic su OK.

Informazioni correlate

Layout grafico [pagina 743]


Tipi di grafici [pagina 744]

1.7.1.2.9.1.2 Posizionamento di un grafico

La posizione di un grafico determina quali dati sono visualizzati e dove vengono stampati. Ad esempio, un grafico
posizionato nella sezione Intestazione report include i dati di un intero report, mentre un grafico posizionato nella
sezione Intestazione di gruppo o Piè di pagina visualizza solo i dati specifici del gruppo.

Nota
● Se il report contiene dei sottoreport, è possibile posizionare i grafici anche nei sottoreport. Per ulteriori
informazioni sui sottoreport, vedere Inserimento di sottoreport [pagina 753].
● Per impostazione predefinita, quando si inserisce un grafico, questo viene posizionato nell'Intestazione
report.

1.7.1.2.9.1.3 Layout grafico

L'Assistente Grafici fornisce quattro layout che corrispondono a certi insiemi di dati.

È possibile creare grafici con uno dei seguenti layout e, in base ai dati utilizzati, è possibile modificare il layout dei
grafici.

Avanzato Utilizzare un layout avanzato quando si utilizzano valori multipli di grafici o quando non vi sono
gruppi o campi di riepilogo nel report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 743
Il layout grafico Avanzato supporta uno o due campi di condizione: con questi campi di condizione,
è possibile creare un grafico 2-D o 3-D. Altre funzioni specifiche con il layout avanzato includono:

● raggruppamento di valori in ordine ascendente, decrescente o specificato, così come in base a


Primi N o Ordina totali
● report dei valori per ogni record
● report del totale generale per tutti i record.
● grafici basati su campi formula e campi totale parziale

Gruppo Il layout del gruppo è un layout semplificato in cui viene visualizzato un riepilogo relativo al
cambiamento di un campo per argomenti, ad esempio Paese.

per la creazione di un grafico mediante il layout del gruppo, è necessaria l’esistenza di almeno un
gruppo e un campo di riepilogo per quel gruppo.

Campi Utilizzare un layout A campi incrociati quando si esegue un grafico di un oggetto incrociato. Un
incrociati grafico a campi incrociati utilizza i campi contenuti nel campo incrociato per i relativi campi di
condizione e di riepilogo.

OLAP Utilizzare il layout OLAP quando si esegue la mappatura su una griglia OLAP. Un grafico OLAP
utilizza i campi contenuti nella griglia OLAP per i relativi campi di condizione e di riepilogo

Nota
È possibile inserire nei grafici dati OLAP in altre versioni di SAP Crystal Reports. SAP Crystal
Reports, versione per sviluppatori per Microsoft Visual Studio non supporta le griglie OLAP.

1.7.1.2.9.1.4 Tipi di grafici

Per ciascun insieme di dati esiste un tipo di rappresentazione grafica particolarmente adatta. Di seguito viene
riportata una panoramica dei principali tipi di grafici e del relativo utilizzo più comune.

Barra Un grafico a barre (noto anche come grafico a colonne) visualizza o confronta differenti set di
dati. Due grafici a barre utili sono l’istogramma e il grafico a barre impilate.

Istogramma In un istogramma i dati vengono rappresentati come una serie di barre


verticali. Questo tipo di grafico è particolarmente adatto a illustrare
l'evoluzione in un determinato periodo di tempo di più set di dati (ad
esempio, le cifre delle vendite dell'anno precedente nelle varie regioni).

Grafico a barre In un grafico a barre in pila i dati vengono rappresentati come una serie di
in Pila barre verticali. Questo tipo di grafico è particolarmente adatto a visualizzare
tre serie di dati, ciascuna in un colore diverso, disposte in pila in una singola
barra (ad esempio, le vendite del 1997, 1998 e 1999).

Linea In un grafico a linea i dati vengono rappresentati come una serie di punti uniti da una linea.
Questo tipo di grafico è particolarmente adatto a rappresentare i dati di un gran numero di
gruppi (ad esempio, le vendite totali degli ultimi anni).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
744 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Area In un grafico ad area i dati vengono rappresentati come aree riempite da colori o motivi. Questo
tipo di grafico è particolarmente adatto a rappresentare i dati di un numero limitato di gruppi (ad
esempio, la percentuale del totale delle vendite di quattro regioni).

Torta In un grafico a torta i dati vengono rappresentati come una torta, suddivisa in sezioni di diverso
colore o motivo. I grafici a torta sono generalmente utilizzati per un gruppo di dati (ad esempio,
la percentuale di vendite per l'intero magazzino); tuttavia, è disponibile l'opzione per scegliere
più grafici a torta per più gruppi di dati.

A ciambella Un grafico a ciambella è simile a un grafico a torta e visualizza sezioni di dati come quelle di un
cerchio o di una ciambella. Se, ad esempio, si esegue un grafico delle vendite in base alle regioni
in un particolare report, è possibile visualizzare il numero totale di vendite (il valore) nel centro
del grafico a ciambella e le regioni come sezioni colorate. Come per il grafico a torta, è
disponibile l’opzione per scegliere più grafici a ciambella per più gruppi di dati.

Intervallo Un intervallo barre 3 D visualizza dati in una serie di oggetti tridimensionali, allineati l’uno
barre 3 D accanto all’altro, su un piano tridimensionale. Il Grafico a Intervallo Barre 3D mostra gli estremi
dei dati del report. Ad esempio, le differenze nelle vendite per clienti tra paesi è particolarmente
dinamica quando viene presentata in questo grafico.

A superficie I grafici a superficie 3D presentano una vista topografica di più set di dati. Se, ad esempio, è
3D necessario un grafico che mostri il numero di vendite in base al cliente per paese, in un formato
visibilmente dinamico e relazionale, è possibile considerare l'utilizzo del grafico a superficie 3D.

A dispersione Un grafico a dispersione XY è una raccolta di punti tracciati che rappresenta dati specifici in un
XY pool di informazioni. Il grafico a dispersione XY consente all’utente di prendere in considerazione
una più vasta portata di dati allo scopo di determinare le tendenze. Ad esempio, se si immettono
informazioni relative ai clienti, includendo vendite, prodotti, paesi, mesi e anni, si raggiunge una
raccolta di punti tracciati che rappresenta il pool di informazioni sul cliente. La visualizzazione di
tutti questi dati su di un grafico a dispersione XY consentirebbe di analizzare il motivo per cui
certi prodotti si vendono meglio di altri o certe regioni acquistano più di altre.

Radar Un grafico radar posiziona gruppi di dati relativi a paesi o clienti, nel perimetro del radar. Il
grafico a radar quindi posiziona valori numerici, incrementi di valori, dal centro del radar al
perimetro. In questo modo, l’utente può determinare a prima vista in che modo un gruppo
specifico di dati fa riferimento all’intero gruppo di dati.

A bolle Il grafico a bolle visualizza i dati come una serie di bolle le cui dimensioni sono proporzionali alla
quantità di dati. Un grafico a bolle è particolarmente efficace per riscontrare il numero di prodotti
venduti in una certa regione; maggiori sono le dimensioni della bolla, maggiore è il numero dei
prodotti venduti in quella regione.

Azionario Un grafico azionario presenta valori di dati alti e bassi. È utile per controllare le attività finanziarie
o di vendita.

Asse Un grafico con assi numerici è un grafico a barre, a linee o ad area in cui viene utilizzato un
numerico campo numerico o un campo data/ora come campo "Su modifica di". I grafici con assi numerici
offrono un modo per scalare i valori dell’asse X e creare, quindi, un asse numerico X true o un
asse data/ora X true.

Tipometro Un grafico a indicatore presenta graficamente i valori come punti di un tipometro. I tipometri,
come i grafici a torta, vengono utilizzati in genere per un gruppo di dati (ad esempio, la
percentuale delle vendite per l’intero inventario).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 745
Gantt Un diagramma di Gantt è un grafico a barre orizzontali spesso utilizzato per fornire
un’illustrazione grafica di una pianificazione. L’asse orizzontale mostra un intervallo di tempo,
mentre l’asse verticale riporta una serie di attività o di eventi. Le barre orizzontali del grafico
rappresentano le sequenze di eventi e gli intervalli temporali per ciascun elemento dell’asse
verticale. Quando si crea un diagramma di Gantt è necessario utilizzare solo campi data. È
necessario che il campo scelto per l’asse dati sia impostato su "Per ogni record" e che i campi
Data iniziale e Data finale siano aggiunti all’area "Mostra valori" della scheda Dati dell’Esperto
grafico.

Imbuto I grafici a imbuto vengono spesso utilizzati per rappresentare le diverse fasi di un processo di
vendita. ad esempio, l’importo di un ricavo potenziale per ogni fase. Questo tipo di grafico può
essere utile anche per identificare potenziali aree problematiche nei processi di vendita di
un’azienda. Un grafico a imbuto è simile a un grafico a barre in pila per il fatto di rappresentare il
100% dei valori di riepilogo relativi ai gruppi in esso inclusi.

Istogramma Un istogramma è un tipo di grafico a barre utilizzato per indicare come variano le misure rispetto
al valore medio e può risultare utile per identificare la causa dei problemi in un processo a
seconda della forma o anche dell’ampiezza (deviazione) della distribuzione. In un istogramma, la
frequenza è rappresentata dall’area di una barra piuttosto che dalla sua altezza.

Nota
I diagrammi di Gantt e i grafici a imbuto sono disponibili in SAP Crystal Reports per Visual
Studio 2005 e versioni successive e in SAP Crystal Reports Developer. Gli istogrammi non
sono disponibili in SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio,
mentre sono disponibili nelle versioni aggiornate.

1.7.1.2.9.1.5 Creazione di grafici

Quando un report viene progettato, esso viene generalmente ricavato dalle informazioni di riepilogo e di totale
parziale a livello di gruppo. Tuttavia, in base ai dati con i quali si lavora, è possibile creare un grafico a griglia
avanzato o a campo incrociato per il report.

1.7.1.2.9.1.5.1 Creazione di un grafico basato su campi di


riepilogo o di totale parziale

Visto che i grafici rappresentano un modo efficace di visualizzare informazioni di riepilogo, sono spesso basati su
un campo di riepilogo presente nel report. Perché sia possibile creare i grafici, è necessario che un riepilogo o un
totale parziale siano già inseriti nel report in un'intestazione o un piè di pagina di gruppo. Per ulteriori informazioni
sull'inserimento di riepiloghi e di totali parziali, vedere Riepilogo dei dati raggruppati [pagina 698] e Per eseguire il
totale parziale dei dati [pagina 706].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
746 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Tipi di grafici [pagina 744]


Layout grafico [pagina 743]

1.7.1.2.9.1.5.1.1 Esecuzione di un grafico basato su un


campo di riepilogo o di totale parziale

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Grafico.
2. Nella scheda Tipo, selezionare il Tipi di grafici [pagina 744], quindi fare clic sul sottotipo di grafico più adatto a
rappresentare i dati.
3. Selezionare Imposta automaticamente le opzioni del grafico se si desidera che l’Esperto grafico utilizzi le
opzioni predefinite nelle schede Assi e Opzioni.
4. Fare clic sulla scheda Dati.
5. Nell'area Posizione, specificare il numero di volte che il grafico appare sul report, quindi fare clic su
Intestazione o Piè di pagina per specificare dove posizionare il grafico.
6. Nell'area Layout, fare clic su Gruppo, se non è già selezionato.
7. Nell'elenco Su modifica di dell'area Dati, fare clic sul campo di gruppo su cui si desidera basare il grafico;
quindi, nell'elenco Mostra, fare clic sul campo di riepilogo che si desidera visualizzare sul grafico.
8. Se vengono visualizzate le schede Assi e Opzioni, è possibile personalizzare alcune proprietà, quali le
proporzioni degli assi, la legenda e le coordinate.
9. Fare clic sulla scheda Testo. Accettare le informazioni relative al titolo o aggiungere nuovi titoli al grafico.
10. Fare clic su OK.

Risultati

Quando il grafico viene inserito, una porzione del report ne potrebbe risultare coperta. Spostare e ridimensionare
il grafico in modo che sia ben posizionato all'interno del report.

1.7.1.2.9.1.5.2 Creazione di un grafico in base ai riepiloghi a


campi incrociati (layout a campi incrociati)

SAP Crystal Reports consente di inserire un grafico basato sui valori di riepilogo in un report a campi incrociati. Ad
esempio, nel caso di un campo incrociato in cui viene visualizzato la quantità di un certo prodotto venduto in
ciascuna regione d'Italia, è possibile inserire un report un grafico che illustri la percentuale delle vendite totali di
quel prodotto fornite da ciascuna regione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 747
Affinché sia possibile creare un grafico a campi incrociati, è necessario che nel report vi sia un campo incrociato.
Per informazioni sulla creazione di un campo incrociato, vedere Creazione di campi incrociati [pagina 756].

Informazioni correlate

Tipi di grafici [pagina 744]


Layout grafico [pagina 743]

1.7.1.2.9.1.5.2.1 Esecuzione di un grafico basato su un


riepilogo a campo incrociato

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Grafico.
2. Nella scheda Tipo, selezionare il Tipi di grafici [pagina 744], quindi fare clic sul sottotipo di grafico più adatto a
rappresentare i dati.
3. Selezionare Imposta automaticamente le opzioni del grafico se si desidera che l’Esperto grafico utilizzi le
opzioni predefinite nelle schede Assi e Opzioni.
4. Fare clic sulla scheda Dati.
5. Nell'area Posizione, specificare il numero di volte che il grafico appare sul report, quindi fare clic su
Intestazione o Piè di pagina per specificare dove posizionare il grafico.
6. Nell'area Layout, fare clic su A campi incrociati, se non è già selezionato.
7. Nell'elenco Su modifica di dell'area Dati, fare clic sul campo di gruppo su cui si desidera basare il grafico.
8. Se necessario, nell'elenco Suddiviso da, fare clic sulla riga o colonna secondaria su cui si desidera basare il
grafico.
9. Nell'elenco Mostra, fare clic sul campo di riepilogo che si desidera visualizzare sul grafico.
10. Se vengono visualizzate le schede Assi e Opzioni, è possibile personalizzare alcune proprietà, quali le
proporzioni degli assi, la legenda e le coordinate.
11. Fare clic sulla scheda Testo. Accettare le informazioni relative al titolo o aggiungere nuovi titoli al grafico.
12. Fare clic su OK.

Risultati

Quando il grafico viene inserito, una porzione del report ne potrebbe risultare coperta. Spostare e ridimensionare
il grafico in modo che sia ben posizionato all'interno del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
748 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.9.1.5.3 Creazione di un grafico basato su campi di
dettaglio o formula

Il layout avanzato consente all'utente di creare un grafico basato su valori specifici. Visto che i grafici
rappresentano un modo efficace di visualizzare informazioni di riepilogo, sono spesso basati su un campo di
riepilogo presente nel report. Con il layout avanzato, è possibile creare un grafico che non richiede un campo di
riepilogo, utilizzando i valori visualizzati nella sezione Dettagli del report.

Per creare un grafico basato sul layout avanzato, è necessario specificare due elementi:

Le condizioni (ve ne La condizione viene utilizzata per indicare quando deve essere tracciato un punto. Ad
possono essere esempio, un grafico che illustra le vendite ai clienti dell'anno precedente, utilizza il campo
due). Nome cliente come condizione. Ogni volta che cambia la condizione (cambia il nome del
cliente), viene tracciato un punto.

Inoltre esiste l'opzione di tracciare un punto per ciascun record o di tracciarne uno per
tutti i record.

I valori (vi possono Il grafico avanzato utilizza il valore per indicare quali informazioni vengono tracciate come
essere più valori). punti nel grafico. Ad esempio, per creare un grafico che illustri le vendite ai clienti
dell'anno precedente, il valore sarà dato dal campo relativo alle vendite dell'anno
precedente.

Informazioni correlate

Tipi di grafici [pagina 744]


Layout grafico [pagina 743]

1.7.1.2.9.1.5.3.1 Creazione di un grafico basato su un campo


di dettaglio o formula

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Grafico.
2. Nella scheda Tipo, selezionare il Tipi di grafici [pagina 744], quindi fare clic sul sottotipo di grafico più adatto a
rappresentare i dati.
3. Selezionare Imposta automaticamente le opzioni del grafico se si desidera che l’Esperto grafico utilizzi le
opzioni predefinite nelle schede Assi e Opzioni.
4. Fare clic sulla scheda Dati.
5. Nell'area Posizione, specificare il numero di volte che il grafico appare sul report, quindi fare clic su
Intestazione o Piè di pagina per specificare dove posizionare il grafico.
6. Nell'area Layout, fare clic su Avanzato, se non è già selezionato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 749
7. Nell'area Dati, specificare i campi di database che si desidera utilizzare come condizioni.
È possibile selezionare Su modifica di dall'elenco, quindi aggiungere fino a due campi di database nella casella
sottostante l'elenco.
8. Aggiungere all'elenco Mappa valori i campi di database che si desidera utilizzare come valori.
9. Se non si desidera che i valori del grafico per un campo formula vengano riepilogati automaticamente da SAP
Crystal Reports Designer incorporato, selezionare la casella di controllo Non riepilogare.
10. Se vengono visualizzate le schede Assi e Opzioni, è possibile personalizzare alcune proprietà, quali le
proporzioni degli assi, la legenda e le coordinate.
11. Fare clic sulla scheda Testo. Accettare le informazioni relative al titolo o aggiungere nuovi titoli al grafico.
12. Fare clic su OK.

Risultati

Quando il grafico viene inserito, una porzione del report ne potrebbe risultare coperta. Spostare e ridimensionare
il grafico in modo che sia ben posizionato all'interno del report.

1.7.1.2.9.1.6 Utilizzo dei grafici

Dopo aver creato un grafico, potrebbero rivelarsi necessarie delle modifiche come l'aggiunta di titoli, intestazioni o
legende, la modifica dei caratteri o addirittura del tipo di grafico. SAP Crystal Reports Designer incorporato
fornisce diverse opzioni per utilizzare i grafici esistenti.

1.7.1.2.9.1.6.1 Modifica dei grafici mediante l'Esperto


grafico

La modifica dei grafici mediante l'Esperto grafico consente di ritornare all'esperto con il quale è stato progettato il
grafico. È possibile modificare molte delle scelte iniziali, ad esempio il tipo di grafico da visualizzare e i dati su cui si
basa il grafico.

Informazioni correlate

Modifica dei grafici mediante le voci del menu Opzioni grafico [pagina 751]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
750 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.9.1.6.1.1 Per modificare un grafico utilizzando
l'Esperto grafico

Procedura

1. Fare clic con il pulsante destro del mouse per visualizzare il menu di scelta rapida.
2. Nel menu di scelta rapida scegliere Esperto grafico.
3. Nella finestra di dialogo Esperto grafico, eseguire le modifiche desiderate.
4. Fare clic su OK.

1.7.1.2.9.1.6.2 Modifica dei grafici mediante le voci del menu


Opzioni grafico

Alcune delle opzioni di modifica disponibili nell'Esperto grafico sono disponibili anche direttamente dal menu
Opzioni grafico. Questo menu, visualizzabile facendo clic con il pulsante destro del mouse su un grafico, consente
di visualizzare tre finestre di dialogo che contengono opzioni di formattazione avanzata.

Finestra di dialogo Utilizzare la finestra di dialogo Scegli un tipo di Grafico per modificare il tipo di grafico e il
Scegli un tipo di layout o applicare un modello personalizzato. Per visualizzare questa finestra di dialogo,
Grafico fare clic con il tasto destro del mouse su un grafico, scegliere Opzioni grafico e fare clic su
Modello.

Finestra di Utilizzare la finestra di dialogo Opzioni grafico per modificare il formato generale, il layout e
dialogo Opzioni l’aspetto di un grafico. Per visualizzare questa finestra di dialogo, fare clic con il pulsante destro
grafico del mouse su un grafico in un report, scegliere Opzioni grafico e fare clic su Generale.

Finestra di È possibile utilizzare la finestra di dialogo Titoli per aggiungere, modificare o eliminare un titolo,
dialogo Titoli sottotitolo, nota a piè di pagina, titolo gruppo, titolo asse dati, titolo asse dati2 e titolo asse
serie del grafico. Per visualizzare questa finestra di dialogo, fare clic con il tasto destro del
mouse su un grafico, scegliere Opzioni grafico e quindi Titoli.

Informazioni correlate

Modifica dei grafici mediante l'Esperto grafico [pagina 750]


Formattazione dei grafici [pagina 751]

1.7.1.2.9.1.6.3 Formattazione dei grafici

Utilizzare l'Editor formato per cambiare l'aspetto del grafico. Per visualizzare questa finestra di dialogo, fare clic
con il tasto destro del mouse su un grafico e scegliere Opzioni grafico e fare clic su Formato oggetto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 751
Scheda Comune È possibile utilizzare questa scheda per impostare proprietà del grafico quali Nome
oggetto, Ometti, Allineamento orizzontale e Mantieni oggetti uniti.

Scheda Bordo È possibile utilizzare questa scheda per formattare i bordi, il riempimento dello sfondo e
l'ombreggiatura del grafico.

Scheda Collegamento È possibile utilizzare questa scheda per creare un collegamento ipertestuale a un sito
ipertestuale Web, un valore di campo, un indirizzo di posta elettronica, a un file o a un qualsiasi altro
file di SAP Crystal Reports.

Informazioni correlate

Finestra di dialogo Editor formato [pagina 897]

1.7.1.2.9.1.6.4 Utilizzo della funzione di sfondo con i grafici

Poiché i grafici possono essere stampati solo in certe sezioni del report, la funzione di sfondo consente un
maggiore controllo dell'aspetto generale del report. Il grafico può essere stampato in corrispondenza piuttosto
che prima dei dati che rappresenta, per una maggiore comprensione del report.

Informazioni correlate

Esperto sezione [pagina 986]

1.7.1.2.9.1.6.4.1 Per utilizzare un grafico come sfondo

Procedura

1. Creare il grafico e posizionarlo nella sezione Intestazione report.


Per informazioni sulla creazione di un grafico, vedere Creazione di grafici [pagina 746].
2. Nel menu Crystal Reports, selezionare Report, quindi fare clic su Esperto sezione.
Viene visualizzata la finestra di dialogo Esperto sezione.
3. Nell'area Sezioni, fare clic su Intestazione report, quindi selezionare Sezioni seguenti sullo sfondo.
4. Fare clic su OK.
5. Selezionare la scheda Anteprima per visualizzare il risultato.
Il grafico ora viene visualizzato come sfondo delle sezioni sottostanti.
6. Se necessario, ritornare alla modalità di progettazione per spostare o ridimensionare il grafico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
752 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.9.2 Inserimento di sottoreport
Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

Un sottoreport è un report presente all’interno di un altro report. I sottoreport consentono di combinare report
non correlati in un unico report. È possibile coordinare dati che altrimenti non potrebbero essere collegati o
rappresentare gli stessi dati con diverse visualizzazioni in un singolo report.

Se il report contiene una sezione che gestisce un grande numero di record, è possibile inserire tale sezione in un
sottoreport su richiesta. Un sottoreport su richiesta compare come collegamento ipertestuale nel report
principale. Quando si lavora sul report principale, non viene recuperato nessun dato dal sottoreport su richiesta
finché non si effettua un'analisi dettagliata sul collegamento ipertestuale.

Suggerimento
Quando possibile, coordinare i dati dei report collegandoli a tabelle di database con Esperto collegamento
visivo, invece di collegare sottoreport normali, ovvero sottoreport che non sono sottoreport su richiesta, al
report principale. Poiché ogni sottoreport viene eseguito come report separato, l'uso di tabelle collegate
spesso offre alcuni vantaggi funzionali.

1.7.1.2.9.2.1 Per inserire un sottoreport

Procedura

1. Fare clic con il pulsante destro del mouse in Crystal Reports Designer incorporato, scegliere Inserisci, quindi
fare clic su Sottoreport.
2. Trascinare l'oggetto sottoreport nel report.
3. Scegliere un report nel progetto, un altro report esistente, oppure crearne uno nuovo per il sottoreport.
4. Selezionare Sottoreport su richiesta per avere la possibilità di recuperare i dati del sottoreport quando
necessario. In caso contrario, tutti i dati nel sottoreport vengono visualizzati con il report.

Nota
È possibile migliorare le prestazioni dei report che contengono sottoreport utilizzando sottoreport su
richiesta.

5. Se occorre collegare un sottoreport ai dati nel report principale, fare clic sulla scheda Collegamento.
6. Selezionare il campo che si desidera utilizzare come campo di collegamento nel report principale
(contenitore) dall'elenco Campi disponibili e aggiungerlo all'elencoCampo/i a cui collegarsi.
7. Utilizzare la sezione Collegamento al campo (visualizzata solo se si è selezionato un campo di collegamento)
per impostare il collegamento a ciascun campo di collegamento.
a) Selezionare il campo che si desidera collegare al report principale da Campo di parametro sottoreport da
utilizzare
b) selezionare la casella di controllo Seleziona dati nel sottoreport in base al campo e selezionare un campo
dall'elenco a discesa adiacente per organizzare i dati del sottoreport in base a un campo specifico (questa
operazione rapida è equivalente Se non si esegue alcuna selezione, il sottoreport utilizza l’organizzazione
del report principale.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 753
8. Fare clic su OK.

Risultati

Quando si esegue il report, il programma collegherà i dati del report principale e quelli del sottoreport.

Nota
Il tipo di campo del campo Report contenitore determina i campi del sottoreport visualizzati. Poiché SAP
Crystal Reports Designer incorporato legge le date come campi stringa, data o data/ora, è necessario
assicurarsi che il tipo di campo di parametro del sottoreport corrisponda al tipo di campo impostato in Opzioni
report del report principale per il campo che si desidera collegare.

Informazioni correlate

Sottoreport non collegati e sottoreport collegati [pagina 754]

1.7.1.2.9.2.2 Sottoreport non collegati e sottoreport


collegati

Sottoreport non collegati

I sottoreport non collegati sono autonomi: i dati non sono collegati in alcun modo ai dati del report primario.

Nei report non collegati, non viene eseguito alcun tentativo di far corrispondere i record di un report con i record di
un altro. Un sottoreport non collegato non deve utilizzare gli stessi dati del report principale: può utilizzare la
stessa origine dei dati o un’origine dei dati completamente diversa. Inoltre, il sottoreport non è limitato ad una
singola tabella. Un sottoreport non collegato può basarsi su una o più tabelle. Indipendentemente dalle origini dei
dati sottostanti, i report vengono trattati come non correlati.

Sottoreport collegati

I sottoreport collegati sono esattamente l’opposto: i dati sono coordinati. Il programma fa corrispondere i record
del sottoreport ai record del report principale. Se si crea un report principale con informazioni sui clienti e un
sottoreport con informazioni sugli ordini e li si collega, il programma crea un sottoreport per ciascun cliente e vi
include tutti gli ordini del cliente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
754 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Modalità di collegamento dei sottoreport

Collegando un sottoreport ad un report principale, il programma crea il collegamento utilizzando un campo di


parametro.

Se si seleziona un campo di collegamento del sottoreport, il programma crea:

● nel sottoreport un campo di parametro utilizzato per recuperare i valori trasferiti dal report primario.
● una formula per la selezione di record del sottoreport utilizzando il campo di parametro.
La formula per la selezione limita il sottoreport a quei record in cui il valore del campo di collegamento è
uguale al valore del campo di parametro.

Eseguendo il report, il programma trova il primo record di campo primario di cui necessita e passa il valore nel
campo di collegamento al campo di parametro del sottoreport. Il programma crea quindi il sottoreport con la
selezione di record basata sul valore del campo di parametro. Di seguito viene fornito un esempio.

● Creare un report che mostri i dati del cliente e un sottoreport che mostri i dati sugli ordini e collegare i due
report utilizzando il campo relativo agli ID cliente.
● Quando si esegue il report, il programma trova il primo record di campo primario di cui necessita e passa il
valore dell’ID cliente da quel record al campo di parametro del sottoreport.
● Il programma esegue il sottoreport Ordini. Poiché la formula di selezione del sottoreport seleziona solo i
record in cui il valore ID cliente è uguale al valore del campo di parametro e poiché il valore del campo di
parametro è uguale all’ID cliente del primo record nel report principale, il sottoreport contiene solo i record
aventi lo stesso ID cliente. Cioè i record che rappresentano gli ordini del primo cliente.
● Al termine del sottoreport, il programma individua il secondo record di cui necessita nel report principale,
stampa i dati del cliente e quindi passa il numero ID del cliente al campo di parametro.
● Il programma esegue quindi un sottoreport includendo solo i record degli ordini per il secondo cliente.
● Il processo continua fino al termine del report.
● L’intera gestione del campo di parametro avviene senza che l’utente possa vederla. È sufficiente selezionare i
campi per collegare il report principale al sottoreport e il programma eseguirà il resto della procedura. I valori
sono trasferiti senza che il campo di parametro richieda l’immissione di dati da parte dell’utente.

1.7.1.2.9.3 Oggetti a campi incrociati

Illustra come aggiungere oggetti griglia a campi incrociati per organizzare i dati nel report.

Un oggetto a campi incrociati è una griglia che restituisce i valori in base ai criteri specificati. I dati sono presentati
in un formato compatto di righe e colonne. Questo formato consente di confrontare i dati e identificare le
tendenze.

Un oggetto a campi incrociati è costituito da tre elementi:

● Righe
● Colonne
● Campi di riepilogo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 755
1.7.1.2.9.3.1 Creazione di campi incrociati

È possibile creare un oggetto a campi incrociati in un nuovo report o aggiungere un oggetto a campi incrociati a un
report esistente. Di seguito vengono presentate alcune considerazioni da tenere presenti quando si utilizzano gli
oggetti a campi incrociati:

● Sono presenti più righe, colonne e campi di riepilogo


● È possibile utilizzare formule per l'ora di stampa come righe o colonne.
● È possibile utilizzare campi Totale parziale come campi di riepilogo.
● È possibile specificare un ordinamento di gruppo (primi o ultimi N) per le righe del campo incrociato.
● Non è possibile applicare un ordinamento di gruppo alle colonne.
● È possibile inserire nel report il numero di oggetti a campi incrociati desiderato.
● È possibile inserire oggetti a campi incrociati sia a Intestazione o Piè di pagina report, sia a Intestazione o Piè
di pagina gruppo.
● È possibile inserire oggetti a campi incrociati nei sottoreport. Questa funzione può essere utile se si desidera
fare riferimento ai risultati provenienti da un altro report.

1.7.1.2.9.3.1.1 Creazione di un nuovo report a campi


incrociati

SAP Crystal Reports Designer incorporato fornisce la Creazione guidata report a campi incrociati [pagina 650] per
facilitare la creazione di report a campi incrociati.

Informazioni correlate

Cenni preliminari sulle sezioni di report [pagina 641]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
756 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.9.3.1.1.1 Per creare un nuovo report a campi
incrociati

Procedura

1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del progetto in grassetto, selezionare
Aggiungi, quindi scegliere Nuovo elemento.
2. Nella finestra di dialogo Aggiungi nuovo elemento, in visualizzazione Modelli, selezionare il modello Report
Crystal.
3. Nel campo Nome, inserire il nome desiderato, quindi fare clic su Aggiungi.
4. Nel riquadro Crea un nuovo documento Crystal Report della finestra di dialogo Galleria Crystal Reports,
selezionare Uso della procedura guidata Report.
5. Nell'elenco Scegli un esperto selezionare Campi incrociati, quindi fare clic su OK.
Viene visualizzata la Creazione guidata report a campi incrociati.
6. Nella schermata Dati individuare l'origine dati che si desidera specificare, aggiungere le tabelle desiderate
all'area Tabelle selezionate, quindi fare clic su Avanti.
Viene visualizzata la schermata Collegamento.
7. Modificare i collegamenti, se necessario, quindi fare clic su Avanti.
Viene visualizzata la schermata A campi incrociati.
8. Aggiungere i campi alle aree Righe, Colonne e Campi di riepilogo, selezionare l'operazione di riepilogo che si
desidera eseguire dall'elenco sottostante l'area Campi di riepilogo, quindi fare clic su Avanti.
Viene visualizzata la schermata Grafico.
9. Selezionare il tipo di grafico, modificare le informazioni predefinite sui grafici per adattarle al report, quindi
fare clic su Avanti.
Viene visualizzata la schermata Selezione record.
10. Utilizzare questa schermata per applicare le condizioni di selezione, quindi fare clic su Avanti.
Viene visualizzata la schermata Stile griglia.
11. Selezionare uno stile predefinitio, quindi fare clic su Fine.
Il report a campi incrociati viene creato e caricato nella finestra principale di Visual Studio.

1.7.1.2.9.3.1.2 Aggiunta di un campo incrociato a un report


esistente

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Inserisci,
quindi fare clic su Campi incrociati.
2. Inserire l'oggetto Campo incrociato nel report.
3. Nella finestra di dialogo Esperto campi incrociati aggiungere i campi alle aree Righe, Colonne e Campi di
riepilogo.
4. Fare clic sulla scheda Stile per selezionare un design per il campo incrociato, oppure fare clic sulla scheda
Personalizza stile per creare un design personalizzato per il campo incrociato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 757
Informazioni correlate

Cenni preliminari sulle sezioni di report [pagina 641]


Finestra di dialogo Esperto campi incrociati [pagina 972]

1.7.1.2.9.3.2 Utilizzo dei campi incrociati

In questa sezione viene illustrato come utilizzare un campo incrociato dopo averlo aggiunto al report.

1.7.1.2.9.3.2.1 Visualizzazione di valori come percentuali

Procedura

1. In SAP Crystal Reports Designer incorporato, fare clic con il pulsante destro del mouse sul campo di riepilogo
nel campo incrociato.
2. Selezionare Modifica operazione di riepilogo dal menu di scelta rapida.
Viene visualizzata la finestra di dialogo Modifica riepilogo.
3. Selezionare la casella di controllo Mostra come percentuale di.
4. Per Da, scegliere Riga o Colonna a seconda che si desideri calcolare i valori percentuale in orizzontale (riga) o
verticale (colonna).
5. Fare clic OK, quindi su Anteprima report principale per visualizzare in anteprima la modifica.

Risultati

I valori del campo di riepilogo verranno ora visualizzati sotto forma di percentuali all'interno del campo incrociato.

Informazioni correlate

Finestra di dialogo Modifica riepilogo [pagina 890]

1.7.1.2.9.3.2.2 Utilizzo dei totali parziali nei campi incrociati

I campi Totale parziale possono essere utili come campi di riepilogo negli oggetti a campi incrociati. Creare il
campo incrociato, ma scegliere un campo totale parziale come campo di riepilogo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
758 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Non è possibile utilizzare i campi Totale parziale come colonne o righe di una griglia a campi incrociati.

Se si aggiunge un ordinamento di gruppo (primi o ultimi N) basato su un campo Totale parziale, l'ordinamento
viene eseguito sulla base dei valori totali parziali indicati nelle aree dei totali delle righe/colonne del campo
incrociato, non sulla base dei totali dei campi di riepilogo. Inoltre, nel caso in questione, i risultati totali parziali
verranno visualizzati correttamente solo nei dati dei totali, non nei dati delle celle.

Informazioni correlate

Creazione di totali parziali [pagina 708]


Ordinamento di dati [pagina 703]
Descrive come ordinare i dati in un campo specifico. Illustra inoltre le diverse opzioni di ordinamento.

1.7.1.2.9.3.2.2.1 Per sommare i valori delle colonne

Contesto

Se si desidera un totale parziale che sommi i valori delle colonne del campo incrociato, è necessario ordinare i
record di tale campo prima per colonna e poi per riga.

Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Esperto ordinamento record.
2. Ordinare il campo incrociato in base al campo designato come Colonna nell'Esperto campi incrociati.
3. Creare un secondo ordinamento in base al campo designato come Riga nell'Esperto campi incrociati.

1.7.1.2.9.3.2.2.2 Per sommare i valori delle righe

Contesto

Se si desidera un totale parziale che sommi i valori delle righe del campo incrociato, è necessario ordinare i record
di tale campo prima per riga e poi per colonna.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 759
Procedura

1. Fare clic con il pulsante destro del mouse in SAP Crystal Reports Designer incorporato, scegliere Report,
quindi fare clic su Esperto ordinamento record.
2. Ordinare il campo incrociato in base al campo designato come Riga nell'Esperto campi incrociati.
3. Creare un secondo ordinamento in base al campo designato come Colonna nell'Esperto campi incrociati.

1.7.1.2.9.3.2.3 Stampa dei campi incrociati su più pagine

Quando si crea un campo incrociato la cui larghezza o altezza è superiore alle dimensioni specificate per la pagina,
il programma lo stampa automaticamente su un numero di pagine sufficiente a contenerne le dimensioni. Per una
maggiore facilità di lettura, le intestazioni di colonna vengono ripetute sulle pagine successive. Le intestazioni
delle righe possono inoltre essere ripetute utilizzando l'opzione Mantieni insieme le colonne.

1.7.1.2.9.3.2.3.1 Per ripetere le etichette della riga

Procedura

1. In SAP Crystal Reports Designer incorporato, fare clic con il pulsante destro del mouse nell'angolo superiore
sinistro vuoto di un campo incrociato.
2. Selezionare Esperto campi incrociati dal menu di scelta rapida.
3. Nell'Esperto campi incrociati, fare clic sulla scheda Personalizza stile, quindi selezionare la casella di controllo
Ripeti etichette righe.
4. Selezionare la casella di controllo Mantieni insieme le colonne, se non è già selezionata.
5. Fare clic su Anteprima report principale per visualizzare il report in anteprima.

1.7.1.2.9.3.3 Formattazione di campi incrociati

SAP Crystal Reports dispone di potenti funzioni di formattazione che è possibile applicare ai campi incrociati.

Per evidenziare i dati importanti e per creare report di aspetto professionale, campi incrociati di facile
comprensione, è possibile utilizzare l'Editor formato per applicare formattazioni quali colore di sfondo, bordi e
caratteri. Per accedere all'Editor formato, fare clic con il pulsante destro del mouse sul campo incrociato, quindi
selezionare Editor formato dal menu di scelta rapida.

È anche possibile utilizzare l'Esperto evidenziazione per applicare una formattazione condizionale alle celle dei
campi incrociati. Per accedere all'Esperto evidenziazione, fare clic con il pulsante destro del mouse sulla cella di
cui si desidera eseguire la formattazione, quindi selezionare Esperto evidenziazione dal menu di scelta rapida. Per
ulteriori informazioni, vedere Finestra di dialogo Esperto evidenziazione [pagina 985].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
760 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.1.2.9.3.3.1 Formattazione dei campi

Procedura

1. Fare clic con il pulsante destro del mouse sul campo che si desidera formattare e selezionare Formato campo
dal menu di scelta rapida.
Per formattare più campi, selezionarli facendo clic e tenendo premeuto il tasto MAIUSC, quindi fare clic con il
pulsante destro del mouse su uno di questi campi e selezionare Formatta oggetti multipli dal menu di scelta
rapida.
Viene visualizzato l'Editor di formato.
2. Nell'Editor formato, selezionare il carattere, lo sfondo, i bordi, la numerazione, i simboli di valuta e le
caratteristiche di stampa.
3. Fare clic su OK per tornare al campo incrociato del report in uso.
Il campo viene formattato in base alle impostazioni specificate.

1.7.1.2.9.3.3.2 Modifica della larghezza, dell'altezza e


dell'allineamento delle celle in un campo incrociato

Procedura

1. elezionare una cella all'interno del campo incrociato per attivare i quadratini di ridimensionamento.
2. Fare clic su un quadratino di ridimensionamento e trascinarlo per modificare l'altezza o la larghezza della
cella.
3. Selezionare un'opzione di allineamento nella barra degli strumenti principale di Crystal Report per modificare
l'allineamento dei dati all'interno della cella.

Nota
La modifica di una cella ha effetto su tutte le celle simili. Ad esempio, la modifica della larghezza di una cella
all'interno di un campo di riepilogo determina contemporaneamente la modifica di tutte le altre celle dello
stesso campo.

1.7.1.2.9.3.3.3 Formattazione del colore di sfondo di intere


righe o colonne

Contesto

Utilizzare i colori dello sfondo per enfatizzare le righe o le colonne all'interno del campo incrociato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 761
Procedura

1. Fare clic con il pulsante destro del mouse nell'angolo superiore sinistro vuoto di un campo incrociato e
selezionare Esperto campi incrociati dal menu di scelta rapida.
Viene visualizzato l'Esperto campi incrociati.
2. Fare clic sulla scheda Personalizza Stile.
3. Fare clic sulla riga (nell'area Righe) o sulla colonna (nell'area Colonne) e selezionare un colore dall'elenco a
discesa Colore Sfondo.
4. Fare clic su OK per tornare al campo incrociato del report in uso.
La riga o la colonna viene formattata in base alle impostazioni specificate.

1.7.1.2.9.3.3.4 Omissione dei dati dei campi incrociati

Questa sessione fornisce i passaggi necessari per omettere i dati del report. È possibile omettere:

● Righe e colonne vuote


● Totali generali delle righe e delle colonne
● Totali parziali e relative etichette

1.7.1.2.9.3.3.4.1 Per omettere righe e colonne vuote

Procedura

1. Fare clic con il pulsante destro del mouse nell'angolo superiore sinistro vuoto del campo incrociato e
selezionare Esperto campi incrociati dal menu di scelta rapida.
Viene visualizzato l'Esperto campi incrociati.
2. Fare clic sulla scheda Personalizza Stile.
3. Selezionare la casella di controllo Ometti righe vuote oppure Ometti colonne vuote.
4. Fare clic su OK.
Dopo le seguenti operazioni, quando si stampa il report, nessuna riga e/o colonna vuota verrà visualizzata.

1.7.1.2.9.3.3.4.2 Per omettere i totali generali delle righe e


delle colonne

Procedura

1. Fare clic con il pulsante destro del mouse nell'angolo superiore sinistro vuoto del campo incrociato e
selezionare Esperto campi incrociati dal menu di scelta rapida.
Viene visualizzato l'Esperto campi incrociati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
762 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
2. Fare clic sulla scheda Personalizza Stile.
3. Selezionare la casella di controllo Ometti totali generali riga oppure Ometti totali generali colonna.
4. Fare clic su OK.

1.7.1.2.9.3.3.4.3 Per omettere i totali parziali e le relative


etichette

Contesto

Se in un campo incrociato sono presenti più di due gruppi, è possibile omettere il totale parziale e la relativa
etichetta per uno dei gruppi.

Procedura

1. Fare clic con il pulsante destro del mouse nell'angolo superiore sinistro vuoto di un campo incrociato e
selezionare Esperto campi incrociati dal menu di scelta rapida.
Viene visualizzato l'Esperto campi incrociati.
2. Fare clic sulla scheda Personalizza Stile.
3. Fare clic sul campo del quale si desidera omettere il totale parziale.
Le caselle di controllo Ometti totale parziale e Ometti etichetta sono ora selezionabili.
4. Nell'area Opzioni gruppo selezionare la casella di controllo Ometti totale parziale.
5. Fare clic sulla casella di controllo Ometti etichetta per omettere l'etichetta associata al totale parziale, quindi
fare clic su OK.

1.7.1.2.9.3.3.5 Visualizzazione in senso orizzontale dei campi


di riepilogo

Contesto

Se sono presenti due o più campi di riepilogo all'interno del campo incrociato, è possibile visualizzare i relativi
valori in senso orizzontale anziché in senso verticale (impostazione predefinita).

Procedura

1. Fare clic con il pulsante destro del mouse nell'angolo superiore sinistro vuoto di un campo incrociato e
selezionare Esperto campi incrociati dal menu di scelta rapida.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 763
Viene visualizzato l'Esperto campi incrociati.
2. Fare clic sulla scheda Personalizza Stile.
3. Nell'area Campi di riepilogo, selezionare Orizzontale.
4. Selezionare la casella di controllo Mostra etichette se si desidera visualizzare le etichette relative ai campi di
riepilogo.

Le etichette vengono visualizzate nella direzione precedentemente selezionata per i campi di riepilogo.
5. Fare clic su OK.

1.7.1.2.9.4 Inserimento di immagini di sfondo

Descrive come impostare oggetti come sfondo vicino o sotto (opposto a sopra) gli oggetti posti nella sezione di
report successiva.

Gli oggetti di sfondo inseriti in una sezione del report appaiono vicino o sotto gli oggetti posti nella sezione
successiva.

Nota
La funzione di sfondo è attiva solo per sezione di report. Tutti gli oggetti nella sezione vengono impostati come
sfondo per la sezione successiva.

È possibile utilizzare la funzione di sfondo per formattare report adatti a moduli prestampati o per inserire un
grafico o un'immagine di un dipendente da stampare vicino ai dettagli relativi al grafico o al dipendente.

Se si stampa su moduli prestampati, è possibile eseguire quanto segue:

● eseguire la scansione di un modulo


● inserirlo nel report come bitmap
● utilizzare la funzione di sfondo per allineare la bitmap e il report, oltre che per spostare oggetti nel punto in cui
si desidera che appaiano
● eliminare la necessità di stampare separatamente i moduli stampando il report e il modulo come unica unità.

1.7.1.2.9.4.1 Per impostare gli oggetti del report come


sfondo

Procedura

1. Aggiungere gli oggetti da impostare come sfondo a una sezione del report.
2. Fare clic con il pulsante destro del mouse nella sezione del report e selezionare Esperto sezione.
3. Selezionare la casella di controllo Sezioni seguenti sullo sfondo.
4. Fare clic su OK.
5. Se si desidera inserire più sezioni sullo sfondo, ridimensionare verticalmente l'oggetto.
L'area in cui l'oggetto viene inserito come sfondo dipende dalle seguenti condizioni:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
764 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
○ dimensione dell'oggetto
○ la sezione in cui l'oggetto era stato collocato in origine
○ la posizione dell'oggetto nella sezione

1.7.1.2.9.5 Sezioni del report nascoste

Descrive come nascondere o eseguire un'analisi dettagliata sulle informazioni del report.

SAP Crystal Reports dispone di tre proprietà che possono essere impostate per nascondere le sezioni del report.

● Nascondi (con Analisi Dettagliata)


● Elimina (nessuna analisi dettagliata)
● Elimina sezioni vuote

1.7.1.2.9.5.1 Per nascondere una sezione

Contesto

La proprietà Nascondi nasconde una sezione quando si esegue il report. Ad esempio, è possibile utilizzare la
proprietà Nascondi in un report di riepilogo nel quale si desidera visualizzare solo i riepiloghi e non i relativi
dettagli. Quando si applica la proprietà Nascondi ad una sezione, questa diventa visibile utilizzando il cursore di
analisi dettagliata per visualizzare il contenuto della sezione. Questa proprietà è assoluta e non può essere
applicata in modo condizionale tramite l’uso di una formula.

Procedura

Fare clic con il pulsante destro del mouse nella sezione del report e selezionare Nascondi (con analisi
dettagliata).

1.7.1.2.9.5.2 Per omettere una sezione

Contesto

Anche la proprietà Ometti nasconde una sezione quando si esegue il report. A differenza della proprietà Nascondi,
tuttavia, non è possibile applicare la proprietà Ometti, quindi eseguire l’analisi dettagliata per rivelare il contenuto
della sezione. Questa proprietà può essere applicata in modo assoluto oppure condizionale tramite l’uso di una
formula. Ciò risulta utile nella scrittura di lettere modulo. Ad esempio, in una lettera modulo, è possibile creare due
sezioni Dettagli: una per omettere se le vendite sono superiori a un determinato importo e una per omettere se le
vendite sono inferiori all'importo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 765
Procedura

Fare clic con il pulsante destro del mouse nella sezione del report e selezionare Ometti (nessuna analisi
dettagliata).

1.7.1.2.9.5.3 Per omettere una sezione vuota

Contesto

La proprietà Ometti sezioni vuote nasconde una sezione quando questa non contiene alcun elemento. In caso
contrario, la sezione diventa visibile.

Procedura

Fare clic con il pulsante destro del mouse nella sezione del report e selezionare Formatta sezione.
Nell'Esperto sezione, fare clic sulla casella di controllo Ometti sezioni vuote.

1.7.1.2.9.6 Allineamento e ridimensionamento di oggetti

La barra degli strumenti di layout consente di allineare o ridimensionare più oggetti contemporaneamente. Fare
clic su un oggetto per selezionarlo, quindi fare clic tenendo premuto il tasto Maiusc o Ctrl per selezionare altri
oggetti. Dopo avere selezionato gli oggetti da allineare o ridimensionare, fare clic su un pulsante della barra degli
strumenti per allineare o ridimensionare gli oggetti.

I pulsanti della barra degli strumenti di layout eseguono le seguenti operazioni:

Utilizzare il pulsante Allinea alla griglia per allineare gli oggetti selezionati alla griglia.

Utilizzare il pulsante Allinea a sinistra per allineare il lato sinistro degli oggetti selezionati con il lato
sinistro dell'ultimo oggetto selezionato.

Utilizzare il pulsante Allinea all'asse orizzontale per allineare il centro degli oggetti selezionati con il
centro dell'ultimo oggetto selezionato.

Utilizzare il pulsante Allinea a destra per allineare il lato destro degli oggetti selezionati con il lato destro
dell'ultimo oggetto selezionato.

Utilizzare il pulsante Allinea in alto per allineare la parte superiore degli oggetti selezionati con la parte
superiore dell'ultimo oggetto selezionato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
766 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Utilizzare il pulsante Allinea all'asse orizzontale per allineare la linea mediana (verticale) degli oggetti
selezionati con la linea mediana (verticale) dell'ultimo oggetto selezionato.

Utilizzare il pulsante Allinea in basso per allineare la parte inferiore degli oggetti selezionati con la parte
inferiore dell'ultimo oggetto selezionato.

Consente di ridimensionare gli oggetti in base alla larghezza dell'ultimo oggetto selezionato.

Consente di ridimensionare gli oggetti in base all'altezza dell'ultimo oggetto selezionato.

Consente di ridimensionare gli oggetti in base all'altezza dell'ultimo oggetto selezionato.

Suggerimento
per accedere a ciascuno di questi elementi, utilizzare il menu di scelta rapida della pagina di progettazione
incorporata. Selezionare due o più oggetti e fare clic con il pulsante destro del mouse su uno degli oggetti per
accedere al menu Allinea o Dimensioni.

1.7.1.3 Personalizzazione dei report esistenti

Illustra la modalità di importazione dei report che utilizzano formati non Crystal, contengono driver non
supportati, oppure sono creati con una versione obsoleta di SAP Crystal Reports.

Questa sezione offre una serie di linee guida sulle modalità di accesso, visualizzazione e aggiornamento di versioni
precedenti dei report Crystal.

1.7.1.3.1 Importazione di versioni precedenti di SAP Crystal


Reports

Le versioni precedenti dei report Crystal (file .rpt) conservano la propria funzionalità se vengono aperte in versioni
più recenti di SAP Crystal Reports Designer. Prima di aprire un report in SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio, tuttavia, vanno considerate le limitazioni seguenti:

Mappe Gli oggetti mappa non sono supportati in SAP Crystal Reports, versione per sviluppatori per
Microsoft Visual Studio. Nel report gli oggetti mappa appariranno vuoti.

Griglie OLAP Gli oggetti griglia OLAP non sono supportati in SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio. I report progettati con le griglie OLAP non potranno
essere aperti.

Dizionari, I report basati su dizionari Crystal, InfoViews e file QRY non sono supportati in SAP Crystal
InfoViews e file Reports, versione per sviluppatori per Microsoft Visual Studio e non vengono aperti.
QRY

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 767
Salvataggio dei report

I report Crystal creati con una versione precedente di SAP Crystal Reports vengono aggiornati all'ultima versione
quando si salva il file.

Nota
È possibile aprire il report con una versione precedente di SAP Crystal Reports anche dopo averlo salvato. Le
nuove funzionalità o funzioni, tuttavia, non saranno disponibili.

1.7.1.3.2 Utilizzo di report con driver non supportati

SAP Crystal Reports è in grado di utilizzare report basati su driver di database non supportati. Se il report
contiene dati salvati è possibile esportarlo, stamparlo o visualizzarlo, ma l'output conterrà i dati statici salvati nel
report. Se il report non contiene dati oppure viene aggiornato, verrà visualizzato un messaggio di errore nel
motore delle query. Per evitare la generazione di un messaggio di errore, è possibile disattivare la possibilità di
aggiornare del report (per i report con dati salvati) o impostare la posizione su un'origine di dati supportata.

1.7.1.4 Ottimizzazione delle prestazioni dei report

Illustra i modi in cui è possibile migliorare le prestazioni dei report.

Questa sezione illustra i modi in cui è possibile migliorare i report per sfruttare appieno le nuove funzioni avanzate
di produttività offerte da SAP Crystal Reports. I consigli riportati sono particolarmente importanti per
l'ottimizzazione delle prestazioni dei report distribuiti nell'ambiente thin-wire del Web, la maggior parte delle linee
guida descritte possono tuttavia essere estese a tutti i report.

Informazioni correlate

Scalabilità dell'applicazione [pagina 63]

1.7.1.4.1 Scalabilità con SAP BusinessObjects Enterprise

SAP BusinessObjects Enterprise aumenta il valore e la scalabilità di SAP Crystal Reports. Offre una soluzione di
reporting flessibile e facile da gestire. Consente all'utente di distribuire la potenza di progettazione dei report di
SAP Crystal Reports in un'infrastruttura scalabile basata sul Web per la gestione di un archivio dei report
centralizzato, della sicurezza dell'utente e della pianificazione ed elaborazione dei report.

Visual Studio .NET consente di creare applicazioni in grado di accedere ai server della piattaforma SAP
BusinessObjects Business Intelligence. In questo modo è possibile creare un client di dimensioni ridotte che può

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
768 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
essere distribuito a migliaia di utenti e utilizzare i server della piattaforma SAP BusinessObjects Business
Intelligence per gestire, elaborare e pianificare i report.

Informazioni correlate

Soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina 64]


Confronto tra le architetture di tutte le soluzioni di reporting per SAP Business Intelligence [pagina 40]

1.7.1.4.2 Trasferimento della selezione del record dal server


di database

La componente più importante per rendere più veloce l'elaborazione dei report è limitare la quantità di dati
restituiti dal database. Lo strumento principale per tale scopo è rappresentato dalle formule di selezione dei
record.

SAP Crystal Reports consente di analizzare le formule di selezione dei record generando una query SQL. Tale
query SQL viene in seguito elaborata dal database che restituisce i record ottenuti a SAP Crystal Reports. SAP
Crystal Reports quindi valuta la formula di selezione dei record a livello locale per ciascuno dei record ottenuti dal
database calcolando in tal modo l'insieme di record utilizzato per generare il report.

I record non necessari vengono eliminati in due fasi: nel database con la query SQL e in SAP Crystal Reports dalla
formula di selezione dei record. Per rendere più veloce l’elaborazione, nella prima fase deve essere eliminato il
maggior numero possibile di record. Progettando la formula di selezione del record in modo efficiente è possibile
trasferire gran parte dell'elaborazione al server del database, eliminando così i record non necessari prima di
restituirli a SAP Crystal Reports. Questa operazione viene comunemente indicata come Invio della selezione di
record al server del database [pagina 679].

Campi di parametro

Invece di visualizzare tutti i dati di un report ogni volta che si apre il report, è possibile creare campi di parametro
chiedendo agli utenti di specificare i dati che desiderano visualizzare. Per diminuire il numero di dati trasferiti dal
server del database, incorporare tali campi di parametro direttamente nella formula di selezione dei record.

In generale i campi di parametro forniscono interattività per gli utenti, che devono rispondere alla richieste di
parametri per specificare i dati che desiderano visualizzare. Tuttavia, incorporando i campi di parametro
direttamente nelle formule di selezione dei record, non solo si fornisce interattività, ma si diminuisce anche il
trasferimento dei dati e si migliorano le prestazioni.

È possibile aggiungere un campo di parametro alla formula di selezione dei record utilizzando l'Esperto selezione
o l'Editor delle formule per la selezione dei record. Quando si utilizza l'Editor delle formule per la selezione dei
record, il campo di parametro viene trattato come si farebbe con qualsiasi altro campo. Vedere Inserimento dei
parametri nelle formule [pagina 694].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 769
Campi espressione SQL

Per garantire una velocità di elaborazione dei report ottimale, evitare di utilizzare formule (sia con sintassi Crystal
che Basic) nelle formule di selezione dei record. Sostituire invece la formula originale con un campo Espressione
SQL e quindi incorporare il campo Espressione SQL nella formula di selezione dei record. In questo modo
verranno aumentate notevolmente le possibilità che la selezione dei record venga inviata al server.

Inoltre, evitare ordinamenti, raggruppamenti o il calcolo dei totali in un campo formula, (sia sintassi Crystal che
Basic). Invece sostituire il campo formula originale con un campo Espressione SQL equivalente, quindi ordinare,
raggruppare o calcolare i totali nel campo Espressione SQL. Anche questo aumenterà notevolmente la possibilità
che l'elaborazione venga effettuata sul server.

Infine, se il database supporta Case Logic e il report deve effettuare un riepilogo di una formula di calcolo If-Then-
Else, sostituire la formula con il campo Espressione SQL. In tali casi, i campi Espressione SQL abilitano SAP
Crystal Reports all'esecuzione del raggruppamento del report sul server. Vedere Espressioni SQL [pagina 725].

Informazioni correlate

Espressioni SQL [pagina 725]


Descrive quando utilizzare le Espressioni SQL nei report.

1.7.1.4.3 Progettazione di scelte per migliorare le prestazioni

Quando si progettano i report, e in particolare quando si progettano report per il Web, occorre che siano gli utenti
a guidare i dati che vengono visualizzati. In altri termini, visualizzare informazioni riepilogate, in modo che ciascun
utente possa navigare nel report velocemente e quindi eseguire un'analisi dettagliata per accedere a dati
aggiuntivi. In questo modo, il traffico Web e i tempi di risposta sono ridotti al minimo, perché soltanto i dati
richiesti dall'utente vengono trasferiti dal server del database.

Quelli appena descritti sono soltanto alcuni dei vantaggi della progettazione di report condotti dall'utente:

● Gli utenti dei report possono ottenere un controllo interattivo sul tipo e la quantità delle informazioni che
vengono visualizzate sul Web.
● Il trasferimento dei dati e il traffico di rete diminuiscono, perché soltanto le informazioni richieste dagli utenti
vengono restituite dal server del database.
● Quando gli utenti hanno bisogno di reporting in tempo reale di dati live sul Web, i report orientati all'utente
rispondono velocemente e comunicano in modo efficace con il server del database.
● I report diventano più utili perché ciascun utente personalizza i contenuti del report, creando in questo modo
una soluzione di reporting specifica per le proprie esigenze decisionali.

Report di riepilogo

La progettazione e la distribuzione di report di riepilogo è un modo relativamente facile per assicurarsi che gli
utenti possano trovare rapidamente sul Web i dati necessari bisogno. Un report di riepilogo può contenere tanti

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
770 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
dati quanto un altro tipo di report. Tuttavia nascondendo la sezione Dettagli di un report di riepilogo, si evita di
sovraccaricare gli utenti con dati di cui non hanno immediato bisogno.

Quando la sezione Dettagli è nascosta, gli utenti possono navigare utilizzando Struttura di gruppo per individuare i
dati desiderati. Effettuando successivamente un'analisi dettagliata nel report, possono richiedere dati specifici,
che vengono rapidamente restituiti senza record superflui. Ciò è particolarmente importante per migliorare la
navigazione in report di riepilogo voluminosi, che possono essere composti da centinaia, migliaia o persino decine
di migliaia di pagine.

Sottoreport su richiesta

Se il report contiene una sezione che gestisce un grande numero di record, è possibile inserire tale sezione in un
sottoreport su richiesta. Un sottoreport su richiesta compare come collegamento ipertestuale nel report
principale. Quando si lavora sul report principale, non viene recuperato nessun dato dal sottoreport su richiesta
finché non si effettua un'analisi dettagliata sul collegamento ipertestuale.

Ad esempio, quando si progetta un report che mostra le vendite per trimestre di ciascun dipendete per prodotto e
per tipo di prodotto, può darsi che si desideri anche includere informazioni sulle vendite settimanali per tenere
traccia dei progressi di ciascun dipendente. I dati aggiuntivi tuttavia potrebbero non interessare molti degli utenti
che visualizzano il report. In tal caso, estrarre le porzioni delle vendite settimanali del report e allegarle come
sottoreport su richiesta. Le informazioni dettagliate sulle vendite settimanali verranno recuperate dal database
soltanto quando un utente effettua un'analisi dettagliata nel sottoreport su richiesta.

Molti oggetti report (grandi campi incrociati e grafici avanzati) sono i candidati ideali all'inclusione in sottoreport
su richiesta; in tal modo l'oggetto non viene elaborato finché non si effettua un'analisi.

È inoltre possibile posizionare tali oggetti report in una sezione Dettagli nascosta di un report che utilizza l'opzione
Esegui raggruppamento su Server. A seguito di tale azione il server del database esegue la maggior parte
dell'elaborazione e soltanto un sottoinsieme di dati viene trasferito dal server al computer locale.

Collegamento di tabelle invece di sottoreport

Quando possibile, coordinare i dati dei report collegandoli a tabelle di database con Esperto collegamento visivo,
invece di collegare sottoreport normali, ovvero sottoreport che non sono sottoreport su richiesta, al report
principale. Poiché ogni sottoreport viene eseguito come report separato, l'uso di tabelle collegate spesso offre
alcuni vantaggi funzionali.

Informazioni correlate

Nascondere i dettagli nei report di riepilogo [pagina 701]


Inserimento di sottoreport [pagina 753]
Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

Collegamento di tabelle di database [pagina 663]


Illustra le procedure necessarie per collegare le tabelle di database in modo che i record di una tabella
corrispondano a quelli di un'altra.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 771
1.7.2 Creazione di formule

Quando si creano le formule, è possibile scegliere di utilizzare la sintassi Crystal o Basic. Quasi tutte le formule
scritte utilizzando una sintassi possono essere riscritte con le regole dell'altra sintassi. I report possono contenere
formule che utilizzano tutti e due i tipi di sintassi, tuttavia una singola formula può utilizzare una sola sintassi.

Gli utenti che padroneggiano il linguaggio Microsoft Visual Basic o di altre versioni di Basic, si troveranno più a loro
agio con la sintassi Basic. In generale, la sintassi Basic è modellata su Visual Basic; tuttavia, presenta estensioni
specifiche per la gestione del reporting.

Per le descrizioni e gli esempi di singoli operatori e funzioni, vedere il Manuale dell'utente di SAP Crystal Reports.

1.7.2.1 Sintassi Basic

Quando si creano le formule, è possibile scegliere di utilizzare la sintassi Crystal o Basic. Gli utenti che
padroneggiano il linguaggio Microsoft Visual Basic o di altre versioni di Basic, si troveranno più a loro agio con la
sintassi Basic. In generale, la sintassi Basic è modellata su Visual Basic; tuttavia, presenta estensioni specifiche
per la gestione dei report.

L'uso della sintassi Basic non rallenta l'elaborazione dei report. I report che includono formule con sintassi Basic
possono essere utilizzati su qualsiasi computer che esegue SAP Crystal Reports. Inoltre, l’uso di formule con
sintassi Basic non richiede la distribuzione di file aggiuntivi con i report.

1.7.2.1.1 Nozioni di base sulla sintassi Basic

Caratteristiche comuni

● Numerose funzioni della sintassi Basic operano allo stesso modo delle funzioni corrispondenti di Visual Basic.
Ad esempio, le funzioni di stringa (quali Len, Mid e Filter), le funzioni aritmetiche (quali Abs, Rnd e Sin), le
funzioni finanziarie (quali PV), le funzioni di programmazione rapida (IIF) e le funzioni di data (quali DateSerial,
DateAdd e DateDiff).
● La maggior parte degli operatori supportati da Visual Basic è disponibile anche nella sintassi Basic. Ad
esempio, la concatenazione di stringa (&) e le costruzioni date-time literal (#...#).
● La maggior parte delle istruzioni e delle strutture di controllo utilizza la stessa sintassi di Visual Basic. Ad
esempio, le istruzioni If, Select, Do While, Do Until, While e For/Next.
● Ad esempio, sono supportati i commenti stile Basic e i caratteri di continuazione di riga nonché l'uso nel
linguaggio Basic di nuove righe, dei due punti e del segno uguale.

Il risultato di una formula

Il risultato di una formula, ovvero il valore stampato quando la formula viene inserita in un report, è definito come il
valore restituito dalla formula. Ogni formula in SAP Crystal Reports deve restituire un valore. Nella sintassi Basic

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
772 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
ciò avviene impostando il valore della variabile speciale “formula”. Nell’esempio riportato di seguito è illustrata
una formula semplice in sintassi Basic che restituisce il valore 10:

formula = 10

Il valore restituito da una formula può corrispondere a uno dei sette tipi di dati semplici supportati: Numero,
Valuta, Stringa, Booleano, Data, Ora e Data-Ora. SAP Crystal Reports supporta anche i tipi di intervallo e di
matrice, ma questi ultimi non possono essere restituiti da una formula.

Assegnazione di un valore alla variabile formula

Se non viene assegnato un valore alla variabile formula, la formula nella sintassi Basic non sarà completa.

In alcuni casi, può essere necessario scrivere formule solo per dichiarare o inizializzare alcune variabili globali. Tali
formule sono inserite, di solito, nella sezione intestazione di un report. In questo caso, è sufficiente assegnare un
valore qualsiasi alla variabile speciale formula, in quanto ogni formula deve restituire un valore anche se tale
valore non verrà utilizzato.

Esempio

Rem Alcune dichiarazioni di variabili globali


Rem Ricordare di impostare il valore di ’formula’
Global x As String, y As Number, z As DateTime
x = "hello"
y = 10.5
z = #Aug 6, 1976#
formula = 10

Tipi di dati e variabile formula

La variabile formula può essere impostata più volte all'interno di una singola formula. Ad esempio, supporre che le
politiche di spedizione di una società prevedano che solo gli ordini superiori a 1.000 $ siano assicurati:

Rem Una formula che restituisce un valore di stringa


If {Orders.Order Amount} >= 1000 Then
formula = "Spedizione assicurata"
Else
formula = "Spedizione ordinaria"
End If

La variabile formula precedente restituisce il valore di stringa di testo "Spedizione assicurata" se il valore nel
campo del database {Ordini.Importo ordine} è maggiore di o uguale a 1000; negli altri casi, il valore di stringa di
testo restituito è "Spedizione ordinaria". Nell'esempio precedente questa variabile appare due volte.

Se la variabile formula è impostata su un valore di un tipo, non può essere impostata successivamente su un
valore di un altro tipo nella stessa formula. Per esempio, la sostituzione della stringa "Spedizione ordinaria"
nell'esempio precedente con il numero 10 darebbe luogo a un errore, in quanto la variabile speciale formula è
stata impostata precedentemente sul valore di stringa "Spedizione assicurata".

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 773
Questa restrizione dipende dal fatto che SAP Crystal Reports deve conoscere in anticipo quale sarà il tipo di valore
restituito da una formula in modo da poter riservare una quantità di memoria sufficiente per la restituzione dei
valori. Tipi diversi richiedono infatti una quantità diversa di memoria. Inoltre, le opzioni di formattazione disponibili
per un campo formula dipendono dal tipo di formula impostato. Ad esempio, un campo numerico avrà opzioni di
formattazione numeriche, quali la visualizzazione dei decimali, non applicabili a un campo stringa.

Nota
la variabile speciale formula non deve essere dichiarata, a differenza di altre variabili utilizzate in una formula
con sintassi Basic.

Distinzione tra maiuscole e minuscole

La sintassi Basic non distingue tra maiuscole e minuscole. Nella sintassi Basic, infatti, “formula”, “Formula” e
“FORMULA” non vengono distinte. La mancata distinzione tra maiuscole e minuscole vale per tutti i nomi di
variabile, le funzioni e le parole chiave utilizzate in una formula con sintassi Basic.

Nota
l’unica eccezione a questa regola è rappresentata dalle stringhe. La stringa "Ciao" non è uguale alla stringa
"ciao".

1.7.2.1.1.1 Confronto tra le formule in sintassi Basic e le


funzioni Visual Basic

L'uso della variabile formula è simile alla scrittura di una funzione denominata formula in Visual Basic.

Si consideri la formula nella sintassi Basic riportata di seguito.

Rem Una formula che restituisce un valore di stringa


Rem La funzione Rnd restituisce un numero casuale compreso tra 0 e 1.
Rem between 0 and 1
If Rnd > 0.9 Then
formula = "Hai vinto!"
Else
formula = "Non hai vinto. Riprova."
End If

La formula precedente restituisce il valore di stringa di testo "Hai vinto!" se il numero casuale restituito dalla
funzione Rnd è maggiore di 0,9; negli altri casi, il valore della stringa di testo è "Non hai vinto. Riprova.".

Ad esempio, la formula precedente può essere scritta come una funzione Visual Basic nel modo seguente:

Rem Il codice seguente è in Visual Basic


Function formula()
If Rnd > 0.9 Then
formula = "Hai vinto!"
Else

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
774 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
formula = "Non hai vinto. Riprova."
End If
End Function

1.7.2.1.2 Commenti (sintassi Basic)

I commenti sono note incluse nelle formule per illustrarne le modalità di elaborazione e funzionamento. I
commenti non vengono stampati e non influiscono sul contenuto della formula, ma vengono visualizzati
nell’Editor di Formula. È possibile utilizzare i commenti per spiegare lo scopo di una formula o illustrare la
procedura utilizzata per scriverla.

I commenti operano in modo analogo ai commenti di Visual Basic. Essi devono essere preceduti dalla parola
chiave Rem o da un apostrofo.

Nota
Un commento che inizia con una Rem è un'istruzione distinta e deve cominciare su una nuova riga oppure deve
essere separata dall'istruzione precedente mediante i due punti.

Rem Questo è un commento


Rem Questo è un altro commento
formula = 10 'Testo dopo un apostrofo
formula = 20 : Rem Anche questo è un commento
'I commenti possono essere inseriti dopo il testo della formula

1.7.2.1.3 Campi (sintassi Basic)

Nelle formule è possibile fare riferimento a molti dei campi utilizzati quando si crea un report. Ad esempio, i campi
di database, di parametro, dei totali parziali, delle espressioni SQL, di riepilogo e nome di gruppo. Nella formula è
inoltre possibile fare riferimento ad altri campi formula.

Il modo più semplice per inserire un campo nel report è fare doppio clic sul nome di un campo nella struttura
Campi report. In questo modo si garantisce l’uso della sintassi corretta per il campo.

Aspetto dei campi nelle formule

I nomi dei campi del database, di parametro, formula, dei totali parziali e delle espressioni SQL sono racchiusi in
parentesi graffe.

I nomi dei campi del database sono ricavati dal database:{Employee.Last Name}

I nomi dei campi di parametro, formula, dei totali parziali e delle espressioni SQL sono specificati al momento della
relativa creazione.

● i campi di parametro includono il punto di domanda: {?my parameter field}

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 775
● i campi formula includono il segno at:{@another formula }
● il campo totale parziale include il segno tasto del telefono:{#my running total}
● i campi delle espressioni SQL includono il simbolo percentuale:{%my SQL expression}

I campi di riepilogo e nome di gruppo hanno l’aspetto simile alle chiamate di funzione. Tuttavia, rappresentano
realmente notazioni abbreviate di campi del report.

● sum campo di riepilogo:Sum({Orders.Order Amount}, {Orders.Ship Via})


● campo nome di gruppo:GroupName({Orders.Ship Via})

Esempio

Utilizzando il database di esempio Xtreme, sottrarre il campo di database della data di spedizione dal campo del
database della data dell’ordine per sapere quanti giorni intercorrono tra la spedizione del prodotto e la data di
presentazione dell'ordine:

formula = {Orders.Ship Date} - {Orders.Order Date}

Per conoscere l’importo totale di un particolare prodotto di cui è stato eseguito l’ordine, moltiplicare il prezzo
unitario per la quantità ordinata:

formula = {Orders Detail.Unit Price} * _


{Orders Detail.Quantity}

Nota
L'esempio utilizza il carattere di continuazione riga " _ " (spazio carattere di sottolineatura). Vedere Istruzioni
(sintassi Basic) [pagina 776].

Per calcolare un prezzo di vendita uguale all’80 per cento del prezzo unitario originale:

formula = {Orders Detail.Unit Price} * 0.80

1.7.2.1.4 Istruzioni (sintassi Basic)

Le formule nella sintassi Basic sono costituite da una sequenza di istruzioni. Ogni istruzione deve essere separata
dall’istruzione precedente da una nuova riga o da due punti. Di solito, ogni istruzione occupa una riga, ma è
possibile continuare l’istruzione sulla riga successiva utilizzando il carattere di continuazione riga costituito da
uno spazio seguito dal carattere di sottolineatura.

'Dichiara x una variabile numerica


Dim x As Number
'Assegna il valore 30 a x.
x = 10 + 10 + 10
'Anche questa istruzione assegna il valore 30 a x.
x = 10 + _
10 + 10
'Nei commenti possono essere utilizzati anche _ i caratteri di continuazione riga
Dim y as String

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
776 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
'Tre istruzioni separate da due punti
y = "Ciao" : x = 30 : formula = True

1.7.2.1.5 Assegnazione (sintassi Basic)

Utilizzare il segno uguale (=) quando si eseguono le assegnazioni. Facoltativamente, può essere inclusa anche la
parola chiave Let.

Esempio

x = 10
Let y = 20

1.7.2.1.6 Tipi di dati semplici (sintassi Basic)

In questa sezione sono descritti i tipi di dati semplici disponibili in SAP Crystal Reports.

1.7.2.1.6.1 Numero (sintassi Basic)

Immettere i numeri senza virgole o simboli di valuta. In genere, si desidera che i numeri formattati vengano forniti
come il risultato di una formula e non siano inclusi nella formula stessa.

Esempi di valori numerici includono:

10000
-20
1.23

1.7.2.1.6.2 Valuta (sintassi Basic)

Utilizzare la funzione CCur per creare un valore valuta. La C iniziale di CCur sta per conversione e può essere
utilizzata per convertire i valori numerici in valori di importo in valuta.

CCur (10000)
CCur (-20)
CCur (1.23)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 777
1.7.2.1.6.3 Stringa (sintassi Basic)

Le stringhe sono utilizzate per contenere testo. Il testo deve essere racchiuso tra doppie virgolette (") e non può
essere suddiviso tra più righe. Se si desidera includere le doppie virgolette in una stringa, utilizzare due virgolette
doppie consecutive.

"This is a string."
"123"
"The word ""hello"" is quoted."

È possibile estrarre singoli elementi o sottostringhe da una stringa specificando la posizione del carattere o un
intervallo di posizioni di caratteri. Sono consentiti i valori negativi che specificano la posizione a partire dalla fine
della stringa.

"hello" (2) 'Equal to "e"


"hello" (-5) 'Equal to "h"
"604-555-1234" (1 to 3) 'Equal to "604"
"abcdef" (-3 to -1) 'Equal to "def"

È anche possibile estrarre sottostringhe da una stringa utilizzando le funzioni Left, Right e Mid.

1.7.2.1.6.4 Valore booleano (sintassi Basic)

I valori booleani validi sono:

True
False

Nota
È possibile utilizzare Yes al posto di True e No al posto di False.

1.7.2.1.6.5 Data, Ora e Data/ora (sintassi Basic)

Il tipo DateTime può contenere la data e l’ora, solo la data o solo l’ora. Il tipo data contiene solo le date e il tipo ora
contiene solo le ore. I tipi data e ora sono più efficienti rispetto al tipo data/ora, dunque possono essere utilizzati
in situazioni nelle quali la funzionalità e la flessibilità aggiunte del tipo DateTime non sono necessarie.

Visual Basic non supporta tipi distinti per contenere solo date o solo ore. La sintassi Basic del tipo DateTime è
simile al tipo data di Visual Basic.

È possibile creare valori DateTime direttamente utilizzando la costruzione date-time literal. Tale costruzione viene
formata digitando la data e l'ora tra due segni tasto del telefono (#). Come in Visual Basic, sono supportati
numerosi formati diversi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
778 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
I caratteri di data e ora non possono essere suddivisi tra più righe.

Esempi

#8/6/1976 1:20 am#


#August 6, 1976#
#6 Aug 1976 13:20:19#
#6 Aug 1976 1:30:15 pm#
#8/6/1976#
#10:20 am#

Anche se #10:20 am# sembra contenere il tipo ora e #8/6/1976# sembra contenere il tipo data, non è questo il
caso. Entrambi contengono il tipo DateTime, come tutte le costruzioni date-time literal. Ad esempio, è possibile
concepire #10:20 am# come valore DateTime con la parte relativa alla data di valore nullo. Per eseguire la
conversione nel tipo ora, utilizzare la funzione CTime (#10:20 am#).

Invece di utilizzare costruzioni date-time literal, utilizzare la funzione CDateTime per convertire una stringa in un
tipo data/ora. Ad esempio,

CDateTime ("8/6/1976 1:20 am")


CDateTime ("10:20 am")

Tuttavia, esiste una differenza fondamentale tra l’utilizzo di costruzioni date-time literal e l’uso della funzione
CdateTime sopra descritto. I caratteri di data/ora utilizzano sempre il formato data inglese (Stati Uniti d'America)
e non assumono le impostazioni locali del computer in cui viene eseguito SAP Crystal Reports. Di conseguenza, gli
esempi di costruzioni date-time literal riportati sopra sono validi per qualsiasi computer. D’altra parte, su un
sistema italiano si potrebbero utilizzare le seguenti costruzioni:

CDateTime ("22 aout 1997") 'Uguale a #Ago. 22, 1997#.

I valori di data possono essere costruiti con CDate e i valori di ora con CTime:

CDate ("Aug 6, 1969")


CDate (1969, 8, 6) 'Specifica l’anno, il mese e il giorno.
'Converte l'argomento DataOra in una data.
CDate (#Aug 6, 1969#)
CTime ("10:30 am")
CTime (10, 30, 0) 'Specifica l’ora, i minuti e i secondi.
CTime (#10:30 am#)

1.7.2.1.7 Tipi di dati di intervallo (sintassi Basic)


La funzione degli intervalli è di organizzare uno spettro di valori. Gli intervalli sono disponibili per tutti i tipi
semplici, con l'eccezione dei valori booleani. Ovvero: intervalli numerici, intervalli in valuta, intervalli di stringhe,
intervalli di date, intervalli di ore e intervalli di date/ore. È possibile generare gli intervalli utilizzando le parole
chiave To, _To, To_, _To_, Is >, Is >=, Is < e Is <=. In generale, la parola chiave To è utilizzata per gli intervalli
costituiti da 2 estremità, mentre Is è utilizzata per gli intervalli aperti (una sola estremità). I caratteri di
sottolineatura sono utilizzati per indicare se le estremità sono incluse o meno nell’intervallo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 779
Esempi di valori di intervallo numerico

L’intervallo numerico da 2 a 5, inclusi sia 2 che 5

2 To 5

L’intervallo numerico da 2 a 5, escluso 2 ma incluso 5

2 _To 5

Tutti i numeri minori di o uguali a 5

Is <= 5

Tutti i numeri minori di 5

Is < 5

Esempi di valori di intervallo di DateTime

#Jan 5, 1999# To #Dec 12, 2000#


Is >= #Jan 1, 2000#

Intervalli nelle formule

In SAP Crystal Reports sono disponibili ventisette funzioni che specificano gli intervalli di date. Ad esempio, la
funzione LastFullMonth specifica un intervallo di valori di data che include tutte le date dal primo all’ultimo giorno
del mese precedente. Quindi, se la data odierna è 15 settembre 1999, il valore LastFullMonth è uguale al valore
dell’intervallo CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#).

Gli intervalli sono spesso utilizzati con le istruzioni If o Select. Nell’esempio seguente vengono calcolati i voti in
lettere da assegnare agli studenti in base al punteggio riportato nei test. I punteggi maggiori di o uguali a 90
ricevono una "A", i punteggi compresi tra 80 e 90, escluso 90, ricevono una "B" e così via.

Select Case {Student.Test Scores}


Case Is >= 90
formula = "A"
Case 80 To_ 90
formula = "B"
Case 70 To_ 80
formula = "C"
Case 60 To_ 70
formula = "D"
Case Else
formula = "F"
End Select

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
780 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
L'esempio precedente utilizza l'istruzione Select descritta più dettagliatamente in Strutture di controllo (sintassi
Basic) [pagina 798]. È possibile verificare se un valore è compreso in un intervallo utilizzando l’operatore In. Ad
esempio:

formula = 5 In 2 To 10 'True
formula = 5 In 2 To_ 5 'False
formula = 5 In 2 To 5 'True

Le funzioni Maximum e Minimum possono essere utilizzate per trovare le estremità di un intervallo:

formula = Maximum (2 To 10) 'Returns 10

1.7.2.1.8 Tipi di dati matrice (sintassi Basic)

In SAP Crystal Reports le matrici sono rappresentate da elenchi ordinati di valori dello stesso tipo. Tali valori sono
noti come elementi della matrice. Gli elementi di una matrice possono essere valori semplici o intervalli. Per creare
una matrice è possibile utilizzare la funzione Array.

Le matrici sono più utili se associate alle variabili. L’uso delle variabili consente di modificare i singoli elementi di
una matrice e ridimensionare la matrice per inserirne altri. Questa possibilità espande sensibilmente le capacità
del linguaggio delle formule di eseguire calcoli complessi.

Ad esempio, è possibile accumulare i valori presenti nei campi di database in una variabile di matrice globale di
una formula di livello dettagliato, quindi utilizzare una formula in un piè di pagina di gruppo per eseguire un calcolo
basato su tali valori. In questo modo è possibile eseguire un’ampia gamma di operazioni di riepilogo
personalizzate.

Esempi

Una matrice di 3 valori numerici. Il primo elemento è 10, il secondo è 5 e il terzo è 20.

Array (10, 5, 20)

Una matrice di 7 valori di stringa:

Array ("Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat")

Una matrice di 2 valori di intervallo DateTime:

Array (#Jan 1, 1998# To #Jan 31, 1998#, _


#Feb 1, 1999# To #Feb 28, 1999#)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 781
È possibile estrarre singoli elementi da una matrice utilizzando le parentesi contenenti l’indice dell’elemento
desiderato. Questa operazione è chiamata indicizzazione della matrice:

Array (10, 5, 20) (2) ' = 5

Nota
Le matrici nella sintassi Basic sono indicizzate a partire da 1 (ciò significa che il primo elemento ha 1 come
indice), diversamente da Visual Basic in cui le matrici sono indicizzate da 0 per impostazione predefinita.
Tuttavia, in Visual Basic le matrici possono essere indicizzate da 1 utilizzando l'istruzione Option Base.

Per indicizzare le matrici è possibile utilizzare anche gli intervalli numerici. Il risultato è un’altra matrice. Ad
esempio:

Array (10, 5, 20) (2 To 3) ' = Array (5, 20)

1.7.2.1.9 Variabili (sintassi Basic)

Una variabile rappresenta un elemento di dati specifico o un valore e funziona da segnaposto per quel valore.
Quando incontra una variabile, la formula ricerca il valore della variabile e lo utilizza. A differenza del valore di una
costante che è fisso e invariabile, è possibile assegnare ripetutamente valori diversi a una variabile. Il valore viene
assegnato alla variabile che lo mantiene fino a quando non le viene assegnato un nuovo valore. A causa di questa
flessibilità, è necessario dichiarare le variabili prima di utilizzarle in modo che SAP Crystal Reports le riconosca e
capisca come l'utente intende utilizzarle.

In questa sezione sono descritti i componenti fondamentali delle variabili e viene illustrata la procedura di
creazione delle variabili e di assegnazione dei rispettivi valori.

Se si desidera eseguire un report sui clienti in base al prefisso, è possibile creare una variabile che estrae il
prefisso dal numero di fax dei clienti. Di seguito viene riportato un esempio di una variabile denominata areaCode:

Dim areaCode As String


areaCode = Left ({Customer.Fax}, 3)
Rem Si può utilizzare anche: areaCode = {Customer.Fax} (1 To 3)

La prima riga dell’esempio della variabile è la dichiarazione di variabile che assegna un nome e un tipo alla
variabile. Il campo di database {Cliente.Fax} è un campo stringa e la funzione Left estrae i primi 3 caratteri dal
relativo valore corrente. Alla variabile areaCode viene quindi assegnato questo valore.

1.7.2.1.9.1 Dichiarazione di variabili utilizzando Dim (sintassi


Basic)

Prima di utilizzare una variabile in una formula, è necessario dichiararla. Una variabile può contenere valori di un
certo tipo. I tipi consentiti sono i sette tipi semplici (numero, valuta, stringa, valore booleano, data, ora e
DateTime), i sei tipi di intervalli (intervallo numerico, intervallo in valuta, intervallo di stringhe, intervallo di date,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
782 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
intervallo di ore e intervallo di DateTime) e le variabili che contengono matrici dei tipi menzionati
precedentemente. Un totale di 26 tipi diversi.

Quando si dichiara una variabile, specificarne anche il nome. Una variabile non può avere lo stesso nome di una
funzione, di un operatore o di un’altra parola chiave valida per la sintassi Basic. Ad esempio, la variabile non può
essere denominata Sin, Mod o If in quanto Sin è una funzione predefinita, Mod è un operatore predefinito e If è una
parola chiave predefinita. Quando si digitano le formule nell'Editor delle formule, i nomi delle funzioni, degli
operatori e di altre parole chiave predefinite sono evidenziate in un colore diverso, pertanto, è semplice
controllare se i nomi delle variabili sono in conflitto.

Dopo aver dichiarato una variabile, è possibile utilizzarla nella formula. Ad esempio, è possibile assegnarle un
valore iniziale:

Dim x As Number 'Declare x to be a Number variable


x = 10 'Assign the value of 10 to x

È possibile dichiarare più di una variabile per istruzione separandone le dichiarazioni con le virgole:

Dim x As Number, y as String, z as DateTime Range


x = 10 : y = "hello"
z = #Jan 1, 1999# To #Jan 31, 1999#

Dichiarazione delle variabili senza specificarne immediatamente il tipo

In generale, non è necessario assegnare esplicitamente il tipo a una variabile quando viene dichiarata. In questo
caso, il tipo è determinato dalla prima assegnazione alla variabile, analogamente alla variabile speciale formula.
analogamente alla variabile speciale formula. In Visual Basic, invece, una variabile a cui non viene assegnato il tipo
al momento della dichiarazione, riceve automaticamente il tipo Variant. Ciò significa che è possibile scrivere
formule in uno stile simile a quello utilizzato con il tipo Variant in Visual Basic.

Dim p 'The type of p is not known yet


p = "bye" 'The type of p is now set to be String
Dim q 'The type of q is not known yet
q = Array ("hello", p) 'q is a String Array
'Error- p is a String variable and cannot hold a Number
p = 25
Dim r
'r is a Number variable, and holds the value 5
r = (10 + 5) / 3
'The types of a and c are not known yet
Dim a, b As Boolean, c
b = False
'The type of a is now set to Boolean
'and its value is False
a = b
'The type of c is now set to Number and its value is 17
c = 2 + 3 * 5

Esempi di dichiarazione e inizializzazione di variabili di intervallo

Dim gradeA, quarter


'The type of gradeA is set to Number Range

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 783
gradeA = 90 To 100
'The type of quarter is set to Date Range
quarter = CDate (1999, 10, 1) To CDate (1999, 12, 31)

1.7.2.1.9.2 Portata delle variabili (sintassi Basic)

La portata delle variabili è utilizzata per definire il grado di disponibilità di una formula rispetto ad altre formule.
Esistono tre livelli di portata in SAP Crystal Reports:

● Local
● Global
● Shared

Ogni variabile ha una portata specificata al momento della dichiarazione della variabile.

1.7.2.1.9.2.1 Variabili locali (sintassi Basic)

Le variabili con portata locale, note anche come variabili locali, vengono dichiarate utilizzando la parola chiave Dim
o Local. Le espressioni seguenti sono equivalenti.

Local x As Number
Dim y As Number

Le variabili locali sono limitate a una singola formula e a una singola valutazione della formula. Ciò significa che
non è possibile accedere al valore di una variabile locale in una formula da un’altra formula.

Esempio

Rem Formula A
Local x as Number
x = 10
formula = x
Rem Formula B
EvaluateAfter ({@Formula A})
Local x as Number
formula = x + 1

La chiamata di funzione EvaluateAfter ({@Formula A}) assicura che la valutazione della formula B avvenga dopo la
valutazione della formula A. La formula A restituisce un valore pari a 10, mentre la formula B un valore pari a 1. La
formula B non ha accesso a x della formula A, pertanto non può utilizzare il valore 10 e aggiungere 1 ma deve
utilizzare il valore predefinito per la variabile locale x non inizializzata, presente nella formula B, ovvero 0, e
aggiungervi 1 per ottenere 1.

È anche possibile creare variabili locali con lo stesso nome ma tipo diverso in formule distinte. Ad esempio, le
dichiarazioni dei tipi nelle formule A e B non entrano in conflitto con:

Rem Formula C
Local x as String

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
784 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
x = "hello"
formula = x

La portata locale risulta la più efficiente. Inoltre, le variabili locali non interferiscono reciprocamente nelle diverse
formule. Per questi motivi, è consigliabile dichiarare le variabili locali ogni volta è possibile.

1.7.2.1.9.2.2 Variabili globali (sintassi Basic)

Le variabili globali utilizzano lo stesso blocco di memoria per memorizzare un valore nel report principale. Questo
valore è disponibile quindi per tutte le formule che dichiarano la variabile, con l’eccezione di quelle presenti nei
sottoreport. L’esempio riportato di seguito mostra la procedura di dichiarazione di una variabile globale.

Global y As String

Le variabili globali condividono i valori nel report principale; pertanto, non è possibile dichiarare una variabile
globale di un tipo in una formula e assegnare un tipo diverso alla variabile globale dello stesso nome in un’altra
formula.

Utilizzo delle variabili globali

Le variabili globali sono spesso utilizzate per eseguire calcoli complessi nei quali i risultati di una formula
dipendono dal raggruppamento e dal layout di pagina dell'effettivo report stampato. Ciò avviene creando diverse
formule, inserendole in sezioni diverse del report e consentendone l’interazione attraverso variabili globali.

Esempio

Rem Formula C
Global x as Number
x = 10
formula = x
Rem Formula D
WhileReadingRecords
Global x as Number
x = x + 1
formula = x

Se la formula C è inserita nell’intestazione del report e la formula D è inserita nella sezione dettagli, la formula C
verrà valutata prima della formula D. La formula C verrà valutata una sola volta mentre la formula D verrà valutata
per ogni record che compare nella sezione dettagli. La formula C restituisce 10. Per il primo record dettagliato, la
formula D restituisce 11. Ciò si verifica in quanto è stato mantenuto il valore 10 di x impostato dalla formula C. La
formula D aggiunge 1 a questo valore, impostando x su 11 e restituendo 11. Per il secondo record dettagliato la
formula D restituisce 12, aggiungendo 1 al valore 11 di x mantenuto precedentemente. Questo processo continua
per gli altri record dettagliati.

La chiamata alla funzione WhileReadingRecords determina la rivalutazione della formula D, in quanto ogni record
del report viene letto da SAP Crystal Reports. La formula non contiene campi di database; pertanto, il programma
valuta la formula una volta per tutte prima di eseguire la lettura dei record del database. In questo caso, la formula
restituisce sempre il valore 11 al posto di 11, 12, 13, ... durante l’elaborazione dei record successivi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 785
Se l'espressione x = x + 1 è sostituita da x = x + {Ordini Dettagli.Quantità}, si crea l'effetto di un totale parziale
basato su {Ordini Dettagli.Quantità}, sebbene a partire da 10 e non da 0 a causa della formula C. In questo caso, è
possibile omettere la chiamata di funzione WhileReadingRecords che viene eseguita automaticamente, in quanto
la formula contiene un campo di database.

1.7.2.1.9.2.3 Variabili condivise (sintassi Basic)

Le variabili condivise utilizzano lo stesso blocco di memoria per memorizzare il valore di una variabile nel report
principale e nei sottoreport. Pertanto, le variabili condivise hanno una validità ancora più generale delle variabili
globali. Per utilizzare una variabile condivisa, è necessario dichiararla in una formula nel report principale, come
descritto nell’esempio riportato di seguito.

Shared x As Number
x = 1000

e in una formula nel sottoreport come nell’esempio seguente:

Shared x as Number

Per utilizzare le variabili condivise, è necessario dichiarare la variabile e assegnarle un valore prima di trasferirla
dal report principale al sottoreport.

1.7.2.1.9.3 Dichiarazione delle variabili di matrice (sintassi


Basic)

Sono disponibili sette metodi alternativi per dichiarare le variabili di matrice. Il primo metodo consiste
nell’utilizzare parentesi vuote e specificare esplicitamente il tipo assegnato alla matrice:

'Dichiara x come variabile globale del tipo Matrice numerica.


Global x () As Number
'Inizializza x.
x = Array (10, 20, 30)
'Dichiara y come variabile Condivisa di tipo matrice di intervallo di stringhe.
Shared y () As String Range
'Inizializza y.
y = Array ("A" To "C", "H" To "J")

Il secondo metodo consiste nel dichiarare la variabile senza specificare che si tratta di una matrice e senza
definirne il tipo, quindi attendere la prima assegnazione alla variabile per specificarne completamente il tipo:

'Dichiara y una variabile locale ma non specificarne il tipo.


Dim y
'Il tipo di y è ora una Matrice di stringhe
y = Array ("Sun", "Mon", "Tue", "Wed", "Th", _
"Fri", "Sat")

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
786 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Il terzo metodo consiste nel dichiarare la variabile una matrice senza specificarne completamente il tipo fino alla
prima assegnazione. Assumendo la precedente dichiarazione di y:

'Dichiara z una variabile locale e una matrice


Local z()
'z è impostata su Array ("Lun", "Mar") ed è una matrice di stringhe
z = y(2 to 3)

Il quarto metodo consiste nello specificare esplicitamente la dimensione della matrice durante la dichiarazione. Se
si utilizza questa procedura, la matrice viene creata automaticamente e i valori predefiniti sono utilizzati per
compilarla. Ad esempio, nel caso delle matrici numeriche, ogni elemento è inizializzato con 0 e nel caso delle
matrici di stringhe ogni elemento è inizializzato con la stringa vuota "". Il tipo di dichiarazione crea effettivamente
la matrice, pertanto, è necessario specificare il tipo con la clausola As in modo che SAP Crystal Reports riservi lo
spazio di memoria necessario.

Dim a(2) As String


a(1) = "good"
a(2) = "bye"
'L'operatore & può essere utilizzato per concatenere le stringhe, la formula
restituisce la stringa "ciao".
formula = a(1) & a(2)

Assegnazione di valori agli elementi di una matrice

È possibile assegnare valori agli elementi di una matrice e utilizzare tali valori per altri tipi di calcolo.

Global x() As String


x = Array ("hello", "bye", "again")
' x == Array ("hello", "once", "again").
x (2) = "once"
'L'istruzione di seguito provoca un errore se non viene commentata poiché le
dimensioni della matrice sono pari a 3.
'x (4) = "zap"
'La formula restituisce la stringa "CIAO"
formula = UCase (x (1))

Le parole chiave Redim e Redim Preserve possono essere utilizzate per ridimensionare una matrice se si desidera
aggiungervi ulteriori informazioni. La parola Redim cancella il contenuto precedente della matrice prima di
ridimensionarla, mentre Redim Preserve mantiene il contenuto precedente.

Dim x () As Number
Redim x (2) ' x = Array (0, 0)
x (2) = 20 ' x = Array (0, 20)
Redim x (3) ' x = Array (0, 0, 0)
x (3) = 30 ' x = Array (0, 0, 30)
Redim Preserve x (4) ' x = Array (0, 0, 30, 0)
formula = "finished"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 787
Matrici e loop For/Next

L'esempio riportato di seguito crea e quindi utilizza la matrice Array (10, 20, 30, ..., 100) utilizzando un
loop For/Next. La formula seguente restituisce il numero 20.

Dim b (10) As Number


Dim i
For i = 1 To 10
b(i) = 10 * i
Next i
formula = b(2)

Diverse variabili possono essere dichiarate in un'unica istruzione separando le rispettive dichiarazioni con le
virgole.

Informazioni correlate

Cicli For/Next (sintassi Basic) [pagina 802]

1.7.2.1.9.4 Valori predefiniti per i tipi di dati semplici


(sintassi Basic)

Una variabile non inizializzata presenta come tipo il valore predefinito corrispondente. In generale, una procedura
di programmazione ottimale non prevede l’uso dei tipi predefiniti. Ad esempio, è possibile inizializzare tutte le
variabili locali nella formula, inizializzare tutte le variabili globali in una formula inserita nell’intestazione del report
e inizializzare tutte le variabili condivise in una formula inserita nell’intestazione del report principale.

Quando una matrice è ridimensionata utilizzando la parola chiave Redim, vengono assegnati alle voci i tipi
predefiniti.

Valori predefiniti

● Numero

● Valuta

CCur (0)

● Stringa

"" 'La stringa vuota

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
788 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Data

CDate (0, 0, 0) 'Il valore nullo per la data.

● Ora
Il valore nullo per l’ora. Valore contenuto da una variabile Ora non inizializzata.
● DateTime
Il valore nullo DateTime. Valore contenuto da una variabile DateTime non inizializzata.

Nota
Non è consigliabile basare le formule sui valori di variabili di matrice o di intervallo non inizializzate.

Informazioni correlate

Tipi di dati semplici (sintassi Basic) [pagina 777]

1.7.2.1.9.5 Conversioni automatiche del tipo (sintassi Basic)

In generale, in SAP Crystal Reports i valori di un tipo non possono essere utilizzati laddove sono previsti valori di
un altro tipo senza fornire esplicitamente una funzione di conversione del tipo. Ad esempio:

Dim postalCode as String


'Errore- assegnazione di un valore numerico a una variabile stringa
postalCode = 10025
'OK- utilizza la funzione di conversione del tipo CStr per creare "10025".
postalCode = CStr (10025, 0)

Tuttavia, alcune conversioni vengono eseguite automaticamente:

● da un numero a una valuta


● da Date a Date/Time
● dal tipo semplice al valore di intervallo dello stesso tipo

Ad esempio, le seguenti assegnazioni sono corrette:

Dim cost As Currency


'Uguale a: cost = CCur (10)
cost = 10
Dim orderDate As DateTime
'Uguale a: orderDate = CDateTime (1999, 9, 23, 0, 0, 0)
orderDate = CDate (1999, 9, 23)
Dim aRange As Number Range
'Uguale a: aRange = 20 To 20
aRange = 20
Dim aRangeArray () As Number Range
'Uguale a: aRangeArray = Array (10 To 10, 20 To 25, 2 To 2)
aRangeArray = Array (10, 20 To 25, 2)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 789
Nota
Non sono consentite le conversioni inverse. Ad esempio:

Dim num As Number


num = 5 + CCur (10) 'Questo genererà un errore.
' Convert to Number type using the CDbl function.
num = CDbl (5 + CCur (10))

Il valore 5 è convertito in CCur (5) e aggiunto a CCur (10) per ottenere CCur (15). Tuttavia, il valore di importo in
valuta non può essere assegnato automaticamente alla variabile numerica num, in quanto le conversioni
automatiche dal tipo Valuta al tipo Numero non sono consentite. Analogamente, è possibile assegnare alle
funzioni che accettano un argomento Valuta un argomento Numero che verrà convertito in una valuta; al
contrario, è impossibile assegnare alle funzioni che accettano un argomento Numero un argomento Valuta senza
convertire prima esplicitamente la valuta in un numero utilizzando la funzione CDbl.

1.7.2.1.10 Funzioni (sintassi Basic)

Le funzioni sono procedure o subroutine incorporate utilizzate per eseguire valutazioni e calcoli o per trasformare
dati. Quando si specifica una funzione, il programma esegue una serie di operazioni incorporate nella funzione,
evitando così all’utente di dover specificare ogni singola operazione.

1.7.2.1.10.1 Panoramica sulle funzioni (sintassi Basic)

Quando si utilizza una funzione in una formula, digitare il nome della funzione e fornire gli argomenti richiesti. Ad
esempio, la funzione Len richiede un argomento stringa di cui calcola la lunghezza. La formula seguente
restituisce il numero 5.

Dim x As String
x = "hello"
formula = Len (x)

Se vengono forniti argomenti non validi per la funzione, viene generato un errore. Ad esempio, chiamare Len (3)
genera un errore in quanto Len non accetta un argomento numero.

In alcuni casi, le funzioni possono accettare numeri diversi di argomenti o tipi di argomento. Ad esempio, la
funzione CDate può accettare un singolo argomento stringa per formare un valore data oppure 3 valori numerici
che contengono rispettivamente l’anno, il mese e il giorno con cui formare un valore data. Vedere Data, Ora e
Data/ora (sintassi Basic) [pagina 778].

Esempio con la funzione Mid

Dim x as String
x = "hello"
'Inizia alla posizione 2, vai alla fine della stringa
formula = Mid (x, 2) 'la formula è ora "iao"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
790 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
'Start at position 2, extract 1 character
formula = Mid (x, 2, 1) 'la formula è ora "i"

Le classi di funzioni sono: aritmetiche, di riepilogo, finanziarie, di stringa, di data/ora, di intervallo di date, di
matrice, di conversione del tipo, dei collegamenti delle applicazioni, del momento della valutazione, dello stato di
stampa, delle propr Sono disponibili anche alcune funzioni specifiche delle formule di formattazione condizionale.

Funzioni simili alle funzioni Visual Basic

I gruppi di funzioni aritmetiche, finanziarie, di stringa, di data/ora, di conversione del tipo e dei collegamenti delle
applicazioni consistono principalmente in funzioni note agli utenti di Visual Basic. La maggior parte delle funzioni è
stata progettata per eseguire le stesse operazioni delle funzioni di Visual Basic che portano lo stesso nome.

● Alcune funzioni consentono un maggiore overload rispetto a Visual Basic.


La funzione CDate supporta l’overload di Visual Basic per la creazione di una valore data da un valore stringa,
ad esempio CDate ("Sept 18, 1999") ma anche l’overload di creazione di un valore data fornendo l’anno, il
mese e il giorno come argomenti numero, ad esempio CDate (1999, 9, 18). Gli overload sono indicati nella
struttura Funzioni.
● Alcune funzioni supportate dalla sintassi Basic non sono elencate nella struttura Funzioni corrispondente. Ciò
dipende dal fatto che sono equivalenti alle funzioni della sintassi Basic già elencate nella struttura.
Ad esempio, la funzione Length, che corrisponde alla funzione tradizionale di Crystal per trovare la lunghezza
di una stringa, non appare nella struttura delle funzioni della sintassi Basic perché il funzionamento è analogo
a quello della funzione Len.

1.7.2.1.10.2 Funzioni di riepilogo (sintassi Basic e Crystal)

Il gruppo delle funzioni di riepilogo fornisce le funzioni per la creazione di campi di riepilogo, ad esempio:

Sum({Orders.Order Amount}, {Orders.Ship Via})

I campi di riepilogo sono creati, di solito, utilizzando le finestre di dialogo Inserisci Riepilogo o Inserisci Totale
Complessivo. Oppure è possibile creare un campo di riepilogo da utilizzare esclusivamente in una formula
specifica inserendo gli argomenti in una delle funzioni della sezione Funzioni di riepilogo. Tuttavia, i gruppi del
report a cui si riferisce il campo di riepilogo devono esistere già nel report.

1.7.2.1.10.3 Intervalli di date (sintassi Basic e Crystal)

È opportuno aggiungere che gli intervalli di date generati da queste funzioni dipendono dalla data corrente. Ad
esempio, se la data corrente è 18.09.00, LastFullMonth è il valore dell’intervallo di date:

CDate(#Aug 1, 2000#) To CDate(#Aug 31, 2000#)

Questa funzionalità è utile nella maggior parte dei casi; tuttavia, se si desidera determinare un intervallo di date in
base a un campo del database, ad esempio {Ordini.Data ordine}, è possibile utilizzare le funzioni Date/Time.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 791
Esempio di sintassi Basic

Dim d As Date
d = CDate ({Orders.Order Date})
Dim dr As Date Range
dr = DateSerial (Year(d), Month(d) - 1, 1) To _
DateSerial (Year(d), Month(d), 1 - 1)
'A questo punto dr è il valore DateRange contenente l'ultimo mese completo prima di
{Orders.Order Date}

Esempio di sintassi Crystal

Local DateVar d := CDate ({Orders.Order Date});


Local DateVar Range dr;
dr := DateSerial (Year(d), Month(d) - 1, 1) To
DateSerial (Year(d), Month(d), 1 - 1);
//A questo punto dr è il valore DateRange contenente l'ultimo mese completo prima
di {Orders.Order Date}

La funzione DateSerial agevola questa operazione in quanto consente di ignorare i casi speciali e impedisce la
creazione di date non valide. Ad esempio, DateSerial (1999, 1 - 1, 1) è uguale a 1° dicembre 1998. Si noti che
nell’esempio precedente {Ordini.Data ordine} è in effetti un campo DataOra, pertanto la funzione CDate viene
utilizzata per convertirlo in una data troncando la parte relativa all’ora.

Informazioni correlate

Tipi di dati di intervallo (sintassi Basic) [pagina 779]

1.7.2.1.10.4 Funzioni di matrice (sintassi Basic e Crystal)

Le funzioni di matrice calcolano i riepiloghi degli elementi di una matrice. Ad esempio, la funzione Sum applicata a
una matrice restituisce la somma degli elementi della matrice.

Esempio di sintassi Basic

La formula seguente restituisce 100:

formula = Sum (Array (10, 20, 30, 40))

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
792 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Esempio di sintassi Crystal

La formula seguente restituisce 100:

Sum ([10, 20, 30, 40])

Informazioni correlate

Tipi di dati matrice (sintassi Basic) [pagina 781]

1.7.2.1.10.5 Funzioni del periodo di valutazione (sintassi Basic


e Crystal)

Si tratta di funzioni specifiche dei report: BeforeReadingRecords, WhileReadingRecords,


WhilePrintingRecords e EvaluateAfter. È possibile utilizzare tali funzioni per stabilire il momento in cui una
formula deve essere valutata da SAP Crystal Reports.

Tramite questa funzione è possibile stabilire quando valutare la formula: prima di recuperare i record dal
database, durante la lettura dei record del database ma prima del raggruppamento, dell’ordinamento e del
riepilogo oppure durante la stampa dei record, quando i record vengono raggruppati, ordinati e riepilogati. In
generale, SAP Crystal Reports imposta il momento appropriato per la valutazione della formula in base alla
quantità di informazioni richieste. Ad esempio, se una formula utilizza un campo di database, non potrà essere
valutata prima della lettura dei record del database. Tuttavia, per ottenere il risultato desiderato, può essere
necessario imporre un momento di valutazione successivo a quello normale. Per gli esempi, vedere Variabili
globali (sintassi Basic) [pagina 785] o Variabili globali (sintassi Crystal) [pagina 820].

Di solito, il valore restituito di una funzione continua a essere utilizzato all’interno di una formula. Le funzioni del
momento della valutazione, tuttavia, sono chiamate per modificare il comportamento interno di SAP Crystal
Reports e il valore restituito non è utilizzato. Tali funzioni possono essere richiamate inserendo il relativo nome in
una distinta istruzione, preceduta facoltativamente dalla parola chiave Chiamata.

WhilePrintingRecords
Call WhilePrintingRecords

1.7.2.1.10.6 Funzioni dello stato di stampa (sintassi Basic e


Crystal)

Queste funzioni sono specifiche dello stato di un report in anteprima.

Ad esempio, la notazione {Orders.Order Date} fa riferimento al valore del campo nel record corrente, mentre
PreviousValue ({Orders.Order Date}) si riferisce al valore del record immediatamente precedente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 793
NextValue ({Orders.Order Date}) al valore nel record successivo. IsNull ({Orders.Order Date})
verifica se il campo contiene un valore nullo.

Altri esempi sono le funzioni PageNumber e TotalPageCount. che possono essere utilizzate per accedere alle
informazioni di impaginazione relative al report.

1.7.2.1.10.7 Funzioni di proprietà del documento (sintassi


Basic e Crystal)

Le seguenti funzioni restituiscono i valori degli attributi relativi a un documento: Ad esempio, le funzioni
PrintDate e ReportTitle.

1.7.2.1.10.8 Funzioni aggiuntive (sintassi Basic e Crystal)

Queste funzioni sono disponibili nelle User Function Libraries o UFL. Una UFL è una Dynamic Link Library (libreria
di collegamento dinamica) distinta o un Automation server creato dall'utente e può essere utilizzata da SAP
Crystal Reports per aggiungere funzioni personalizzate al linguaggio delle formule. La scrittura di una UFL è una
procedura più complessa rispetto alla scrittura di una formula nella sintassi Basic o Crystal.

Nota
L'uso delle UFL riduce la trasferibilità dei report in quanto ne diventano parte integrante.

1.7.2.1.10.9 Funzioni di formattazione condizionale (sintassi


Basic)

Quando si scrive una formula di formattazione condizionale, è possibile utilizzare le funzioni aggiuntive
visualizzate nella parte superiore della struttura Funzioni.

Si desidera formattare il campo {Clienti.Vendite dell'anno precedente} in modo che le vendite d’importo superiore
a 100.000 $ siano stampate in verde, le vendite d’importo inferiore a 15.000 $ siano stampate in rosso e il resto
del documento sia stampato in nero.

If {Customer.Last Year's Sales} > 100000 Then


formula = crGreen
ElseIf {Customer.Last Year's Sales} < 15000 Then
formula = crRed
Else
formula = crBlack
End If

La funzione utilizzata nell'esempio è una formattazione del colore dei caratteri, pertanto, l'elenco delle costanti di
colore appare nella struttura Funzioni. L'esempio precedente utilizza tre costanti: crGreen, crRed e crBlack Al
posto delle costanti, è possibile utilizzare l’effettivo valore numerico corrispondente. Ad esempio, crRed equivale

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
794 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
a 255 e crGreen equivale a 32768. Tuttavia, la formula risulta più comprensibile utilizzando le costanti di colore.
Tutte le funzioni che utilizzano costanti nella sintassi Basic richiedono il prefisso "cr".

Nota
Alcuni attributi di formattazione non utilizzano le funzioni con costanti. Ad esempio, non si desidera stampare i
valori del campo {Cliente.Vendite anno precedente} se le vendite hanno un importo inferiore a 50.000.

If {Customer.Last Year's Sales} < 50000 Then


formula = True ' Ometti il valore.
Else
formula = False ' Non omettere il valore.
End If

O più semplicemente:

formula = {Customer.Last Year's Sales} < 50000

Se l’importo delle vendite dell’ultimo anno è inferiore a 50.000

{Customer.Last Year's Sales} < 50000

è vera e la formula restituisce il valore Vero. Al contrario, se l’importo delle vendite dell’ultimo anno è maggiore o
uguale a 50.000

{Customer.Last Year's Sales} < 50000

è falsa e la formula restituisce il valore Falso.

1.7.2.1.10.10 Funzioni di formattazione condizionale di uso


generale (sintassi Basic)
Le funzioni di formattazione condizionale di uso generale sono tre:

● CurrentFieldValue
● DefaultAttribute
● GridRowColumnValue

Queste funzioni vengono visualizzate nella parte superiore della struttura Funzioni, se disponibili. Vedere Finestra
di dialogo Editor delle formule [pagina 715].

La funzione DefaultAttribute può essere utilizzata per qualsiasi formula di formattazione, la funzione
CurrentFieldValue per qualsiasi formula di formattazione dei valori presenti nei campi e la funzione
GridRowColumnValue per qualsiasi formula di formattazione di valori presenti in un campo su una griglia a
campi incrociati o una griglia OLAP.

In particolare, la funzione CurrentFieldValue consente di formattare in modo condizionale le celle di una griglia
a campi incrociati o OLAP in base ai rispettivi valori, mentre la funzione GridRowColumnValue consente di
formattare in modo condizionale le celle di una griglia a campi incrociati o OLAP in base ai valori delle intestazioni

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 795
di riga o di colonna. In questo caso le due funzioni sono essenziali, in quanto nel linguaggio delle formule non vi è
altro modo di fare riferimento ai valori inseriti in questi campi.

Ad esempio, se si desidera omettere le celle dei campi incrociati se i valori sono inferiori a 50.000:

formula = CurrentFieldValue < 50000

1.7.2.1.11 Operatori (sintassi Basic)

Gli operatori sono simboli e parole speciali che descrivono un'operazione o un'azione che interessa due o più
valori. Gli operatori di una formula vengono letti e vengono eseguite le azioni specificate.

1.7.2.1.11.1 Operatori aritmetici (sintassi Basic)

Gli operatori aritmetici sono utilizzati per combinare numeri, variabili numeriche, campi numerici e funzioni
numeriche e ottenere un altro numero.

Gli operatori aritmetici sono l’addizione (+), la sottrazione (-), la moltiplicazione (*), la divisione (/), la divisione dei
numeri interi (\), il modulo (Mod), la negazione (-) e l’elevamento a potenza (^).

'Stock prioritario in sospeso come percentuale dello stock comune


formula = ({Financials.Preferred Stock} / _
{Financials.Common Stock}) * 100
formula = 7 + 2 * 3 - 2 + Sqr(6 + 3) * Len("up")
'La formula restituisce 17.

Ordine di precedenza

In generale, il programma valuta le espressioni nell’ordine seguente:

● da sinistra a destra
● seguendo le regole di precedenza dell'aritmetica di base.

Gli operatori aritmetici di SAP Crystal Reports hanno lo stesso ordine di precedenza degli operatori corrispondenti
in Visual Basic. Gli operatori sono elencati di seguito dal primo all’ultimo in base all’ordine di precedenza:

● Elevamento a potenza (^)


● Negazione (-)
● Moltiplicazione e divisione (*, /)
● Divisione dei numeri interi (\)
● Modulo (Mod)
● Addizione e sottrazione (+, -)

Prima vengono eseguite le moltiplicazioni e le divisioni, da sinistra a destra, quindi le addizioni e le sottrazioni. Ad
esempio, 5 + 10 * 3 = 5 + 30 = 35.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
796 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
È possibile modificare quest’ordine di precedenza utilizzando le parentesi. Ad esempio, (5 + 10) * 3 = 15 * 3 = 45.
Se non si è certi dell’ordine di precedenza, è consigliabile definire l’ordine desiderato mediante le parentesi.

1.7.2.1.11.2 Operatori di confronto (sintassi Basic)

Gli operatori di confronto sono utilizzati, di solito, per confrontare gli operandi rispetto a una condizione in una
struttura di controllo, ad esempio un'istruzione If.

Gli operatori di confronto sono uguale (=), diverso da (<>), minore di (<), minore di o uguale (<=), maggiore di (>)
e maggiore di o uguale (>=).

Il gruppo di operatori di confronto ha un ordine di precedenza inferiore rispetto agli operatori aritmetici. Pertanto,
espressioni come 2 + 3 < 2 * 9 sono uguali a (2 + 3) < (2*9).

1.7.2.1.11.3 Operatori booleani (sintassi Basic)

Tali operatori sono utilizzati di solito con gli operatori di confronto per creare le condizioni per le strutture di
controllo.

Gli operatori booleani sono elencati di seguito in ordine di precedenza decrescente: Not, And, Or, Xor, Eqv e Imp.

Il gruppo di operatori booleani ha un ordine di precedenza inferiore rispetto agli operatori di confronto. Ad
esempio, l'espressione 2 < 3 And 4 >= -1 è uguale a (2 < 3) And (4 >= -1).

1.7.2.1.11.4 Campi e valori Null (sintassi Basic)

In generale, quando SAP Crystal Reports rileva un campo con valore nullo in una formula, arresta
immediatamente la valutazione della formula e non genera alcun valore. Se si desidera includere nella formula i
valori dei campi NULL, è necessario specificarne esplicitamente l'inclusione utilizzando una delle funzioni speciali,
sviluppate per la gestione dei campi NULL: IsNull, PreviousIsNull o NextIsNull.

Per quanto riguarda gli operatori, quando SAP Crystal Reports valuta la condizione:

IsNull({Product.Color}) Or _
InStr({Product.Color}, " ") = 0

valuta in primo luogo l'espressione IsNull ({Prodotto.Colore)) e, una volta determinato che il valore è True,
considera l'intera condizione come True e non deve verificare l'espressione

InStr({Product.Color}, " ") = 0

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 797
In altre parole, SAP Crystal Reports non valuta ulteriormente un'espressione booleana quando può dedurre i
risultati dall'intera espressione. Nell’esempio seguente, la formula impedisce i tentativi di divisione per zero nei
casi in cui il denominatore è 0:

Dim num As Number, denom As Number


...
If denom <> 0 And num / denom > 5 Then
...

Nota
Visual Basic non supporta questa procedura, in quanto prevede la valutazione di tutte le parti di un'espressione
booleana, anche quando non è necessario.

Il campo {Prodotto.Colore} contiene sia i colori fondamentali, ad esempio il "rosso" e il "nero", sia colori di fantasia
composti da due parole, ad esempio "grigio ferro" e "verde acqua". Supporre di scrivere una formula che inserisca
la parola "fondamentale" per i colori fondamentali e la parola "fantasia" per gli altri colori.

If InStr({Product.Color}, " ") = 0 Then


formula = "basic"
Else
formula = "fancy"
End If

La chiamata di funzione InStr ricerca uno spazio nella stringa {Prodotto.Colore}. Se viene trovato uno spazio, ne
restituisce la posizione, altrimenti restituisce il valore 0. Poiché i colori fondamentali sono composti da una sola
parola senza spazi, la funzione InStr restituirà il valore 0.

Per alcuni prodotti, ad esempio il lucchetto a catena Guardian, non è stato registrato un valore colore; pertanto, il
campo {Prodotto.Colore} contiene un valore null nel database in corrispondenza di quel record. Accanto al record
Lucchetto a catena Guardian non viene stampata quindi alcuna dicitura.

Di seguito viene indicato come correggere l’esempio precedente utilizzando la funzione IsNull:

If IsNull({Product.Color}) Or _
InStr({Product.Color}, " ") = 0 Then
formula = "basic"
Else
formula = "fancy"
End If

1.7.2.1.12 Strutture di controllo (sintassi Basic)

Le formule senza strutture di controllo eseguono ogni istruzione della formula una sola volta, al momento della
valutazione. al momento della valutazione. Le istruzioni vengono eseguite in ordine di sequenza, dalla prima
istruzione della formula all’ultima. Le strutture di controllo consentono di modificare questa rigida sequenza. A
seconda della struttura di controllo prescelta, è possibile ignorare alcune istruzioni o valutarne altre
ripetutamente, se sussistono determinate condizioni. Le strutture di controllo rappresentano lo strumento
principale di espressione della logica aziendale e le formule tipiche dei report ne fanno un uso considerevole.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
798 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
La sintassi Basic supporta la maggior parte delle strutture di controllo principali di Visual Basic e con la stessa
sintassi. Uno dei vantaggi del linguaggio Basic consiste nella semplicità di lettura delle notazioni in blocco per le
strutture di controllo; tale caratteristica agevola la scrittura e il debug delle formule complesse.

1.7.2.1.12.1 Istruzioni If (sintassi Basic)

L'istruzione If è una delle strutture di controllo più utili. Consente di valutare una sequenza di istruzioni se una
condizione è vera e di valutare una sequenza diversa di istruzioni nel caso contrario.

Nota
Durante la formattazione con formule condizionali è necessario includere sempre la parola chiave Else. In caso
contrario i valori che non soddisfano la condizione If potrebbero non mantenere il formato originale. Per evitare
che ciò si verifichi, utilizzare la funzione (If...Else formula = DefaultAttribute).

Esempio

Una società decide di versare un bonus del 4 % al personale, con l’eccezione del personale addetto al reparto
Vendite che riceverà un bonus del 6 per cento. La formula riportata di seguito utilizza un’istruzione If e realizza
quanto segue:

If {Employee.Dept} = "Sales" Then


formula = {Employee.Salary} * 0.06
Else
formula = {Employee.Salary} * 0.04
End If

In questo esempio, se la condizione {Dipendente.Dip} = "Vendite" dà come risultato true (vero), l'espressione

formula = {Employee.Salary} * 0.06

verrà elaborata. In caso contrario, verrà elaborata l’istruzione che segue la clausola Else,

formula = {Employee.Salary} * 0.04

viene elaborata.

Si supponga che un’altra società voglia offrire al personale un bonus del 4%, ma con un importo minimo di 1.000
dollari. Osservare che la clausola facoltativa Else non è inclusa, è opzionale e non necessaria in questo caso.

formula = {Employee.Salary} * 0.04


If formula < 1000 Then
formula = 1000
End If

Ora si supponga che la società precedente desideri impostare anche un bonus d’importo massimo di 5.000
dollari. È necessario utilizzare una clausola ElseIf. ElseIf è una parola sola. L'esempio seguente presenta una sola
clausola ElseIf, ma è possibile aggiungerne un numero indefinito,

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 799
Nota
Per ogni istruzione If, è prevista una sola clausola Else.

La clausola Else viene eseguita se nessuna delle condizioni If o ElseIf è vera.

formula = {Employee.Salary} * 0.04


If formula < 1000 Then
formula = 1000
ElseIf formula > 5000 Then
formula = 5000
End If

Supporre che una società desideri calcolare una stima dell’importo delle tasse che un dipendente è tenuto a
versare inserendo messaggi appropriati. Il reddito inferiore a 8.000 $ non è tassato, il reddito compreso tra 8.000
e 20.000 $ è tassato al 20%, il reddito compreso tra 20.000 e 35.000 $ è tassato al 29%, infine, il reddito
superiore a 35.000 $ è tassato al 40%.

Dim tax As Currency, income As Currency


income = {Employee.Salary}
Dim message As String
If income < 8000 Then
tax = 0
message = "no"
ElseIf income >= 8000 And income < 20000 Then
message = "basso"
tax = (income - 8000)*0.20
ElseIf income >= 20000 And income < 35000 Then
message = "medio"
tax = (20000 - 8000)*0.20 + (income - 20000)*0.29
Else
message = "alto"
tax = (20000 - 8000)*0.20 + (35000 - 20000)*0.29 + _
(income - 35000)*0.40
End If
Dim taxStr As String
Rem Usa 2 posizioni decimali e la virgola come separatore della migliaia.
taxStr = CStr (tax, 2, ",")
formula = "Sei compreso nello " & message & _" scaglione di imposta. "Il prelievo
fiscale stimato è " & taxStr & "."

Osservare l’uso delle variabili per semplificare la logica del calcolo. Inoltre, si può notare che vengono eseguite due
istruzioni quando una delle condizioni viene soddisfatta; la prima assegna la variabile delle tasse mentre la
seconda assegna la variabile del messaggio. È spesso utile l’esecuzione di più istruzioni come risultato di una
condizione.

1.7.2.1.12.1.1 Istruzioni If a linea singola e a linea multipla


(sintassi Basic)

Esistono due tipi di istruzioni If, l’istruzione If linea singola e l’istruzione If linea multipla. Iniziare una nuova riga
dopo la prima clausola Then determina un'istruzione If a linea multipla. In caso contrario, l’istruzione If è a linea
singola. L'istruzione If linea multipla include sempre una clausola End If a differenza dell'istruzione If linea singola.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
800 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Grazie ai caratteri di continuazione riga, non è necessario che le istruzioni If linea singola occupino fisicamente
una sola riga. In generale, è preferibile utilizzare istruzioni If linea multipla che presentano una struttura più
comprensibile. Tuttavia, l’istruzione If linea singola viene utilizzata per alcune situazioni meno complesse.

If {Employee.Dept} = "Sales" Then _


formula = {Employee.Salary} * 0.06 _
Else _
formula = {Employee.Salary} * 0.04

L’esempio seguente mostra diverse forme di istruzione If linea singola, corrette dal punto di vista sintattico:

Dim per As Number, extra As Boolean


per = 2 : extra = False
'Un esempio senza clausola Else
If {Employee.Dept} = "Sales" Then per = 10
'È possibile includere più di 1 istruzione nelle parti Then o Else separandole con
i due punti.
If {Employee.Dept} = "R&D" Then _
per = 5 : extra = True _
Else _
per = 3

1.7.2.1.12.2 Istruzioni Select (sintassi Basic)

Le istruzioni Select sono simili alle istruzioni If. Tuttavia, possono essere utilizzate per scrivere formule più chiare
e meno ripetitive. Ad esempio, per valutare il campo {Cliente.Fax} e determinare se il prefisso si riferisce allo stato
di Washington (206, 360, 509) o British Columbia, Canada (604, 250):

Select Case Left ({Customer.Fax}, 3)


Case "604", "250"
formula = "BC"
Case "206", "509", "360"
formula = "WA"
End Select

L'espressione a destra delle parole chiave Select Case è chiamata condizione Select. Nell’esempio precedente, la
condizione Select è Left ({Cliente.Fax}[1 To 3]). L'istruzione Select ricerca il primo caso che corrisponde alla
condizione Select, quindi esegue le istruzioni indicate fino al caso successivo.

Dim areaCode As String


areaCode = Left ({Customer.Fax}, 3)
If areaCode In Array ("604", "250") Then
formula = "BC"
ElseIf areaCode In Array ("206", "509", "360") Then
formula = "WA"
End If

Questa formula raggruppa il numero di nomination all’Oscar ricevute da un film nelle categorie bassa, media, alta
o estrema e, durante l’operazione, mostra alcune possibilità per gli elenchi di espressioni che seguono le etichette

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 801
Case. Osservare la clausola facoltativa Case Else. Se nessun elenco di espressioni Case corrisponde alle clausole
Case precedenti, l’espressione corrisponde alla clausola Case Else. Nell'esempio riportato di seguito, se
{movie.NOM} è 11, la formula restituisce "estrema".

Rem Select example 2


Select Case {movie.NOM}
Case 1,2,3, Is < 1
Rem Sono possibili più istruzioni nei blocchi di istruzioni.
formula = "bassa"
Case 4 To 6, 7, 8, 9
formula = "media"
Case 10
formula = "alta"
Case Else
formula = "estrema"
End Select

1.7.2.1.12.3 Cicli For/Next (sintassi Basic)

I loop For/Next consentono di valutare più volte una sequenza di istruzioni. Si distinguono, pertanto, dalle
istruzioni If e Select in base alle quali il programma valuta ogni istruzione una sola volta durante la valutazione
della formula.

I loop For/Next sono consigliabili quando si conosce in anticipo il numero di volte in cui le istruzioni devono essere
valutate.

Sintassi del ciclo For

Supporre di voler invertire la stringa {Cliente.Nome.Cliente}. Ad esempio, "Ciclisti di città" diventa "itsilciC id
àttiC".

formula = ""
Dim strLen
strLen = Len ({Customer.Customer Name})
Dim i
For i = 1 To strLen
Dim charPos
charPos = strLen - i + 1
formula = formula & _
Mid({Customer.Customer Name}, charPos, 1)
Next i

La modalità di funzionamento di questa formula viene illustrata presumendo che il valore corrente del campo
{Cliente.Nome Cliente} sia "Aria tersa". Si assegna alla variabile strLen la lunghezza del campo "Aria tersa", ovvero
9. In questa fase è anche tipizzata come variabile numerica. La variabile è nota come controvariabile For in quanto
il valore della variabile cambia a ogni ripetizione del ciclo For. In altre parole, è utilizzata per contare le ripetizioni
del loop. Il loop For viene ripetuto 9 volte, la prima volta, i è uguale a 1, la seconda a 2, la terza a 3 e così via fino a
quando i = 9. Durante la prima ripetizione, il nono carattere della stringa {Cliente.Nome Cliente} è aggiunto alla
variabile speciale vuota formula. Pertanto, la formula è uguale ad "a" dopo la prima ripetizione. Durante la seconda
ripetizione, l'ottavo carattere della stringa {Cliente.Nome Cliente} è aggiunto alla formula, dunque la formula è

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
802 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
uguale a "as". Questo procedimento continua fino alla nona iterazione, quando la formula è uguale a "airA asret",
ovvero la stringa invertita.

Di seguito viene riportata una versione semplificata della formula precedente; in questa versione viene utilizzata
una clausola Step con un valore Step negativo di -1. Per l'esempio "Aria tersa", i è uguale a 9 per la prima
ripetizione, a 8 per la seconda, a 7 per la terza e così via fino a quando è uguale a 1 nella ripetizione finale.

formula = ""
Dim i
For i = Len ({Customer.Customer Name}) To 1 Step -1
formula = formula + _
Mid({Customer.Customer Name}, i, 1)
Next i

La versione più semplice consiste nell’utilizzare la funzione predefinita StrReverse:

formula = StrReverse ({Customer.Customer Name})

Le funzioni di stringa predefinite in SAP Crystal Reports possono gestire numerose applicazioni di elaborazione
delle stringhe risolte, di solito, utilizzando un loop For/Next o un altro tipo di loop. Tuttavia, i cicli For/Next
garantiscono la massima flessibilità nell'elaborazione delle stringhe ed efficacia nell'elaborazione delle matrici;
tale caratteristica può essere decisiva se le funzioni predefinite non sono disponibili per l'applicazione desiderata.

1.7.2.1.12.3.1 Esempio di ciclo For/Next (sintassi Basic)

Di seguito viene riportato un esempio articolato delle capacità di elaborazione delle stringhe di SAP Crystal
Reports. Il codice di Cesare è un codice dalla struttura semplificata, attribuito tradizionalmente a Giulio Cesare. In
questo codice, ogni lettera di una parola viene sostituita da una lettera posizionata cinque caratteri più avanti
nell’alfabeto. Ad esempio, "Casa" diventa "hfaf". Osservare che "s" viene sostituita da "a": Poiché nell'alfabeto non
sono presenti 5 caratteri dopo la "s", il conteggio riparte dall'inizio.

La formula riportata di seguito viene utilizzata applicando il codice di Cesare al campo {Clienti.Nome cliente} nel
database Xtreme:

Dim inputString
inputString = {Customer.Customer Name}
Dim shift
shift = 5
formula = ""
Dim i
For i = 1 To Len(inputString)
Dim inC, outC
inC = Mid(inputString, i, 1)
Dim isChar, isUCaseChar
isChar = LCase(inC) In "a" To "z"
isUCaseChar = isChar And (UCase (inC) = inC)
inC = LCase(inC)
If isChar Then
Dim offset
offset = (Asc(inC) + shift - Asc("a")) Mod _
(Asc("z") - Asc("a") + 1)
outC = Chr(offset + Asc("a"))
If isUCaseChar Then outC = UCase(outC)
Else

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 803
outC = inC
End If
formula = formula & outC
Next i

Nell’esempio precedente, è presente un’istruzione If linea multipla annidata nel blocco di istruzioni del loop For/
Next. L’istruzione If è responsabile del corretto spostamento dei singoli caratteri. Ad esempio, le lettere sono
trattate diversamente dalla punteggiatura e dagli spazi. In particolare, la punteggiatura e gli spazi non sono
codificati. La regola generale vuole che le strutture di controllo siano annidate all’interno di altre strutture di
controllo e che più istruzioni possano essere incluse nel blocco di istruzioni di una struttura di controllo.

1.7.2.1.12.3.2 Uscita dai cicli For/Next (sintassi Basic)

È possibile uscire da un loop For/Next utilizzando l’istruzione Exit For. Nell'esempio riportato di seguito, vengono
ricercati i nomi di matrice globale per il nome "Mario". Se il nome viene trovato, la formula restituisce l’indice del
nome nella matrice. In caso contrario, restituisce -1. Ad esempio, se la matrice dei nomi è:

Array ("Frank", "Helen", "Fred", "Linda")

la formula restituisce 3.

Global names () As String


'I nomi sono stati inizializzati e inseriti in altre formule
Dim i
formula = -1
' La funzione UBound restituisce le dimensioni dell'argomento della matrice
For i = 1 to UBound (names)
If names (i) = "Fred" Then
formula = i
Exit For
End If
Next I

1.7.2.1.12.4 Ciclo Do (sintassi Basic)

Un ciclo Do può essere utilizzato per eseguire un blocco fisso di istruzioni un numero indefinito di volte.

I 4 diversi tipi di loop Do

Tipo di Do Loop Definizione Esempio

Ciclo Do While … Il ciclo Do While ... Loop valuta la


condizione; se la condizione è vera, Do While condition
statements
valuta le istruzioni che seguono la
Loop
condizione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
804 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Tipo di Do Loop Definizione Esempio

Al termine di questa operazione, il


loop valuta nuovamente la condi­
zione, se la condizione è vera, valuta
nuovamente l’istruzione.

Tale processo viene ripetuto fino a


quando la condizione risulta falsa.

Ciclo Do Until ... Loop Il ciclo Do Until ... Loop è simile al ci­
clo Do While ... Loop. Tuttavia, in Do Until condition
statements
questo caso la valutazione delle
Loop
istruzioni continua fino a quando la
condizione è vera e non se la condi­
zione è vera.

Ciclo Do ... Loop While Il ciclo Do ... Loop While valuta le


istruzioni una sola volta, a prescin­ Do
statements
dere dal valore delle condizioni.
Loop While condition
Quindi, valuta la condizione e se la
condizione è vera, valuta nuova­
mente le istruzioni. Tale processo
viene ripetuto fino a quando la con­
dizione risulta falsa.

Ciclo Do ... Loop Until Simile a Do... Loop While; in questo


caso, tuttavia, le istruzioni vengono Do
statements
valutate fino a quando la condizione
Loop Until condition
è vera.

Nota
I cicli Do supportano un'istruzione Exit Do per uscire immediatamente dal ciclo. L’istruzione Exit Do è simile
all’istruzione Exit For nei loop For/Next.

Esempio di formula ciclo Do While ... Loop

La formula seguente ricerca la prima occorrenza di una cifra in una stringa di input. Se viene trovata una cifra, la
formula ne restituisce la posizione, altrimenti restituisce -1. In questo caso, la stringa di input è impostata
esplicitamente su una costante di stringa, ma potrebbe essere impostata ugualmente su un campo del database
tipo Stringa.

Ad esempio, per la stringa di input "I 7 nani", la formula restituisce 3, ovvero la posizione della cifra 7.

Dim inString
inString = "The 7 Dwarves"
Dim i, strLen
i = 1
strLen = Len (inString)
formula = -1
Do While i <= strLen And formula = -1

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 805
Dim c As String
c = Mid (inString, i, 1)
If IsNumeric (c) Then formula = i
i = i + 1
Loop

1.7.2.1.12.5 Ciclo While (sintassi Basic)

Il ciclo While è simile al ciclo Do While ... Loop ma non supporta l'istruzione Exit. Nella sintassi utilizza While ...
Wend al posto di Do While ... Loop.

While condition
statements
Wend

1.7.2.1.12.6 Prevenzione dei cicli infiniti (sintassi Basic)

Esiste un meccanismo di sicurezza che impedisce il blocco dell’elaborazione dei report dovuto a un loop infinito.
Ogni valutazione di una formula prevede un massimo di 100.000 valutazioni della condizione loop per ogni
valutazione della formula. Ad esempio:

Dim i
i = 1
Do While i <= 200000
If i > {movie.STARS} Then Exit Do
i = i + 1
Loop
formula = 20

Se {movie.STARS} è maggiore di 100.000, la condizione ciclo (i <= 200000) sarà valutata oltre il numero di volte
consentito e verrà visualizzato un messaggio di errore. In caso contrario, il loop è valido.

Nota
ll meccanismo di sicurezza si applica alle singole formule e non ai singoli cicli. Ad esempio:

Dim i
i = 1
For i = 1 To 40000
formula = Sin (i)
Next i
Do While i <= 70000
i = i + 1
Loop

Anche la formula precedente attiva il meccanismo di sicurezza, in quanto 100.000 si riferisce al numero totale di
valutazioni delle condizioni loop nella formula e tale formula avrà 40001 +70001 valutazioni di questo tipo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
806 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.2.2 Sintassi Crystal

Quando si creano le formule, è possibile scegliere di utilizzare la sintassi Crystal o Basic. Quasi tutte le formule
scritte utilizzando una sintassi possono essere riscritte con le regole dell'altra sintassi. I report possono contenere
formule che utilizzano tutti e due i tipi di sintassi, tuttavia una singola formula può utilizzare una sola sintassi.

1.7.2.2.1 Nozioni di base sulla sintassi Crystal

Il risultato di una formula

Il risultato di una formula, ovvero il valore stampato quando la formula viene inserita in un report, è definito come il
valore restituito dalla formula. Ogni formula in SAP Crystal Reports deve restituire un valore. Nell’esempio
riportato di seguito è illustrata una formula semplice nella sintassi Crystal che restituisce il valore 10:

10

Il valore restituito da una formula può corrispondere a uno dei sette tipi di dati semplici supportati. Sono
supportati i numeri, gli importi in valuta, le stringhe, i valori booleani, Date, Time e DateTime.

Nota
SAP Crystal Reports supporta anche i tipi di intervallo e di matrice, ma questi ultimi non possono essere
restituiti da una formula.

Ad esempio, supporre che le politiche di spedizione di una società prevedano che solo gli ordini superiori a 1.000 $
siano assicurati:

If {Orders.Order Amount} >= 1000 Then


"Spedizione assicurata"
Else
"Spedizione ordinaria"

La formula restituisce il valore di stringa di testo "Spedizione assicurata" se il valore nel campo del database
{Ordini.Data ordine} è maggiore di o uguale a 1000; negli altri casi, il valore di stringa di testo restituito è
"Spedizione ordinaria".

Sintassi basata sulle espressioni

Le formule della sintassi Crystal sono costituite da una sequenza di espressioni. Un'espressione è una
combinazione qualsiasi di parole chiave, operatori, funzioni e valori costanti che restituisce un valore di un certo
tipo. Il valore dell’espressione finale corrisponde al valore restituito dalla formula e comparirà sulla stampa. Il
carattere di separazione tra due espressioni è il punto e virgola (;).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 807
Nella sintassi Crystal, le formule sono costituite da una sequenza di espressioni, il cui risultato è il valore
dell'espressione finale. Questo principio deve essere chiaro per comprendere fino in fondo questo tipo di sintassi.
La sintassi basata sulle espressioni consente di scrivere brevi formule estremamente funzionali.

Distinzione tra maiuscole e minuscole

Tutti i nomi delle variabili, le funzioni e le parole chiave utilizzate in una formula della sintassi Crystal non sono in
grado di distinguere tra le lettere maiuscole e minuscole. Ad esempio, la parola chiave Then può essere digitata
sia come then sia come THEN.

l’unica eccezione a questa regola è rappresentata dalle stringhe. La stringa "Ciao" non è uguale alla stringa "ciao".

Esercitazioni con il database di esempio Xtreme

Molti degli esempi inclusi in questa sezione si riferiscono al database Xtreme.

1.7.2.2.2 Commenti (sintassi Basic)

I commenti sono note incluse nelle formule per illustrarne le modalità di elaborazione e funzionamento. I
commenti non vengono stampati e non influiscono sul contenuto della formula, ma vengono visualizzati
nell’Editor di Formula. È possibile utilizzare i commenti per spiegare lo scopo di una formula o illustrare la
procedura utilizzata per scriverla.

I commenti sono preceduti da due barre (//) e seguiti dal testo del commento. Tutto ciò che segue le due barre e
si trova sulla stessa riga è considerato parte del commento:

//Questa formula restituisce la stringa "Ciao"


//Questo è un altro commento
"Hello" //I commenti possono essere aggiunti alla fine di una riga
//I commenti possono essere inseriti dopo il testo della formula

1.7.2.2.3 Campi (sintassi Crystal)

Nelle formule è possibile fare riferimento a molti dei campi utilizzati quando si crea un report. Ad esempio, i campi
di database, di parametro, dei totali parziali, delle espressioni SQL, di riepilogo e nome di gruppo. Nella formula è
inoltre possibile fare riferimento ad altri campi formula.

Il modo più semplice per inserire un campo nel report è fare doppio clic sul nome di un campo nella struttura
Campi report. In questo modo si garantisce l’uso della sintassi corretta per il campo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
808 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Aspetto dei campi nelle formule

I nomi dei campi del database, di parametro, formula, dei totali parziali e delle espressioni SQL sono racchiusi in
parentesi graffe.

I nomi dei campi del database sono ricavati dal database:{Employee.Last Name}

I nomi dei campi di parametro, formula, dei totali parziali e delle espressioni SQL sono specificati al momento della
relativa creazione.

● i campi di parametro includono anche un punto interrogativo: {?my parameter field}


● i campi formula includono il segno at:{@another formula}
● il campo totale parziale include il segno tasto del telefono:{#my running total}
● i campi delle espressioni SQL includono il simbolo percentuale:{%my SQL expression}

I campi di riepilogo e nome di gruppo hanno l’aspetto simile alle chiamate di funzione. Tuttavia, rappresentano
realmente notazioni abbreviate di campi del report.

● sum campo di riepilogo:Sum({Orders.Order Amount}, {Orders.Ship Via})


● campo nome di gruppo:GroupName({Orders.Ship Via})

Esempio

Utilizzando il database di esempio Xtreme, basta sottrarre il campo di database della data di spedizione dal
campo del database della data dell'ordine per sapere quanti giorni intercorrono tra la spedizione del prodotto e la
data di presentazione dell'ordine:

{Orders.Ship Date} - {Orders.Order Date}

Per conoscere l’importo totale di un particolare prodotto di cui è stato eseguito l’ordine, moltiplicare il prezzo
unitario per la quantità ordinata:

{Orders Detail.Unit Price} * {Orders Detail.Quantity}

Per calcolare un prezzo di vendita uguale all’80 per cento del prezzo unitario originale:

{Orders Detail.Unit Price} * 0.80

1.7.2.2.4 Espressioni (sintassi Crystal)

Un'espressione è una combinazione qualsiasi di parole chiave, operatori, funzioni e valori costanti che restituisce
un valore di un certo tipo. Ad esempio:

//Un'espressione che restituisce il valore numerico 25


10 + 20 - 5
//Un'espressione che restituisce il valore di stringa "Questa è una stringa."
"Questa è una stringa."

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 809
Le formule della sintassi Crystal sono costituite da una sequenza di espressioni. Il valore dell’espressione finale
corrisponde al valore restituito dalla formula e comparirà sulla stampa. Il carattere di separazione tra due
espressioni è il punto e virgola (;).

1.7.2.2.4.1 Espressioni multiple (sintassi Crystal)

Di solito, ogni espressione occupa una riga; tuttavia, è possibile continuare un’espressione sulla riga successiva se
una sola riga non è sufficiente.

La formula seguente consiste di cinque espressioni. La formula restituisce il valore numerico 25 poiché tale è il
valore dell'ultima espressione della formula.

Esempio

//La prima espressione restituisce il valore numerico 30.


10 + 20;
//La seconda espressione restituisce il valore "Ciao a tutti".
"Hello " +
"World";
//La terza espressione restituisce un valore di tipo numerico.
{Orders Detail.Quantity} * 2 - 5;
//La terza espressione restituisce un valore di tipo stringa.
If {Orders Detail.Quantity} > 1 Then
"multiple units"
Else
"one unit";
//La quinta e ultima espressione restituisce il valore numerico 25.
20 + 5

È inoltre consentito ma non obbligatorio inserire un punto e virgola dopo l’ultima espressione della formula. Ad
esempio, la formula precedente può terminare come segue:

20 + 5;

Alcune formule di esempio della sezione Espressioni (sintassi Crystal) [pagina 809] non presentano punti e
virgole. Esse consistono, infatti, di una sola espressione e il punto e virgola è facoltativo dopo l’ultima espressione.
Nella sintassi Crystal, è possibile scrivere numerose formule come singola espressione.

Osservare che il punto e virgola non compare dopo la stringa "unità multiple". Infatti, se il punto e virgola viene
inserito dopo la stringa, il programma visualizza un messaggio di errore, in quanto questo tipo di punteggiatura
serve a separare le espressioni e l'espressione

Else
"one unit";

non è un'espressione separata. Non è un'espressione distinta dall'espressione If, ma ne è parte integrante, in
quanto descrive il valore che l'espressione If restituisce in alcune circostanze.

Nota
L'esempio non ha alcun valore pratico, in quanto le prime quattro espressioni della formula non hanno effetto
sull'ultima espressione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
810 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Effetto delle espressioni precedenti sulle espressioni successive

Nella sintassi Crystal, le formule sono costituite da una sequenza di espressioni, il cui risultato è il valore
dell'espressione finale. Questo principio deve essere chiaro per comprendere fino in fondo questo tipo di sintassi.
La sintassi basata sulle espressioni consente di scrivere brevi formule estremamente funzionali.

// Questa espressione dichiara la variabile numerica //quindi restituisce il valore


di una variabile //numerica non inizializzata, cioè 0.
NumberVar x;
//Seconda espressione. Assegna il valore 30 a x //e restituisce 30.
x := 30

La formula dell’esempio precedente viene considerata errata se si omette la prima espressione. La seconda
espressione si riferisce, infatti, alla variabile numerica x; pertanto, il valore di x deve essere dichiarato perché il
programma possa comprendere le espressioni che lo includono.

In generale, si utilizzano le variabili in modo che le espressioni precedenti abbiano effetto sull’espressione finale di
una formula.

Informazioni correlate

Variabili (sintassi Crystal) [pagina 817]

1.7.2.2.5 Assegnazione (sintassi Crystal)

L'operatore di assegnazione è costituito da due punti seguiti dal segno uguale (:=).

Ad esempio:

////Assegna il valore numerico 10 alla variabile x.


x := 10;
//Assegna il valore di stringa "ciao" alla variabile greeting.
greeting := "hello";

L’operatore di eguaglianza (=) è utilizzato per verificare se due valori sono uguali. Un errore frequente consiste
nell’utilizzare l’operatore di eguaglianza laddove è richiesto l’operatore di assegnazione. In questo caso è possibile
che venga visualizzato un messaggio di errore incomprensibile oppure non venga visualizzato alcun messaggio, in
quanto l’uso dell’operatore di eguaglianza è spesso corretto dal punto di vista sintattico. Ad esempio:

greeting = "hello";

La formula precedente verifica se il valore contenuto nella variabile greeting è uguale al valore "ciao". In caso
affermativo, il valore dell'espressione è True, altrimenti il valore restituito è False. In entrambi i casi, si tratta di
un’espressione in sintassi Crystal assolutamente corretta (presumendo che greeting sia una variabile di stringa).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 811
1.7.2.2.6 Tipi di dati semplici (sintassi Crystal)

In questa sezione sono descritti i tipi di dati semplici disponibili in SAP Crystal Reports.

1.7.2.2.6.1 Numero (sintassi Crystal)

Immettere i numeri senza virgole o simboli di valuta. In genere, si desidera che i numeri formattati vengano forniti
come il risultato di una formula e non siano inclusi nella formula stessa.

Esempio

10000
-20
1.23

1.7.2.2.6.2 Valuta (sintassi Crystal)

Utilizzare il simbolo del dollaro ($) per creare un valore valuta

Esempio

$10000
-$20
$1.23

È anche possibile utilizzare la funzione CCur. La C iniziale di CCur sta per conversione e può essere utilizzata per
convertire i valori numerici in valori di importo in valuta.

CCur (10000)
CCur (-20)
CCur (1.23)

1.7.2.2.6.3 Stringa (sintassi Crystal)

Le stringhe sono utilizzate per contenere testo. Il testo deve essere racchiuso tra doppie virgolette (") o apostrofi
(`) e non può essere suddiviso tra più righe. Se si desidera includere le doppie virgolette in una stringa già
delimitata dalle doppie virgolette, utilizzare due doppie virgolette consecutive. Analogamente, se si desidera
includere un apostrofo in una stringa delimitata da apostrofi, utilizzare due apostrofi consecutivi.

Esempio

"This is a string."
"123"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
812 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
"The word ""hello"" is quoted."
'This is also a string.'
'123'
'Last Year''s Sales'

Se si inseriscono le doppie virgolette a sinistra della stringa, è necessario utilizzare le doppie virgolette anche a
destra. Lo stesso vale anche per gli apostrofi. L’esempio seguente non è corretto:

'Not a valid string."

È possibile estrarre singoli elementi o sottostringhe da una stringa specificando la posizione del carattere o un
intervallo di posizioni di caratteri. Sono consentiti i valori negativi che specificano la posizione a partire dalla fine
della stringa.

"hello" [2] //Equal to "e"


"hello" [-5] //Equal to "h"
"604-555-1234" [1 to 3] //Equal to "604"
"abcdef" [-3 to -1] //Equal to "def"

È anche possibile estrarre sottostringhe da una stringa utilizzando le funzioni Left, Right e Mid.

1.7.2.2.6.4 Valore booleano (sintassi Crystal)

I valori booleani validi sono:

True
False

Nota
È possibile utilizzare Yes al posto di True e No al posto di False.

1.7.2.2.6.5 Data, Ora e Data/ora (sintassi Crystal)

Il tipo data/ora può contenere la data e l'ora, solo la data o solo l'ora. Il tipo data contiene solo le date e il tipo ora
contiene solo le ore. I tipi data e ora sono più efficienti rispetto al tipo data/ora, dunque possono essere utilizzati
in situazioni nelle quali la funzionalità e la flessibilità aggiunte del tipo DateTime non sono necessarie.

È possibile creare valori DateTime direttamente utilizzando la costruzione date-time literal. Tale costruzione viene
formata digitando la data e l'ora tra due segni tasto del telefono (#). Sono supportati numerosi formati diversi.

Nota
I caratteri di data e ora non possono essere suddivisi tra più righe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 813
Esempi

#8/6/1976 1:20 am#


#August 6, 1976#
#6 Aug 1976 13:20:19#
#6 Aug 1976 1:30:15 pm#
#8/6/1976#
#10:20 am#

Anche se #10:20 am# sembra contenere il tipo ora e #8/6/1976# sembra contenere il tipo data, non è questo il
caso. Entrambi contengono il tipo DateTime, come tutte le costruzioni date-time literal. Ad esempio, è possibile
concepire #10:20 am# come valore DateTime con la parte relativa alla data di valore nullo. Per eseguire la
conversione nel tipo ora, utilizzare la funzione CTime (#10:20 am#).

Invece di utilizzare costruzioni date-time literal, utilizzare la funzione CDateTime per convertire una stringa in un
tipo DateTime. Ad esempio,

CDateTime ("8/6/1976 1:20 am")


CDateTime ("10:20 am")

Tuttavia, esiste una differenza fondamentale tra l’utilizzo di costruzioni date-time literal e l’uso della funzione
CdateTime sopra descritto. I caratteri di data/ora utilizzano sempre il formato data inglese (Stati Uniti d'America)
e non assumono le impostazioni locali del computer in cui viene eseguito SAP Crystal Reports. Di conseguenza, gli
esempi di costruzioni date-time literal riportati sopra sono validi per qualsiasi computer. D’altra parte, su un
sistema italiano si potrebbero utilizzare le seguenti costruzioni:

CDateTime ("22 aout 1997") //Uguale a #Ago. 22, 1997#.

I valori di data possono essere costruiti con CDate e i valori di ora con CTime:

CDate ("Aug 6, 1969")


CDate (1969, 8, 6) //Specifica l’anno, il mese e il giorno.
//Converte l'argomento DataOra in una data.
CDate (#Aug 6, 1969#)
CTime ("10:30 am")
CTime (10, 30, 0) //Specifica l’ora, i minuti e i secondi.
CTime (#10:30 am#)

1.7.2.2.7 Tipi di dati di intervallo (sintassi Crystal)

La funzione degli intervalli è di organizzare uno spettro di valori. Gli intervalli sono disponibili per tutti i tipi
semplici, con l'eccezione dei valori booleani. Ovvero: intervalli numerici, intervalli in valuta, intervalli di stringhe,
intervalli di date, intervalli di ore e intervalli di date/ore. È possibile generare intervalli utilizzando le parole chiave
To, _To, To_, _To_, UpTo, UpTo_, UpFrom e UpFrom_. In generale, la parola chiave To è utilizzata per gli intervalli
costituiti da 2 estremità, mentre UpTo e UpFrom sono utilizzate per gli intervalli aperti (una sola estremità). I
caratteri di sottolineatura sono utilizzati per indicare se le estremità sono incluse o meno nell’intervallo.

Esempi di valori di intervallo numerico

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
814 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
L’intervallo numerico da 2 a 5, inclusi sia 2 che 5

2 To 5

L’intervallo numerico da 2 a 5, escluso 2 ma incluso 5

2 _To 5

Tutti i numeri minori di o uguali a 5

UpTo 5

Tutti i numeri minori di 5

UpTo_ 5

Esempi di valori di intervallo DateTime:

#Jan 5, 1999# To #Dec 12, 2000#


UpFrom #Jan 1, 2000#

Uso degli intervalli nelle formule

In SAP Crystal Reports sono disponibili ventisette funzioni che specificano gli intervalli di date. Ad esempio, la
funzione LastFullMonth specifica un intervallo di valori di data che include tutte le date dal primo all’ultimo giorno
del mese precedente. Quindi, se la data odierna è 15 settembre 1999, il valore LastFullMonth è uguale al valore
dell’intervallo CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#).

Gli intervalli sono spesso associati alle espressioni If o Select. Nell’esempio seguente vengono calcolati i voti in
lettere da assegnare agli studenti in base al punteggio riportato nei test. I punteggi maggiori di o uguali a 90
ricevono una "A", i punteggi compresi tra 80 e 90, escluso 90, ricevono una "B" e così via.

Select {Student.Test Scores}


Case UpFrom 90 :
"A"
Case 80 To_ 90 :
"B"
Case 70 To_ 80 :
"C"
Case 60 To_ 70 :
"D"
Default :
"F";

L'esempio precedente utilizza l'istruzione Select descritta più dettagliatamente in Strutture di controllo (sintassi
Crystal) [pagina 831]. È possibile verificare se un valore è compreso in un intervallo utilizzando l’operatore In. Ad
esempio:

5 In 2 To 10; //True

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 815
5 In 2 To_ 5; //False
5 In 2 To 5; //True

Le funzioni Maximum e Minimum possono essere utilizzate per trovare le estremità di un intervallo:

Maximum (2 To 10) //Returns 10

Informazioni correlate

Tipi di dati matrice (sintassi Crystal) [pagina 816]


Tipi di dati semplici (sintassi Crystal) [pagina 812]

1.7.2.2.8 Tipi di dati matrice (sintassi Crystal)

In SAP Crystal Reports le matrici sono rappresentate da elenchi ordinati di valori dello stesso tipo. Tali valori sono
noti come elementi della matrice. Gli elementi di una matrice possono essere valori semplici o intervalli. Le matrici
possono essere create utilizzando le parentesi quadre ([ ]).

Le matrici sono più utili se associate alle variabili. L’uso delle variabili consente di modificare i singoli elementi di
una matrice e ridimensionare la matrice per inserirne altri. Ad esempio, è possibile accumulare i valori presenti nei
campi di database in una variabile di matrice globale di una formula di livello dettagliato, quindi utilizzare una
formula in un piè di pagina di gruppo per eseguire un calcolo basato su tali valori. In questo modo è possibile
eseguire un’ampia gamma di operazioni di riepilogo personalizzate.

Esempi

Una matrice di 3 valori numerici. Il primo elemento è 10, il secondo è 5 e il terzo è 20.

[10, 5, 20]

Una matrice di 7 valori di stringa:

["Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat"]

Una matrice di 2 valori di intervallo DateTime:

[#Jan 1, 1998# To #Jan 31, 1998#,


#Feb 1, 1999# To #Feb 28, 1999#]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
816 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
È possibile estrarre singoli elementi da una matrice utilizzando parentesi quadre contenenti l’indice dell’elemento
desiderato. Questa operazione è chiamata indicizzazione della matrice:

[10, 5, 20] [2] // = 5

Per indicizzare le matrici è possibile utilizzare anche gli intervalli numerici. Il risultato è un’altra matrice. Ad
esempio:

[10, 5, 20] [2 To 3] // = [5, 20]

1.7.2.2.9 Variabili (sintassi Crystal)

Una variabile rappresenta un elemento di dati specifico o un valore e funziona da segnaposto per quel valore.
Quando incontra una variabile, la formula ricerca il valore della variabile e lo utilizza. A differenza del valore di una
costante che è fisso e invariabile, è possibile assegnare ripetutamente valori diversi a una variabile. Il valore viene
assegnato alla variabile che lo mantiene fino a quando non le viene assegnato un nuovo valore. A causa di questa
flessibilità, è necessario dichiarare le variabili prima di utilizzarle in modo che SAP Crystal Reports le riconosca e
capisca come l'utente intende utilizzarle.

Se si desidera eseguire un report sui clienti in base al prefisso, è possibile creare una variabile che estrae il
prefisso dal numero di fax dei clienti. Di seguito viene riportato un esempio di una variabile denominata areaCode:

Local StringVar areaCode;


areaCode := {Customer.Fax} [1 To 3];

La prima riga dell’esempio della variabile è la dichiarazione di variabile che assegna un nome e un tipo alla
variabile. Il campo di database {Cliente.Fax} è un campo stringa e la funzione [1 To 3] estrae i primi 3 caratteri dal
relativo valore corrente. Alla variabile areaCode viene quindi assegnato questo valore.

1.7.2.2.9.1 Dichiarazioni delle variabili (sintassi Crystal)

Prima di utilizzare una variabile in una formula, è necessario dichiararla. Una variabile può contenere valori di un
certo tipo. I tipi consentiti sono i sette tipi semplici (numero, valuta, stringa, valore booleano, data, ora e
DateTime), i sei tipi di intervalli (intervallo numerico, intervallo in valuta, intervallo di stringhe, intervallo di date,
intervallo di ore e intervallo di DateTime) e le variabili che contengono matrici dei tipi menzionati
precedentemente. Un totale di 26 tipi diversi.

Quando si dichiara una variabile, specificarne anche il nome. Una variabile non può avere lo stesso nome di una
funzione, di un operatore o di un’altra parola chiave valida per la sintassi Crystal. Ad esempio, la variabile non può
essere denominata Sin, Mod o If in quanto Sin è una funzione predefinita, Mod è un operatore predefinito e If è una
parola chiave predefinita. Quando si digitano le formule nell'Editor di Formula, i nomi delle funzioni, degli operatori
e di altre parole chiave predefinite sono evidenziate in un colore diverso, pertanto, è semplice controllare se i nomi
delle variabili sono in conflitto.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 817
Dopo aver dichiarato una variabile, è possibile utilizzarla nella formula. Ad esempio, è possibile assegnarle un
valore iniziale:

Local NumberVar x;
x := 10;

Nota
La parola chiave per la dichiarazione della variabile numerica termina con Var. Ciò vale per tutte i tipi di variabile
nella sintassi Crystal.

Una variabile può contenere valori di un solo tipo. Ad esempio, se una variabile contiene un valore numerico, non è
possibile utilizzarla in seguito per contenere una stringa.

Local StringVar y;
y := "hello";
//OK- la funzione Length prevede una stringa come argomento
Length (y);
//Errore- y può contenere solo valori di stringa
y := #Jan 5, 1993#;
//Errore- y può contenere solo valori di stringa
y := ["a", "bb", "ccc"];
//Errore- la funzione Sin prevede un numero come argomento
Sin (y);

È possibile dichiarare una variabile e assegnarle un valore in una sola espressione. Ad esempio:

Local NumberVar x := 10 + 20;


Local StringVar y := "Hello" + " " + "World";
Local DateVar z := CDate (#Sept 20, 1999#);
Local NumberVar Range gradeA := 90 To 100;

Questa procedura è consigliabile per la sua efficacia, inoltre previene l’errore comune di inizializzare le variabili in
modo scorretto.

Di seguito sono riportati alcuni esempi di dichiarazione e inizializzazione delle variabili di intervallo:

Local NumberVar Range gradeA;


Local DateVar Range quarter;
gradeA := 90 To 100;
quarter := CDate (1999, 10, 1) To CDate (1999, 12, 31);

Informazioni correlate

Portata delle variabili (sintassi Crystal) [pagina 819]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
818 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.2.2.9.2 Portata delle variabili (sintassi Crystal)

La portata delle variabili è utilizzata per definire il grado di disponibilità di una formula rispetto ad altre formule.
Esistono tre livelli di portata in SAP Crystal Reports:

● Local
● Global
● Shared

Ogni variabile ha una portata specificata al momento della dichiarazione della variabile.

1.7.2.2.9.2.1 Variabili locali (sintassi Crystal)

Le variabili con portata locale vengono dichiarate mediante la parola chiave Local seguita dal nome del tipo (con il
suffisso Var) e dal nome della variabile.

Le variabili locali sono limitate a una singola formula e a una singola valutazione della formula. Ciò significa che
non è possibile accedere al valore di una variabile locale in una formula da un’altra formula.

Esempio

//Formula A
Local NumberVar x;
x := 10;
//Formula B
EvaluateAfter ({@Formula A})
Local NumberVar x;
x := x + 1;

La chiamata di funzione EvaluateAfter ({@Formula A}) assicura che la valutazione della formula B avvenga dopo la
valutazione della formula A. La formula A restituisce un valore pari a 10, mentre la formula B un valore pari a 1. La
formula B non ha accesso a x della formula A, pertanto non può utilizzare il valore 10 e aggiungere 1 ma deve
utilizzare il valore predefinito per la variabile locale x non inizializzata, presente nella formula B, ovvero 0, e
aggiungervi 1 per ottenere 1.

È anche possibile creare variabili locali con lo stesso nome ma tipo diverso in formule distinte. Ad esempio, le
dichiarazioni dei tipi nelle formule A e B non entrano in conflitto con:

//Formula C
Local StringVar x := "hello";

La portata locale risulta la più efficiente. Inoltre, le variabili locali non interferiscono reciprocamente nelle diverse
formule. Per questi motivi, è consigliabile dichiarare le variabili locali ogni volta è possibile.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 819
1.7.2.2.9.2.2 Variabili globali (sintassi Crystal)
Le variabili globali utilizzano lo stesso blocco di memoria per memorizzare un valore nel report principale. Questo
valore è disponibile quindi per tutte le formule che dichiarano la variabile, con l’eccezione di quelle presenti nei
sottoreport. L’esempio riportato di seguito mostra la procedura di dichiarazione di una variabile globale.

Global StringVar y;

È anche possibile omettere la parola chiave Globale che crea una variabile globale per impostazione predefinita:

StringVar y; //Uguale a: Global StringVar y;

Sebbene le variabili globali siano semplici da dichiarare, si consiglia tuttavia di utilizzarle solo quando le variabili
locali non sono sufficienti.

Le variabili globali condividono i valori nel report principale; pertanto, non è possibile dichiarare una variabile
globale di un tipo in una formula e assegnare un tipo diverso alla variabile globale dello stesso nome in un’altra
formula.

Esempio

//Formula A
Global DateVar z;
z := CDate (1999, 9, 18)
//Formula B
NumberVar z;
z := 20

In questo caso, se si immette e si salva prima la formula A, SAP Crystal Reports genera un messaggio di errore
quando si esegue il controllo o quando si cerca di salvare la formula B. La dichiarazione della variabile globale z
come numero, infatti, è in conflitto con la precedente dichiarazione della variabile come data nella formula A.

Utilizzo delle variabili globali

Le variabili globali sono spesso utilizzate per eseguire calcoli complessi nei quali i risultati di una formula
dipendono dal raggruppamento e dal layout di pagina dell'effettivo report stampato. Ciò avviene creando diverse
formule, inserendole in sezioni diverse del report e consentendone l’interazione attraverso variabili globali.

Esempio

//Formula C
Global NumberVar x;
x := 10;
//Formula D
WhileReadingRecords;
Global NumberVar x;
x := x + 1

Se la formula C è inserita nell’intestazione del report e la formula D è inserita nella sezione dettagli, la formula C
verrà valutata prima della formula D. La formula C verrà valutata una sola volta mentre la formula D verrà valutata

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
820 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
per ogni record che compare nella sezione dettagli. La formula C restituisce 10. Per il primo record dettagliato, la
formula D restituisce 11. Ciò si verifica in quanto è stato mantenuto il valore 10 di x impostato dalla formula C. La
formula D aggiunge 1 a questo valore, impostando x su 11 e restituendo 11. Per il secondo record dettagliato la
formula D restituisce 12, aggiungendo 1 al valore 11 di x mantenuto precedentemente. Questo processo continua
per gli altri record dettagliati.

La chiamata alla funzione WhileReadingRecords determina la rivalutazione della formula D, in quanto ogni record
del report viene letto da SAP Crystal Reports. La formula non contiene campi di database; pertanto, il programma
valuta la formula una volta per tutte prima di eseguire la lettura dei record del database. In questo caso, la formula
restituisce sempre il valore 11 al posto di 11, 12, 13, ... durante l’elaborazione dei record successivi.

Se l’espressione x := x + 1 è sostituita da x := x + {Ordini Dettagli.Quantità}, si crea l’effetto di un totale parziale


basato su {Ordini Dettagli.Quantità} sebbene a partire da 10 e non da 0 a causa della formula C. In questo caso, è
possibile omettere la chiamata di funzione WhileReadingRecords che viene eseguita automaticamente, in quanto
la formula contiene un campo di database.

1.7.2.2.9.2.3 Variabili condivise (sintassi Crystal)

Le variabili condivise utilizzano lo stesso blocco di memoria per memorizzare il valore di una variabile nel report
principale e nei sottoreport. Pertanto, le variabili condivise hanno una validità ancora più generale delle variabili
globali. Per utilizzare una variabile condivisa, è necessario dichiararla in una formula nel report principale, come
descritto nell’esempio riportato di seguito.

Shared NumberVar x := 1000;

e in una formula nel sottoreport come nell’esempio seguente:

Shared NumberVar x;

Per utilizzare le variabili condivise, è necessario dichiarare la variabile e assegnarle un valore prima di trasferirla
dal report principale al sottoreport.

Informazioni correlate

Variabili globali (sintassi Crystal) [pagina 820]


Inserimento di sottoreport [pagina 753]
Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 821
1.7.2.2.9.3 Dichiarazione delle variabili di matrice (sintassi
Crystal)

È possibile dichiarare le variabili di matrice facendo seguire la definizione del tipo dalla parola chiave Array.

//Dichiara x come variabile globale del tipo Matrice numerica


Global NumberVar Array x := [10 , 20, 30];
// Costo è una variabile globale del tipo di matrice Valuta.
//È automaticamente globale poiché l'indicatore di portata (uno tra locale, globale
o condivisa) non è presente.
CurrencyVar Array cost := [$19.95, $79.50, $110.00,
$44.79, $223.99];
//payDays è una variabile globale di tipo Matrice di date
Global DateVar Array payDays := [CDate(1999, 5, 15),
CDate(1999, 5, 31)];
//y è una variabile condivisa di tipo Matrice intervallo di stringhe
Shared StringVar Range Array y := ["A" To "C",
"H" To "J"];
//days è una variabile locale di tipo Matrice di stringhe
Local StringVar Array days;
days := ["Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat"];

Assegnazione di valori agli elementi di una matrice

È possibile assegnare valori agli elementi di una matrice e utilizzare tali valori per altri tipi di calcolo.

StringVar Array x := ["hello", "bye", "again"];


x [2] := "once"; // x == ["hello", "once", "again"]
L'espressione di seguito provoca un errore se non viene commentata poiché le
dimensioni della matrice sono pari a 3.
//La formula restituisce la stringa "CIAO"
UpperCase (x [1])

Le parole chiave Redim e Redim Preserve possono essere utilizzate per ridimensionare una matrice se si desidera
aggiungervi ulteriori informazioni. La parola Redim cancella il contenuto precedente della matrice prima di
ridimensionarla, mentre Redim Preserve mantiene il contenuto precedente.

Local NumberVar Array x;


Redim x [2]; // x = [0, 0]
x [2] := 20; // x = [0, 20]
Redim x [3]; // x = [0, 0, 0]
x [3] := 30; // x = [0, 0, 30]
Redim Preserve x [4]; // x = [0, 0, 30, 0]
"finished"
Local StringVar Array a;
Redim a [2];
a[1] := "good";
a[2] := "bye";
a[1] & a[2] //`La formula restituisce la stringa "buongiorno"

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
822 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Matrici e cicli For

Le matrici sono comunemente utilizzate con i loop For. L’esempio riportato di seguito crea, quindi utilizza la
matrice (10, 20, 30, ..., 100) utilizzando un loop For. La formula seguente restituisce il numero 20.

Local NumberVar Array b;


Redim b[10];
Local NumberVar i;
For i := 1 To 10 Do
(
b[i] := 10 * i
);
b [2]

1.7.2.2.9.4 Valori predefiniti per i tipi di dati semplici


(sintassi Crystal)

Una variabile non inizializzata presenta come tipo il valore predefinito corrispondente. In generale, una procedura
di programmazione ottimale non prevede l’uso dei tipi predefiniti. Ad esempio, è possibile inizializzare tutte le
variabili locali nella formula, inizializzare tutte le variabili globali in una formula inserita nell’intestazione del report
e inizializzare tutte le variabili condivise in una formula inserita nell’intestazione del report principale.

Quando una matrice è ridimensionata utilizzando la parola chiave Redim, vengono assegnati alle voci i tipi
predefiniti.

1.7.2.2.9.4.1 Valori predefiniti

Numero

Valuta

$0

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 823
Stringa

"" //La stringa vuota

Data

Date (0, 0, 0) //Il valore nullo per la data.

Ora

Il valore nullo per l’ora. Valore contenuto da una variabile Ora non inizializzata.

DateTime

Il valore nullo DateTime. Valore contenuto da una variabile DateTime non inizializzata.

Nota
Non è consigliabile basare le formule sui valori di variabili di matrice o di intervallo non inizializzate.

1.7.2.2.9.5 Conversioni automatiche del tipo (sintassi


Crystal)

In generale, in SAP Crystal Reports i valori di un tipo non possono essere utilizzati laddove sono previsti valori di
un altro tipo senza fornire esplicitamente una funzione di conversione del tipo. Ad esempio:

Local StringVar postalCode;


//Errore- assegnazione di un valore numerico a una stringa
postalCode := 10025;
//OK- utilizza la funzione di conversione del tipo CStr per creare "10025".
postalCode := CStr (10025, 0);

Tuttavia, alcune conversioni vengono eseguite automaticamente:

● da un numero a una valuta


● da Date a Date/Time
● dal tipo semplice al valore di intervallo dello stesso tipo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
824 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Ad esempio, le seguenti assegnazioni sono corrette:

Local CurrencyVar cost;


//Uguale a: cost := $10
cost := 10;
Local DateTimeVar orderDate;
//Uguale a: orderDate := CDateTime (1999, 9, 23, 0, 0, 0)
orderDate := CDate (1999, 9, 23);
Local NumberVar Range aRange;
//Uguale a: aRange := 20 To 20
aRange := 20;
Local NumberVar Range Array aRangeArray;
//Uguale a: aRangeArray := [10 To 10, 20 To 25, 2 To 2]
aRangeArray := [10, 20 To 25, 2];

Nota
Non sono consentite le conversioni inverse. Ad esempio:

Local NumberVar num;


num := 5 + $10;
//OK- Converte in valore numerico usando la funzione CDbl
num := CDbl (5 + $10)

Il valore 5 viene convertito in 5 dollari e aggiunto a 10 dollari per ottenere 15 dollari. Tuttavia, il valore di importo in
valuta non può essere assegnato automaticamente alla variabile numerica num, in quanto le conversioni
automatiche dal tipo Valuta al tipo Numero non sono consentite. Analogamente, è possibile assegnare alle
funzioni che accettano un argomento Valuta un argomento Numero che verrà convertito in una valuta; al
contrario, è impossibile assegnare alle funzioni che accettano un argomento Numero un argomento Valuta senza
convertire prima esplicitamente la valuta in un numero utilizzando la funzione CDbl.

1.7.2.2.10 Funzioni (sintassi Crystal)

Le funzioni sono procedure o subroutine incorporate utilizzate per eseguire valutazioni e calcoli o per trasformare
dati. Quando si specifica una funzione, il programma esegue una serie di operazioni incorporate nella funzione,
evitando così all’utente di dover specificare ogni singola operazione.

1.7.2.2.10.1 Panoramica sulle funzioni (sintassi Crystal)

Quando si utilizza una funzione in una formula, digitare il nome della funzione e fornire gli argomenti richiesti. Ad
esempio, la funzione Length richiede un argomento Stringa ed è utilizzata per calcolarne la lunghezza. La formula
seguente restituisce il numero 5.

Local StringVar x := "hello";


Length (x)

Se vengono forniti argomenti non validi per la funzione, viene generato un errore. Ad esempio, la chiamata di
funzione Lungh (3) genera un errore in quanto tale funzione non accetta un argomento Numero.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 825
In alcuni casi, le funzioni possono accettare numeri diversi di argomenti o tipi di argomento. Ad esempio, la
funzione CDate può accettare un singolo argomento stringa per formare un valore data oppure 3 valori numerici
che contengono l’anno, il mese e il giorno con cui formare un valore data. Vedere Data, Ora e Data/ora (sintassi
Crystal) [pagina 813].

Esempio con la funzione Mid

Local StringVar x := "hello";


Local StringVar y;
//Inizia alla posizione 2, vai alla fine della stringa
y := Mid (x, 2); //y è ora "iao"
//Start at position 2, extract 1 character
y := Mid (x, 2, 1) //y è ora "i"

Le classi di funzioni sono: aritmetiche, di riepilogo, finanziarie, di stringa, di data/ora, di intervallo di date, di
matrice, di conversione del tipo, dei collegamenti delle applicazioni, del momento della valutazione, dello stato di
stampa, delle propr Sono disponibili anche alcune funzioni specifiche delle formule di formattazione condizionale.

1.7.2.2.10.2 Funzioni non specifiche dei report (sintassi


Crystal)

I gruppi di funzioni aritmetiche, finanziarie, di stringa, di data/ora, di conversione del tipo, di Collegamenti delle
applicazioni consistono principalmente di funzioni non specifiche per la creazione di report, disponibili in tutti gli
ambienti di programmazione con caratteristiche estese. Tali funzioni operano in modo analogo alle funzioni Visual
Basic con denominazione uguale o simile.

Nota
Alcune funzioni supportate dalla sintassi Crystal non sono elencate nella struttura Funzioni della sintassi
Crystal. Ciò dipende dal fatto che sono equivalenti alle funzioni della sintassi Crystal già elencate nella
struttura.

Ad esempio, la funzione Length è la funzione tradizionale della sintassi Crystal per estrarre la lunghezza di una
stringa. La sintassi Crystal supporta anche Len come sinonimo. Len è la funzione corrispondente nella sintassi
Visual Basic e Basic e viene inclusa nell’elenco per agevolare gli utenti della sintassi Visual Basic e Basic che
desiderano scrivere o modificare formule nella sintassi Crystal.

1.7.2.2.10.3 Funzioni di formattazione condizionale (sintassi


Crystal)

Quando si scrive una formula di formattazione condizionale, nella parte superiore della struttura Funzioni vengono
visualizzate alcune funzioni aggiuntive che agevolano l’utente nell’operazione. Ad esempio, si desidera formattare
il campo {Cliente.Vendite anno precedente} in modo che le vendite d’importo superiore a L. 22.500.000 siano
stampate in verde, le vendite d’importo inferiore a L.3.375.000 siano stampate in rosso e il resto del documento
sia stampato in nero.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
826 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Esempio

If {Customer.Last Year's Sales} > 100000 Then


crGreen
Else If {Customer.Last Year's Sales} < 15000 Then
crRed
Else
crBlack

In questo caso, si tratta di una funzione di formattazione del colore dei caratteri, pertanto, l'elenco delle costanti di
colore appare nella struttura Funzioni. L'esempio precedente utilizza tre costanti: crGreen, crRed e crBlack Al
posto delle costanti, è possibile utilizzare l’effettivo valore numerico corrispondente. Ad esempio, crRed equivale
a 255 e crGreen equivale a 32768. Tuttavia, la formula risulta più comprensibile utilizzando le costanti di colore.
Tutte le funzioni che utilizzano costanti nella sintassi Crystal prevedono il prefisso "cr".

La sintassi Crystal supporta ancora le funzioni con costanti di versioni precedenti senza il prefisso "cr". Ad
esempio, è possibile utilizzare "Red" al posto di "crRed". Tuttavia, si consiglia di utilizzare il prefisso "cr" che
organizza le funzioni con costanti.

Nota
Alcuni attributi di formattazione non utilizzano le funzioni con costanti. Ad esempio, non si desidera stampare i
valori del campo {Cliente.Vendite anno precedente} se le vendite hanno un importo inferiore a 50.000.

If {Customer.Last Year's Sales} < 50000 Then


True // Ometti il valore.
Else
False // Non omettere il valore.

O più semplicemente:

{Customer.Last Year's Sales} < 50000

Se l’importo delle vendite dell’ultimo anno è inferiore a 50.000

{Customer.Last Year's Sales} < 50000

è vera e la formula restituisce il valore Vero. Al contrario, se l’importo delle vendite dell’ultimo anno è maggiore o
uguale a 50.000

{Customer.Last Year's Sales} < 50000

è falsa e la formula restituisce il valore Falso.

1.7.2.2.10.4 Funzioni di formattazione condizionale di uso


generale (sintassi Crystal)

Le funzioni di formattazione condizionale di uso generale sono tre:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 827
● CurrentFieldValue
● DefaultAttribute
● GridRowColumnValue

La funzione DefaultAttribute può essere utilizzata per qualsiasi formula di formattazione, la funzione
CurrentFieldValue per qualsiasi formula di formattazione dei valori presenti nei campi e la funzione
GridRowColumnValue per qualsiasi formula di formattazione di valori presenti in un campo su una griglia a
campi incrociati o una griglia OLAP.

In particolare, la funzione CurrentFieldValue consente di formattare in modo condizionale le celle di una griglia
a campi incrociati o OLAP in base ai rispettivi valori, mentre la funzione GridRowColumnValue consente di
formattare in modo condizionale le celle di una griglia a campi incrociati o OLAP in base ai valori delle intestazioni
di riga o di colonna. In questo caso le due funzioni sono essenziali, in quanto nel linguaggio delle formule non vi è
altro modo di fare riferimento ai valori inseriti in questi campi.

Ad esempio, se si desidera omettere le celle dei campi incrociati se i valori sono inferiori a 50.000:

CurrentFieldValue < 50000

1.7.2.2.11 Operatori (sintassi Crystal)

Gli operatori sono simboli e parole speciali che descrivono un'operazione o un'azione che interessa due o più
valori. Gli operatori di una formula vengono letti e vengono eseguite le azioni specificate.

1.7.2.2.11.1 Operatori aritmetici (sintassi Crystal)

Gli operatori aritmetici sono utilizzati per combinare numeri, variabili numeriche, campi numerici e funzioni
numeriche e ottenere un altro numero.

Gli operatori aritmetici sono l'addizione (+), la sottrazione (-), la moltiplicazione (*), la divisione (/), la divisione dei
numeri interi (\), la percentuale (%), il modulo (Mod), la negazione (-) e l'elevamento a potenza (^).

//Stock prioritario in sospeso come percentuale dello stock comune


{Financials.Preferred Stock} %
{Financials.Common Stock};
7 + 2 * 3 - 2 + Sqr(6 + 3) * Length("up");
//La formula restituisce 17.

Ordine di precedenza

In generale, il programma valuta le espressioni nell’ordine seguente:

● da sinistra a destra
● seguendo le regole di precedenza dell'aritmetica di base.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
828 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Elenco degli operatori aritmetici in ordine di precedenza decrescente

● Elevamento a potenza (^)


● Negazione (-)
● Moltiplicazione, divisione e percentuale (*, /, %)
● Divisione dei numeri interi (\)
● Modulo (Mod)
● Addizione e sottrazione (+, -)

Prima vengono eseguite le moltiplicazioni e le divisioni, da sinistra a destra, quindi le addizioni e le sottrazioni. Ad
esempio, 5 + 10 * 3 = 5 + 30 = 35.

È possibile modificare quest’ordine di precedenza utilizzando le parentesi. Ad esempio, (5 + 10) * 3 = 15 * 3 = 45.


Se non si è certi dell’ordine di precedenza, è consigliabile definire l’ordine desiderato mediante le parentesi.

1.7.2.2.11.2 Operatori di confronto (sintassi Crystal)

Gli operatori di confronto sono utilizzati di solito per confrontare gli operandi rispetto a una condizione in una
struttura di controllo come un'espressione If.

Gli operatori di confronto sono uguale (=), diverso da (<>), minore di (<), minore o uguale a (<=), maggiore di (>)
e maggiore o uguale a (>=).

Il gruppo di operatori di confronto ha un ordine di precedenza inferiore rispetto agli operatori aritmetici. Pertanto,
espressioni come 2 + 3 2 * 9 sono uguali a (2 + 3) (2*9).

1.7.2.2.11.3 Operatori booleani (sintassi Crystal)

Tali operatori sono utilizzati di solito con gli operatori di confronto per creare le condizioni per le strutture di
controllo.

Gli operatori booleani sono elencati di seguito in ordine di precedenza decrescente: Not, And, Or, Xor, Eqv e Imp.

Il gruppo di operatori booleani ha un ordine di precedenza inferiore rispetto agli operatori di confronto. Ad
esempio, l'espressione 2 < 3 And 4 >= -1 è uguale a (2 < 3) And (4 >= -1).

1.7.2.2.11.4 Campi e valori Null (sintassi Crystal)

In generale, quando SAP Crystal Reports rileva un campo con valore nullo in una formula, arresta
immediatamente la valutazione della formula e non genera alcun valore. Se si desidera includere nella formula i
valori dei campi NULL, è necessario specificarne esplicitamente l'inclusione utilizzando una delle funzioni speciali,
sviluppate per la gestione dei campi NULL: IsNull, PreviousIsNull o NextIsNull.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 829
Per quanto riguarda gli operatori, quando SAP Crystal Reports valuta la condizione:

IsNull({Product.Color}) Or
InStr({Product.Color}, " ") = 0

valuta in primo luogo IsNull ({Prodotto.Colore}) e, una volta determinato che il valore relativo è Vera, considera
l’intera condizione come Vera e non deve verificare se

InStr({Product.Color}, " ") = 0

In altre parole, SAP Crystal Reports non valuta ulteriormente un'espressione booleana quando può dedurre i
risultati dall'intera espressione. Nell’esempio seguente, la formula impedisce i tentativi di divisione per zero nei
casi in cui il denominatore è 0:

Local NumberVar num;


Local NumberVar denom;
...
If denom <> 0 And num / denom > 5 Then
...

Il campo {Prodotto.Colore} contiene sia i colori fondamentali, ad esempio il "rosso" e il "nero", sia colori di fantasia
composti da due parole, ad esempio "grigio ferro" e "verde acqua". Supporre di scrivere una formula che inserisca
la parola "fondamentale" per i colori fondamentali e la parola "fantasia" per gli altri colori.

If InStr({Product.Color}, " ") = 0 Then


"basic"
Else
"fancy"

La chiamata di funzione InStr ricerca uno spazio nella stringa {Prodotto.Colore}. Se viene trovato uno spazio, ne
restituisce la posizione, altrimenti restituisce il valore 0. Poiché i colori fondamentali sono composti da una sola
parola senza spazi, la funzione InStr restituirà il valore 0.

Per alcuni prodotti, ad esempio il lucchetto a catena Guardian, non è stato registrato un valore colore; pertanto, il
campo {Prodotto.Colore} contiene un valore null nel database in corrispondenza di quel record. Accanto al record
Lucchetto a catena Guardian non viene stampata quindi alcuna dicitura.

Di seguito viene indicato come correggere l'esempio precedente utilizzando la funzione IsNull:

If IsNull({Product.Color}) Or
InStr({Product.Color}, " ") = 0 Then
"basic"
Else
"fancy"

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 715]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
830 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.2.2.12 Strutture di controllo (sintassi Crystal)

Le formule senza strutture di controllo eseguono ogni espressione della formula una sola volta, al momento della
valutazione. Le espressioni vengono eseguite in sequenza, dalla prima espressione della formula all’ultima. Le
strutture di controllo consentono di modificare questa rigida sequenza. A seconda della struttura di controllo
prescelta, è possibile ignorare alcune istruzioni o valutarne altre ripetutamente, se sussistono determinate
condizioni. Le strutture di controllo rappresentano lo strumento principale di espressione della logica aziendale e
le formule tipiche dei report ne fanno un uso considerevole.

1.7.2.2.12.1 Espressioni If (sintassi Crystal)

L'espressione If è una delle strutture di controllo più utili. Consente di valutare un’espressione se una condizione è
vera e, nel caso contrario, di valutare un’espressione diversa.

Nota
Durante la formattazione con formule condizionali è necessario includere sempre la parola chiave Else. In caso
contrario i valori che non soddisfano la condizione If potrebbero non mantenere il formato originale. Per evitare
che ciò si verifichi, utilizzare la funzione DefaultAttribute (If...Else DefaultAttribute).

Esempio

Una società decide di versare un bonus del 4 % al personale, con l’eccezione del personale addetto al reparto
Vendite che riceverà un bonus del 6 per cento. La formula riprodotta di seguito utilizza un’espressione If e realizza
quanto segue:

If {Employee.Dept} = "Sales" Then


{Employee.Salary} * 0.06
Else
{Employee.Salary} * 0.04

In questo esempio, se la condizione {Dipendente.Dip} = "Vendite" dà come risultato true (vero), l'espressione

{Employee.Salary} * 0.06

viene elaborata. In caso contrario, viene elaborata l'espressione che segue la clausola Else, cioè

{Employee.Salary} * 0.04

viene elaborata.

Si supponga che un’altra società voglia offrire al personale un bonus del 4%, ma con un importo minimo di 1.000
dollari. Osservare che la clausola facoltativa Else non è inclusa, è opzionale e non necessaria in questo caso.

Local CurrencyVar bonus := {Employee.Salary} * 0.04;


If bonus < 1000 Then
bonus := 1000;
//L’espressione finale è solo la variabile 'bonus'.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 831
//Restituisce il valore della variabile ed è il risultato della formula
bonus

Un altro modo di realizzare l’esempio 2 è di utilizzare una clausola Else:

Local CurrencyVar bonus := {Employee.Salary} * 0.04;


If bonus < 1000 Then
1000
Else
bonus

Ora si supponga che la società precedente desideri impostare anche un bonus d’importo massimo di 5.000
dollari. A questo punto è necessario utilizzare una clausola Else If. L'esempio seguente presenta una sola clausola
Else If, ma è possibile aggiungerne un numero indefinito,

Nota
Per ogni istruzione If, è prevista una sola clausola Else.

La clausola Else viene eseguita se nessuna delle condizioni If o Else If è vera.

Local CurrencyVar bonus := {Employee.Salary} * 0.04;


If bonus < 1000 Then
1000
Else If bonus > 5000 Then
5000
Else
bonus;

Esempio

Supporre che una società desideri calcolare una stima dell’importo delle tasse che un dipendente è tenuto a
versare inserendo messaggi appropriati. Il reddito inferiore a 8.000 $ non è tassato, il reddito compreso tra 8.000
e 20.000 $ è tassato al 20%, il reddito compreso tra 20.000 e 35.000 $ è tassato al 29%, infine, il reddito
superiore a 35.000 $ è tassato al 40%.

Local CurrencyVar tax := 0;


Local CurrencyVar income := {Employee.Salary};
Local StringVar message := "";
If income < 8000 Then
(
message := "no";
tax := 0
)
Else If income >= 8000 And income < 20000 Then
(
message := "lowest";
tax := (income - 8000)*0.20
)
Else If income >= 20000 And income < 35000 Then
(
message := "middle";
tax := (20000 - 8000)*0.20 + (income - 20000)*0.29
)
Else

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
832 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
(
message := "highest";
tax := (20000 - 8000)*0.20 + (35000 - 20000)*0.29 +
(income - 35000)*0.40
);
//Usa 2 posizioni decimali e la virgola come separatore della migliaia
Local StringVar taxStr := CStr (tax, 2, ",");
"Sei compreso nello " & message & " scaglione di imposta. "Il prelievo fiscale
stimato è " & taxStr & "."

Nota
Lo scopo delle variabili è di semplificare la logica del calcolo. Inoltre, due espressioni vengono eseguite quando
una delle condizioni viene soddisfatta; la prima assegna la variabile delle tasse mentre la seconda assegna la
variabile del messaggio. È spesso utile l’esecuzione di più espressioni come risultato di una condizione.

1.7.2.2.12.1.1 Espressioni di raggruppamento (sintassi


Crystal)

L'espressione If è un'espressione. In altre parole, dà come risultato un valore di un certo tipo. Se non vi è una
clausola Else e la condizione non è vera, il valore restituito sarà il valore predefinito del tipo. Ad esempio:

If Length ({Employee.First Name}) < 5 Then


"short"

L’espressione If precedente restituisce un valore di stringa. Il valore di stringa è "breve" se il nome del dipendente
ha meno di 5 lettere, negli altri casi la stringa vuota "".

Si consideri la formula riportata di seguito.

If Year({Orders.Order Date}) >= 1995 Then


{Orders.Order Date}

Per le date degli ordini prima del 1995, l’espressione If precedente restituisce il valore Date/time null. Si tratta di
un valore data/ora e non data, in quanto {Ordini.Data ordine} è un campo di database DateTime. Il valore nullo
DataOra non viene stampato da SAP Crystal Reports; pertanto, se la formula precedente è inserita in un report, il
campo della formula è vuoto in relazione alle date degli ordini precedenti al 1995. I valori nulli Ora e Data si
comportano in modo analogo.

Di seguito è riportato un esempio che descrive l’uso delle parentesi con più di un’espressione eseguita come
risultato di una condizione If. Una società addebita una tariffa del 5 % per gli ordini spediti entro 3 giorni e del 2
percento negli altri casi. Si desidera stampare il messaggio "Spedizione rapida 100" o "Spedizione Ordinaria 20".

Local StringVar message;


Local CurrencyVar ship;
If {Orders.Ship Date} - {Orders.Order Date} <= 3 Then
(
message := "Rush";
//Un punto e virgola alla fine della riga successiva non è obbligatorio
ship := {Orders.Order Amount} * 0.05
) //Non è possibile inserire qui un punto e virgola
Else

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 833
(
message := "Regular";
ship := {Orders.Order Amount} * 0.02;
);
//Il punto e virgola precedente è richiesto per separare l'espressione If
dall'espressione finale di seguito.
message & " shipping is " & CStr (ship)

Quando le espressioni sono raggruppate con parentesi, l’intero gruppo viene considerato come una singola
espressione e il valore e il tipo corrispondono al valore e al tipo dell’espressione finale all’interno delle parentesi.

//L'espressione completa del gruppo nelle parentesi ha il tipo Valuta


(
//La prima espressione nelle parentesi ha il tipo Stringa
message := "Rush";
//La seconda e l'ultima espressione tra parentesi ha il tipo Valuta
ship := {Orders.Order Amount} * 0.05;
)

Pertanto, la formula nell’esempio seguente è errata. La parte Then dell’espressione If restituisce infatti un valore
Valuta mentre la parte Else restituisce un valore Stringa. Ciò non è consentito in quanto l’espressione If è
un’espressione e deve sempre restituire un valore dello stesso tipo.

Local StringVar message;


Local CurrencyVar ship;
If {Orders.Ship Date} - {Orders.Order Date} <= 3 Then
(
message := "Rush";
ship := {Orders.Order Amount} * 0.05
)
Else
(
//Le seguenti 2 righe sono state scambiate
ship := {Orders.Order Amount} * 0.02;
message := "Regular";
);
message & " shipping is " & CStr (ship)

Un metodo per correggere le formule errate senza considerare l'ordine delle espressioni consiste nel fare in modo
che l'espressione If restituisca un valore costante dello stesso tipo in ogni ramo. Ad esempio, l’espressione If
restituisce ora il valore numerico 0:

Local StringVar message;


Local CurrencyVar ship;
If {Orders.Ship Date} - {Orders.Order Date} <= 3 Then
(
message := "Rush";
ship := {Orders.Order Amount} * 0.05;
0
)
Else
(
ship := {Orders.Order Amount} * 0.02;
message := "Regular";
0
);
message & " shipping is " & CStr (ship)

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
834 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.2.2.12.2 Espressioni Select (sintassi Crystal)

L’espressione Select è simile a un’espressione If. Tuttavia, può essere utilizzata per scrivere formule più chiare e
meno ripetitive. Ad esempio, per valutare il campo {Cliente.Fax} e determinare se il prefisso si riferisce allo stato di
Washington (206, 360, 509) o British Columbia, Canada (604, 250):

Select {Customer.Fax}[1 To 3]
Case "604", "250" :
"BC"
Case "206", "509", "360" :
"WA"
Default :
"";

L'espressione a destra della parola chiave Select è chiamata condizione Select. Nell’esempio precedente, è
({Cliente.Fax}[1 To 3]). L’espressione Select ricerca il primo caso che corrisponde alla condizione Select, quindi
esegue l’espressione dopo i due punti relativi a quel caso. Il caso Default viene soddisfatto se nessuno dei casi
precedenti corrisponde alla condizione Select. Osservare inoltre la presenza dei due punti dopo Default.

Local StringVar areaCode := {Customer.Fax}[1 To 3];


If areaCode In ["604", "250"] Then
"BC"
Else If areaCode In ["206", "509", "360"] Then
"WA"
Else
"";

Questa formula raggruppa il numero di nomination all’Oscar ricevute da un film nelle categorie bassa, media, alta
o estrema e, durante l’operazione, mostra alcune possibilità per gli elenchi di espressioni che seguono le etichette
Case.

Select {movie.NOM}
Case 1,2,3, Is < 1 :
(
10 + 20;
"low"
)
Case 4 To 6, 7, 8, 9 :
"medium"
Case 10 :
"high"
Default :
"extreme"

La clausola Default dell’espressione Select è facoltativa. Se la clausola Default manca o nessun caso corrisponde
a tale clausola, l’espressione Select restituisce il valore predefinito del tipo di espressione. Se nell’esempio
precedente la clausola Default è stata omessa {movie.NOM} = 11, la formula restituisce la stringa vuota "".
Applicare anche all'espressione Select il contenuto della sezione Maggiori dettagli sulle espressioni If.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 835
1.7.2.2.12.3 Cicli For (sintassi Crystal)

I loop For/Next consentono di valutare una sequenza di espressioni più volte. Si distinguono, pertanto, dalle
espressioni If e Select nelle quali il programma valuta ogni espressione una sola volta durante la valutazione della
formula.

I loop For/Next sono consigliabili quando si conosce in anticipo il numero di volte in cui le espressioni devono
essere valutate.

Esempio
Utilizzo di un loop For

Supporre di voler invertire la stringa {Cliente.Nome.Cliente}. Ad esempio, "Ciclisti di città" diventa "itsilciC id
àttiC".

Local StringVar str := "";


Local NumberVar strLen :=
Length ({Customer.Customer Name});
Local NumberVar i;
For i := 1 To strLen Do
(
Local NumberVar charPos := strLen - i + 1;
str := str + {Customer.Customer Name}[charPos]
);
str

La modalità di funzionamento di questa formula viene illustrata presumendo che il valore corrente del campo
{Cliente.Nome Cliente} sia "Aria tersa". Si assegna alla variabile strLen la lunghezza del campo "Aria tersa",
ovvero 9. La variabile è nota come controvariabile For in quanto il valore della variabile cambia a ogni
ripetizione del ciclo For. In altre parole, è utilizzata per contare le ripetizioni del loop. Il loop For viene ripetuto 9
volte, la prima volta, i è uguale a 1, la seconda a 2, la terza a 3 e così via fino a quando i = 9. Durante la prima
ripetizione, il nono carattere della stringa {Cliente.Nome cliente} è aggiunto alla variabile str della stringa vuota.
Pertanto, str è uguale a "a" dopo la prima ripetizione. Durante la seconda ripetizione, l'ottavo carattere della
stringa {Cliente.Nome Cliente} è aggiunto a str, dunque la formula è uguale a "as". Questo procedimento
continua fino alla nona ripetizione, quando str è uguale a “airA asret”, ovvero la stringa invertita.

Esempio
Utilizzo di un loop For e di una clausola Step

Di seguito viene riportata una versione semplificata della formula precedente; in questa versione viene
utilizzata una clausola Step con un valore Step negativo di -1. Per l'esempio "Aria tersa", i è uguale a 9 per la
prima ripetizione, a 8 per la seconda, a 7 per la terza e così via fino a quando è uguale a 1 nella ripetizione finale.

Local StringVar str := "";


Local NumberVar strLen :=
Length ({Customer.Customer Name});
Local NumberVar i;
For i := strLen To 1 Step -1 Do
(
str := str + {Customer.Customer Name}[i]
);
str

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
836 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Esempio
Utilizzo di StrReverse

La versione più semplice consiste nell’utilizzare la funzione predefinita StrReverse:

StrReverse ({Customer.Customer Name})

Le funzioni di stringa predefinite in SAP Crystal Reports possono gestire molte delle applicazioni di
elaborazione delle stringhe che, di solito, vengono gestite utilizzando un ciclo For o un altro tipo di ciclo.
Tuttavia, i loop For garantiscono la massima flessibilità nell’elaborazione delle stringhe ed efficacia
nell’elaborazione delle matrici; tale caratteristica può essere essenziale se le funzioni predefinite non sono
disponibili per l’applicazione desiderata.

1.7.2.2.12.3.1 Esempio di ciclo For (sintassi Crystal)

Di seguito viene riportato un esempio articolato delle capacità di elaborazione delle stringhe di SAP Crystal
Reports. Il codice di Cesare è un codice dalla struttura semplificata, attribuito tradizionalmente a Giulio Cesare. In
questo codice, ogni lettera di una parola viene sostituita da una lettera posizionata cinque caratteri più avanti
nell’alfabeto. Ad esempio, "Casa" diventa "hfaf". Osservare che "s" viene sostituita da "a": poiché nell'alfabeto non
sono presenti 5 caratteri dopo la "s", il conteggio riparte dall'inizio.

La formula riportata di seguito viene utilizzata applicando il codice di Cesare al campo {Clienti.Nome cliente} nel
database Xtreme:

Local StringVar inString := {Customer.Customer Name};


Local NumberVar shift := 5;
Local StringVar outString := "";
Local NumberVar i;
For i := 1 To Length(inString) Do
(
Local StringVar inC := inString [i];
Local StringVar outC;
Local BooleanVar isChar :=
LowerCase(inC) In "a" To "z";
Local BooleanVar isUCaseChar :=
isChar And (UpperCase (inC) = inC);
inC := LCase(inC);
If isChar Then
(
Local NumberVar offset :=
(Asc(inC) + shift - Asc("a")) Mod
(Asc("z") - Asc("a") + 1);
outC := Chr(offset + Asc("a"));
If isUCaseChar Then outC := UpperCase(outC)
)
Else
outC := inC;
outString := outString + outC
);
outString

Nell’esempio precedente, un’espressione If è annidata all’interno del blocco di espressioni del loop For. Questa
espressione If è responsabile dello spostamento esatto dei singoli caratteri. Ad esempio, le lettere sono trattate

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 837
diversamente dalla punteggiatura e dagli spazi. In particolare, la punteggiatura e gli spazi non sono codificati. La
regola generale vuole che le strutture di controllo siano annidate all’interno di altre strutture di controllo e che più
espressioni possano essere incluse con le relative parentesi nel blocco di espressioni di un’altra struttura di
controllo.

1.7.2.2.12.3.2 Uscita dai cicli For (sintassi Crystal)

È possibile uscire da un loop For utilizzando il loop Exit For. Nell'esempio riportato di seguito, vengono ricercati i
nomi di matrice globale per il nome "Mario". Se il nome viene trovato, la formula restituisce l’indice del nome nella
matrice. In caso contrario, restituisce -1.

Ad esempio, se la matrice dei nomi è:

["Frank", "Helen", "Fred", "Linda"]

la formula restituisce 3.

Global StringVar Array names;


//I nomi sono stati inizializzati e inseriti in altre formule
Local NumberVar i;
Local NumberVar result := -1;
//La funzione UBound restituisce le dimensioni dell'argomento della matrice
For i := 1 to UBound (names) Do
(
If names [i] = "Fred" Then
(
result := i;
Exit For
)
);
result

Se considerato come un'espressione, il loop For restituisce sempre il valore booleano Vero. Pertanto, è
sconsigliabile inserire il loop For come ultima espressione di una formula, in quanto la formula visualizzerà solo il
valore True e non il risultato previsto.

1.7.2.2.12.4 Cicli While (sintassi Crystal)

Un loop While può essere utilizzato per eseguire un blocco fisso di istruzioni un numero indefinito di volte.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
838 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Due tipi di ciclo While

Tipo di ciclo Definizione Esempio

While ... Do Il ciclo While ... Do valuta la condi­


zione; se la condizione è vera, valuta While condition Do
l'espressione che segue il Do. expression

Al termine di questa operazione, il


loop valuta nuovamente la condi­
zione, se la condizione è vera, il loop
valuta nuovamente l’espressione
che segue il Do.

Tale processo viene ripetuto fino a


quando la condizione risulta falsa.

Do ... While Il ciclo Do ... While valuta l'espres­


sione una sola volta, a prescindere Do
dalle condizioni. expression
While condition
Quindi, valuta la condizione e se la
condizione è vera, valuta nuova­
mente l’espressione. Tale processo
viene ripetuto fino a quando la con­
dizione risulta falsa.

Nota
I cicli While supportano un'istruzione Exit While per uscire immediatamente dal ciclo. La relativa funzione è
analoga a Exit For nei loop For. Come nel caso dei loop For, il loop While restituisce sempre il valore booleano
Vero se viene valutato come un'espressione.

Esempio di ciclo While ... Do

La formula seguente ricerca la prima occorrenza di una cifra in una stringa di input. Se viene trovata una cifra, la
formula ne restituisce la posizione, altrimenti restituisce -1. In questo caso, la stringa di input è impostata
esplicitamente su una costante di stringa, ma potrebbe essere impostata ugualmente su un campo del database
tipo Stringa.

Ad esempio, per la stringa di input "I 7 nani", la formula restituisce 3, ovvero la posizione della cifra 7.

Local StringVar inString := "The 7 Dwarves";


Local NumberVar strLen := Length (inString);
Local NumberVar result := -1;
Local NumberVar i := 1;
While i <= strLen And result = -1 Do
(
Local StringVar c := inString [i];
If NumericText (c) Then
result := i;
i := i + 1;
);
result

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 839
1.7.2.2.12.5 Prevenzione dei cicli infiniti (sintassi Crystal)

Esiste un meccanismo di sicurezza che impedisce il blocco dell’elaborazione dei report dovuto a un loop infinito.
Ogni valutazione di una formula prevede un massimo di 100.000 valutazioni della condizione loop per ogni
valutazione della formula. Ad esempio:

Local NumberVar i := 1;
While i <= 200000 Do
(
If i > {movie.STARS} Then
Exit While;
i := i + 1
);
20

Se {movie.STARS} è maggiore di 100.000, la condizione ciclo (i <= 200000) sarà valutata oltre il numero di volte
consentito e verrà visualizzato un messaggio di errore. In caso contrario, il loop è valido.

Nota
ll meccanismo di sicurezza si applica alle singole formule e non ai singoli cicli. Ad esempio:

Local NumberVar i := 1;
For i := 1 To 40000 Do
(
Sin (i);
);
While i <= 70000 Do
(
i := i + 1;
)

Anche la formula precedente attiva il meccanismo di sicurezza, in quanto 100.000 si riferisce al numero totale di
valutazioni delle condizioni loop nella formula e tale formula avrà 40001 +70001 valutazioni di questo tipo.

1.7.2.3 Riduzione della dimensione delle formule

A scopo di riferimento, vengono indicati di seguito i limiti di dimensioni delle formule:

● La lunghezza massima di una costante di stringa, un valore stringa contenuto in una variabile di stringa, un
valore stringa restituito da una funzione o un elemento stringa di una matrice di stringhe è 65.534 byte.
● La dimensione massima di una matrice è 1000 elementi.
● Il numero massimo di argomenti di una funzione è 1.000. Questo limite si applica alle funzioni che possono
disporre di un numero indefinito di argomenti, ad esempio Choose.
● Il numero massimo di valutazioni della condizione loop per ogni valutazione di una formula è 100.000.
● Le funzioni di data/ora modellate su Visual Basic accettano date dall’anno 100 all’anno 9999. Le funzioni
tradizionali di SAP Crystal Reports accettano date comprese tra l'anno 1 e l'anno 9999.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
840 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3 Riferimenti all'interfaccia utente

In questa sezione sono descritte le finestre di dialogo disponibili in SAP Crystal Reports. Questi argomenti
vengono visualizzati facendo clic su F1 oppure sulla guida in linea (pulsante ?) nella finestra di dialogo di SAP
Crystal Reports.

1.7.3.1 Finestre di dialogo di SAP Crystal Reports

In questa sezione sono descritte le finestre di dialogo disponibili in SAP Crystal Reports. Questi argomenti
vengono visualizzati facendo clic su F1 oppure sulla guida in linea (pulsante ?) nella finestra di dialogo di SAP
Crystal Reports.

1.7.3.1.1 Finestra di dialogo Aggiungi comando al report

Utilizzare questa finestra di dialogo per scrivere un comando SQL (query) che verrà rappresentato in SAP Crystal
Reports come un oggetto Table.

Questa finestra di dialogo viene visualizzata quando si fa doppio clic su Aggiungi comando nell'Esperto database.

Query SQL Immettere in questa casella il testo del comando SQL.

Elenco parametri Creare, eliminare o modificare in questa casella i parametri del comando SQL. Facendo clic su
Crea o su Modifica viene visualizzata la finestra di dialogo Parametro comando.

Informazioni correlate

Definizione delle tabelle virtuali in base a un Comando/Query SQL [pagina 660]


Finestra di dialogo Esperto database [pagina 976]
Finestra di dialogo Parametro comando [pagina 863]

1.7.3.1.2 Finestra di dialogo Sfoglia e incolla dati

Utilizzare la finestra di dialogo Sfoglia e incolla dati per visualizzare in anteprima il tipo di dati, la lunghezza e il
contenuto dei campi e per incollare un valore nella formula o nei criteri di selezione.

Questa finestra di dialogo viene visualizzata quando si fa clic sul pulsante Sfoglia dati nell'Finestra di dialogo Editor
delle formule [pagina 910]. L'origine (alias) e il nome del campo vengono visualizzati come titolo della finestra di
dialogo.

Tipo Il tipo di dati del campo (stringa, numero e così via).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 841
Lunghezza La lunghezza del campo definita per il tipo di dati specificato.

Casella di Nella casella di scorrimento viene visualizzato un elenco di valori del campo.
scorrimento
In base all'impostazione predefinita, quando si sfoglia un campo vengono visualizzati i primi
500 valori univoci presenti in tale campo. È possibile modificare questa impostazione per il
report corrente deselezionando l'opzione Seleziona dati distinti per sfogliare nella finestra di
dialogo Opzioni report.

Se l'opzione Seleziona dati distinti per sfogliare non è selezionata, si otterranno i valori univoci
contenuti nei primi 500 record.

Nota
Poiché molti server SQL non supportano la selezione di record distinti per tipi di dati lunghi,
come campi memo e BLOB, tali campi non consentono di selezionare né sfogliare record
distinti.

Incolla dati Fare clic sul pulsante Incolla dati per incollare il valore nella formula.

Se non è possibile connettersi a un database perché non è disponibile oppure è protetto da


password, sarà tuttavia possibile sfogliare i dati salvati.

Informazioni correlate

Finestra di dialogo Opzioni report [pagina 934]


Accesso e aggiunta di dati [pagina 657]
Esecuzione di calcoli nei report [pagina 713]

1.7.3.1.3 Finestra di dialogo Sfoglia dati

Utilizzare la finestra di dialogo Sfoglia dati campo per visualizzare in anteprima il tipo di dati, la lunghezza e il
contenuto dei campi.

Questa finestra di dialogo viene visualizzata quando si fa clic con il pulsante destro del mouse su un campo di
database nell'Explorer Campo e si seleziona Sfoglia dati campo oppure quando si fa clic sul pulsante Sfoglia dati in
una finestra di dialogo. L'origine (alias) e il nome del campo vengono visualizzati come titolo della finestra di
dialogo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Tipo Il tipo di dati del campo (stringa, numero e così via).

Lunghezza La lunghezza del campo definita per il tipo di dati specificato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
842 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Casella di Nella casella di scorrimento viene visualizzato un elenco di valori del campo.
scorrimento
In base all'impostazione predefinita, quando si sfoglia un campo vengono visualizzati i primi
500 valori univoci presenti in tale campo. È possibile modificare questa impostazione per il
report corrente deselezionando l'opzione Seleziona dati distinti per sfogliare nella finestra di
dialogo Opzioni report.

Se l'opzione Seleziona dati distinti per sfogliare non è selezionata, si otterranno i valori univoci
contenuti nei primi 500 record.

Nota
Poiché molti server SQL non supportano la selezione di record distinti per tipi di dati lunghi,
come campi memo e BLOB, tali campi non consentono di selezionare né sfogliare record
distinti.

Se non è possibile connettersi a un database perché non è disponibile oppure è protetto da


password, sarà tuttavia possibile sfogliare i dati salvati.

Informazioni correlate

Finestra di dialogo Opzioni report [pagina 934]


Explorer Campo [pagina 646]
Accesso e aggiunta di dati [pagina 657]
Oggetti campo e oggetti testo [pagina 665]

1.7.3.1.4 Finestra di dialogo Modifica opzioni di gruppo

Utilizzare la finestra di dialogo Modifica opzioni di gruppo per modificare un gruppo esistente. Questa finestra di
dialogo viene visualizzata quando si fa clic sul pulsante Opzioni nella finestra di dialogo Esperto gruppo.

Per ulteriori informazioni, vedere l'argomento relativo alla Finestra di dialogo Inserisci gruppo [pagina 918], che
ha le stesse funzioni.

Informazioni correlate

Finestra di dialogo Esperto gruppo [pagina 983]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 843
1.7.3.1.5 Finestra di dialogo Rilevata modifica in formula
selezione record

Questa finestra di dialogo viene visualizzata quando in SAP Crystal Reports viene rilevata una modifica nella
formula di selezione record del report.

Usa dati salvati Fare clic su questa opzione per eseguire il report con i dati correnti (ossia, i dati aggiornati non
vengono recuperati dal database).

Aggiorna dati Fare clic su questa opzione se si desidera eseguire il report con i dati aggiornati del database.

Informazioni correlate

Selezione dei record [pagina 678]

1.7.3.1.6 Finestra di dialogo Opzioni grafico

Utilizzare la finestra di dialogo Opzioni grafico per modificare il formato generale, il layout e l’aspetto di un grafico.
Per visualizzare questa finestra di dialogo, fare clic con il pulsante destro del mouse su un grafico in un report,
scegliere Opzioni grafico e fare clic su Generale.

1.7.3.1.6.1 Scheda Generale (Opzioni grafico)

La scheda Generale consente di modificare la formattazione generale del grafico. Le opzioni disponibili in questa
scheda possono variare in base al tipo di grafico utilizzato nel report.

Generale

Usa profondità Utilizzare questa casella di controllo per applicare l'effetto di profondità o per creare un grafico
completamente piatto. Questa opzione non è disponibile per i grafici 3D.

Profondità Quando l'opzione Usa profondità è selezionata, utilizzare questo dispositivo di scorrimento per
specificare la profondità da applicare alla cornice e alle linee di andamento del grafico.

Direzione Quando l'opzione Usa profondità è selezionata, utilizzare questo dispositivo di scorrimento per
specificare la direzione nella quale applicare la profondità.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
844 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Grafici a barre, di Gantt, con asse numerico, radar, azionari e a intervallo a
barre 3D

Sovrapporre Utilizzare questo dispositivo di scorrimento per modificare la quantità di sovrapposizione


delle colonne all'interno di ogni categoria. Con un valore di –100 le barre all'interno di ogni
gruppo saranno sovrapposte tra loro. Con un valore di +100 vi sarà la massima distanza
possibile tra le barre che non si sovrapporranno così alla categoria seguente. Questa opzione
non è disponibile per i grafici azionario e a intervallo barre 3D.

Larghezza Utilizzare questo dispositivo di scorrimento per modificare la distanza tra ogni gruppo di barre
distanza in ogni categoria. Più elevato è il valore, maggiore è la distanza tra ogni gruppo di barre.

Forma intervallo Scegliere un'opzione da questa casella di riepilogo per modificare la forma di ciascun
barre intervallo tra le barre. Questo campo è disattivato se la casella di controllo Usa profondità è
selezionata.

Grafici a bolle

Dimensione Utilizzare questo dispositivo di scorrimento per cambiare le dimensioni di tutti gli indicatori del
grafico a bolle.

Forma Scegliere l'opzione desiderata da questa casella di riepilogo a discesa per cambiare la forma di ogni
intervallo barre (linee di andamento), per esempio da rettangolare a rotonda, a forma di stella e
così via. Questa selezione modifica anche la forma degli indicatori nell'area legenda del grafico, se
visualizzata.

Grafici a colonne

Sovrapporre Utilizzare questo dispositivo di scorrimento per modificare la quantità di sovrapposizione


delle colonne all'interno di ogni categoria. Con un valore di –100 le colonne all'interno di ogni
gruppo saranno sovrapposte tra loro. Con un valore di +100 vi sarà la massima distanza
possibile tra le colonne che non si sovrapporranno così alla categoria seguente. Questa
opzione non è disponibile per i grafici a colonne conformi 3D.

Larghezza Utilizzare questo dispositivo di scorrimento per modificare la distanza tra il gruppo di barre in
distanza ogni categoria. Più elevato è il valore, maggiore è la distanza tra ogni gruppo di colonne.

Forma intervallo Scegliere l'opzione desiderata da questa casella di riepilogo a discesa per cambiare la forma
barre degli intervalli tra le colonne, ad esempio da rettangolare a rotonda, a forma di stella e così via.
Per i grafici a colonne conformi 3D, è possibile selezionare Intervallo barre rettangolare,
Colonna circolare, Cono/Piramide, Cubo mobile o Sfera mobile. Questo campo viene
disattivato se la casella di controllo Usa profondità è selezionata.

Visualizza linee Solo per i grafici in pila e a colonne percentuali, utilizzare questa casella di controllo per
serie mostrare o nascondere una linea che connette ogni serie di intervalli nel grafico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 845
Grafici a imbuto

Inclina Utilizzare questo dispositivo di scorrimento per inclinare il grafico a imbuto. Se si selezionano
valori bassi, l'imbuto risulterà più piatto (rispetto al visualizzatore), mentre il valore massimo
inclinerà l'imbuto in modo che si apra un ovale.

Larghezza Utilizzare questo dispositivo di scorrimento per modificare la larghezza della parte inferiore
imbuto dell'imbuto. I valori più altri aumentano la larghezza della parte inferiore dell'imbuto, mentre i
valori più bassi ne riducono la larghezza fino a farlo diventare un punto.

Altezza imbuto Utilizzare questo dispositivo di scorrimento per modificare l'altezza del grafico a imbuto. I valori
più alti rendono l'imbuto più basso, mentre i valori più bassi lo fanno apparire più alto.

Esplodi L'esplosione di un grafico a imbuto distacca ogni settore di dati e aggiunge un effetto
dell'imbuto cavo. Utilizzare il dispositivo di scorrimento per determinare la distanza tra ogni
settore distaccato.

Ripristina Se sono state modificate opzioni di formattazione in un grafico a imbuto, selezionare questo
imbuto pulsante per ripristinarle alle impostazioni originali.

Tipometri

Angolo iniziale Regolare l'angolo per aumentare o ridurre l'intervallo circolare. Un angolo iniziale pari a 0 e
un angolo finale pari a 180 creano un semicerchio.

Angolo finale Regolare l'angolo per aumentare o ridurre l'intervallo circolare.

Spessore circolare Utilizzare questo dispositivo di scorrimento per modificare lo spessore della struttura del
tipometro. Può essere necessario aumentare lo spessore circolare se si intende aggiungere
bande di qualità al tipometro.

Numero di Utilizzare questo dispositivo di scorrimento per specificare il numero di indicatori da


indicatori per riga visualizzare in una riga del report.

Cornice smussata Selezionare questa casella di controllo per aggiungere profondità alla cornice intorno al
grafico in modo che assomigli a un pulsante. Per conferire al grafico l'aspetto di un
pulsante, è necessario applicare un colore di riempimento allo sfondo del grafico.

Istogrammi

Larghezza Utilizzare questo dispositivo di scorrimento per cambiare la distanza tra le barre/colonne e la
distanza larghezza delle stesse. Più elevati sono i valori, maggiore è la distanza tra le barre/colonne e
minore è il loro spessore. Meno elevati sono i valori, minore è lo spazio tra le barre/colonne e
maggiore è il loro spessore.

Forma Scegliere un'opzione da questa casella di riepilogo per modificare la forma delle barre. Questo
intervallo barre campo è disattivato se la casella di controllo Usa profondità è selezionata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
846 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Grafici a linee

Stile linea Utilizzare questo elenco per scegliere lo stile della linea da utilizzare. È possibile scegliere Indicatori
e linee, Solo indicatori o Solo linee.

Dimensione Se è selezionato Indicatori e linee oppure Solo indicatori, utilizzare questo dispositivo di
scorrimento per modificare le dimensioni degli indicatori.

Forma Se è selezionato Indicatori e linee o Solo indicatori, scegliere un'opzione in questa casella di
riepilogo per cambiare la forma degli indicatori da rettangolare a circolare, a forma di stella e così
via.

Grafici a torta o a ciambella

Inclina Utilizzare questo dispositivo di scorrimento per inclinare il grafico a torta. Valori inferiori
producono un grafico piatto (rivolto verso l'utente), mentre il valore massimo inclina il grafico
in maniera tale da visualizzare solo il bordo del grafico.

Profondità Utilizzare questo dispositivo di scorrimento per modificare lo spessore del grafico a torta.

Rotazione Utilizzare questo dispositivo di scorrimento per ruotare il grafico a torta.

Esplodi L'esplosione di un grafico a torta o a ciambella distacca tutti i settori dal centro. Utilizzare
questo dispositivo di scorrimento per staccare tutte le sezioni dalla torta.

Torte per riga Nei grafici con più torte, è possibile selezionare quante torte visualizzare in ciascuna riga del
grafico. Per impostazione predefinita vengono visualizzate due torte per riga. Utilizzare
questo dispositivo di scorrimento per selezionare il numero di torte per riga.

Dimensioni foro Se si seleziona un grafico a ciambella (torta ad anello), utilizzare questo dispositivo di
scorrimento per selezionare le dimensioni del foro della ciambella (da 0 a 100). Se si sceglie il
valore zero, viene selezionato un grafico a torta normale senza foro nel centro.

Ripristina tutte le Se delle sezioni sono state staccate da un grafico a torta, per ripristinare le impostazioni
sezioni originali, selezionare questo pulsante.

Grafici a dispersione

Mostra indicatori Utilizzare questa casella di controllo per mostrare o nascondere gli indicatori in un grafico a
dispersione. Se si nascondono gli indicatori e non si seleziona Collega coordinate con linee, il
grafico a dispersione non conterrà barre che rappresentano i valori nei dati.

Dimensione Utilizzare questo dispositivo di scorrimento per cambiare le dimensioni di tutti gli indicatori
del grafico a dispersione. Questa opzione sarà disponibile solo se Mostra indicatori è
selezionato.

Forma Scegliere l'opzione desiderata da questa casella di riepilogo a discesa per cambiare la forma
degli indicatori in un grafico a dispersione, ad esempio da rettangolare a rotonda, a forma di

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 847
stella e così via. Questa selezione modifica anche la forma degli indicatori nell'area legenda
del grafico, se visualizzata. Questa opzione sarà disponibile solo se Mostra indicatori è
selezionato.

Collega Utilizzare questa casella di controllo per mostrare o nascondere una linea di connessione tra
coordinate con ogni indicatore in una serie.
linee

Informazioni correlate

Finestra di dialogo Opzioni grafico [pagina 844]

1.7.3.1.6.2 Scheda Layout (Opzioni grafico)

Utilizzare la scheda Layout per modificare il tipo di grafico, selezionare un grafico a due assi e applicare o
rimuovere l'effetto di profondità 2,5D dalle barre e dal riquadro.

Le descrizioni di questa sezione sono valide per tutti i tipi di grafico ad eccezione dei grafici a bolle, a torta o a
ciambella, a dispersione, a superficie e azionari e degli istogrammi.

Tipo Selezionare un pulsante di opzione per modificare il tipo di grafico. Per una panoramica sui tipi di
grafico più diffusi e sulle modalità di utilizzo, vedere Tipi di grafici [pagina 744].

Due assi Selezionare questa casella di controllo per assegnare al grafico ad area due assi numerici (Y1 e Y2).
L'opzione è disponibile solamente per i grafici ad area in pila e non in pila. Non è disponibile per i
grafici percentuali e conformi 3D.

Due assi Quando è selezionata la casella di controllo Assi doppi, metà delle serie del grafico sono assegnate
divisi all'asse numerico primario (Y1) e l'altra metà al secondo asse numerico (Y2). Tuttavia tutti gli
elementi sono tracciati da un'unica linea di base dell'asse categoria. Le serie assegnate agli assi Y1 e
Y2 sono tracciate su lati opposti del grafico. Per dividere fisicamente il grafico e visualizzare due assi
numerici separati, selezionare questa casella di controllo. Se la casella di controllo Assi doppi non è
selezionata, anche questa casella non è disponibile.

Grafici a imbuto

Imbuto 2D Selezionare questa casella di controllo se si desidera applicare un effetto piatto all'imbuto. Non
selezionare questa casella di controllo se si desidera ottenere un grafico 3D.

Grafici a bolle

È possibile utilizzare le opzioni di layout per i grafici a bolle per selezionare i grafici ad assi doppi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
848 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Due assi Selezionare questa casella di controllo per assegnare al grafico a bolle due assi numerici (Y1 e Y2).

Istogrammi

È possibile utilizzare le opzioni di layout per gli istogrammi per selezionare istogrammi verticali od orizzontali.

Tipo Per cambiare il layout del grafico, selezionare uno dei seguenti pulsanti di opzione: Colonna verticale o
Barra orizzontale.

Grafici a torta o a ciambella

Tipo Per cambiare il layout del grafico, selezionare uno dei seguenti pulsanti di opzione: Torta o
Torta ad anello.

Dimensioni della Utilizzare questa casella di controllo per rendere la dimensione di ciascun grafico a torta
Torta proporzionali proporzionale al valore complessivo dei dati. L'opzione è utilizzata solamente nei grafici a
al Totale più torte. Se i dati includono più gruppi/colonne, viene disegnato un grafico a torta per
ogni categoria. Se si seleziona questa opzione, ogni torta viene disegnata in maniera
proporzionale al totale rappresentato dalla stessa.

Torta circolare 2D Per impostazione predefinita tutti i grafici 2D vengono presentati con un effetto di
profondità 3D applicato alla cornice del grafico. Selezionare questa casella di controllo se
non si desidera applicare l'effetto tridimensionale.

Grafici a dispersione

Due assi Selezionare questa casella di controllo per assegnare al grafico a dispersione due assi numerici (Y1 e
Y2).

Grafici azionari

Stile Per modificare lo stile degli intervalli barre, selezionare Wall Street o Candle.

Layout Per modificare i dettagli dei dati visualizzati dall'intervallo, scegliere Alto Basso, Alto Basso Aperto, Alto
Basso Chiuso o Aperto Alto Basso Chiuso.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 849
Nota
L'opzione scelta nell'area Layout dipende dai dati disponibili per il grafico azionario. Ad esempio, per
utilizzare Alto Basso Aperto, è necessario che i dati includano valori di un prezzo di apertura.

Grafici a superficie 3D

Tipo Per cambiare il layout del grafico, selezionare uno dei seguenti pulsanti di opzione: Superficie, Superficie
con lati e Superficie a nido d'api.

Informazioni correlate

Scheda Opzioni Y duale (Opzioni grafico) [pagina 853]


Finestra di dialogo Opzioni grafico [pagina 844]

1.7.3.1.6.3 Scheda Bande di qualità (Opzioni grafico)

Questa opzione è disponibile solo per i tipometri. Utilizzare le bande di qualità per suddividere un tipometro in
segmenti. Dopo aver creato questi segmenti, è possibile aggiungervi il colore.

Ad esempio, se si utilizza un tipometro per gestire gli ordini per regione, è possibile aggiungere bande colorate
lungo il tipometro per mostrare che l'area rossa è al di sotto dell'importo previsto (ad esempio, da 0 a 499 ordini),
l'area gialla del tipometro corrisponde all'importo previsto (da 500 a 800 ordini) e l'area verde del tipometro
supera l'importo previsto (da 801 a 1000 ordini).

Banda Fare clic sulla casella di controllo accanto a una banda per attivarla. Specificare un valore minimo e
massimo per la banda. È possibile aggiungere un numero massimo di 5 bande diverse al tipometro.

1.7.3.1.6.4 Scheda Graduazione (Opzioni grafico)

Questa opzione è disponibile soltanto per i grafici azionari. Utilizzare le graduazioni per mostrare una linea
orizzontale che si estende da destra a sinistra di una barra in un grafico azionario. Le graduazioni consentono di
rappresentare valori aperti e chiusi.

Lunghezza grad. Utilizzare questo dispositivo di scorrimento per modificare la lunghezza delle
graduazioni in un grafico azionario.

Altezza grad. Utilizzare questo dispositivo di scorrimento per modificare l'altezza delle graduazioni
in un grafico azionario.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
850 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Mostra graduazione Selezionare questa opzione se si desidera includere una graduazione per i valori di
vicina chiusura nel grafico azionario.

1.7.3.1.6.5 Scheda Etichette dati (Opzioni grafico)

Le etichette dati mostrano i valori effettivi di ciascuna cella del grafico. Utilizzare la scheda Etichette dati per
aggiungere etichette di dati al grafico. I valori delle etichette dati e le posizioni selezionabili saranno leggermente
diversi a seconda del tipo di grafico. Le etichette dati non sono disponibili nei grafici a superficie 3D.

Mostra È possibile visualizzare o nascondere le etichette dati per tutte le serie o per una singola serie
etichette dati di un grafico. Selezionare questa casella di controllo per visualizzare o nascondere le etichette
dati per tutte le serie del grafico.

Posizione Se la casella di controllo Mostra etichette dati è selezionata, scegliere una voce della casella di
etichette riepilogo per selezionare la posizione nel grafico in cui verranno visualizzate le etichette dati
accanto all'elemento del grafico associato. Questa opzione non è disponibile per i grafici
conformi 3D.

Formato Per i grafici ad area, a barre, a colonne e a linee, scegliere l'opzione Valore per visualizzare i
etichetta valori del foglio dati nella posizione corrispondente in ciascuna barra. Se si è selezionato
Etichetta, verranno disegnate le etichette serie. Se si è selezionato Etichetta e valore, verranno
mostrati le etichette serie e il valore presi dal foglio dati.

Per i grafici a bolle, se si seleziona il valore (X,Y), i primi due valori (le posizioni X e Y) che
definiscono ciascun punto dati verranno disegnati per ciascun indicatore di bolla. Se si
seleziona (Dimensioni bolla X,Y), verranno visualizzati i valori della posizione X, della posizione
Y e delle dimensioni. Questa selezione non è disponibile per i grafici a dispersione o conformi
3D.

Mostra come Se è stato selezionato Valore o Etichetta e valore per il campo Formato etichetta in un grafico
percentuale a percentuale o azionario, selezionare questa casella di controllo per mostrare il valore
percentuale rappresentato da ciascun intervallo barre.

Valori Se è stato selezionato Valore o Etichetta e valore per il campo Formato etichetta in un grafico
cumulativi a percentuale o azionario, selezionare questo pulsante di opzione per mostrare il valore
cumulativo di ogni intervallo.

Valori assoluti Nei grafici a percentuale o azionari, selezionare questo pulsante di opzione per mostrare il
valore assoluto di ogni intervallo. È inoltre necessario aver selezionato Valore o Etichetta e
valore nel campo Formato etichetta.

Mostra totale Se si è selezionato Valori assoluti, selezionare questa casella di controllo per mostrare il valore
totale di ogni categoria di intervalli.

Grafici a imbuto

Le etichette di dati possono essere utilizzate per mostrare i valori effettivi dei dati. È possibile mostrare il valore
associato a ogni anello dell'imbuto oppure i valori come percentuale del totale. È possibile posizionare queste
informazioni sugli anelli dell'imbuto o al loro esterno.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 851
Mostra valori Selezionare questa casella di controllo per mostrare o nascondere i valori delle
etichette dati per tutti gli anelli del grafico a imbuto.

Mostra valori come Se l'opzione Mostra valori è selezionata, selezionare la casella di controllo per
percentuale mostrare i valori dei dati come percentuale del totale. Per mostrare il valore assoluto
che definisce l'anello, non selezionare la casella di controllo.

Valori sugli anelli se è selezionata l'opzione Mostra valori, selezionare uno di questi pulsanti di opzione
dell'imbuto/Valori fuori per visualizzare i valori dei dati su tutti gli anelli dell'imbuto o al loro esterno.
dagli anelli dell'imbuto

Mostra etichette Selezionare questa casella di controllo per mostrare o nascondere le etichette di serie
associate a ciascun anello dell'imbuto.

Etichette sugli anelli Se è selezionata l'opzione Mostra etichette, selezionare uno di questi pulsanti di
dell'imbuto/Etichette opzione per visualizzare le etichette di serie su tutti gli anelli dell'imbuto o al loro
fuori dagli anelli esterno.
dell'imbuto

Mostra linee guida Se si seleziona l'opzione Mostra valori e il pulsante di opzione Etichette fuori dagli
anelli dell'imbuto oppure l'opzione Mostra etichette e il pulsante di opzione Valori fuori
dagli anelli dell'imbuto, utilizzare questa casella di controllo per visualizzare o
nascondere le linee guida che vanno da ogni anello dell'imbuto al valore dati
visualizzato accanto ad essa.

Grafici a torta o a ciambella

Le etichette di dati possono essere utilizzate per mostrare i valori effettivi dei dati. È possibile mostrare il valore
associato a ogni settore della torta, solo l'etichetta di serie o entrambi. È possibile posizionare queste informazioni
nel settore della torta o all'esterno di ogni settore.

Nota
È inoltre possibile mostrare o nascondere e formattare le etichette dati per una singola serie di un grafico.

Mostra valori Selezionare questa casella di controllo per mostrare o nascondere valori delle etichette
dati per ogni segmento nel grafico a torta.

Sulle fette / Fuori Se l'opzione Mostra valori è selezionata, selezionare uno di questi pulsanti di opzione per
dalle fette visualizzare i valori dei dati su ogni settore della torta o all'esterno di ogni settore.

Come percentuale Se l'opzione Mostra valori è selezionata, selezionare la casella di controllo per mostrare i
valori dei dati come percentuale del totale. Non selezionare questa casella di controllo
per mostrare il valore assoluto che definisce ogni settore.

Mostra etichette Selezionare questa casella di controllo per mostrare o nascondere l'etichetta di serie
associata a ogni settore della torta.

Sulle fette / Fuori Se l'opzione Mostra etichette è selezionata, selezionare uno di questi pulsanti di opzione
dalle fette per visualizzare le etichette di serie su ogni settore della torta o all'esterno di ogni
settore.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
852 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Mostra linee guida Se è selezionata l'opzione Mostra valori e il pulsante Fuori dalle fette oppure l'opzione
Mostra etichette e Fuori dalle fette, utilizzare questa casella di controllo per mostrare o
nascondere le linee guida in ogni settore della torta per i valori di dati adiacenti.

Etichette sui lati Selezionare questa casella di controllo per disegnare etichette ai lati del grafico a torta.

1.7.3.1.6.6 Scheda Numeri (Opzioni grafico)

Quando si attiva la visualizzazione delle etichette dati nella scheda corrispondenti di Opzioni grafico, è possibile
selezionare diversi tipi di informazioni da visualizzare:

● Per i grafici ad area, a barre, a colonne, a linee, radar e con asse numerico, è possibile selezionare Valore,
Etichetta o Etichetta e Valore. Se si seleziona Etichetta, nel grafico verranno visualizzate solo etichette di serie
e non sarà possibile formattarle come valori numerici anche se le etichette di serie sono costituite da numeri.
Se si seleziona Valore o Etichetta e valore, è possibile formattare tali valori mediante la scheda Numeri di
Opzioni grafico.
● Per i grafici a bolle, è possibile selezionare Valore (X,Y) o (Dimensioni bolla X,Y). Solo i valori Dimensioni bolla
possono essere formattati mediante la scheda Numeri di Opzioni grafico. I valori (X,Y) utilizzano sempre il
formato numerico selezionato per le etichette degli assi X e Y.
● Per i grafici a dispersione, la scheda Numero non è inclusa nella finestra di dialogo Opzioni grafico. Le
etichette dati utilizzano lo stesso formato delle etichette degli assi X e Y.

Utilizzare la scheda Numeri per formattare i numeri delle etichette di dati. Se si desidera formattare i numeri
visualizzati sugli assi numerici (Y1, Y2 o X), vedere Finestra di dialogo Griglie e scale asse numerico [pagina 928].

1.7.3.1.6.7 Scheda Opzioni Y duale (Opzioni grafico)

Utilizzare la scheda Opzioni Y duale per modificare il layout di qualsiasi grafico (ad eccezione degli istogrammi, dei
diagrammi di Gantt, dei tipometri, dei grafici azionari, a torta e 3D) in modo da includere due assi numerici: un
asse primario (Y1) e u Quando si sceglie un layout a doppio asse, è possibile dividere i due assi in modo che
vengano tracciati da due linee di base fisiche diverse o in modo che tutti gli elementi siano tracciati da un'unica
linea di base.

Asse primario Se la casella Due assi della scheda Layout è selezionata nella finestra di dialogo Opzioni
(Y1)/Asse grafico, i numeri della serie vengono automaticamente divisi, assegnando una metà della serie
secondario (Y2) a un asse e l'altra metà all'altro asse. Selezionare un'etichetta di serie nella casella di riepilogo
Asse primario (Y1) e fare clic sul pulsante [>>] per spostare la serie su Asse secondario (Y2).
Selezionare un'etichetta di serie nella casella di riepilogo Asse secondario (Y2) e fare clic sul
pulsante [<<] per spostare la serie su Asse primario (Y1).

Nota
I pulsanti con le frecce sono disattivati se non si seleziona un'etichetta di serie.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 853
Posizione Se le caselle Due assi e Due assi divisi sono selezionate nella scheda Layout della finestra di
divisione dialogo Opzioni grafico, utilizzare questo dispositivo di scorrimento per selezionare il punto in
cui le due metà del grafico verranno divise.

Mostra divisione Selezionare questa casella di controllo per visualizzare o nascondere la linea di divisione degli
asse assi.

1.7.3.1.6.8 Scheda Vista (Opzioni grafico)

Utilizzare la scheda Vista per formattare il colore delle barre e modificare la posizione della legenda e del testo
dell'indicatore. È possibile colorare gli indicatori per serie (area) o per segmento (categoria).

Modalità Nella configurazione normale, viene utilizzato un intervallo o un indicatore di colore diverso per
colore ogni serie definita nei dati. Tuttavia, è possibile scegliere di assegnare lo stesso colore a tutti gli
intervalli di un gruppo o che gli intervalli vengano colorati in base all'altezza (o al valore associato
nei dati). Scegliere un'opzione in questa caselle di riepilogo. Questa opzione non è disponibile
nei grafici ad area, a bolle, a torta, a ciambella e a dispersione.

Nota
Per i grafici a linee le opzioni sono denominate Colore per linea (serie) e Colore per segmento
(Gruppo).

Mostra Selezionare questa casella di controllo per mostrare o nascondere la legenda del grafico. Se
legenda questa casella di controllo non è selezionata, tutte le altre opzioni della finestra di dialogo
saranno disattivate. Questa opzione non è disponibile per gli istogrammi e i grafici 3D.

Indicatori e Se Mostra legenda è selezionato, selezionare un'opzione in questa casella di riepilogo per
testo definire il contenuto e il formato dell'area legenda. Questa opzione non è disponibile per gli
istogrammi e i grafici 3D.

Layout Scegliere un'opzione in questa casella di riepilogo per definire il punto in cui disegnare l'area
legenda (indicatori e testo) all'interno della cornice del grafico: Legenda sul lato destro, Legenda
sul lato sinistro o Legenda sotto il grafico. Questa opzione non è disponibile per gli istogrammi e
i grafici 3D.

Stile casella Selezionare un'opzione in questa casella di riepilogo per disegnare una casella di testo intorno
all'intera area legenda: Nessuna cornice, Cornice a riga singola, Cornice a riga doppia, Cornice
smussata o Rovescia cornice smussata. Questa opzione non è disponibile per gli istogrammi e i
grafici 3D.

Collega colori Selezionare questa casella di controllo per collegare i colori ai lati del grafico a intervallo barre
lato a colori 3D al colore della base.
base

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
854 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Grafici a superficie 3D

Modalità colore Nella configurazione normale, viene utilizzato un intervallo o un indicatore di colore diverso
per ogni serie definita nei dati. Tuttavia, è possibile scegliere di assegnare lo stesso colore a
tutti gli intervalli di un gruppo o che gli intervalli vengano colorati in base all'altezza (o al
valore associato nei dati). Scegliere un'opzione in questa caselle di riepilogo.

Colore per Se è selezionata l'opzione Esatto colore per altezza nel campo Modalità colore, selezionare le
altezza schede del colore di riempimento per scegliere i colori iniziale e finale da utilizzare per
colorare gli intervalli barre di superficie in base all'altezza.

Collega colori Selezionare questa casella di controllo per collegare i colori dei lati a quello della base.
lato a colori base

Grafici a torta o a ciambella

Mostra legenda Selezionare questa casella di controllo per mostrare o nascondere la legenda del grafico. Se
questa casella di controllo non è selezionata, tutte le altre opzioni della finestra di dialogo
saranno disattivate.

Mostra valori Selezionare questa casella di controllo per aggiungere valori di dati alla legenda.

Mostra Selezionare questa casella di controllo per aggiungere percentuali del valore di dati totale
percentuali alla legenda.

Nota
È possibile aggiungere sia valori di dati che percentuali del valore di dati totale
selezionando entrambe le opzioni.

1.7.3.1.6.9 Scheda Status visualizzazione (Opzioni grafico)

Utilizzare la scheda Status visualizzazione per mostrare o nascondere gli oggetti del grafico.

Asse gruppo Selezionare questa casella di controllo per visualizzare o nascondere l'asse gruppo e le
rispettive etichette

Asse dati Selezionare questa casella di controllo per visualizzare o nascondere l'asse gruppo e le
rispettive etichette.

Asse dati2 Se nella scheda Layout della finestra di dialogo Opzioni grafico si è selezionata la casella di
controllo Assi doppi, utilizzare questa casella di controllo per visualizzare o nascondere l'asse
numerico secondario e le rispettive etichette.

Asse serie Se è stato selezionato un grafico conforme 3D o un grafico a superficie 3D nella scheda Layout
della finestra di dialogo Opzioni grafico, utilizzare questa casella di controllo per mostrare o
nascondere l'asse di serie e le relative etichette.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 855
Asse X Nei grafici a bolle e a dispersione e negli istogrammi, selezionare questa casella di controllo
per visualizzare o nascondere l'asse X e le relative etichette.

Griglia maggiore Per ogni asse del grafico (Categoria, Asse valori, Asse valori secondario, Asse X), selezionare
queste caselle di controllo per visualizzare o nascondere le linee griglia principali di ogni asse.

Griglia minore Per ogni asse del grafico (Categoria, Asse valori, Asse valori secondario, Asse X), selezionare
queste caselle di controllo per visualizzare o nascondere le linee griglia secondarie di ogni
asse.

Legenda Selezionare questa casella di controllo per mostrare o nascondere la legenda del grafico.
Questa opzione non è disponibile per i grafici conformi 3D e gli istogrammi.

Etichette dati Selezionare questa casella di controllo per visualizzare o nascondere le etichette dati per tutte
le serie del grafico. Questa opzione non è disponibile per i grafici conformi 3D.

Lato sinistro Solo nei grafici 3D, selezionare questa casella di controllo per mostrare o nascondere il lato
sinistro del cubo 3D.

Lato destro Solo nei grafici 3D, selezionare questa casella di controllo per mostrare o nascondere il lato
destro del cubo 3D.

Base Solo nei grafici 3D, selezionare questa casella di controllo per mostrare o nascondere la base
del cubo 3D.

Grafici a imbuto

Nella sezione Status visualizzazione della finestra di dialogo Opzioni grafico è possibile visualizzare o nascondere
gli oggetti del grafico.

Mostra nome imbuto Selezionare questa casella di controllo per visualizzare o nascondere il nome del grafico a
imbuto.

Mostra legenda Selezionare questa casella di controllo per mostrare o nascondere la legenda del grafico.

Etichette imbuto Selezionare questa casella di controllo per visualizzare o nascondere le etichette dati per
tutte le sezioni di un grafico a imbuto.

Grafici a torta o a ciambella

Nella sezione Status visualizzazione della finestra di dialogo Opzioni grafico è possibile visualizzare o nascondere
gli oggetti del grafico.

Mostra nome torta Nei grafici a torta, le etichette delle categorie vengono disegnate sotto ogni torta.
Selezionare questa casella di controllo per mostrare o nascondere il nome della torta.

Mostra totale torta Nei grafici a ciambella (a torta ad anello) selezionare questa casella di controllo per
visualizzare o nascondere il valore totale al centro di ogni torta.

Mostra legenda Selezionare questa casella di controllo per mostrare o nascondere la legenda del grafico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
856 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Etichette fette Selezionare questa casella di controllo per visualizzare o nascondere i valori delle etichette
dati per tutte le sezioni del grafico a torta.

1.7.3.1.7 Finestra di dialogo Criterio ordinamento grafici

Utilizzare la finestra di dialogo Criterio ordinamento grafici per ordinare e raggruppare i dati del grafico. Questa
finestra di dialogo viene visualizzata quando si fa clic sul pulsante Ordine nella scheda Dati dell'Esperto grafico per
un grafico con tipo di layout avanzato.

Per ulteriori informazioni, vedere l'argomento relativo alla Finestra di dialogo Inserisci gruppo [pagina 918], che
ha funzioni simili.

1.7.3.1.8 Finestra di dialogo Scegli un tipo di Grafico

Utilizzare la finestra di dialogo Scegli un tipo di grafico per modificare il tipo di grafico e il layout. Per visualizzare
questa finestra di dialogo, fare clic con il tasto destro del mouse su un grafico, scegliere Opzioni grafico e fare clic
su Modello.

Grafici ad area

Dopo aver selezionato Area nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate di
seguito:

Layout Selezionare un grafico ad area Assoluto, In pila, Percentuale o conforme 3D.

Due assi Per i grafici ad area assoluti o in pila, selezionare questa casella di controllo se si desidera creare
un grafico ad area numerico con due assi numerici. In questo modo è possibile inserire alcune
serie in un asse a altre nell'altro asse.

Due assi divisi Se è selezionata la casella di controllo Due assi, utilizzare la casella di controllo Assi duplici divisi
per dividere le serie tra due assi fisici nel grafico.

Usa profondità Selezionare questa casella di controllo se si desidera applicare un effetto di profondità 3D alla
cornice del grafico e agli intervalli barre. Non selezionare questa casella di controllo se si
desidera ottenere un grafico piatto 2D.

Grafici a barre o colonne

Dopo aver selezionato Barre o Colonne nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle
riportate di seguito:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 857
Layout Selezionare un grafico a intervallo barre A grappolo, In pila, Percentuale o Conforme 3D.
Questa opzione non è disponibile per i grafici a barre conformi 3D.

Forma intervallo Fare clic su questa casella di controllo per selezionare un elenco di forme dell'intervallo barre
barre (ad esempio, per un grafico a intervallo barre conforme 3D, è possibile selezionare Intervallo
barre rettangolare, Colonna circolare, Cono / Piramide, Cubo mobile o Sfera mobile).

Due assi Per i grafici a grappolo o in pila, selezionare questa casella di controllo se si desidera creare un
grafico a barre o a colonne con due assi numerici. In questo modo è possibile inserire alcune
serie in un asse a altre nell'altro asse.

Due assi divisi Se è selezionata la casella di controllo Due assi, utilizzare la casella di controllo Assi duplici
divisi per dividere le serie tra due assi fisici nel grafico.

Usa profondità Selezionare questa casella di controllo se si desidera applicare un effetto di profondità 3D alla
cornice del grafico e agli intervalli barre. Non selezionare questa casella di controllo se si
desidera ottenere un grafico piatto 2D.

Grafici a bolle

Dopo aver selezionato Bolle nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate di
seguito:

Forma Selezionare questa casella di controllo per scegliere una forma di indicatore diversa. Nella
indicatore configurazione standard vengono utilizzati indicatori circolari. Dopo aver creato il grafico, è
possibile selezionare forme diverse degli indicatori per tutte o alcune serie del grafico.

Due assi Selezionare questa casella di controllo se si desidera creare un grafico con due assi numerici.
In questo modo è possibile inserire alcune serie in un asse a altre nell'altro asse.

Grafici a imbuto

Dopo aver selezionato Imbuto nella scheda Galleria, è possibile scegliere le seguenti opzioni:

Imbuto 2D Selezionare questa casella di controllo se si desidera applicare un effetto piatto all'imbuto. Non
selezionare questa casella di controllo se si desidera ottenere un grafico 3D.

Diagrammi di Gantt

Dopo aver selezionato Gantt nella scheda Galleria, è possibile scegliere le seguenti opzioni:

Usa profondità Selezionare questa casella di controllo se si desidera applicare un effetto di profondità 3D alla
cornice del grafico e agli intervalli barre. Non selezionare questa casella di controllo se si
desidera ottenere un grafico piatto 2D.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
858 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Tipometri

Dopo aver selezionato Tipometro nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate
di seguito:

Angolo iniziale Regolare l'angolo per aumentare o ridurre l'intervallo circolare. Un angolo iniziale pari a 0 e
un angolo finale pari a 180 creano un semicerchio.

Angolo finale Regolare l'angolo per aumentare o ridurre l'intervallo circolare.

Spessore circolare Utilizzare questo dispositivo di scorrimento per modificare lo spessore della struttura del
tipometro. Può essere necessario aumentare lo spessore circolare se sono state aggiunte
bande di qualità al tipometro.

Numero di Utilizzare questo dispositivo di scorrimento per specificare il numero di indicatori da


indicatori per riga visualizzare in una riga del report.

Cornice smussata Selezionare questa casella di controllo per aggiungere profondità alla cornice intorno al
grafico in modo che assomigli a un pulsante. Per conferire al grafico l'aspetto di un
pulsante, è necessario applicare un colore di riempimento allo sfondo del grafico.

Istogrammi

Dopo aver selezionato Istogramma nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate
di seguito:

Layout Per gli istogrammi è possibile selezionare Colonna verticale o Barra orizzontale.

Forma Se Usa profondità non è selezionata nel campo sottostante, selezionare questa casella di
indicatore riepilogo per scegliere una forma di indicatore diversa. Nella configurazione standard vengono
disegnati indicatori rettangolari per tutti gli intervalli barre. Dopo aver creato il grafico, è
possibile selezionare forme diverse degli indicatori per tutte o alcune serie del grafico.

Usa profondità Selezionare questa casella di controllo se si desidera applicare un effetto di profondità 3D alla
cornice del grafico e agli intervalli barre. Non selezionare questa casella di controllo se si
desidera ottenere un grafico piatto 2D.

Grafici a linee

Dopo aver selezionato Linea nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate di
seguito:

Layout Selezionare un grafico a linee Assoluto, In pila, Percentuale o Conforme 3D.

Stile linea Utilizzare questo elenco per scegliere lo stile della linea da utilizzare. È possibile scegliere
Indicatori e linee, Solo indicatori o Solo linee.

Forma Se è selezionato Indicatori e linee o Solo indicatori per un grafico a linee assoluto, in pila o
indicatore percentuale, selezionare questa casella di riepilogo per scegliere una forma di indicatore

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 859
diversa. Nella configurazione standard vengono disegnati indicatori rettangolari per tutti gli
intervalli barre. Dopo aver creato il grafico, è possibile selezionare forme diverse degli
indicatori per tutte o alcune serie del grafico.

Due assi Per i grafici a linee assoluti o in pila, selezionare questa casella di controllo se si desidera
creare un grafico con due assi numerici. In questo modo è possibile inserire alcune serie in un
asse a altre nell'altro asse.

Due assi divisi Se è selezionata la casella di controllo Due assi, utilizzare la casella di controllo Assi duplici
divisi per dividere le serie tra due assi fisici nel grafico.

Usa profondità Selezionare questa casella di controllo se si desidera applicare un effetto di profondità 3D alla
cornice del grafico e agli intervalli barre. Non selezionare questa casella di controllo se si
desidera ottenere un grafico piatto 2D.

Grafici a torta o a ciambella

Dopo aver selezionato Torta nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate di
seguito:

Layout Per i grafici a torta, selezionare un grafico Torta o Torta ad anello.

Nota
I grafici Torta ad anello sono anche definiti a ciambella.

Dimensioni della Solo per torte multiple. Selezionare questa casella di controllo per rendere le dimensioni
Torta proporzionali al di ogni torta proporzionali alle altre torte del grafico.
Totale

Torta circolare 2D Selezionare questa casella di controllo se si desidera ottenete un grafico a torta piatto
(2D). Per impostazione predefinita, tutti i grafici vengono presentati con un effetto di
profondità 3D applicato alla cornice e agli intervalli barre del grafico. Selezionare questa
casella di controllo se non si desidera applicare l'effetto tridimensionale.

Grafici a dispersione

Dopo aver selezionato Dispersione nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate
di seguito:

Forma indicatore Selezionare questa casella di controllo per scegliere una forma di indicatore diversa. Nella
configurazione standard vengono disegnati indicatori rettangolari per tutti gli intervalli barre.
Dopo aver creato il grafico, è possibile selezionare forme diverse degli indicatori per tutte o
alcune serie del grafico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
860 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Collega Solo per i grafici a dispersione, selezionare questa casella di controllo se si desidera che gli
coordinate con indicatori di dispersione del grafico siano connessi da linee.
linee

Due assi Selezionare questa casella di controllo se si desidera creare un grafico a dispersione con due
assi numerici. In questo modo è possibile inserire alcune serie in un asse a altre nell'altro
asse.

Grafici azionari

Dopo aver selezionato Azionario nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate di
seguito:

Stile Selezionare Wall Street o Candle come stile del grafico.

Layout Selezionare Alto Basso, Alto Basso Aperto, Alto Basso Chiuso o Aperto Alto Basso Chiuso come layout
del grafico.

Due assi Selezionare questa casella di controllo se si desidera creare un grafico azionario con due assi numerici.
In questo modo è possibile inserire alcune serie in un asse a altre nell'altro asse.

Superficie

Dopo aver selezionato Superficie nella scheda Galleria, è possibile scegliere le seguenti opzioni:

Layout Per i grafici a superficie 3D, è possibile selezionare Superficie, Superficie con lati o Superficie a nido
d'ape.

Grafici personalizzati

I grafici personalizzati sono modelli di grafico creati da Crystal Decisions. Dopo aver creato il primo grafico, è
possibile utilizzare la funzione Salva con nome nel menu File per creare grafici personalizzati (oppure l'opzione
Salva come modello nel menu di scelta rapida del grafico). I file del grafico personalizzato (.3TF) contengono gli
attributi e i dati che definiscono il formato e l'aspetto di un grafico.

Dopo aver selezionato la scheda Personalizzato, è possibile effettuare le seguenti operazioni:

● Fare clic su una delle voci presenti nella casella di riepilogo Categorie per mostrare i grafici personalizzati in
ogni categoria.
● Fare clic su un'immagine del grafico personalizzato da importare nell'applicazione.
● Fare clic sul pulsante OK per importare il grafico.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 861
Informazioni correlate

Tipi di grafici [pagina 744]

1.7.3.1.9 Finestra di dialogo Scegli campo

Utilizzare la finestra di dialogo Scegli campo per scegliere un campo per la selezione del record oppure un campo
come un argomento di funzione nell'Esperto formule.

Se non è stato selezionato un campo e non è stata ancora creata una formula di selezione dei record, la finestra di
dialogo viene visualizzata quando si sceglie Esperto formule nel menu di scelta rapida Report. La finestra viene
visualizzata anche quando si seleziona Scegli altro campo nell'area Argomenti funzione dell'Esperto formule.

Campi L'elenco visualizza i campi di report e di database disponibili nel report per la selezione dei record o
l'Esperto formule.

Sfoglia Fare clic su Sfoglia per sfogliare i dati nel campo selezionato.

Informazioni correlate

Finestra di dialogo Esperto selezione [pagina 991]


Filtro di dati [pagina 678]

1.7.3.1.10 Finestra di dialogo Colore

Utilizzare questa finestra di dialogo per specificare il colore da utilizzare nel report, se uno dei valori predefiniti
non risulta adeguato.

È possibile aprire la finestra di dialogo Colore quando si seleziona Personalizzato o Altro da qualsiasi elenco di
colori.

Colori fondamentali Questa griglia visualizza una serie di colori e ombreggiature predefiniti. È possibile
selezionare colori diversi per rappresentare gli intervalli di dati nei report. Ad esempio,
l'articolo più venduto può essere indicato con un colore blu brillante e gli articoli
successivi con tonalità più scure di blu.

Colori personalizzati Questa griglia visualizza i colori creati con l'opzione Definisci colori personalizzati (se non
si definiscono colori personalizzati, la griglia contiene solo caselle bianche di esempio).

Definisci colori Fare clic su Definisci colori personalizzati per visualizzare la tavolozza dei colori
personalizzati personalizzati. Fare clic e trascinare le tavolozze dei colori e/o tinta solida per vedere un
esempio del colore creato. È inoltre possibile definire colori personalizzati definendo le
impostazioni nelle caselle sottostanti le tavolozze dei colori.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
862 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Aggiungi a colori Fare clic su questo pulsante per aggiungere il nuovo colore alla griglia Colori
personalizzati personalizzati.

Informazioni correlate

Formattazione di dati [pagina 726]

1.7.3.1.11 Finestra di dialogo Parametro comando

La finestra di dialogo Parametro comando viene visualizzata quando si fa clic su Crea o Modifica nella finestra di
dialogo Aggiungi comando al report.

Utilizzare questa finestra di dialogo per creare o modificare parametri del comando SQL. Per informazioni su
come completare i campi contenuti in questa finestra di dialogo, vedere l'argomento relativo alla Finestra di
dialogo Crea campo parametro [pagina 863].

Informazioni correlate

Impostazione dei parametri [pagina 689]


Finestra di dialogo Aggiungi comando al report [pagina 841]

1.7.3.1.12 Finestra di dialogo Crea campo parametro

Utilizzare la finestra di dialogo Crea campo parametro per creare un campo di parametro utilizzabile in una
formula, in una formula per la selezione dei record o nel corpo del report stesso.

Questa finestra di dialogo viene visualizzata quando si fa clic con il pulsante destro del mouse su Campi di
parametro in Explorer Campo e si seleziona Nuovo.

Nota
Questa finestra di dialogo è uguale alla finestra di dialogo Modifica campo parametro. La descrizione è valida
per entrambe le finestre di dialogo.

Nome Immettere in questa casella il nome che si desidera assegnare al campo di parametro. Si tratta del
nome che viene visualizzato nella casella di riepilogo Campi nell'Editor delle formule e utilizzato per
identificare il campo quando viene impiegato nel report o in una formula.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 863
Nota
Se viene visualizzato un nome di campo di parametro, viene inserito un punto interrogativo
davanti al nome, per identificarlo come campo di parametro. Quindi, se si assegna al campo di
parametro il nome "Richiesta 1", nell'elenco dei campi nell'Editor delle formule il nome verrà
visualizzato nella forma "?Richiesta1".

Testo Immettere in questa casella il testo da utilizzare per il prompt.


richiesta

Tipo valore Selezionare dall'elenco il tipo di dati del campo di parametro.

Se si seleziona Data o Data/Ora come tipo di valore del parametro, è possibile modificare i formati
predefiniti di data e ora nella Scheda Campo (Impostazioni predefinite) [pagina 885] della finestra
di dialogo Impostazioni predefinite.

Tutti i tipi di valori dei parametri ad eccezione di quello booleano

Consenti valori Selezionando la casella di controllo "Consenti valori multipli", è possibile scegliere più
multipli valori predefiniti per il campo di parametro.

Valore/i discreto/i Selezionando l'opzione "Valore/i discreto/i”, è possibile scegliere solo i valori discreti o
singolari per il campo di parametro. Se è stata selezionata l'opzione "Consenti valori
multipli", è possibile selezionare più valori discreti per il campo di parametro, anche se
tali valori discreti continuano a operare singolarmente in contrapposizione a un valore
dell'intervallo.

Valore/i intervallo Selezionando l'opzione "Valore/i intervallo", è possibile scegliere un intervallo di valori
per il campo di parametro.

Valori Discreti e Questa opzione è disponibile solo se si seleziona la casella di controllo "Consenti valori
Intervallo Valori multipli".

Se si seleziona questa opzione, è possibile scegliere sia valori discreti che valori di
intervallo per il campo di parametro.

Valori predefiniti Fare clic sul pulsante "Imposta valori predefiniti" per specificare le impostazioni
predefinite di richiesta per il campo di parametro che si sta creando.

Consenti modifica dei Per impostazione predefinita questa casella di controllo è selezionata. Nel qual caso, è
valori predefiniti se possibile modificare i valori nel campo di parametro dopo averlo aggiunto al report.
sono presenti più
valori

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
864 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Tipi di valori di parametro booleano

Sistema nel Selezionare la casella di controllo "Sistema nel gruppo di parametri" per aggiungere il campo
gruppo di di parametro booleano a un gruppo. Quando si seleziona un gruppo di parametri booleani, gli
parametri utenti possono assegnare lo stesso valore o valori diversi a ciascun elemento del gruppo,
utilizzando l'opzione "Gruppo esclusivo".

Numero gruppo Utilizzare questo campo per immettere il numero del gruppo cui si desidera aggiungere il
di parametri parametro booleano corrente.

Gruppo esclusivo Selezionare questa casella di controllo per far sì che gli utenti possano scegliere di assegnare
valori True a un solo parametro booleano di un determinato gruppo. Tutti gli altri parametri
del medesimo gruppo verranno automaticamente impostati come False.

Se questa casella di controllo è deselezionata, gli utenti possono combinare parametri


booleani di diversi gruppi e scegliere quelli che dovranno essere True.

Valori predefiniti Fare clic su Valori predefiniti per specificare le impostazioni predefinite di prompt per il
campo di parametro che si sta creando.

Parametri di sovrapposizione dinamici

In SAP Crystal Reports Developer sono disponibili prompt dinamici ed elenchi di valori sovrapposti. Queste
funzionalità consentono di compilare gli elenchi di valori associati a un prompt da un'origine dati esterna al report
utilizzato. Un prompt dinamico può includere un elenco di valori sovrapposti. In altre parole è possibile creare un
prompt in cui valore finale è determinato da una sequenza di scelte. Ad esempio, è possibile che agli utenti venga
richiesto prima di tutto di selezionare un paese prima che vengano visualizzate le opzioni relative all'area. Quindi,
può essere necessario selezionare un'area prima che vengano visualizzate le opzioni relative alla città e così via.
Un elenco di paesi può ad esempio essere un prompt dinamico, mentre un elenco gerarchico di paesi, regioni e
città può essere un prompt dinamico con un elenco di valori sovrapposto.

Nota
La funzione Parametro sovrapposizione dinamica non è disponibile in SAP Crystal Reports, versione per
sviluppatori per Microsoft Visual Studio, mentre è disponibile in una delle versioni aggiornate.

Informazioni correlate

Impostazione dei parametri [pagina 689]


Limitazione di tipo di immissione e formato nei parametri [pagina 692]
Inserimento dei parametri nelle formule [pagina 694]
Esercitazione: Lettura e impostazione di parametri discreti [pagina 248]
In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Esercitazione: Lettura e impostazione di parametri discreti [pagina 381]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 865
In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Explorer Campo [pagina 646]


Soluzioni di reporting per SAP BusinessObjects Business Intelligence [pagina 64]

1.7.3.1.13 Finestra di dialogo Crea campo totale parziale

Questa finestra di dialogo consente di creare o modificare i campi totale parziale. I totali parziali sono i totali che
vengono visualizzati per ciascun record e rappresentano il totale di tutti i record (del report, del gruppo e così via)
fino al record corrente incluso.

Questa finestra di dialogo viene visualizzata quando si fa clic con il pulsante destro del mouse su Campi totale
parziale nell'Explorer Campo e si seleziona Nuovo.

Nota
Questa finestra di dialogo è uguale alla finestra di dialogo Modifica campo totale parziale. La descrizione è
valida per entrambe le finestre di dialogo.

Tabelle e campi Elenca tutte le tabelle e i campi nel report. Selezionare in questa casella di riepilogo il
disponibili campo che si desidera riepilogare (il campo su cui verrà basato il totale parziale).

Nome totale parziale Digitare nella casella Nome totale parziale il nome del totale parziale, ad esempio
Vendite anno precedente.

Riepilogo

Campo da La casella di riepilogo Campo da riepilogare visualizza il campo selezionato dalla casella di
riepilogare riepilogo Tabelle e campi disponibili. Il totale parziale che si sta creando verrà basato sul
campo nella casella di riepilogo Campo da riepilogare.

Utilizzare il pulsante Aggiungi (>) per copiare un campo dalla casella di riepilogo Tabelle e
campi disponibili alla casella Campo da riepilogare.

Tipo di riepilogo Selezionare dalla casella Tipo di riepilogo una delle opzioni di riepilogo. Il tipo di riepilogo
selezionato determina il calcolo del totale parziale.

Nota
Le opzioni relative al tipo di riepilogo cambiano in base al campo prescelto per il riepilogo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
866 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Valutazione

Per ogni record Se si desidera che il totale parziale valuti ogni record di un campo, selezionare l'opzione Per
ogni record.

Su modifica di Se si desidera eseguire la valutazione del totale parziale solo in caso di modifica di un
campo campo specificato, selezionare l'opzione Su modifica di campo.

Nota
Utilizzare il pulsante Aggiungi (>) per copiare un campo dalla casella di riepilogo Tabelle
e campi disponibili nella casella Su modifica di campo.

Su modifica di Se si desidera eseguire la valutazione del totale parziale solo in caso di modifica di un
gruppo gruppo specificato, selezionare l'opzione Su modifica di gruppo.

Usa formula Se si desidera utilizzare una formula per calcolare il totale parziale, selezionare l'opzione
Usa formula.

Reimposta

Mai Selezionare l'opzione Mai per bloccare il campo di totale parziale. Se si seleziona il pulsante
Mai, i calcoli per il totale parziale vengono eseguiti sul campo definito in tutto il report.

Su modifica di Se si desidera eseguire la valutazione o il ripristino del totale parziale in caso di modifica di un
campo campo specificato, utilizzare la casella di riepilogo Su modifica di campo.

Nota
Utilizzare il pulsante Aggiungi (>) per copiare un campo dalla casella di riepilogo Tabelle e
campi disponibili nella casella Su modifica di campo.

Su modifica di Se si desidera eseguire la valutazione o il ripristino del totale parziale in caso di modifica di un
gruppo gruppo specificato, utilizzare la casella di riepilogo Su modifica di gruppo.

Usa formula Se si desidera utilizzare una formula per determinare quando ripristinare il totale parziale,
selezionare l'opzione Usa formula.

Informazioni correlate

Creazione di totali parziali [pagina 708]


Inserimento di campi di totale parziale [pagina 708]
Finestra di dialogo Editor delle formule [pagina 715]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 867
1.7.3.1.14 Finestra di dialogo A campi incrociati

Utilizzare la finestra di dialogo A campi incrociati per creare o modificare le opzioni di gruppo per ogni campo riga
o colonna utilizzato nel report a campi incrociati. Il pulsante Opzioni Gruppo non è disponibile per i campi
riepilogati.

Per ulteriori informazioni, vedere l'argomento relativo alla Finestra di dialogo Inserisci gruppo [pagina 918], che
ha funzioni simili.

1.7.3.1.15 Finestra di dialogo Galleria Crystal Reports

Utilizzare la Galleria Crystal Report per selezionare un Esperto report che guidi l'utente nei singoli passaggi del
processo di creazione dei report oppure per creare un report ex novo.

Crea un nuovo Documento Crystal Report

Utilizzo dell'Esperto report Segue l'utente durante il processo di creazione del report e aggiunge le selezioni a
Report Designer.

Come Report vuoto Apre Report Designer.

Da un report esistente Crea un nuovo report con lo stesso design del report specificato.

Scegli un esperto

Standard L'Esperto report standard fornisce indicazioni dettagliate sulla creazione di un report tipico.

Campi incrociati L'Esperto report a campi incrociati fornisce indicazioni dettagliate sulla creazione di un report
contenente una griglia di riepilogo.

Etichetta postale L'Esperto report A etichette fornisce indicazioni dettagliate sulla creazione di un report con
più colonne ed è utilizzato frequentemente per creare un foglio di etichette di indirizzi.

Informazioni correlate

Utilizzo di SAP Crystal Reports Designer incorporato [pagina 638]


Modello di elaborazione dei report [pagina 651]
creazioni guidate di report [pagina 953]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
868 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.16 Finestra di dialogo Nome funzione personalizzata

Utilizzare la finestra di dialogo Nome funzione personalizzata per specificare un nome per la funzione.

Questa finestra di dialogo viene visualizzata quando si seleziona Funzioni personalizzate report nella finestra di
dialogo Workshop formule e quindi si fa clic sul pulsante Nuovo.

Nome Digitare in questa casella il nome della nuova funzione.

Nota
Il nome assegnato a una funzione personalizzata può contenere solo numeri, lettere e il
carattere di sottolineatura. Nei nomi delle funzioni personalizzate il primo carattere non
può essere un numero.

Usa programma di Fare clic sul pulsante Usa programma di estrazione se si desidera utilizzare la finestra di
estrazione dialogo Estrai funzione personalizzata dalla formula.

Usa Editor Fare clic sul pulsante Usa Editor se si desidera creare la formula mediante la finestra di
dialogo Editor funzione personalizzata.

Informazioni correlate

Finestra di dialogo Workshop formule [pagina 916]


Funzioni personalizzate [pagina 717]
Descrive come creare funzioni personalizzate cui è possibile fare riferimento nelle formule.

1.7.3.1.17 Finestra di dialogo Proprietà funzioni


personalizzate

Utilizzare questa finestra di dialogo per specificare informazioni aggiuntive e valori predefiniti per la funzione
personalizzata. La finestra Proprietà funzioni personalizzate viene visualizzata nei seguenti casi:

● quando si seleziona una funzione personalizzata esistente dopo aver selezionato il pulsante Attiva/Disattiva
visualizzazione proprietà nella barra degli strumenti del Workshop formule.
● quando si fa clic su Immettere altre info nella finestra di dialogo Estrai funzione personalizzata dalla formula
● quando si fa clic su Altre informaz. nell'Esperto formula (in questo caso, il contenuto della finestra di dialogo
Proprietà funzioni personalizzate ha esclusivamente valore di riferimento).

Nome Questo campo ha soltanto una funzione di riferimento. Contiene il nome specificato al
momento della creazione della funzione personalizzata.

Riepilogo In questa area è possibile inserire informazioni supplementari sulla funzione personalizzata
che consentano di identificarne lo scopo, l’uso cui è destinata e così via..

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 869
Categoria Utilizzare questa area per definire una categoria per la funzione personalizzata. Le categorie
rappresentano un modo per raggruppare talune funzioni personalizzate; vengono visualizzate
come cartelle secondarie all'interno della cartella Funzioni personalizzate report, nella
visualizzazione struttura del Workshop formule e nella finestra Funzioni della finestra di
dialogo Editor delle formule.

Se si desidera creare ulteriori livelli, utilizzare una barra nella definizione della categoria.

Repository Questo campo ha soltanto una funzione di riferimento. Contiene il nome del repository cui
eventualmente la funzione personalizzata è collegata o l’ultimo cui è stata collegata. Questo
campo è vuoto se la funzione personalizzata non è collegata a un repository.

Visualizza in Selezionare questa opzione se si desidera che la funzione venga visualizzata nell'elenco
Esperti Logica della specifica delle funzioni personalizzate dell'Esperto formule.

Autore Utilizzare questo campo per aggiungere il nome di chi ha creato la funzione personalizzata.

Tipo restituito Questo campo ha soltanto una funzione di riferimento. Contiene il tipo di dati dell’argomento.

Testo della Facendo clic su questo pulsante verrà visualizzata la finestra di dialogo Testo della Guida in
Guida in linea linea. Utilizzare questa finestra di dialogo per definire un messaggio che aiuti gli altri utenti ad
adoperare la funzione. Il testo della guida in linea è disponibile soltanto in questa finestra di
dialogo.

Argomenti Il campo in quest’area contiene la definizione della funzione personalizzata.

Nome Questo campo ha soltanto una funzione di riferimento e contiene il nome dell’argomento.

Tipo Questo campo ha soltanto una funzione di riferimento e contiene il tipo di dati del campo del
database corrispondente.

Descrizione In questo campo è possibile aggiungere una descrizione facoltativa per un argomento. Tale
descrizione viene visualizzata nell'Esperto formule.

Valori predefiniti Questo campo consente di definire i valori predefiniti per un argomento. Facendo clic su un
campo Valori predefiniti viene visualizzata la finestra di dialogo Valori predefiniti per. I valori
predefiniti impostati in questo campo possono essere visualizzati nell’Esperto formule.

non è possibile creare valori predefiniti per tipi di argomento intervallo, matrice o matrice
intervallo.

Per informazioni sulla creazione di insiemi di valori predefiniti, vedere Definizione dei valori
degli argomenti predefiniti per le funzioni personalizzate.

Informazioni correlate

Funzioni personalizzate [pagina 717]


Descrive come creare funzioni personalizzate cui è possibile fare riferimento nelle formule.

Finestra di dialogo Workshop formule [pagina 916]


Finestra di dialogo Testo della Guida in linea [pagina 917]
Finestra di dialogo Valori predefiniti per [pagina 887]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
870 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.18 Finestra di dialogo Stile personalizzato

Utilizzare questa finestra di dialogo per specificare la formattazione per i campi valuta, numero, ora o data nel
report.

La finestra di dialogo viene visualizzata quando si fa clic su Personalizza della scheda Numero, Data oppure Ora
dell'Editor formato. In base al tipo di elemento da formattare, vengono visualizzate le schede seguenti.

1.7.3.1.18.1 Scheda Simbolo valuta (Stile personalizzato)

Utilizzare la scheda Simbolo valuta per impostare opzioni di formattazione dettagliate per i campi valuta del
report.

Usa formato Selezionare questa casella di controllo per utilizzare il formato specificato nelle
predefinito del Impostazioni internazionali di Windows
sistema

Abilita simbolo Selezionare questa casella di controllo per visualizzare i simboli della valuta nei campi
valuta valuta.

Fisso Selezionando questa opzione, il simbolo della valuta verrà collocato nella prima posizione
all'estrema sinistra del campo. Se il campo è giustificato a destra, gli spazi superflui tra il
simbolo e il valore della valuta verranno lasciati.

Mobile Selezionando questa opzione il simbolo della valuta verrà collocato il più vicino possibile
all'importo, in modo che tra questo e il simbolo non vi siano spazi superflui.

Un simbolo per Selezionare questa casella di controllo per visualizzare o stampare un simbolo di valuta
pagina solo una volta per pagina, vicino al valore numerico o di valuta visualizzato sulla pagina per
ogni campo. Vicino agli altri valori del campo sulla pagina non verranno visualizzati altri
simboli.

Posizione Questa casella di riepilogo visualizza tutte le posizioni disponibili per il simbolo di valuta.

Simbolo valuta Utilizzare questa casella per inserire il simbolo di valuta prescelto.

1.7.3.1.18.2 Scheda Numero (Stile personalizzato)

Utilizzare la scheda Numero per impostare opzioni di formattazione dettagliate per i campi numerici del report.

Utilizza Formato Se si seleziona questa opzione:


Contabilità
● il simbolo negativo utilizzato e la relativa posizione vengono determinati dalle
impostazioni internazionali di Windows (corrisponde al segno meno o alle parentesi)
● viene selezionato automaticamente il trattino per Riporta Valori Zero come (i valori
zero vengono automaticamente visualizzati come trattini "-" nel report)
● il simbolo della valuta viene fissato sulla parte sinistra

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 871
Ometti se zero Se si seleziona questa casella di controllo non verrà stampato nulla nella colonna dei dati
del campo numerico, se il valore è zero.

Decimali Se si imposta un formato personalizzato per un oggetto campo numerico, utilizzare


questa casella di riepilogo per definirne la proprietà Decimali. Questa opzione consente
di specificare il numero di posizioni decimali da stampare. È possibile specificare tra 0 e
10 posizioni decimali. Dopo aver scelto il numero di posizioni decimali desiderato, il
numero di esempio nella parte inferiore della finestra di dialogo viene modificato in base
alla scelta.

Arrotondamento Quando si imposta un formato personalizzato per un oggetto campo numerico,


utilizzare questa casella di riepilogo per impostarne la proprietà Arrotondamento.
Questa proprietà consente di specificare il numero di posizioni da arrotondare. Dopo
aver scelto il numero di posizioni desiderato, il numero di esempio nella parte inferiore
della finestra di dialogo viene modificato in base alla scelta.

Negativi Quando si imposta un formato personalizzato per un oggetto campo numerico, questa
proprietà consente di specificare la modalità di visualizzazione dei valori negativi. Le
opzioni disponibili sono riportate di seguito.

-1,23 I valori negativi vengono stampati con il segno meno iniziale (-100,00,
-225,73, -1.000.000).

-1,23 I valori negativi vengono stampati con il segno meno finale (100,00-,
225,73-, 1.000.000,00-).

(1,23) I valori negativi vengono stampati tra parentesi [ (100,00), (225,73),


(1.000.000) ].

Il numero di esempio nella parte inferiore della finestra di dialogo viene modificato in
base alla proprietà selezionata.

Rovescia segno per Selezionando questa casella di controllo, è possibile rovesciare il segno dei valori relativi
visualizzare a debiti e crediti nei report finanziari.

Consenti La casella di controllo Consenti ridimensionamento campo permette di attivare o


ridimensionamento disattivare la rappresentazione del campo di overflow per il campo o i campi selezionati.
campo
● Selezionare questa casella di controllo per disattivare la rappresentazione del
campo di overflow. In base a questa selezione verranno troncati valori troppo grandi
per il campo.
● Deselezionare questa casella di controllo per impedire il ridimensionamento del
campo e attivare la rappresentazione del campo di overflow. Se si attiva la
rappresentazione del campo di overflow, i valori troppo grandi per i campi in cui
sono contenuti verranno rappresentati da una stringa di simboli #.

Separatore decimali Se si imposta un formato personalizzato per un oggetto campo numerico, la casella
Decimali consente di digitare i caratteri prescelti da utilizzare come separatori. Il
carattere predefinito è il punto decimale (.). Se si desidera cambiare il separatore,
sostituire il carattere nella casella di modifica con il separatore prescelto. Il numero di
esempio nella parte inferiore della finestra di dialogo viene modificato in base ai caratteri
digitati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
872 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Quando si digitano i separatori, le dimensioni della casella non cambiano, in quanto è
consentito immettere solo il numero di caratteri che la casella è in grado di contenere.

Separatore migliaia La proprietà Separatore migliaia consente di specificare la modalità di visualizzazione


nei report dei numeri superiori a 999.

● Quando si seleziona la proprietà (segno di spunta), viene inserita una virgola (,) o un
altro carattere prescelto come separatore delle migliaia per valori superiori a 999. I
numeri avranno l'aspetto seguente. 1,000.00 10,000.00, 999,000.00.
● Se si disattiva questa proprietà, non verrà visualizzato il separatore delle migliaia. I
numeri avranno l'aspetto seguente. 1000.00 10000.00, 999000.00.

Simbolo Questa casella visualizza il separatore corrente delle migliaia. Il carattere predefinito è la
virgola (,). Se si desidera utilizzare un altro separatore, digitarlo in questa casella. Le
modifiche apportate in questa casella vengono applicate solo se si seleziona la casella di
controllo Separatore migliaia.

Zero iniziale Lo Zero iniziale consente di inserire uno zero prima della virgola decimale, per i valori
inferiori a uno.

● Selezionare questa proprietà per inserire uno zero prima della virgola decimale in
presenza di valori inferiori a uno (0,001, 0,9999, 0,755).
● Deselezionare questa proprietà se non si desidera inserire lo zero iniziale (,001, ,
999, ,755).

Riporta Valori Zero Questa casella di riepilogo contiene le opzioni disponibili per la visualizzazione dei valori
come di zero (0) nel campo selezionato.

1.7.3.1.18.3 Scheda Data (Stile personalizzato)

Utilizzare la scheda Data per impostare opzioni di formattazione dettagliate per i campi data del report.

Tipo di data La finestra di dialogo Impostazioni internazionali del Pannello di controllo di Windows consente
di specificare i formati della data da utilizzare con i programmi Windows. È possibile specificare
il separatore per mese/giorno/anno e l'ordine in cui visualizzare gli elementi della data. Queste
finestre di dialogo consentono inoltre di specificare uno stile di data abbreviato (ad esempio,
24/12/96 o 16 Mar, 1996) e uno stile esteso (ad esempio, Domenica 21 aprile, 1996).

È possibile:

● scegliere uno dei due stili predefiniti


● scegliere Personalizzato per creare uno stile nell'Editor formato.

Selezionare l'opzione desiderata. La data di esempio nella parte inferiore della finestra di dialogo
viene modificata in base allo stile prescelto.

Tipo di Il sistema operativo può essere in grado di supportare più tipi di calendario.
calendario

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 873
Formato

Mese Se si desidera creare un formato personalizzato per un oggetto campo data, utilizzare questa casella
di riepilogo per specificare in che modo verrà stampata o visualizzata la parte relativa al mese della
data. Le opzioni disponibili sono riportate di seguito.

3 I mesi vengono stampati come numeri. Se il numero del mese è formato da una sola
cifra, la cifra viene stampata senza zero iniziale.

03 I mesi vengono stampati come numeri. Se il numero del mese è formato da una sola
cifra, la cifra viene stampata con lo zero iniziale.

Mar Viene stampata l'abbreviazione del mese.

Marzo Viene stampato il nome completo del mese.

La data di esempio nella parte inferiore della finestra di dialogo viene modificata in base alle scelte
effettuate.

Giorno Se si desidera creare un formato personalizzato per un oggetto campo data, utilizzare questa casella
di riepilogo per specificare in che modo verrà stampata o visualizzata la parte relativa al giorno della
data. Le opzioni disponibili sono riportate di seguito.

1 I giorni vengono stampati come numeri. Se il numero del giorno è formato da una sola
cifra, la cifra viene stampata senza zero iniziale.

01 I giorni vengono stampati come numeri. Se il numero del giorno è formato da una sola
cifra, la cifra viene stampata con lo zero iniziale.

La data di esempio nella parte inferiore della finestra di dialogo viene modificata in base alle scelte
effettuate.

Anno Se si desidera creare un formato personalizzato per un oggetto campo data, utilizzare questa casella
di riepilogo per specificare in che modo verrà stampata o visualizzata la parte relativa all'anno della
data.

99 L'anno viene stampato nel formato abbreviato a due cifre.

1999 L'anno viene stampato nel formato esteso a quattro cifre.

La data di esempio nella parte inferiore della finestra di dialogo viene modificata in base alle scelte
effettuate.

Tipo di Utilizzare la casella di riepilogo Tipo di era/periodo per selezionare un periodo o era di tempo
era/ abbreviato o esteso.
periodo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
874 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Ordine

Opzioni Se si desidera creare un formato personalizzato per un oggetto campo data, utilizzare queste
AMG, GMA, opzioni per selezionare l'ordine in cui visualizzare gli elementi della data. Le opzioni disponibili sono
MGA riportate di seguito.

MGA La data viene stampata nel formato Mese, Giorno, Anno.

GMA La data viene stampata nel formato Giorno, Mese, Anno.

AMG La data viene stampata nel formato Anno, Mese, Giorno.

La data di esempio nella parte inferiore della finestra di dialogo viene modificata in base alla
sequenza prescelta.

Giorno della Settimana

Tipo Se si imposta un formato personalizzato per un oggetto campo data e si desidera visualizzare il nome
del giorno (oppure un'abbreviazione) prima della parte rimanente della data, utilizzare questa
opzione per impostare il formato del nome. Le opzioni disponibili sono riportate di seguito.

Abbreviato Viene stampata un'abbreviazione del nome del giorno prima della data (ad esempio,
Ven).

Esteso Viene stampato il nome intero del giorno prima della data (ad esempio, Venerdì).

Nessuno Non viene stampato il nome del giorno prima della data.

La data di esempio nella parte inferiore della finestra di dialogo viene modificata in base alle scelte
effettuate.

Se si imposta questa proprietà al valore Abbreviato o Esteso, occorre specificare i caratteri da


utilizzare per separare il nome dalla data. È possibile eseguire questa scelta nella casella Separatore.

Sep Se si imposta un formato personalizzato per un oggetto campo data, è necessario specificare i
caratteri da utilizzare per separare il giorno della settimana dalla data. È possibile effettuare la
selezione in questa casella e È possibile scegliere tutti i caratteri necessari disponibili nel sistema.

Digitare i caratteri che si desidera utilizzare. La data di esempio nella parte inferiore della finestra di
dialogo viene modificata in base alle scelte effettuate.

Incl Utilizzare la casella di riepilogo Inclusioni per selezionare le parentesi tonde o quadre come inclusione
per i campi data/ora nel report.

Posizione Utilizzare la casella di riepilogo Posizione per selezionare la posizione Iniziale o Finale.

Separatori

Se si imposta un formato personalizzato per un oggetto campo data, è possibile specificare gli eventuali
separatori da utilizzare per gli elementi della data. Poiché ogni data presenta tre elementi (AMG, GMA o MGA), è

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 875
possibile specificare due diversi separatori. Il primo separatore viene inserito tra il primo e il secondo elemento e il
secondo separatore tra il secondo e il terzo elemento.

Collega Selezionare questa opzione per includere i separatori specificati durante l'ordinamento dei campi
separatori data.
all'ordine
data

Prefisso Utilizzare la casella Prefisso per creare un prefisso per le date nel campo data, ad esempio, DATA.

Primo Se si imposta un formato personalizzato per un oggetto campo data, è possibile specificare gli
eventuali separatori da utilizzare per gli elementi della data. Poiché ogni data presenta tre
elementi (AMG, GMA o MGA), è possibile specificare due diversi separatori. Il primo separatore
viene inserito tra il primo e il secondo elemento e il secondo separatore tra il secondo e il terzo
elemento. Digitare in questa casella i caratteri da utilizzare per il primo separatore. È possibile
scegliere tutti i caratteri necessari disponibili nel sistema. Ad esempio,

● se si utilizza un formato abbreviato, ad esempio la data espressa con soli numeri, può essere
indicata la barra (/) sia come primo che come secondo separatore (come in 25/12/96)
● se si utilizza un formato esteso con il nome del mese completo, è possibile non specificare
alcun separatore tra il primo e il secondo elemento, e una virgola tra il secondo e il terzo
(come in 22 marzo, 1998).

Secondi Se si imposta un formato personalizzato per un oggetto campo data, è possibile specificare gli
eventuali separatori da utilizzare per gli elementi della data. Poiché ogni data presenta tre
elementi (AMG, GMA o MGA), è possibile specificare due diversi separatori. Il primo separatore
viene inserito tra il primo e il secondo elemento e il secondo separatore tra il secondo e il terzo
elemento. Digitare in questa casella i caratteri da utilizzare per il secondo separatore. È possibile
scegliere tutti i caratteri necessari disponibili nel sistema. Ad esempio,

● se si utilizza un formato abbreviato, ad esempio la data espressa con soli numeri, può essere
indicata la barra (/) sia come primo che come secondo separatore (ad esempio, 25/12/96)
● se si utilizza un formato esteso con il nome del mese completo, è possibile non specificare
alcun separatore tra il primo e il secondo elemento, e una virgola tra il secondo e il terzo
(come in 22 marzo, 1998).

Suffisso Utilizzare la casella Suffisso per creare un suffisso da inserire dopo le date nel campo data.

1.7.3.1.18.4 Scheda Ora (Stile personalizzato)

Utilizzare la scheda Ora per impostare opzioni di formattazione dettagliate per i campi ora del report.

Usa formato Selezionare questa casella di controllo per utilizzare il formato specificato nelle
predefinito del Impostazioni internazionali di Windows
sistema

12 ore Selezionare questa casella di controllo per visualizzare l'ora nel formato 12 ore.

24 ore Selezionare questa casella di controllo per visualizzare l'ora nel formato 24 ore.

00:00-11:59 Utilizzare questa casella per specificare i caratteri da utilizzare per identificare le ore
comprese tra mezzanotte e mezzogiorno, invece dell'impostazione predefinita AM.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
876 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
12:00-23:59 Utilizzare questa casella per specificare i caratteri da utilizzare per identificare le ore
comprese tra mezzogiorno e mezzanotte, invece dell'impostazione predefinita PM.

Posizione simbolo Utilizzare la casella di riepilogo Posizione simbolo per selezionare la posizione dei simboli
AM o PM nel campo ora.

Nota
L'opzione Posizione simbolo è disponibile solo per il formato 12 ore.

Ora Questa casella di riepilogo mostra tutti i formati possibili per la visualizzazione dell'ora.
Selezionare il formato desiderato. L'ora di esempio nella parte inferiore della finestra di
dialogo viene formattata in base alle scelte effettuate.

Minuti Questa casella di riepilogo mostra tutti i formati possibili per la visualizzazione dei minuti.
Selezionare il formato desiderato. L'ora di esempio nella parte inferiore della finestra di
dialogo viene formattata in base alle scelte effettuate.

Secondi Questa casella di riepilogo mostra tutti i formati possibili per la visualizzazione dei secondi.
Selezionare il formato desiderato. L'ora di esempio nella parte inferiore della finestra di
dialogo viene formattata in base alle scelte effettuate.

Separatore Utilizzare questa casella per immettere i caratteri da utilizzare per separare le ore e i minuti
ore/min nel campo ora.

Separatore Utilizzare questa casella per immettere i caratteri da utilizzare per separare i minuti e i
min/sec secondi nel campo ora.

1.7.3.1.18.5 Scheda Data e ora (Stile personalizzato)

Utilizzare la scheda Data e ora per impostare opzioni di formattazione dettagliate per i campi data/ora del report.

Ordine Selezionare in questa casella di riepilogo l'ordine in cui si desidera visualizzare gli elementi del
campo data/ora. È possibile selezionare:

● Data ora (99/03/01 1:23:45AM)


● Ora data (1:23:45AM 99/03/01)
● Data (99/03/01)
● Ora (1:23:45AM)

Separatore Digitare i caratteri prescelti per separare gli elementi data e ora del campo data/ora. Ad esempio,
se si digita "X" nella casella Separatore si ottiene la formattazione seguente per un campo data/ora
nell'ordine Data Ora: 99/03/01 X 1:23:45AM

Nota
Il carattere Separatore non influisce sull'ordinamento se si seleziona Data o Ora.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 877
1.7.3.1.19 Finestra di dialogo Explorer Dati

Explorer Dati consente di selezionare il server cui si desidera collegarsi o scollegarsi da una visualizzazione
struttura come quella dell'Esperto database.

Collegamento Consente di collegarsi all’origine di dati selezionata dal relativo elenco.

Scollegamento Consente di scollegarsi dall’origine di dati selezionata dal relativo elenco.

Aggiungi a Preferiti Aggiunge l’origine dati selezionata alla cartella Preferiti.

Elimina preferito Rimuove l’origine dati selezionata dalla cartella Preferiti.

Opzioni Consente di accedere alle opzioni che è possibile impostare globalmente nella scheda
Database della finestra di dialogo Opzioni.

1.7.3.1.20 Finestre di dialogo Data Source Connection


Information

Per creare un report, è necessario selezionare un'origine dati nell'elenco Origini dati disponibili della scheda Dati
(Esperto database). Per alcune origini dati, inoltre, può essere necessario fornire informazioni aggiuntive

Nota
Questa finestra di dialogo è strutturata diversamente a seconda dell'origine dati a cui ci si connette e dalla
scelta di utilizzare un provider o di attingere direttamente all'origine dati.

Informazioni correlate

Finestra di dialogo Esperto database [pagina 976]


Accesso e aggiunta di dati [pagina 657]
Creazione di report da set di dati ADO.NET [pagina 658]
Descrive le modalità di connessione del report a un set di dati ADO.NET.

1.7.3.1.21 Finestra di dialogo Impostazioni predefinite

Utilizzare la finestra di dialogo Impostazioni predefinite per configurare le impostazioni e le opzioni di


formattazione del programma. È possibile accedere a questa finestra di dialogo facendo doppio clic in Report
Designer, selezionando Progettazione e facendo clic su Impostazioni predefinite.

Suggerimento
Utilizzare la finestra di dialogo Impostazioni predefinite per modificare i valori predefiniti del programma e la
finestra di dialogo Opzioni report per modificare le opzioni del report corrente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
878 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.21.1 Scheda Layout (Impostazioni predefinite)

Utilizzare la scheda Layout per impostare la griglia predefinita, il righello e le opzioni per la formattazione degli
oggetti.

Opzioni campo

Selezionare il formato da utilizzare per visualizzare i campi nel report nella modalità di progettazione.

Opzione campo Definizione Esempio

Mostra nomi campi Visualizza il nome del campo. ID cliente

PrintDate

Mostra nomi Oggetto Visualizza il nome oggetto del Field1


campo.
Field2

Mostra simboli Formato Visualizza il formato di output del 5.555.555


campo.
1:23:45AM

Inserisci titoli campi Se si seleziona questa casella di controllo, nella sezione Intestazione pagina viene
di dettaglio visualizzato un titolo di campo predefinito quando si inserisce un campo nella sezione
Dettagli. Il titolo predefinito corrisponde al nome del campo, sottolineato. Per
impostazione predefinita l'opzione è selezionata.

Inserisci nome Se si seleziona questa casella di controllo, nell'Intestazione gruppo viene inserito
gruppo con gruppo automaticamente il Nome gruppo quando si inserisce un nuovo gruppo. Per impostazione
predefinita l'opzione è selezionata.

Opzioni di visualizzazione

Visualizza righelli Se si seleziona questa casella di controllo, il Righello viene visualizzato nella modalità di
progettazione. Per impostazione predefinita l'opzione è selezionata.

Mostra sezioni Se si seleziona questa casella di controllo, le sezioni nascoste e omesse del report
nascoste vengono visualizzate nella modalità di progettazione. Gli oggetti report in queste sezioni
vengono visualizzati su sfondo grigio. Per impostazione predefinita l'opzione è
selezionata.

Mostra interruzioni Se si seleziona questa casella di controllo, vengono visualizzati gli indicatori relativi alle
pagina in pagine interruzioni di pagina nelle pagine estese. Per impostazione predefinita l'opzione è
estese selezionata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 879
Opzioni griglia

Blocca sulla griglia Se si seleziona questa casella di controllo, i nuovi campi database inseriti vengono bloccati
sulle posizioni di griglia più vicine. Se si deseleziona questa casella di controllo, i nuovi campi
database rimangono nella posizione in cui vengono inseriti. Per impostazione predefinita
l'opzione è selezionata.

Mostra griglia Se si seleziona questa casella di controllo, nella modalità di progettazione viene visualizzata
la griglia.

Dimensione griglia Questa casella di controllo consente di specificare la dimensione degli incrementi della
griglia. L'unità di misura utilizzata per gli incrementi della griglia è basata sulle Impostazioni
internazionali del Pannello di controllo di Windows.

1.7.3.1.21.2 Scheda Database (Impostazioni predefinite)

Utilizzare la scheda Database per impostare le opzioni relative al database SQL/ODBC, il metodo da utilizzare per
ordinare e visualizzare i nomi di campo e tabella e altre opzioni avanzate.

Tabelle e campi

Impostando le opzioni in questa sezione della scheda Database, è possibile specificare il testo da utilizzare per
tabelle e campi.

Mostra nome Se si seleziona questa opzione, vengono identificate le tabelle e i campi tramite il nome
effettivo, ad esempio, la tabella "Clienti" e il campo "Nome cliente". Per impostazione
predefinita l'opzione è selezionata.

Mostra descrizione Se si seleziona questa opzione, vengono identificate le tabelle e i campi tramite la
descrizione specificata, ad esempio, la tabella "Nostri clienti" e il campo "I nomi di tutti i
clienti".

Mostra entrambi Se si seleziona questa opzione, vengono identificate le tabelle e i campi tramite il nome e
la descrizione specificati, ad esempio, la tabella "Clienti - Nostri clienti" e il campo
"Nome cliente - I nomi di tutti i clienti".

Ordina tabelle Se si seleziona questa casella di controllo, le tabelle vengono visualizzate in ordine
alfabeticamente alfabetico (e non nell'ordine in cui appaiono nel database). Per impostazione predefinita
l'opzione è selezionata.

Ordina campi Se si seleziona questa casella di controllo, i campi vengono visualizzati in ordine
alfabeticamente alfabetico (e non nell'ordine in cui appaiono nella tabella del database). In base
all'impostazione predefinita questa opzione non è selezionata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
880 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Opzioni di Explorer Dati

Tabelle Se si seleziona questa casella di controllo, è possibile creare report sulla base delle tabelle di
database nelle origini dei dati SQL/ODBC. Per impostazione predefinita l'opzione è
selezionata.

Viste Se si seleziona questa casella di controllo, è possibile creare report sulla base delle tabelle
virtuali nelle origini dei dati SQL/ODBC. Per impostazione predefinita l'opzione è selezionata.

Tabelle di Se si seleziona questa casella di controllo, è possibile creare report sulla base delle tabelle di
sistema sistema. Queste tabelle vengono in genere utilizzate solo dagli amministratori di sistema ma è
possibile utilizzarle se si dispone delle autorizzazioni appropriate. In base all'impostazione
predefinita questa opzione non è selezionata.

Sinonimi Se si seleziona questa casella di controllo, è possibile creare report sulla base delle tabelle
virtuali disponibili su alcuni host. In base all'impostazione predefinita questa opzione non è
selezionata.

Procedure Se si seleziona questa casella di controllo, è possibile creare report sulla base delle serie di
memorizzate risultati ottenuti dalle procedure memorizzate, se si utilizzano sistemi SQL che supportano
tali procedure. In base all'impostazione predefinita questa opzione non è selezionata.

Nome tabella Questa casella consente di immettere la funzione SQL LIKE per specificare i tipi di nomi di
LIKE tabelle da visualizzare nell'Esperto database. È possibile utilizzare il simbolo di sottolineatura
(_) e di percentuale (%) come caratteri jolly. Il simbolo di sottolineatura definisce un carattere
singolo, mentre il simbolo di percentuale definisce una stringa di caratteri. Ad esempio, DAV_
corrisponde solo a DAVE, mentre DAV% può corrispondere a DAVE e DAVID. Nome tabella
LIKE C% visualizza solo le tabelle il cui nome inizia con la lettera C.

Proprietario LIKE La funzione di questa casella è analoga a Nome tabella Like, tuttavia in questo caso la
funzione LIKE viene utilizzata per selezionare il Proprietario (o Creatore o Alias) della tabella e
non il nome di tabella. Ad esempio Proprietario LIKE C% visualizza solo le tabelle il cui
proprietario inizia con la lettera C.

Opzioni avanzate

Usa indici o server per Selezionare questa casella di controllo per utilizzare gli indici o server per velocizzare il
velocità processo di selezione dei record. Se si deseleziona questa casella di controllo, il
processo di selezione dei record può risultare molto più lento. Per impostazione
predefinita l'opzione è selezionata.

Nota
Se un indice contiene un nome diverso dal database che indicizza, è necessario
identificare l'indice manualmente. È possibile eseguire questa operazione tramite la
finestra di dialogo Opzioni di collegamento.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 881
Esegui Selezionare questa casella di controllo per l'esecuzione dei raggruppamenti sul server
raggruppamento su ovvero l'esecuzione dell'elaborazione sul server. Il lato server consente di impostare un
server report che esegua la maggior parte dell’elaborazione sul server e passi al computer
solo le informazioni necessarie. L'elaborazione sul lato server offre i vantaggi seguenti:

● riduzione del tempo di connessione al server


● minore memoria necessaria per elaborare il report sul computer locale
● tempi di trasferimento inferiori dal server al client

È inoltre opportuno notare che l'elaborazione sul server ha luogo solo per report basati
su origini di dati SQL ad esempio, non è possibile utilizzare l'elaborazione sul server per
un report basato su una query, in quanto una query non è un'origine di dati SQL.

Per impostazione predefinita l'opzione non è selezionata.

Server di database Selezionare questa casella di controllo se si desidera eseguire ricerche di stringhe nei
senza distinzione dati SQL senza distinzione tra maiuscole e minuscole. Ad esempio, se il report contiene
maius./minus. dati SQL comprendenti lettere maiuscole e minuscole (rosso, ROSSO, Rosso), la
ricerca della parola "rosso" in cui venga fatta differenza tra maiuscole e minuscole
restituirà solo "rosso". Se si seleziona questa casella di controllo, la stessa query
restituirà rosso, ROSSO e Rosso se si utilizza rosso come valore di selezione dei
record. Per impostazione predefinita l'opzione è selezionata.

Seleziona dati distinti Se si seleziona l'opzione Seleziona dati distinti per sfogliare, è possibile vedere i primi
per sfogliare 500 record distinti (univoci) quando si sfoglia il contenuto di un campo di database.

Se l'opzione Seleziona dati distinti per sfogliare non è selezionata, vengono restituiti i
valori univoci nei primi 500 record.

Nota
Poiché molti server SQL non supportano la selezione di record distinti per tipi di dati
lunghi, come campi memo e BLOB, tali campi non consentono di selezionare né
sfogliare record distinti.

Verifica al primo Se questa casella di controllo è selezionata, al primo aggiornamento di ogni sessione il
aggiornamento report viene aggiornato con la versione corrente del database attivo e i buffer dei
record vengono reimpostati in base alla dimensione corrente del record. Per
impostazione predefinita l'opzione è selezionata.

Verifica procedure Se questa casella di controllo è selezionata, al primo aggiornamento di ogni sessione il
memorizzate al primo report viene aggiornato con la versione corrente della procedura memorizzata e i
aggiornamento buffer dei record vengono reimpostati in base alla dimensione corrente del record. In
base all'impostazione predefinita questa opzione non è selezionata.

Verifica Se questa casella di controllo è selezionata, quando si cambia il driver del database il
all’aggiornamento del report viene aggiornato con la versione corrente del database attivo e i buffer dei
driver del database record vengono reimpostati in base alla dimensione corrente del record. Per
impostazione predefinita l'opzione è selezionata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
882 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.21.3 Scheda Editor (Impostazioni predefinite)

La scheda Editor consente di personalizzare le opzioni di formattazione per il testo creato negli editor, ad esempio
l'Editor delle formule o l'Editor espressioni SQL.

Opzioni di formattazione

Font Utilizzare la casella di riepilogo Carattere per selezionare le opzioni per il testo creato negli
Editor. Le modifiche ai caratteri influiscono su tutti gli elementi degli Editor.

Dimensione Utilizzare la casella di riepilogo Dimensione carattere per selezionare la dimensione del
carattere carattere per il testo creato negli Editor. Le modifiche alla dimensione dei caratteri
influiscono su tutti gli elementi degli Editor.

Dimensione Utilizzare la casella Dimensione tabulazione per immettere il numero di spazi da utilizzare
tabulazione per indicare una <tabulazione> nel testo.

Colore

Elemento La casella di riepilogo Elemento contiene quattro tipi di elementi che è possibile inserire
nell'Editor. Selezionando gli elementi Commento o Parola chiave, è possibile modificare i colori di
primo piano o di sfondo. Per gli elementi Testo e Selezione di testo è possibile eseguire solo la
formattazione di Carattere, Dimensione carattere e Dimensione tabulazione.

Primo piano Utilizzare l'elenco di controllo Primo piano per modificare il colore del testo di un elemento
dell'Editor. Per ogni elemento, sono disponibili tre opzioni di colore separate.

Nota
Le caselle di riepilogo Primo piano e Sfondo si attivano per gli elementi Testo e Selezione di
testo quando la casella di controllo "Usa colori di sistema Windows" non è selezionata.

Sfondo Utilizzare la casella di riepilogo Sfondo per modificare il colore dello sfondo di un elemento
dell'Editor. Per ogni elemento sono disponibili tre opzioni di colore separate, compresa
un'opzione personalizzata che consente di visualizzare la finestra di dialogo Colore per effettuare
la selezione tra un numero maggiore di colori di sfondo.

Usa colori di Deselezionare questa casella di controllo per attivare le caselle di riepilogo Primo piano e Sfondo
sistema per gli elementi Testo e Selezione di testo.
Windows

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 883
Campione

La casella Esempio mostra l'effetto delle modifiche apportate a Carattere, Dimensione carattere, Colore di primo
piano e Colore di sfondo nell'Editor.

Ripristina tutto Fare clic su Ripristina tutto per ripristinare tutte le modifiche apportate alla formattazione nella
scheda Editor ai valori predefiniti.

1.7.3.1.21.4 Scheda Impostazioni predefinite origine dati


(Impostazioni predefinite)

Directory dati Immettere in questa casella il nome (e il percorso) della Directory dati da utilizzare per il report.
Se non si conosce il nome e il percorso completo, fare clic sul pulsante Sfoglia.

Sfoglia Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Sfoglia per cartelle.
Utilizzare il controllo della struttura per selezionare la cartella desiderata. Scegliere Crea nuova
cartella per aggiungere una cartella non ancora esistente. Fare clic su OK per tornare alla scheda
Impostazioni predefinite origine dati.

Filtro file Immettere le estensioni dei file di database da considerare come predefinite quando si sfogliano
database le origini dei dati. Le estensioni specificate definiscono quelle dell'opzione Predefinito nel filtro
Tipo file quando si sfogliano le origini dei dati nell'Esperto database.

1.7.3.1.21.5 Scheda Creazione report (Impostazioni


predefinite)

Le opzioni per la creazione di report di questa scheda consentono di definire la selezione dei dati e l'eventuale
salvataggio dei dati nel report.

Converti valori NULL Selezionare questa casella di controllo per impostare la conversione automatica dei valori
del database in null del database in 0 (per i campi numerici) o in uno spazio vuoto (per i campi non
impostazioni numerici). In base all'impostazione predefinita questa opzione non è selezionata.
predefinite
Nota
Questa opzione riguarda esclusivamente i valori null presenti nel database utilizzato
per un report.

Converti altri valori Selezionare questa casella di controllo per impostare la conversione automatica dei valori
NULL in null presenti nel report ma non contenuti nel database in 0 (per i campi numerici) o in uno
impostazioni spazio vuoto (per i campi non numerici). In base all'impostazione predefinita questa
predefinite opzione non è selezionata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
884 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Questa opzione riguarda esclusivamente i valori null del report che non sono contenuti
nel database.

Ordina sempre Selezionare questa casella di controllo per assicurarsi che i record vengano ordinati
localmente localmente anche nel caso in cui erano stati preordinati al momento del recupero
dall'origine dati.

Ignora dati salvati Selezionare questa casella di controllo per ignorare i dati salvati quando si caricano i
nel caricamento report. Quando si apre un report, questa funzione consente di rimuovere la serie corrente
report di dati del report dal database, in modo da poter immettere i nuovi dati conservando
impostazioni e formattazione del report. In base all'impostazione predefinita questa
opzione non è selezionata.

Reimporta Selezionare questa casella di controllo per reimportare i sottoreport utilizzati nel report.
sottoreport Vengono riportate le eventuali modifiche apportate al sottoreport dall'ultima apertura del
all'apertura dei report principale.
report

Mostra tutte le È possibile utilizzare questa casella di controllo se si desidera che le visualizzazioni
intestazioni in analisi dell'analisi dettagliata dei report includano le intestazioni di tutte le sezioni sopra ai record
dettagliata di analisi dettagliata. In base all'impostazione predefinita questa opzione non è
selezionata.

Salva immagine Utilizzare questa casella di controllo per impostare globalmente l'opzione Salva immagine
anteprima anteprima della finestra di dialogo Proprietà documento.

Poiché, per impostazione predefinita, l'opzione Salva immagine anteprima non è


selezionata nella finestra di dialogo Proprietà documento, selezionando questa opzione
ogni report creato, visualizzato in anteprima e memorizzato viene salvato con
un'immagine di anteprima (o immagine in miniatura).

Mantieni profondità Se si desidera che, quando vengono incapsulate, le immagini del report conservino la
colore immagine profondità del colore originale, selezionare questa opzione. Altrimenti, prima della
originale visualizzazione, tutte le immagini saranno convertite in un formato a 8 bit per pixel. Grazie
a questa opzione SAP Crystal Reports esegue il rendering delle immagini come copie
esatte degli originali. SAP Crystal Reports, tuttavia, memorizza informazioni
supplementari sulle immagini e quindi i file potrebbero diventare più grandi e i tempi di
risposta si potrebbero allungare durante il caricamento dei report.

Linguaggio formula Utilizzare questa casella di riepilogo per scegliere il linguaggio formula da utilizzare. È
possibile scegliere tra Sintassi Crystal e Sintassi Basic. Per impostazione predefinita è
selezionata l'opzione Sintassi Crystal.

1.7.3.1.21.6 Scheda Campo (Impostazioni predefinite)

Utilizzare la scheda Campo per impostare il formato predefinito dei campi stringa, numero, valuta, data, ora, data
ora e Booleano. Per tutti gli oggetti campo a cui non è stata assegnata una formattazione personalizzata, viene
utilizzata la formattazione predefinita.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 885
Stringa Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo stringa. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune dell'Editor
formato.

Numero Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo numero. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune dell'Editor
formato. La scheda Numero è disponibile anche nell'Editor formato.

Valuta Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo valuta. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune dell'Editor
formato. La scheda Numero è disponibile anche nell'Editor formato.

Data Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo data. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune dell'Editor
formato. La scheda Data è disponibile anche nell'Editor formato.

Ora Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo ora. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune dell'Editor
formato. La scheda Ora è disponibile anche nell'Editor formato.

Data e ora Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo data e ora. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune
dell'Editor formato. La scheda Data e ora è disponibile anche nell'Editor formato.

Booleano Fare clic su questo pulsante per impostare le proprietà di formattazione predefinite per gli oggetti
campo booleano. Quando si fa clic su questo pulsante, viene visualizzata la scheda Comune
dell'Editor formato. La scheda Booleano è disponibile anche nell'Editor formato.

1.7.3.1.21.7 Scheda Caratteri (Impostazioni predefinite)

Utilizzare la scheda Caratteri per cambiare i caratteri dei campi del report.

Campi Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri. È possibile
impostare il carattere di tutti i campi del report.

Campi di Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri. È possibile
riepilogo impostare il carattere di tutti i campi di riepilogo del report.

Campi Nome Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri. È possibile
Gruppo impostare il carattere di tutti i campi nome gruppo del report.

Oggetti testo Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri. È possibile
impostare il carattere di tutti gli oggetti testo del report.

Titoli di campo Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri. È possibile
impostare il carattere di tutti i titoli di campo del report.

Grafici Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri. È possibile
impostare il carattere di tutti i grafici del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
886 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.22 Finestra di dialogo Valori predefiniti per

Questa finestra di dialogo viene visualizzata quando si fa clic su un campo Valori predefiniti per un argomento
nella finestra di dialogo Proprietà funzioni personalizzate.

Al nome completo della finestra di dialogo vengono aggiunti il nome e il tipo dell’argomento selezionato. Se, ad
esempio, si seleziona un argomento DataOra denominato "GiornoTrimestre", il nome della finestra di dialogo
viene visualizzato come "Valori predefiniti per GiornoTrimestre (Data Ora)".

La finestra di dialogo "Valori predefiniti per" consente di creare un insieme di valori predefiniti da utilizzare
nell'Esperto formule.

Utilizzare l’elenco in alto per creare i valori predefiniti che si desidera visualizzare. È possibile immettere valori
direttamente o, come nel caso dei valori data, selezionarli da un calendario o da un elenco.

L’elenco in basso contiene i valori definiti. Saranno questi i valori visibili per gli utenti nell’Esperto formule.

Aggiungi Utilizzare il pulsante Aggiungi per aggiungere all’elenco in basso valori presenti nell’elenco in alto.

Rimuovi Utilizzare il pulsante Rimuovi per rimuovere valori dall’elenco in basso.

Su e Giù Utilizzare i pulsanti Su e Giù per modificare l’ordinamento dei valori contenuti nell’elenco in basso.

1.7.3.1.23 Finestra di dialogo Definisci descrizione

Questa finestra di dialogo consente di definire la descrizione di un valore di parametro predefinito e viene
visualizzata quando si fa clic sul pulsante Imposta descrizione nella finestra di dialogo Imposta valori predefiniti.

Immettere la descrizione nella casella e fare clic su OK.

Informazioni correlate

Finestra di dialogo Imposta valori predefiniti [pagina 939]


Finestra di dialogo Crea campo parametro [pagina 863]

1.7.3.1.24 Finestra di dialogo Definisci gruppo denominato

Se si utilizza il raggruppamento in base all'ordine specificato, è necessario utilizzare la finestra di dialogo Definisci
gruppo denominato per creare i gruppi e specificare i valori in ciascuno quando si esegue il raggruppamento in
base all'ordine specificato.

Questa finestra di dialogo viene visualizzata quando si fa clic sul pulsante Nuovo o Modifica nella scheda Ordine
specificato della finestra di dialogo Inserisci gruppo o Criterio ordinamento grafici.

Nome Digitare in questa casella il nome da utilizzare per il gruppo. Per impostazione predefinita, il nome
gruppo viene visualizzato nella sezione intestazione del gruppo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 887
In una apposita scheda per il gruppo denominato è possibile specificare il criterio di selezione.
Selezionare un tipo di criterio di selezione dalla casella di riepilogo. Per aggiungere un altro
criterio di selezione, fare clic sulla scheda Nuovo.

Selezione Scegliere i criteri di raggruppamento. In base all'opzione prescelta, è possibile selezionare i dati
gruppi del campo dall'elenco a discesa.

Sfoglia dati Fare clic su questo pulsante per sfogliare i dati del campo. È possibile selezionare i dati dalla
finestra di dialogo aperta e fare clic sul pulsante Incolla per incollarli nella casella di riepilogo
Selezione. Fare clic sul pulsante Chiudi per tornare alla finestra di dialogo Definisci gruppo
denominato.

Schede Le schede visualizzano i campi che contengono i valori utilizzati per creare il gruppo. Tutte le
schede sono relative allo stesso gruppo, e ciascuna si riferisce a una specifica parte della query
utilizzata per creare il gruppo. Quando si fa clic su una scheda, nella finestra di dialogo viene
visualizzata la corrispondente parte della query. Se si desidera espandere la query, fare clic sulla
scheda Nuovo.

Informazioni correlate

Finestra di dialogo Sfoglia dati [pagina 842]


Finestra di dialogo Criterio ordinamento grafici [pagina 857]
Raggruppamento, ordinamento e calcolo dei totali dei dati [pagina 695]
creazioni guidate di report [pagina 953]

1.7.3.1.25 Finestra di dialogo Proprietà documento

Utilizzare la finestra di dialogo Proprietà documento per

● aggiungere dati di riepilogo al report (per facilitare l'identificazione del report agli utenti).
● visualizzare le informazioni statistiche generate dal programma per ogni report.

Questa finestra di dialogo viene visualizzata quando si fa clic con il pulsante destro del mouse in un report, si
seleziona Report, quindi Info di riepilogo.

1.7.3.1.25.1 Scheda Riepilogo (Proprietà documento)

Utilizzare la scheda Riepilogo per aggiungere le informazioni di riepilogo al file del report. È possibile utilizzare in
seguito queste informazioni per identificare con maggiore facilità il contenuto del report.

Autore Digitare in questa casella il nome dell'autore o degli autori del report.

Parole chiave Digitare in questa casella le parole chiave che consentiranno di identificare il contenuto del
report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
888 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Commenti Digitare in questa casella i commenti da salvare insieme al report. I commenti descrivono il
contenuto, il motivo della creazione del report e così via.

Nota
Se si includono questi commenti nel report tramite il Campo speciale denominato
Commenti report, verranno visualizzati solo i primi 256 caratteri.

Titolo Digitare in questa casella il titolo del report. È possibile aggiungere al report il titolo immesso
in questa casella tramite il Campo speciale denominato Titolo report.

Oggetto Digitare in questa casella l'oggetto globale del report.

Modello Se il report è stato creato utilizzando un altro report come modello, digitarne il nome.

Salva immagine Selezionare questa casella di controllo se si desidera creare un'immagine della prima pagina
anteprima del report per poterla visualizzare quando si seleziona un report nella finestra di dialogo Apri.
Per impostazione predefinita questa casella di controllo non è selezionata.

Informazioni correlate

Finestra di dialogo Impostazioni predefinite [pagina 878]

1.7.3.1.25.2 Scheda Statistiche (Proprietà documento)

Utilizzare la scheda Statistiche per visualizzare le informazioni relative alla gestione del documento generate per il
report.

Autore ultimo Questa scheda visualizza il nome indicato nella casella Autore della scheda Riepilogo
salvataggio (Proprietà documento) l'ultima volta in cui è stato salvato il report. Se durante l'ultimo
salvataggio del report non era presente alcun nome, questa riga risulta vuota.

Numero revisione Questa riga visualizza il numero di revisioni effettuate sul report. Il valore del numero di
revisione di ogni nuovo report è impostato a zero (0). Il numero aumenta di uno tutte le volte
che si salva il report, anche se non vengono apportate modifiche.

Tempo totale di Questa riga visualizza il numero di minuti totali trascorsi dall'apertura del report per le
modifica modifiche, anche se non sono state apportate modifiche effettive.

Nota
Questo valore non viene aggiornato quando la finestra di dialogo è aperta. Ogni volta che
si apre la finestra di dialogo Proprietà documento, il valore viene aggiornato.

Ultima stampa Questa riga visualizza la data e l'ora della stampa del report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 889
Nota
Il valore non viene aggiornato quando si esporta o si visualizza in anteprima il report.

Creato Questa riga visualizza la data e l'ora di creazione del report.

Ultimo Questa riga visualizza la data e l'ora dell'ultimo salvataggio del report.
salvataggio

Informazioni correlate

Finestra di dialogo Impostazioni predefinite [pagina 878]

1.7.3.1.26 Finestra di dialogo Modifica riepilogo

Utilizzare la finestra di dialogo Modifica riepilogo per impostare o modificare l’operazione di riepilogo per il campo
selezionato.

Questa finestra di dialogo viene visualizzata quando si seleziona un campo di riepilogo in un report, si fa clic con il
pulsante destro del mouse su di esso e si seleziona il comando Modifica operazione di riepilogo dal menu di scelta
rapida. Il comando è disponibile anche nei seguenti casi:

● Quando si fa clic sul pulsante Modifica riepilogo per un campo riepilogato nell'Esperto campi incrociati.
● Quando si fa clic sul pulsante Imposta operazione di riepilogo nella scheda Dati (Esperto mappa) dell'Esperto
grafico o dell'Esperto mappa.
Il pulsante Imposta operazione di riepilogo è disponibile per i grafici e le mappe con tipo di layout Avanzato.
Per attivare il pulsante, spostare un campo nella casella di riepilogo "valori" e selezionarlo.

Nota
Gli oggetti mappa non sono supportati in questa versione di SAP Crystal Reports.

Scegliere il In questa casella di riepilogo sono visualizzati i campi e le formule utilizzati nel report, oltre ai
campo da campi disponibili nelle tabelle di origine dati del report. Selezionare il campo che si desidera
riepilogare includere nel riepilogo.

Calcolare questo In questa casella di riepilogo sono visualizzate tutte le operazioni di riepilogo che è possibile
riepilogo eseguire sul report. Selezionare l'operazione desiderata.

Nota
Non tutti i tipi di riepilogo disponibili sono applicabili a tutti i campi. Ad esempio, non è
possibile sommare o calcolare la media di un campo testo booleano, data/ora, ora o data.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
890 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Mostra come Selezionare questa casella di controllo se si desidera calcolare il totale in percentuale di un
percentuale di gruppo all'interno di un raggruppamento più grande. Ad esempio, è possibile mostrare la
percentuale di vendite in ciascuna città in base alle vendite totali per ciascun paese.

Dopo aver selezionato questa casella di controllo, è possibile scegliere il totale o il gruppo sul
quale si desidera basare il confronto.

Nota
L'opzione percentuale è disponibile solo quando il risultato di una operazione di riepilogo è
un valore numerico.

Riepiloga Questa opzione consente di eseguire un riepilogo di tutti i raggruppamenti effettuati in ordine
attraverso gerarchico. Per impostare o modificare le Opzioni gerarchiche di un gruppo esistente,
gerarchia scegliere Opzioni Raggruppamento Gerarchico dal menu Report.

Informazioni correlate

Finestra di dialogo Inserisci riepilogo [pagina 924]


Riepilogo dei dati raggruppati [pagina 698]

1.7.3.1.27 Finestra di dialogo Immetti il valore per

Questa finestra di dialogo viene visualizzata quando si seleziona l'opzione Immetti valore costante dall'elenco
Valore presente nell'area Argomenti funzione dell'Esperto formule.

non è necessario utilizzare questa finestra di dialogo per tutti i tipi di argomento: i tipi semplici, non soggetti a
restrizioni di formattazione (come invece avviene, ad esempio, per i campi data) possono essere immessi
direttamente.

Al nome completo della finestra di dialogo vengono aggiunti il nome e il tipo dell’argomento selezionato. Se, ad
esempio, si seleziona un argomento DataOra denominato "GiornoTrimestre", il nome della finestra di dialogo
viene visualizzato come "Immetti il valore per GiornoTrimestre (DataOra)".

Questa finestra di dialogo si presenta in diverse versioni, a seconda che si tratti di selezionare:

● un singolo valore.
● un intervallo di valori.
● una matrice di valori.
● una matrice di valori organizzati in intervalli.

Valore singolo Utilizzare le opzioni di questa finestra di dialogo per selezionare un singolo valore da adoperare
nella formula. Questa versione della finestra di dialogo consente di creare una formula con un
valore come CDateTime (2001, 12, 07, 15, 50, 18).

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 891
Intervallo di Utilizzare le opzioni di questa finestra di dialogo per selezionare un valore iniziale e un valore
valori finale per delimitare l’intervallo della formula. Questa versione della finestra di dialogo
consente di creare una formula con un intervallo come (10000 To 50000).

Nota
Le opzioni presenti nell'elenco Valore consentono di definire più esattamente le modalità di
calcolo dell'intervallo della formula. L'elenco comprende opzioni quali "è compreso tra,
inclusi punti finali", "è compreso tra, esclusi punti finali", e così via.

Matrice di valori Utilizzare le opzioni di questa finestra di dialogo per selezionare una matrice di valori da
adoperare nella formula. Questa versione della finestra di dialogo consente di creare una
formula con una matrice come (["Canada", "Inghilterra", "USA"]).

Matrice di valori Utilizzare le opzioni di questa finestra di dialogo per selezionare una matrice di valori
organizzati in organizzati in intervalli da adoperare nella formula. Questa versione della finestra di dialogo
intervalli consente di creare una formula con una matrice di intervalli come (["AL" To "AZ", "CA"
To "CT"]).

Nota
Le opzioni presenti nell'elenco Valore consentono di definire più esattamente le modalità di
calcolo di ciascun intervallo compreso nella matrice della formula. L'elenco comprende
opzioni quali "è compreso tra, inclusi punti finali", "è compreso tra, esclusi punti finali", e
così via.

Informazioni correlate

Esperto formule [pagina 981]

1.7.3.1.28 finestra di dialogo Esporta


Utilizzare la finestra di dialogo Esporta per esportare i report in file elettronici in un formato leggibile da altre
applicazioni software.

Nota
La finestra di dialogo Esporta è disponibile soltanto in modalità Anteprima del report principale. Per accedere
alla finestra di dialogo, fare clic su Anteprima del report principale nell'angolo inferiore sinistro del report,
quindi fare clic sull'icona Esporta report nell'angolo superiore sinistro del report. In alternativa, fare clic con il
pulsante destro del mouse sul report, quindi fare clic su Esporta.

I formati di esportazione supportati da SAP Crystal Reports possono essere suddivisi in due gruppi: formati basati
su pagine e formati basati su record. I formati basati su pagine danno maggiore importanza alla rappresentazione
del layout e alla formattazione e pertanto tendono a restituire un output più esatto. Al contrario, i formati basati su
record enfatizzano i dati piuttosto che il layout e la formattazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
892 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Scelta di un formato di esportazione

PDF Consente l'esportazione sia del layout che della formattazione in modo coerente con
l'aspetto del report nella scheda Anteprima.

SAP Crystal Reports Consente di esportare (salvare) il report con i dati correnti, senza modificare
(RPT) l'originale.

SAP Crystal Reports Consente di esportare (salvare) il report con i dati correnti, senza modificare
Solo lettura (RPTR) l'originale. I file RPTR sono report Crystal che possono essere visualizzati con
applicazioni di visualizzazione report, ma non possono essere modificati con l'SDK né
aperti con applicazioni di progettazione report. La definizione di un report RPTR non
può essere modificata, così come non è possibile utilizzare questo SDK per impostare
il percorso di origine dei dati di un file RPTR tramite il controller del database. È
tuttavia possibile aggiornare i dati di un report RPTR in fase di esecuzione
aggiornando il report in un visualizzatore.

HTML 4.0 HTML 4.0 preserva il layout e la formattazione del report utilizzando DHTML.

MHTML Può essere utilizzato per inviare file HTML tramite messaggi di posta elettronica.

Microsoft Excel Consente di convertire i contenuti del report in celle di Excel pagina per pagina.
(97-2003)

Microsoft Excel Microsoft Excel Solo dati è utile per il trasferimento di dati ma conserva meno
(97-2003) - Solo dati informazioni di formattazione.

Microsoft Excel (2007) - Microsoft Excel Solo dati è utile per il trasferimento di dati ma conserva meno
Solo dati informazioni di formattazione. Questa funzionalità consente di utilizzare fino a 16.385
colonne e 1.048.576 di righe in una sola cartella di lavoro.

Microsoft Word Produce un file RTF (Rich Text Format) che contiene oggetti di testo e disegno per
(97-2003) rappresentare gli oggetti report.

Microsoft Word Converte tutto il contenuto degli oggetti report in righe di testo. La formattazione del
(97-2003) - Modificabile testo viene conservata, ma altri attributi potrebbero non esserlo.

Stile record - Colonne Consente di esportare i dati del report come testo. Questo formato prevede
con spazi l'inserimento di spazi tra le colonne.

Stile record - Colonne Consente di esportare i dati del report come testo. Non prevede l'inserimento di spazi
senza spazi tra le colonne.

Rich Text Format (RTF) Produce un file RTF che contiene oggetti di testo e disegno.

Valori separati da virgola Conserte l'esportazione del contenuto degli oggetti report come serie di valori divisi
(CSV) da caratteri di separazione e delimitazione.

Testo separato da Preserva il layout del report ma con alcune differenze: gli oggetti di testo su più righe
tabulazione (TTX) vengono esportati in una sola riga, tutti i valori stringa vengono racchiusi tra virgolette
doppie ("") e i valori stessi vengono separati da tabulazioni.

Testo Genera ouput in testo normale (non conserva la formattazione).

XML Formato utilizzato principalmente per lo scambio di dati. Produce output XML
mediante lo schema XML di SAP Crystal Reports.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 893
La destinazione determina la posizione di esportazione del report. SAP Crystal Reports consente di scegliere una
delle quattro destinazioni.

Scelta di una destinazione

Applicazione Consente l'esportazione del report in un file temporaneo nel formato specificato e l'apertura
del file con l'applicazione appropriata.

File del disco Consente l'esportazione del report in un disco o in un dischetto specificato.

Cartella Exchange Consente l'esportazione del report in una cartella Exchange. La cartella Exchange può
contenere note standard (posta), file e istanze di moduli Exchange.

MAPI Consente l'esportazione del report come allegato di posta elettronica.

Nota
Questa opzione funziona soltanto se è stato installato un client di posta (Microsoft
Outlook, Microsoft Mail o Exchange) e se l'account di posta elettronica è configurato in
maniera corretta.

1.7.3.1.29 Finestra di dialogo Estrai funzione personalizzata


dalla formula

La finestra di dialogo Estrai funzione personalizzata dalla formula viene visualizzata, nella finestra di dialogo
Workshop Formula, quando si immette un nome nella finestra di dialogo Nome funzione personalizzata e si fa clic
sul pulsante Usa programma di estrazione.

Utilizzare questa finestra di dialogo per creare una funzione personalizzata da una formula di un report esistente.
In questo modo è possibile migrare la logica della formula da un campo formula a una funzione personalizzata. La
nuova funzione personalizzata potrà quindi essere sostituita alla parte appropriata della formula.

Formula Utilizzare questo elenco per scegliere una formula di report esistente su cui basare la
nuova funzione personalizzata. Quando si seleziona una formula le informazioni che essa
contiene vengono visualizzate in diversi campi della finestra di dialogo Estrai funzione
personalizzata dalla formula.

Nome funzione Utilizzare questo campo per modificare il nome assegnato alla funzione personalizzata
personalizzata nella finestra di dialogo Nome funzione personalizzata.

i nomi delle funzioni personalizzate possono essere alfanumerici, ma non possono


contenere spazi e non possono cominciare con un numero.

Immettere altre info Fare clic su questo pulsante per visualizzare la finestra di dialogo Proprietà funzioni
personalizzate. Durante la definizione della funzione personalizzata è possibile aggiungere
ulteriori informazioni, ad esempio i valori degli argomenti predefiniti e il testo della guida in
linea. Se tali informazioni non vengono aggiunte in un primo momento, è possibile farlo

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
894 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
successivamente facendo clic con il pulsante destro del mouse sulla funzione
personalizzata e selezionando Proprietà.

Tipo restituito In questo campo è visualizzato il tipo di valore restituito dalla funzione personalizzata. Il
campo non può essere modificato poiché il tipo di valore restituito dipende dalla formula
del report selezionata nella casella di riepilogo Formula.

Riepilogo In questa area è possibile inserire informazioni supplementari sulla funzione


personalizzata che consentano di identificarne lo scopo, l’uso cui è destinata e così via..

Argomenti In questa area sono visualizzati gli argomenti basati su campi relativi alla formula del report
selezionata nella casella di riepilogo Formula. Non è possibile modificare Nome campo e
Tipo, ma si possono immettere un nome e una descrizione per l’argomento. Se non si
assegna alcun Nome argomento, per descrivere le variabili verranno utilizzati i nomi
predefiniti (v1, v2, v3 e così via).

Pulsanti Freccia Utilizzare il pulsante freccia adiacente all’area Argomenti per modificare l’ordine
predefinito degli argomenti, vale a dire l’ordine secondo cui i campi vengono utilizzati nella
formula del report.

Testo formula In questa area viene visualizzata la formula del report così come è stata definita nella
finestra di dialogo Editor delle formule. Il testo ha una funzione puramente informativa e
non è modificabile.

Modifica la formula Selezionare questa opzione se si desidera utilizzare la nuova funzione personalizzata nella
per usare una formula del report su cui essa è basata. In altre parole, il testo della formula interessato
nuova funzione viene sostituito da una chiamata alla funzione personalizzata e i campi utilizzati nella
personalizzata formula vengono forniti come valori degli argomenti.

Informazioni correlate

Finestra di dialogo Workshop formule [pagina 916]


Finestra di dialogo Proprietà funzioni personalizzate [pagina 869]
Creazione di funzioni personalizzate [pagina 719]

1.7.3.1.30 Finestra di dialogo Trova (Editor delle formule)

La finestra di dialogo Trova consente di individuare il testo nell'Editor delle formule e di sostituirlo, se necessario.
Questa finestra di dialogo viene visualizzata quando si fa clic sul pulsante Trova/Sostituisci nella barra degli
strumenti dell'Editor delle formule.

Trova Digitare il testo da cercare, incollarlo dagli Appunti oppure fare clic su una voce recente
nell'elenco.

Sostituisci con Digitare il testo con cui si desidera sostituire il testo trovato.

Trova successivo Fare clic su questo pulsante per trovare e selezionare la successiva occorrenza del testo
specificato nella casella Trova.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 895
Segna tutte Fare clic su questo pulsante per contrassegnare tutte le occorrenze del testo trovato.

Questa opzione è disponibile solo se è selezionato Modifica testo.

Sostituisci Fare clic su questo pulsante per cercare il testo digitato nella casella Trova e sostituirlo con
la stringa inserita nel campo Sostituisci con.

Questa opzione è disponibile solo se è selezionato Modifica testo.

Sostituisci tutto Consente di sostituire tutte le occorrenze del testo trovato con il testo digitato nel campo
Sostituisci con. Questa opzione è disponibile solo se è selezionato Modifica testo.

Cerca Fare clic su un'opzione per specificare il tipo di testo da cercare.

Direzione Consente di specificare la direzione di ricerca a partire dalla posizione corrente del cursore.
Fare clic su: Su per cercare fino all'inizio o Giù per cercare fino alla fine del report.

Maiuscole/ Selezionare o deselezionare questa casella di controllo per specificare se osservare o meno
minuscole l'esatta sequenza di lettere maiuscole e minuscole nel testo da cercare.

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 910]


Esecuzione di calcoli nei report [pagina 713]

1.7.3.1.31 Finestra di dialogo Trova nome campo

La finestra di dialogo Trova nome campo si apre quando si seleziona Trova campo nella scheda Campi di qualsiasi
Creazione guidata report.

Utilizzare questa finestra di dialogo per specificare il nome del campo da trovare.

Informazioni correlate

creazioni guidate di report [pagina 953]

1.7.3.1.32 Finestra di dialogo Carattere

Utilizzare la finestra di dialogo Carattere per cambiare i caratteri, modificarne le dimensioni e/o lo stile nei campi
testo e dati dei report.

È possibile aprire la finestra di dialogo Carattere tramite la scheda Caratteri della finestra di dialogo Impostazioni
predefinite.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
896 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Font Elenca tutti i caratteri disponibili. Fare clic sul nome di un carattere per selezionarne uno diverso.

Stile Elenca gli stili disponibili per il carattere specificato. Fare clic su uno stile per selezionarne uno
diverso.

Dimensione Elenca le dimensioni in punti disponibili per il carattere specificato. Fare clic su un valore per
cambiare la dimensione del carattere.

Colore Visualizza i colori disponibili per il carattere. Fare clic su Altro per visualizzare la Finestra di dialogo
Colore [pagina 862] e definire altri colori per i caratteri.

Barrato Consente di visualizzare i caratteri barrati.

Sottolineato Consente di applicare la sottolineatura ai caratteri.

Anteprima Mostra un esempio dell'aspetto del testo con le impostazioni specificate.

1.7.3.1.33 Finestra di dialogo Editor formato

Con l'Editor formato è possibile modificare l'aspetto dei campi e di altri oggetti del report. Nell'impostazione più
semplice, l'Editor formato contiene una sola scheda. Le altre schede vengono aggiunte quando si selezionano altri
tipi di campi (Data/Ora, Booleano, Collegamento ipertestuale e così via).

L'Editor formato contiene schede specifiche del tipo di campo definito nella scheda Campi della finestra di dialogo
Opzioni oppure del tipo di campo selezionato.

Informazioni correlate

Formattazione di dati [pagina 726]

1.7.3.1.33.1 Scheda Comune (Editor formato)

Utilizzare la scheda Comune per impostare le proprietà Ometti, Allineamento orizzontale e Mantieni oggetti uniti
del campo prescelto.

Nome oggetto Utilizzare questo campo per definire un nome per l’oggetto che si sta formattando. Il nome
verrà utilizzato nella definizione dei collegamenti ipertestuali per le parti del report.

Per ciascun campo del report viene creato un nome predefinito. Se si ritiene idoneo il nome
predefinito, il campo Nome oggetto può essere ignorato.

Nome classe CSS Utilizzare questo campo per specificare un nome classe per l’oggetto del report che si sta
formattando. Il nome classe può essere utilizzato nel CSS per indicare uno stile univoco per
l’oggetto del report selezionato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 897
Inoltre, è possibile creare un nome condizionale per la classe mediante la finestra di dialogo
Editor delle formule. Questa operazione consente di indicare nel CSS che alcune istanze di
un oggetto hanno una formattazione diversa dalle altre.

Ripeti su pagine Utilizzare questa opzione per ripetere un oggetto del report che non si estende in
orizzontali orizzontale, come, ad esempio, gli oggetti di testo, gli oggetti campo, gli oggetti OLE, i grafici,
le mappe, le linee e le caselle, su ogni pagina orizzontale aggiuntiva creata da un campo
incrociato o una griglia OLAP.

Ometti Selezionare questa casella di controllo per omettere il campo selezionato. I valori del campo
non vengono visualizzati quando si visualizza il report in anteprima e il campo non viene
stampato.

Allineamento Questa casella di riepilogo contiene i tipi di allineamento orizzontale disponibili per il campo
orizzontale (ad esempio, a sinistra, centrato e a destra).

Mantieni oggetti Selezionare questa casella di controllo se si desidera mantenere uniti sulla stessa pagina
uniti tutti gli oggetti di una determinata sezione. Se nella pagina corrente c'è spazio sufficiente, i
gruppi verranno stampati sulla pagina corrente. In caso contrario, verranno stampati nella
pagina successiva.

Nota
Se sono presenti oggetti che eccedono le dimensioni della pagina, questa proprietà non è
attiva.

Chiudi bordo Se un oggetto con un bordo viene suddiviso su due pagine, è possibile: aggiungere un bordo
all'interruzione attorno a ciascuna parte dell'oggetto suddiviso oppure visualizzare ciascuna parte
pagina dell'oggetto con un bordo parziale. Selezionare questa opzione per visualizzare il bordo
intero.

Può aumentare Questa casella di controllo è utile per gli oggetti che contengono stringhe di lunghezza
variabile, ad esempio i campi memo.

● Selezionare questa casella di controllo per espandere verticalmente la cornice


dell'oggetto se il testo all'interno dell'oggetto è maggiore della cornice.
● Deselezionare questa casella per troncare i dati quando il valore è maggiore della
cornice.

Per impostazione predefinita, l'opzione Può aumentare è disattivata.

Numero massimo Se è stata selezionata la casella di controllo Può aumentare, è possibile utilizzare questa
di linee casella per specificare il numero massimo di linee per cui si può espandere la cornice di un
oggetto. Immettere il numero di righe desiderato nella casella oppure inserire 0 (zero) se
non si desidera impostare alcun limite.

Descrizione È possibile aggiungere una Descrizione per il campo selezionato facendo clic sul pulsante
pulsante Editor formato Formule e immettendo il testo tra virgolette. Il testo della Descrizione appare
quando si lascia il puntatore del mouse su un campo per alcuni secondi.

Rotazione testo Questa casella di riepilogo contiene le opzioni di rotazione disponibili per il campo
selezionato. Utilizzare le opzioni Rotazione testo per allineare verticalmente i campi e gli
oggetti basati su testo nel report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
898 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● Quando si seleziona una rotazione testo di 90 gradi, il testo si sposta di 90 gradi in senso
antiorario.
● Se la rotazione testo resta su 0 gradi, il report viene formattato in senso orizzontale.
● Per la rotazione del testo di oggetti basati su testo, viene automaticamente
deselezionata l’opzione Può aumentare che impedisce il troncamento del testo
all’interno di un oggetto. Per ulteriori informazioni sull'opzione Può aumentare, vedere
Prevenzione del testo troncato [pagina 674].
● Il testo formattato in senso verticale che eccede il margine della pagina non può essere
visualizzato come parte del report.

Ometti se Selezionare questa casella di controllo se non si desidera stampare i valori duplicati dei
duplicato campi quando si stampa il report.

Ometti righe Selezionare questa casella di controllo se si desidera che non vengano stampati i campi
vuote in campi vuoti, cioè quelli per cui il database non restituisce alcune informazione. Questa opzione
incorporati evita la presenza di righe bianche nel report stampato, in corrispondenza dei campi vuoti.

Visualizza stringa Fare clic sul pulsante di formattazione condizionale per immettere una formula che consenta
di visualizzare come stringhe personalizzate i campi numero, valuta, data, ora, data e ora,
booleani o stringa. Questo tipo di formattazione non è limitato ai campi di database e può
essere applicato a totali parziali, formule, campi parametro, riepiloghi e così via.

Ad esempio, si supponga di voler utilizzare nel report una notazione che rappresenti i milioni
con M e le migliaia con K. È possibile creare una formula di visualizzazione stringa
selezionando il campo numerico appropriato e immettendo la formula nell’Editor formule di
formato:

if CurrentFieldValue >= 1000000


then ToText(CurrentFieldValue/1000000, 2) + "M"
else if CurrentFieldValue >= 1000
then ToText(CurrentFieldValue/1000, 2) + "K"
else ToText(CurrentFieldValue, 2)

1.7.3.1.33.2 Scheda Booleano (Editor formato)

Utilizzare la scheda Booleano per selezionare il formato dei valori restituiti dei campi booleani del report.

Testo booleano Questa casella di riepilogo comprende tutti i formati in cui è possibile visualizzare i campi
booleani. Scegliere il formato prescelto nella casella di riepilogo.

1.7.3.1.33.3 Scheda Bordo (Editor formato)

Utilizzare la scheda Bordo per formattare i bordi, il riempimento dello sfondo e l'ombreggiatura dei campi
selezionati nel report. Con le opzioni della scheda Bordo è possibile creare numerosi effetti che consentono di
perfezionare l'aspetto del report e di evidenziare i dati importanti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 899
A sinistra Questa casella di riepilogo contiene i diversi stili di linea disponibili. È possibile scegliere
bordi con linea singola, doppia, tratteggiata e punteggiata. Selezionare lo stile desiderato; il
bordo specificato viene inserito sulla parte sinistra del campo. Il valore predefinito è
Nessuno.

A Destra Questa casella di riepilogo contiene i diversi stili di linea disponibili. È possibile scegliere
bordi con linea singola, doppia, tratteggiata e punteggiata. Selezionare lo stile desiderato; il
bordo specificato viene inserito sulla parte destra del campo. Il valore predefinito è Nessuno.

In alto Questa casella di riepilogo contiene i diversi stili di linea disponibili. È possibile scegliere
bordi con linea singola, doppia, tratteggiata e punteggiata. Selezionare lo stile desiderato; il
bordo specificato viene inserito sulla parte superiore del campo. Il valore predefinito è
Nessuno.

In basso Questa casella di riepilogo contiene i diversi stili di linea disponibili. È possibile scegliere
bordi con linea singola, doppia, tratteggiata e punteggiata. Selezionare lo stile desiderato; il
bordo specificato viene inserito sulla parte inferiore del campo. Il valore predefinito è
Nessuno.

Stringi orizzontale Selezionare questa casella di controllo per stringere il bordo in base alla dimensione del
campo.

● Se questa casella di controllo non è selezionata, la dimensione del bordo è uguale per
ogni record.
● Se si seleziona questa casella di controllo, le dimensioni del bordo vengono adeguate alle
effettive dimensioni di ogni singolo record.

Ombreggiatura Selezionare questa casella di controllo se si desidera stampare un'ombreggiatura sotto e a


destra del campo. Se questa casella non è selezionata, non viene stampata alcuna
ombreggiatura.

Bordo Questa casella di riepilogo contiene i colori disponibili per i bordi. Selezionare il colore
desiderato dall'elenco.

Sfondo Selezionare questa casella di controllo per cambiare il colore di sfondo. Se si seleziona
questa casella di controllo, viene visualizzata una casella di riepilogo sulla destra in cui è
possibile selezionare il nuovo colore di sfondo.

1.7.3.1.33.4 Scheda Casella (Editor formato)

È possibile utilizzare la scheda Casella per modificare il riempimento, il bordo, la grandezza e lo stile della casella.

Bordo

Stile L'elenco presenta tutti gli stili di linea disponibili per la casella, quali singola, doppia, tratteggiata
e così via.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
900 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Larghezza Fare clic sul pulsante corrispondente allo spessore del bordo desiderato. Questa opzione è
disponibile solo per i bordi a linea singola, non per i bordi a linea tratteggiata o punteggiata.

Colore Questo elenco presenta tutti i colori disponibili per la casella. Selezionare il colore desiderato
dall'elenco.

Ombreggiatura Selezionare questa casella di controllo, se si desidera specificare un'ombreggiatura per le parti
inferiore e destra della casella.

Riempimento

Colore Selezionando questa casella di controllo, nell'elenco dei colori verranno visualizzati
tutti i colori disponibili per il riempimento della casella.

Chiudi bordo Selezionare questa casella di controllo per convertire i segmenti della casella in caselle
all'interruzione pagina complete all'interruzione di pagina. Quando tale opzione è selezionata, viene aggiunto
il bordo inferiore alla prima casella e quello superiore alla seconda e vengono quindi
create due caselle complete in ciascuna pagina.

Estendi alla fine della Selezionare questa casella di controllo, se si desidera consentire l'estensione della
sezione in stampa casella fino in fondo alla sezione.

Ometti Selezionare questa casella di controllo nel caso in cui non si desideri stampare la
casella.

Ripeti su pagine Utilizzare questa opzione per ripetere un oggetto del report che non si estende in
orizzontali orizzontale, come, ad esempio, gli oggetti di testo, gli oggetti campo, gli oggetti OLE, i
grafici, le mappe, le linee e le caselle, su ogni pagina orizzontale aggiuntiva creata da
un campo incrociato o una griglia OLAP.

1.7.3.1.33.5 Scheda Data (Editor formato)

Utilizzare la scheda Data per impostare le opzioni di formattazione per i campi data del report.

Stile Da questa casella di riepilogo predefinita, selezionare lo stile della data da applicare al campo
selezionato nel report.

Se si sceglie Formato Lungo Predefinito di Sistema o Formato Abbreviato Predefinito di sistema,


vengono utilizzati i formati data della finestra di dialogo Impostazioni internazionali del Pannello di
controllo di Windows.

Personalizza Se si fa clic sul pulsante Personalizza, è possibile creare un formato data personalizzato. Lo stile
creato verrà visualizzato nell'elenco degli stili come stile personalizzato.

Informazioni correlate

Finestra di dialogo Editor formato [pagina 897]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 901
1.7.3.1.33.6 Scheda Data e ora (Editor formato)

Utilizzare la scheda Data e ora per impostare le opzioni di formattazione per i campi data e ora del report.

Stile Da questa casella di riepilogo predefinita, selezionare lo stile di data e ora da applicare al campo
selezionato nel report.

Se si sceglie Formato Lungo Predefinito di Sistema o Formato Abbreviato Predefinito di Sistema,


vengono utilizzati i formati data e ora della finestra di dialogo Impostazioni internazionali del
Pannello di controllo di Windows.

Personalizza Se si fa clic sul pulsante Personalizza, è possibile creare un formato data e ora personalizzato. Lo
stile creato verrà visualizzato nell'elenco degli stili come stile personalizzato.

1.7.3.1.33.7 Scheda Carattere (Editor formato)

È possibile utilizzare la scheda Carattere dell'Editor formato per modificare il tipo, la dimensione e lo stile dei
campi dati e di testo del report.

Se l'oggetto di testo si trova in modalità modifica, tale scheda verrà visualizzata nella finestra di dialogo Formato
testo.

Font Questo elenco contiene tutti i caratteri installati nel sistema. Viene visualizzato con il carattere
in uso al momento selezionato.

Stile Questo elenco contiene quattro attributi aggiuntivi che è possibile assegnare al carattere
selezionato. Viene visualizzato con lo stile in uso al momento selezionato.

Dimensione Questo elenco include la dimensione normale in punti normale del carattere selezionato.
Viene visualizzato con la dimensione in punti in uso al momento selezionata.

Se si utilizza una dimensione del carattere personalizzata, il numero immesso dovrà essere
compreso tra 1 e 1638. Le voci frazionarie verranno automaticamente arrotondate da SAP
Crystal Reports allo 0,5 più vicino. Di conseguenza, nel report è possibile utilizzare le
dimensioni del carattere frazionarie 1,5, 2,5, 3,5 e così via, fino a 1637,5.

Colore Selezionare il colore desiderato dall'elenco, se si desidera attribuire un colore al carattere.

Barrato Selezionando questa casella di controllo, il carattere verrà barrato.

Sottolineato Selezionando questa casella di controllo, i caratteri immessi con il carattere selezionato
verranno sottolineati.

Spaziatura È possibile utilizzare questa opzione per specificare il valore di ciascun carattere del tipo di
caratteri carattere selezionato. Il valore è definito come la distanza, espressa in numero di punti,
esattamente dall'inizio di un carattere all'inizio del carattere successivo. Quando si modifica la spaziatura
dei caratteri, viene cambiata solo la spaziatura tra caratteri consecutivi, non la dimensione dei
caratteri.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
902 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.33.8 Scheda Collegamento ipertestuale (Editor
formato)

È possibile utilizzare questa scheda per creare un collegamento ipertestuale a un sito Web, un valore di campo, un
indirizzo di posta elettronica, a un file o a un qualsiasi altro file di SAP Crystal Reports. Il collegamento ipertestuale
viene salvato insieme al report ed è disponibile per gli altri utenti come metodo per visualizzare informazioni
aggiuntive.

Tipo di Fare clic sul tipo di collegamento ipertestuale che si desidera creare. I tipi disponibili sono:
collegamento
Nessun Si tratta dell’opzione predefinita. Nessun collegamento ipertestuale è
ipertestuale
collegamento associato all’oggetto del report selezionato.
ipertestuale

Un sito Web su Selezionare questa opzione se si desidera collegare l’oggetto del report
Internet a un indirizzo Web statico. Utilizzare il pulsante Formula per creare un
URL basato su un valore di campo. Ad esempio, se il campo Nome
cliente contiene informazioni per la creazione di una serie di URL
significativi, è possibile immettere la seguente formula:

"http://www." + {Customer.Customer Name} +


".com"

Valore di campo del Selezionare questa opzione se si desidera creare un collegamento


sito Web corrente ipertestuale dal campo selezionato. Il campo deve essere
memorizzato come collegamento ipertestuale nell’origine dati.

Un indirizzo di posta Selezionare questa opzione se si desidera creare un indirizzo di posta


elettronica elettronica dal campo selezionato. Utilizzare il pulsante Formula per
creare un indirizzo basato su un valore di campo.

Un file Selezionare questa opzione per creare un collegamento ipertestuale


a un file ubicato su un computer specifico, collegato o meno in rete.
Utilizzare il pulsante Formula per creare un percorso di file basato su
un valore di campo.

Valore di campo della Selezionare questa opzione se si desidera creare un collegamento


posta elettronica ipertestuale di posta elettronica dal campo selezionato. Il campo
corrente deve essere memorizzato come indirizzo di posta elettronica
nell’origine dati.

I tipi disponibili nell’area Solo visualizzatore DHTML sono i seguenti:

Analisi dettagliata Per informazioni sulle modalità di utilizzo di questa opzione, vedere
delle parti del Implementazione dell'analisi dettagliata delle parti del report [pagina
report 735].

Un altro oggetto Per informazioni sulle modalità di utilizzo di questa opzione, vedere
report Opzione Un altro oggetto report [pagina 738].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 903
Nota
Non tutti i tipi di collegamento ipertestuale sono sempre disponibili.
L’oggetto selezionato dall’utente e la relativa posizione all’interno del
report determinano la disponibilità dei tipi di collegamento
ipertestuale.

Informazioni È possibile utilizzare questa scheda per immettere le informazioni sul collegamento
collegamento ipertestuale appropriate, quali, l'URL di un sito Web. Tali informazioni sono disponibili per tutti
ipertestuale i tipi di collegamento ipertestuale ad eccezione di Nessun collegamento ipertestuale e Un
valore di campo corrente.

Sfoglia Nella finestra di dialogo Apri è possibile utilizzare il pulsante Sfoglia per cercare i file. Tale
pulsante è disponibile solo per i tipi di collegamento ipertestuale Un file e Un altro file Crystal
report.

Suggerimento Utilizzare i suggerimenti forniti in questa sezione per apprendere il funzionamento di un tipo di
utile collegamento ipertestuale e vedere le funzionalità che aggiungerà al Report.

1.7.3.1.33.9 Scheda Linea (Editor formato)

Utilizzare la scheda Linea per specificare le impostazioni di formattazione per una linea del report.

Tale scheda viene visualizzata nell'Editor formato facendo clic con il pulsante destro del mouse su una linea e
scegliendo Formato dal menu di scelta rapida.

Stile Questo elenco presenta tutti gli stili linea disponibili, quali: singola, doppia, tratteggiata e così
via.

Larghezza Fare clic sul pulsante corrispondente allo spessore della linea desiderato.

Colore Questo elenco presenta tutti i colori disponibili per la linea.

Sposta in fondo Questa opzione è in genere selezionata quando si stampa una linea orizzontale posizionata in
alla sezione prossimità di un campo che può produrre un output di lunghezza variabile, ad esempio un
durante la campo memo, e si formatta tale campo utilizzando l'opzione Può aumentare nella scheda
stampa Comune dell'Editor formato. In tal caso, se la sezione deve essere aumentata per adattarvi
l'output del campo, la linea verrà spostata in fondo alla sezione in modo da rimanere in fondo al
campo.

Selezionare questa casella di controllo, se si desidera spostare sempre la linea in fondo alla
sezione, indipendentemente dalla lunghezza della sezione stessa.

Deselezionare invece la casella di controllo, se si desidera che la linea mantenga la stessa


posizione verticale in ogni sezione, indipendentemente dalla lunghezza della sezione stessa.

Estendi alla fine Questa opzione è in genere selezionata quando si stampa una linea verticale posizionata in
della sezione in prossimità di un campo che può produrre un output di lunghezza variabile, ad esempio un
stampa campo memo, e si formatta tale campo utilizzando l'opzione Può aumentare nella scheda

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
904 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Comune dell'Editor formato. In tal caso, se la sezione deve essere aumentata per adattarvi
l'output del campo, anche la linea verrà allungata fino in fondo alla sezione.

Selezionare questa casella di controllo, se si desidera estendere sempre la linea fino in fondo
alla sezione, indipendentemente dalla lunghezza della sezione stessa.

Deselezionare invece la casella di controllo, se si desidera che la linea mantenga la stessa


lunghezza in ogni sezione, indipendentemente dalla lunghezza della sezione stessa.

Ometti Selezionare questa casella di controllo se non si desidera stampare la linea.

Ripeti su pagine Utilizzare questa opzione per ripetere un oggetto del report che non si estende in orizzontale,
orizzontali come, ad esempio, gli oggetti di testo, gli oggetti campo, gli oggetti OLE, i grafici, le mappe, le
linee e le caselle, su ogni pagina orizzontale aggiuntiva creata da un campo incrociato o una
griglia OLAP.

Informazioni correlate

Inserimento di forme [pagina 727]

1.7.3.1.33.10 Scheda Numero (Editor formato)

È possibile utilizzare la scheda Numero per impostare le opzioni di formattazione dei campi numero e valuta del
report.

Stile Da questa casella di riepilogo predefinita, selezionare lo stile dei numeri da applicare al campo
selezionato nel report. Selezionando l'opzione relativa ai formati predefiniti del numero e della
valuta, questi verranno utilizzati tramite la finestra di dialogo Proprietà - Impostazioni
internazionali nel Pannello di controllo di Windows.

Visualizza Selezionare la casella di controllo Visualizza simbolo valuta, se si desidera visualizzare tali
simbolo valuta simboli nei campi relativi alla valuta.

Fisso Selezionando questa opzione, il simbolo della valuta verrà collocato nella prima posizione
all'estrema sinistra del campo. Se il campo è giustificato a destra, gli spazi superflui tra il
simbolo e il valore della valuta verranno lasciati.

Mobile Selezionando questa opzione il simbolo della valuta verrà collocato il più vicino possibile
all'importo, in modo che tra questo e il simbolo non vi siano spazi superflui.

Personalizza È possibile creare un formato di valuta o numero personalizzato facendo clic sul pulsante
Personalizza. Lo stile creato verrà visualizzato nell'elenco degli stili come stile personalizzato.

Informazioni correlate

Scheda Simbolo valuta (Stile personalizzato) [pagina 871]


Scheda Numero (Stile personalizzato) [pagina 871]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 905
1.7.3.1.33.11 Scheda Paragrafo(Editor formato)

Utilizzare la scheda Paragrafo di Editor formato per impostare le opzioni di formattazione dei paragrafi di un
oggetto di testo.

Rientri

Prima riga Immettere la distanza in pollici o nell'unità di misura predefinita del report del quale si desidera far
rientrare la prima riga.

A sinistra Immettere la distanza in pollici o nell'unità di misura predefinita del report del quale si desidera far
rientrare il lato sinistro.

A Destra Immettere la distanza in pollici o nell'unità di misura predefinita del report del quale si desidera far
rientrare il lato destro.

Spaziatura

Interlinea Immettere l'interlinea desiderata come multiplo della dimensione del carattere utilizzato o come
numero esatto di punti.

Di È possibile utilizzare questa casella per immettere il multiplo da utilizzare, se per l'interlinea si è
selezionato il valore Multiplo o il numero di punti se invece si è selezionato Esatto.

Direzione di lettura

Da sinistra a destra Fare clic su questo pulsante se si desidera che il testo venga letto da sinistra a destra.

Da destra a sinistra Fare clic su questo pulsante se si desidera che il testo venga letto da destra a sinistra.

Allineamento orizzontale

Allineamento Selezionare l'allineamento del testo A sinistra, A destra o Al centro della casella di testo. Se si
desidera che il testo venga allineato sia a destra che a sinistra, scegliere Giustificato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
906 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Interpretazione testo

Interpretazione È possibile utilizzare questo elenco per selezionare il tipo di dati preformattati, solo stringa o
testo campi memo, o di testo che si inserisce nel campo. In SAP Crystal Reports vengono estratte
informazioni relative al carattere, alla dimensione, allo stile, al colore e al paragrafo e vengono
visualizzati i dati o il testo con gli attributi specificati.

È possibile scegliere:

● "Nessuno" per interpretare la stringa, il campo memo o il testo importato come se


contenesse testo semplice
● "Testo RTF" per interpretare la stringa, il campo memo o il testo importato come dati in
formato RTF (Rich Text Format)
● "Testo HTML" per interpretare la stringa, il campo memo o il testo importato come se
contenesse dati in formato HTML.

1.7.3.1.33.12 Scheda Immagine (Editor formato)

È possibile utilizzare la scheda Immagine per formattare le immagini bitmap.

Ritaglia da Il ritaglio consente di eliminare le parti di un'immagine che non si desidera stampare, sebbene
tale opzione possa essere utilizzata anche per aggiungere spazi tra l'immagine e la cornice
circostante. L'utilizzo del ritaglio consente di specificare la dimensione del pezzo che si desidera
eliminare, come ad esempio la parte superiore, quella inferiore quella sinistra o quella destra di
un'immagine:

● i numeri positivi consentono di eliminare dall'immagine la quantità di spazio specificata


● i numeri negativi consentono invece di aggiungere la quantità di spazio specificata tra il
bordo esterno dell'immagine e la cornice.

Nota
Tutte le attività di ritaglio iniziano dal bordo più esterno dell'immagine.

Proporzioni Il termine proporzioni viene utilizzato per indicare la lunghezza e la larghezza di un'immagine
come percentuale della lunghezza e larghezza originali.

Se si desidera attribuire all'immagine altre dimensioni, come percentuale dell'altezza e larghezza


originali, è sufficiente immettere la nuova percentuale relativa alle proporzioni.

Il programma consente di memorizzare una copia di ciascuna immagine con le dimensioni


originali. Tutte le impostazioni relative alle proporzioni fanno riferimento alle dimensioni originali.

Dimensione Dimensione si riferisce alla lunghezza e alla larghezza assolute e misurate di un'immagine.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 907
Nota
Quando si modificano le impostazioni in Dimensione, vengono ricalcolate automaticamente le
impostazioni delle proporzioni e viceversa. Le impostazioni così ricalcolate verranno
visualizzate quando si aprirà di nuovo la scheda Immagine nell'Editor formato.

Dimensione Questa casella visualizza le dimensioni originali dell'immagine, vale a dire le dimensioni che
originale questa aveva nel momento in cui è stata inserita nel report la prima volta. Il ridimensionamento,
la scala e il ritaglio non consentono di modificare questa cifra come non è possibile modificarla
direttamente: è solo un riferimento.

Reimposta Facendo clic su questo pulsante, l'immagine verrà riportata alle dimensioni predefinite nella
casella Dimensione originale.

1.7.3.1.33.13 Scheda Arrotondamento (Editor formato)

È possibile utilizzare la scheda arrotondamento per creare caselle con angoli arrotondati, come parti di un report.
La scheda Arrotondamento viene visualizzata nell'Editor formato, facendo clic con il pulsante destro del mouse
sulla casella creata e scegliendo Formato dal menu di scelta rapida.

Dispositivo di Spostare il dispositivo di scorrimento verso destra per aumentare la curvatura degli angoli
scorrimento della casella. La casella di origine si trasformerà gradualmente in un ovale o un cerchio, a
seconda di quanto si sposta il dispositivo di scorrimento verso destra.

Una volta creata la forma appropriata, nel programma viene memorizzata la posizione del
dispositivo di scorrimento, che verrà applicata a meno che non si eliminino le modifiche
dall'Editor formato.

1.7.3.1.33.14 Scheda Sottoreport (Editor formato)

È possibile utilizzare la scheda Sottoreport per selezionare o deselezionare il sottoreport su richiesta e


reimportarlo alle opzioni di apertura.

Nome sottoreport Utilizzare questo campo per rinominare un sottoreport a partire dal report che lo
contiene.

Sottoreport su Selezionare questa casella di controllo per creare un collegamento ipertestuale a un


richiesta sottoreport.

Didascalia del Utilizzare il pulsante Workshop formule per creare una didascalia che verrà visualizzata
sottoreport su sull'oggetto del sottoreport all'interno del report che lo contiene.
richiesta

Didascalia della scheda Utilizzare il pulsante Workshop formule per creare una didascalia che viene visualizzata
Anteprima sottoreport nel pulsante della visualizzazione del sottoreport, in fondo alla finestra di progettazione,
quando si visualizza il sottoreport in anteprima.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
908 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Reimportare quando si Selezionare questa casella di controllo per aggiornare i dati e formattarli ogni volta che
apre si apre il sottoreport.

Suggerimento
utilizzare la finestra di dialogo Impostazioni predefinite per modificare i valori
predefiniti del programma invece dei singoli campi.

Elimina sottoreport Selezionare questa casella di controllo per nascondere i sottoreport vuoti. I sottoreport
vuoto vuoti sono trattati come oggetti visibili del report e pertanto questa opzione è
particolarmente utile quando si desidera omettere le sezioni di report vuote contenenti
sottoreport vuoti.

Nome file del Se si dispone di un sottoreport collegato, è possibile visualizzarne il percorso di origine
sottoreport collegato e, se necessario, modificarlo. In caso di sottoreport incorporati, questa opzione non è
disponibile.

Informazioni correlate

Scheda Creazione report (Impostazioni predefinite) [pagina 884]


Inserimento di sottoreport [pagina 753]
Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

Sottoreport non collegati e sottoreport collegati [pagina 754]

1.7.3.1.33.15 Scheda Ora (Editor formato)

Utilizzare la scheda Ora per impostare le opzioni di formattazione dei campi ora del report.

Stile Da questo elenco predefinito, selezionare uno stile per l'ora da applicare al campo selezionato del
report.

Scegliendo Ora predefinita di sistema, verranno utilizzati i formati dell'ora contenuti nella finestra
di dialogo Proprietà - Impostazioni internazionali nel Pannello di controllo di Windows.

Personalizza È possibile creare un formato di ora personalizzato facendo clic sul pulsante Personalizza. Lo stile
creato verrà visualizzato nell'elenco degli stili come stile personalizzato.

1.7.3.1.34 Finestra di dialogo Formatta linee griglia

La finestra di dialogo Formatta linee griglia consente il controllo dell'aspetto delle linee delle griglie.

Questa finestra di dialogo viene visualizzata quando si fa clic su Formatta linee griglia nella scheda Personalizza
stile dell'Esperto campi incrociati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 909
Diagramma linee griglia Visualizza il layout della griglia basato sulle impostazioni correnti.

Sezione griglia Fare clic su una sezione quindi specificare le impostazioni di visualizzazione della
griglia.

Mostra linee griglia Selezionare o deselezionare questa casella di controllo per visualizzare o nascondere
tutte le linee della griglia.

Opzioni Linea

Colore Fare clic su un colore da attribuire all'elemento selezionato dall'elenco delle posizioni relative
alle linee della griglia.

Stile Fare clic su uno stile linea da attribuire all'elemento selezionato dall'elenco delle posizioni
relative alle linee della griglia.

Larghezza Fare clic su uno spessore linea da attribuire all'elemento selezionato dall'elenco delle
posizioni relative alle linee della griglia.

Disegna Selezionare o deselezionare questa casella di controllo per visualizzare o nascondere


l'elemento selezionato nell'elenco delle posizioni relative alle linee della griglia.

Disegna Solo Selezionare o deselezionare questa casella di controllo per visualizzare o nascondere la linea
Linea Totale del totale generale. Quando la linea del totale generale è visualizzata, le linee in genere visibili
generale nell'elenco delle posizioni delle linee della griglia sono nascoste.

Informazioni correlate

Finestra di dialogo Esperto campi incrociati [pagina 972]


Procedure guidate per la creazione di report Crystal [pagina 649]

1.7.3.1.35 Finestra di dialogo Editor delle formule

L'Editor delle formule è un componente importante della finestra di dialogo Workshop formule. Assume diversi
nomi a seconda del tipo di formula con cui si sta operando:

● Editor delle formule.


● Editor formule di formato.
● Editor delle formule per la selezione dei record.
● Editor delle formule per la selezione dei gruppi.
● Editor di formula condizione totale parziale.

l’Editor di formula è simile all’Editor funzione personalizzata e all’Editor espressioni SQL. Questi editor sono inclusi
nella presente descrizione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
910 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Questa finestra di dialogo viene visualizzata quando si modifica una formula esistente o si crea un nuovo campo
formula facendo clic su Campi formula in Explorer Dati e selezionando Nuovo. La finestra di dialogo Editor delle
formule viene visualizzata quando si assegna un nome alla formula.

Finestre dell'Editor delle formule

L’Editor di Formula contiene quattro finestre principali.

Campi I campi report contengono tutti i campi di database accessibili per il report. Contengono inoltre le
report formule o i gruppi già creati per il report.

Nota
Questa finestra non viene visualizzata quando si crea una funzione personalizzata.

Funzioni Le funzioni sono procedure predefinite che restituiscono valori. Eseguono calcoli come la media,
la somma, il conteggio, il calcolo del seno, il troncamento e la conversione in maiuscolo.

Nota
Passando dalla sintassi Crystal alla sintassi Basic o viceversa verranno modificati l'elenco delle
funzioni nella finestra Funzioni e l'elenco degli operatori nella finestra Operatori. Le funzioni e gli
operatori disponibili differiscono infatti nei due modelli di sintassi.

Operatori Gli operatori sono i "verbi di azione" utilizzati nelle formule. Descrivono un’operazione o un’azione
che deve avere luogo tra due o più valori.

Esempi di operatori: addizione, sottrazione, minore di e maggiore di.

Finestra È l'area in cui si crea o si modifica una formula.


Testo
È possibile creare una formula facendo doppio clic su qualsiasi componente elencato nelle
formula
strutture Campi report, Funzioni o Operatori. Quando si sceglie un componente viene anche
inserita la sintassi appropriata. È inoltre possibile immettere una formula manualmente.

Dopo aver creato o modificato una formula fare clic sul pulsante Controlla per identificare
eventuali errori nella formula. Fare clic sul pulsante Salva per salvare la formula.

Pulsanti di Workshop formule

Di seguito sono elencate le funzioni dei pulsanti della barra degli strumenti generale del Workshop formule:

Pulsante Descrizione

Chiude il Workshop formule dopo aver richiesto di salvare le modifiche apportate. Se


le modifiche vengono salvate, la formula viene verificata per rilevare l'eventuale pre­
senza di errori.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 911
Pulsante Descrizione

Salva la formula, l'espressione SQL o la funzione personalizzata.

Crea una nuova formula del tipo selezionato dall’elenco. Consente anche di generare
una nuova funzione personalizzata o un'espressione SQL.

Visualizza o nasconde la Struttura Workshop.

Consente di passare dall'Editor funzione personalizzata alla Finestra di dialogo Pro­


prietà funzioni personalizzate [pagina 869] e viceversa. Le funzioni personalizzate e le
formule vengono visualizzate, se possibile, nella modalità selezionata fino a quando
non si fa nuovamente clic sul pulsante.

Apre l'Esperto formule [pagina 981]. Utilizzare l’Esperto formule per creare una for­
mula basata su una funzione personalizzata.

Nota
Questo pulsante non è disponibile durante la creazione di una funzione personaliz­
zata.

Apre la sezione della Guida in linea relativa a questa finestra di dialogo.

Di seguito sono elencate le funzioni dei pulsanti della barra degli strumenti del Workshop formule:

Pulsante Descrizione

Permette di rinominare la formula, la funzione personalizzata o l'espressione SQL se­


lezionata.

Elimina la formula, la funzione personalizzata o l'espressione SQL selezionata.

Espande o comprime il nodo selezionato nella Struttura Workshop. Opera anche con
più selezioni di nodi.

Visualizza o nasconde nodi relativi a oggetti report nella cartella Formule di formatta­
zione se agli oggetti non è associata alcuna formula.

Di seguito sono elencate le funzioni dei pulsanti della barra degli strumenti Editor espressioni del Workshop
formule:

Pulsante Descrizione

Verifica la sintassi della formula o della funzione personalizzata e identifica gli even­
tuali errori.

Annulla l'ultima operazione eseguita.

Ripete l'ultima operazione eseguita.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
912 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Pulsante Descrizione

Quando viene selezionato un campo dalla finestra Campi report e si fa clic sul pul­
sante Sfoglia dati, viene visualizzata una finestra di dialogo con un elenco dei valori
del campo selezionato.

Visualizza i valori per il campo selezionato e definisce i singoli valori da inserire nella
formula.

Nota
Questo pulsante non è disponibile per le funzioni personalizzate.

Ricerca all'interno dell'Editor delle formule una parola, un numero o una stringa di for­
mula specifici.

Inserisce un segnalibro al principio di una riga di formula selezionata. Fare nuova­


mente clic sul pulsante per eliminare il segnalibro.

Passa al segnalibro successivo.

Passa al segnalibro precedente.

Elimina tutti i segnalibri per la formula corrente.

Dispone tutte le strutture di Campi report, Funzioni e Operatori in ordine alfabetico.

Mostra o nasconde la visualizzazione struttura Campi report.

Nota
Questo pulsante non è disponibile per le funzioni personalizzate.

Mostra o nasconde la visualizzazione struttura Funzioni.

Mostra o nasconde la visualizzazione struttura Operatori.

Consente di selezionare per la formula la sintassi Crystal o Basic. Per ulteriori infor­
mazioni, vedere Creazione di formule [pagina 772].

Passando dalla sintassi Crystal alla sintassi Basic o viceversa verranno modificati l'e­
lenco delle funzioni nella finestra Funzioni e l'elenco degli operatori nella finestra Ope­
ratori. Le funzioni e gli operatori disponibili differiscono infatti nei due modelli di sin­
tassi.

Commenta la selezione evidenziata di una formula. Le righe commentate non ven­


gono valutate come parte della formula.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 913
Tasti di scelta rapida

Con l'Editor delle formule è possibile utilizzare i seguenti tasti di scelta rapida:

Combinazione di tasti Operazione eseguita

Alt+B Apre la finestra di dialogo Sfoglia per il campo evidenziato.

Alt+C Verifica la formula per rilevare l’eventuale presenza di errori.

Alt+F Apre o chiude la struttura Mostra campo.

Alt+M Commenta o rimuove commenti dalla riga corrente

Alt+O Ordina il contenuto delle strutture.

Alt+P Apre o chiude la struttura Mostra operatore.

Alt+S Salva la formula senza chiudere l’Editor delle formule.

Alt+U Apre o chiude la struttura Mostra funzione.

Ctrl+A Seleziona tutto.

Ctrl+C Copia.

Ctrl+Fine Va alla fine dell’ultima riga della formula.

Ctrl+F Apre la finestra di dialogo Trova, cui è possibile accedere anche facendo clic sull’ap­
posito pulsante.

Ctrl+F2 Inserisce un segnalibro.

Ctrl+Maiusc+F2 Cancella tutti i segnalibri.

Ctrl+Home Va al principio del file.

Ctrl+Freccia sinistra Va al principio della parola immediatamente a sinistra, che è possibile selezionare
premendo contemporaneamente il tasto Maiusc.

Ctrl+N Apre la finestra di dialogo Nome formula, o un'altra finestra di dialogo appropriata,
per creare una nuova formula.

Ctrl+S Salva la formula e chiude il Workshop formule.

Ctrl+T Rende attiva la casella di riepilogo relativa ai nomi delle sintassi.

Ctrl+Maiusc+Tab Sposta lo stato attivo sulla casella di controllo successiva (ordine inverso rispetto a
Ctrl-Tab).

Ctrl+Tab Sposta lo stato attivo sulla casella di controllo successiva.

Ctrl+V Incolla.

Ctrl+X Taglia.

Ctrl+Z Annulla un’operazione.

Ctrl+Maiusc+Z Ripete un’operazione.

Ctrl+Spazio Completamento automatico delle parole chiave: mostra un elenco delle funzioni di­
sponibili.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
914 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Combinazione di tasti Operazione eseguita

Fine Va alla fine della riga.

Invio Copia un oggetto selezionato da un elenco nella casella di testo Formula.

F2 Passa al segnalibro successivo.

F3 Individua la voce successiva in base alle specifiche definite nella finestra di dialogo
Trova.

Maiusc+F2 Passa al segnalibro precedente.

Informazioni correlate

Esecuzione di calcoli nei report [pagina 713]


Sintassi Basic [pagina 772]
Sintassi Crystal [pagina 807]
Esercitazione: Filtro di dati mediante formule di selezione [pagina 284]
In questa esercitazione viene descritto come utilizzare le formule di selezione per filtrare i record da visualizzare
in un report Crystal.

Finestra di dialogo Workshop formule [pagina 916]

1.7.3.1.36 Finestra di dialogo Nome formula

Utilizzare la finestra di dialogo Nome formula per immettere un nome per la formula o la funzione personalizzata.

Nuovo nome Immettere un nome per la formula, la funzione personalizzata, l'espressione SQL o il parametro
che si sta creando.

Quando immessa nel report, la formula verrà visualizzata come @NomeFormula nel caso in cui
nella finestra di dialogo Impostazioni predefinite sia selezionata la casella Mostra nomi campi.

Usa Esperto Fare clic sul pulsante Usa Esperto se si desidera utilizzare l'Esperto formule per creare la formula.

Usa Editor Fare clic sul pulsante Usa Editor se si desidera creare la formula mediante la finestra di dialogo
Editor delle formule.

Informazioni correlate

Finestra di dialogo Impostazioni predefinite [pagina 878]


Explorer Campo [pagina 646]
Finestra di dialogo Nome funzione personalizzata [pagina 869]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 915
1.7.3.1.37 Finestra di dialogo Workshop formule

Per operare con tutti i tipi di formule, funzioni personalizzate ed espressioni SQL in SAP Crystal Reports si utilizza
il Workshop formule. Il Workshop formule si compone di una barra degli strumenti, una struttura in cui sono
elencati i tipi di formule che è possibile creare o modificare e un’area per la definizione delle formule.

Per accedere a questa finestra di dialogo, fare clic con il pulsante destro del mouse in Report Designer, scegliere
Report e fare clic su Workshop formule.

Barra degli Per una descrizione dei pulsanti presenti nelle varie barre degli strumento di Workshop
strumenti formule, vedere Finestra di dialogo Editor delle formule [pagina 910].

Visualizzazione La Struttura Workshop contiene cartelle per ogni tipo di formula che è possibile creare in
struttura SAP Crystal Reports. nonché cartelle per le funzioni personalizzate e le espressioni SQL. Se
il Workshop viene visualizzato in seguito all’utilizzo di un comando specifico (ad esempio, il
comando Record del sottomenu Formule di selezione), viene selezionata la cartella
appropriata nella struttura e viene visualizzata la versione appropriata dell’Editor delle
formule.

Espandere una cartella della struttura per visualizzare le formule già esistenti. È possibile
aggiungere nuove formule e modificare o eliminare, se necessario, quelle esistenti.

Suggerimento
La Struttura Workshop può essere ancorata. Per impostazione predefinita, viene
ancorata sul lato sinistro del Workshop formule, ma è possibile ancorarla manualmente
sul lato destro. Nella modalità di spostamento libero, è possibile posizionare la struttura
nel Workshop come si desidera.

Area di definizione L'area di definizione del Workshop formule è lo spazio in cui viene definita o modificata la
formula, la funzione personalizzata o l'espressione SQL. L'editor principale disponibile in
quest'area è una versione della finestra di dialogo Editor delle formule, ma può essere
presente anche l'Esperto formule o una delle numerose finestre di dialogo utilizzate per
lavorare con le funzioni personalizzate.

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 910]


Esecuzione di calcoli nei report [pagina 713]

1.7.3.1.38 Editor delle formule nome di gruppo

Questa finestra di dialogo viene visualizzata quando si personalizza un campo nome di gruppo. Nella finestra di
dialogo Inserisci gruppo fare clic su Personalizza Campo Nome gruppo, quindi su Utilizzare una Formula come
Nome gruppo. Fare clic sul pulsante Editor delle formule per modificare la formula.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
916 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Raggruppamento di dati [pagina 695]


Illustra come raggruppare e riepilogare i dati dei report in base a un campo report. Descrive inoltre come
selezionare i primi e gli ultimi N gruppi.

1.7.3.1.39 Finestra di dialogo Testo della Guida in linea

La finestra di dialogo Testo della Guida in linea viene visualizzata quando si fa clic sull'omonimo pulsante nella
finestra di dialogo Proprietà funzioni personalizzate.

Utilizzare questa finestra di dialogo per definire un messaggio che aiuti gli altri utenti ad adoperare la funzione. Il
testo della guida in linea è disponibile soltanto in questa finestra di dialogo.

Informazioni correlate

Finestra di dialogo Proprietà funzioni personalizzate [pagina 869]


Funzioni personalizzate [pagina 717]
Descrive come creare funzioni personalizzate cui è possibile fare riferimento nelle formule.

1.7.3.1.40 Finestra di dialogo Opzioni dei gruppi gerarchici

È possibile utilizzare la finestra di dialogo Opzioni gerarchiche per raggruppare i dati in ordine gerarchico. Quando
si raggruppano i dati in ordine gerarchico, le informazioni vengono ordinate in base alle relazioni esistenti tra due
campi.

È possibile visualizzare questa finestra di dialogo facendo clic con il pulsante destro del mouse su Report
Designer, quindi scegliendo Report e infine Opzioni Raggruppamento Gerarchico.

Gruppi disponibili Selezionare il gruppo che si desidera ordinare in modo gerarchico dall'elenco.

Ordina dati Selezionare questa casella di controllo per ordinare i dati in modo gerarchico nel
gerarchicamente gruppo selezionato.

Campo ID Istanze Questo è un campo di sola visualizzazione, che mostra il valore per il gruppo
selezionato dall’elenco Gruppi disponibili.

Campo ID Principale Selezionare il campo in base al quale si desidera organizzare il campo ID Istanze.

Ad esempio, per un report gerarchico della società, selezionare l’elenco campi dati ai
quali fanno riferimento i dipendenti.

il tipo di ID istanza e ID principale deve essere lo stesso. Ad esempio, entrambi devono


essere stringhe (di testo) o numeri.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 917
Campo Rientro gruppo Immettere la quantità che si desidera far rientrare in ciascun sottogruppo.

Nota
Il livello superiore delle gerarchia viene determinato dalle istanze di gruppo che
corrispondono all’ID istanza e all’ID principale. Se un’istanza di gruppo non è
collegata a nessun ID principale, essa viene visualizzata nella parte superiore della
gerarchia.

Informazioni correlate

Raggruppamento dei dati in ordine gerarchico [pagina 696]


Raggruppamento di dati [pagina 695]
Illustra come raggruppare e riepilogare i dati dei report in base a un campo report. Descrive inoltre come
selezionare i primi e gli ultimi N gruppi.

1.7.3.1.41 Finestra di dialogo Legenda indice

Questa finestra di dialogo viene visualizzata quando si fa clic sull'omonimo pulsante nella scheda Collegamenti
dell'Esperto database.

Utilizzare la finestra di dialogo Legenda indice per visualizzare una chiave di lettura per gli indicatori di indice
utilizzati nell’area di visualizzazione dei collegamenti.

Informazioni correlate

Scheda Collegamenti (Esperto database) [pagina 980]

1.7.3.1.42 Finestra di dialogo Inserisci gruppo

È possibile utilizzare la finestra di dialogo Inserisci gruppo per raggruppare I dati senza eseguire il riepilogo dei dati
contenuti nei gruppi. È possibile visualizzare questa finestra di dialogo facendo clic con il pulsante destro del
mouse in Report Designer, quindi scegliendo Inserisci e infine Gruppo.

Nota
Le informazioni contenute in questa sezione sono applicabili anche alla finestra di dialogo Modifica opzioni
gruppo, alla finestra di dialogo Criterio ordinamento grafici e alla Finestra di dialogo Opzioni di gruppo a campi
incrociati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
918 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.42.1 Scheda Comune

Utilizzare la scheda Comune per specificare i campi e il tipo di ordinamento per il raggruppamento.

Campi Questo elenco contiene i campi e le formule utilizzate nel report. Selezionare il campo che si
desidera utilizzare per il raggruppamento.

Ordinamento Questo elenco contiene quattro opzioni per l'impostazione dell'ordine. Quella predefinita è
l'ordine crescente. Per modificare l'impostazione dell'ordine, fare clic sulla casella per visualizzare
le opzioni, quindi selezionarne una dall'elenco.

Opzioni Data Questa casella di riepilogo viene visualizzata solo quando si utilizza un campo data. Nella casella
di riepilogo è possibile selezionare le opzioni di raggruppamento per periodi di tempo
(settimanale, mensile e così via).

1.7.3.1.42.2 Scheda Opzioni

Questa scheda può essere visualizzata in diverse finestre di dialogo:

● finestra di dialogo Inserisci gruppo


● finestra di dialogo Modifica opzioni di gruppo
● finestra di dialogo A campi incrociati

Nota
La scheda Opzioni non è presente nella finestra di dialogo Criterio ordinamento grafici.

Personalizza Il campo del nome di gruppo viene visualizzato nella struttura e nell'intestazione di gruppo.
Campo Nome Per impostazione predefinita, il campo del nome di gruppo contiene gli stessi valori del
gruppo campo di gruppo. Selezionare questa casella di controllo per definire il campo del nome di
gruppo come:

● Un campo di database.
● Una formula nome di gruppo che restituisca un valore stringa per generare i valori di un
campo del nome di gruppo.

Ad esempio, è possibile eseguire un raggruppamento in base all'ID cliente ma visualizzare il


nome cliente come nome di gruppo. Per farlo, selezionare l’opzione Scegliere da campo
esistente e scegliere il campo appropriato dall’elenco.

In alternativa, è possibile eseguire un raggruppamento in base all'ID cliente ma utilizzare la


formula seguente per visualizzare l'ID cliente e il nome cliente nel nome di gruppo:

ToText ({Customer.CustomerID}) + " : " + {Customer.CustomerName}

In questo caso selezionare Utilizzare una formula come nome gruppo e fare clic sul pulsante
Formula per immettere la formula nel Workshop formule.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 919
Nota
L'opzione Personalizza campo nome gruppo non è disponibile per i gruppi ordinati
"nell'ordine specificato".

Non è possibile includere in una formula nome di gruppo i campi che vengono valutati
durante l’esecuzione, ad esempio campi di totale parziale, campi di riepilogo o altri campi
di nome del gruppo.

Mantenere unito il Selezionare questa casella di controllo per impedire le interruzioni dei gruppi tra le pagine.
gruppo
Nota
Questa opzione non viene visualizzata per la finestra di dialogo Opzioni di gruppo a campi
incrociati.

Ripetere Se si desidera suddividere i gruppi tra le pagine, selezionare questa casella di controllo per
Intestazione ripetere l'intestazione di gruppo su ogni pagina.
Gruppo su ogni
Pagina Nota
Questa opzione non viene visualizzata per la finestra di dialogo Opzioni di gruppo a campi
incrociati.

1.7.3.1.42.3 Scheda Ordine specificato

Utilizzare la scheda Ordine specificato se si desidera impostare gruppi personalizzati, ossia gruppi non attivati
necessariamente da alcun valore di campo. È possibile definire i gruppi e specificare i singoli valori appartenenti a
ciascuno.

Nota
La scheda Ordine specificato viene visualizzata solo quando nella scheda Comune è selezionato il tipo di
ordinamento “nell’ordine specificato”.

Gruppo Utilizzare questa casella per immettere il nome desiderato per il gruppo di ordine specificato.
denominato È inoltre possibile sfogliare e selezionare i valori nel campo di database da utilizzare come
nomi di gruppo.

La casella seguente mostra i campi selezionati e i gruppi creati in base all'ordine specificato.

Freccia su Fare clic su questo pulsante per spostare il gruppo evidenziato verso la parte superiore
dell'elenco.

Freccia giù Fare clic su questo pulsante per spostare il gruppo evidenziato verso la parte inferiore
dell'elenco.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
920 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nuovo Fare clic su questo pulsante per aprire la finestra di dialogo Definisci gruppo denominato, in
cui è possibile creare un nuovo gruppo con nome. Se è stato immesso un nuovo nome nella
casella di riepilogo Gruppo denominato della scheda Ordine specificato, esso appare come
Nome gruppo nella finestra di dialogo Definisci gruppo denominato.

Modifica Fare clic su questo pulsante per aprire la finestra di dialogo Definisci gruppo denominato in
cui è possibile modificare un gruppo evidenziato nella casella di riepilogo Gruppo
denominato.

Canc Fare clic su questo pulsante per eliminare il gruppo evidenziato.

1.7.3.1.42.4 Scheda Altri

È possibile utilizzare la scheda Altri per impostare il trattamento dei valori non inclusi nei gruppi specificati.

Nota
La scheda Altri viene visualizzata soltanto in connessione con la scheda Ordine specificato.

Ignora tutti gli altri Selezionare questa opzione se non si desidera stampare i campi non selezionati nei gruppi
del report. Se si esegue un riepilogo dei gruppi, i valori contenuti nei gruppi eliminati non
verranno inseriti nel riepilogo e non saranno inclusi in alcun totale generale.

Inserisci tutti gli Selezionare questa opzione e immettere un nome se si desidera riunire tutti i campi non
altri insieme, con il selezionati in un solo gruppo. Il nome predefinito per tale gruppo è Altri. Se si esegue un
nome riepilogo dei gruppi, i valori contenuti in questo gruppo verranno inclusi nel riepilogo e in
tutti i totali generali.

Lascia nei Facendo clic su questa opzione, i gruppi specificati verranno visualizzati nell'ordine
rispettivi gruppi specificato. I rimanenti gruppi saranno visualizzati come di norma. Se si esegue il riepilogo
dei gruppi, i relativi valori verranno inseriti nel riepilogo e saranno inclusi in qualsiasi totale
generale.

1.7.3.1.43 Finestra di dialogo Inserisci oggetto

È possibile utilizzare la finestra di dialogo Inserisci oggetto per introdurre un oggetto all'interno di un report. È
possibile inserire un oggetto esistente o crearne uno nuovo.

Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Report Designer,
scegliendo Inserisci, quindi Oggetto OLE.

Crea nuovo Fare clic su questa opzione per creare un nuovo oggetto e incorporarlo nel report. Quando
l'opzione Crea nuovo è attiva, è visualizzato l'elenco Tipo oggetto.

Crea da file Fare clic su questa opzione per incorporare o collegare un oggetto esistente. Se ad esempio, si è
creato e salvato il file di un foglio di calcolo in Microsoft Excel e si desidera utilizzarlo come
oggetto, fare clic su Crea da file quindi selezionare il nome del file nell'apposita casella.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 921
Insieme alla casella dei file verranno visualizzati il pulsante Sfoglia e la casella di controllo
Collegamento ogni volta che si seleziona Crea da file.

Tipo oggetto In questa casella sono elencati tutti i tipi di oggetti disponibili.

Nota
Questo elenco si basa sul database di registrazione. Quando le applicazioni server OLE
vengono installate, vengono registrate automaticamente in questo database. Se nel sistema
sono presenti delle applicazioni server ma non sono visualizzate in questo elenco , significa
che non sono state registrate correttamente.

Selezionare il tipo di oggetto che si desidera incorporare nel report.

Visualizza Consente di specificare se l’oggetto incorporato verrà visualizzato nel report come icona o se
come icona invece il contenuto dell’oggetto sarà sempre visibile. In alcune applicazioni gli oggetti possono
essere visualizzati soltanto come icone.

Se si seleziona Visualizza come icona è possibile aprire l’oggetto nel documento facendo doppio
clic sulla relativa icona.

Informazioni correlate

Inserimento di immagini di sfondo [pagina 764]


Descrive come impostare oggetti come sfondo vicino o sotto (opposto a sopra) gli oggetti posti nella sezione di
report successiva.

Inserimento di forme [pagina 727]

1.7.3.1.44 Finestra di dialogo Inserisci sottoreport

È possibile utilizzare la finestra di dialogo Inserisci sottoreport per inserire un sottoreport all'interno di un report.
Quando viene visualizzata la finestra di dialogo, è possibile selezionare un report esistente da inserire oppure
crearne uno da zero.

È possibile visualizzare questa finestra di dialogo facendo clic con il pulsante destro del mouse su Report
Designer, scegliendo Inserisci, quindi facendo clic su Sottoreport.

Informazioni correlate

Inserimento di sottoreport [pagina 753]


Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

Sottoreport non collegati e sottoreport collegati [pagina 754]


Progettazione di scelte per migliorare le prestazioni [pagina 770]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
922 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedure guidate per la creazione di report Crystal [pagina 649]

1.7.3.1.44.1 Scheda Sottoreport (finestra di dialogo Inserisci


sottoreport)

È possibile utilizzare la finestra di dialogo Inserisci sottoreport per inserire un sottoreport all'interno di un report.
Quando viene visualizzata la finestra di dialogo, è possibile selezionare un report esistente da inserire oppure
crearne uno da zero.

Scegliere un Crystal Selezionando questa opzione, la sottostante casella di riepilogo Nome report verrà
Report nel progetto attivata.

Nome del report Scegliere un report dal progetto corrente da utilizzare quale sottoreport.

Scegli un report Se si seleziona questa opzione, la sottostante casella Nome file verrà attivata. Immettere
esistente il nome del report che si desidera visualizzare come sottoreport. Se non si è a conoscenza
del nome del report, fare clic su Sfoglia per cercare il relativo file.

Nome file Immettere il percorso completo del file del report che si desidera inserire come
sottoreport. Se non si conosce il percorso esatto fare clic su Sfoglia per individuare il file
desiderato.

Sfoglia Fare clic sul pulsante Sfoglia per individuare un report da includere come sottoreport.
Fare doppio clic sul report o selezionare Apri, verrà nuovamente visualizzata la finestra di
dialogo Inserisci sottoreport. Il percorso del report appena selezionato sarà riportato nella
casella Nome file.

Crea un sottoreport Se si seleziona questa opzione, la sottostante casella Nuovo nome del report verrà
con la creazione attivata. Immettere un nome per il sottoreport quindi fare clic sul pulsante Procedura
guidata report guidata report per creare un sottoreport nuovo.

Nuovo nome del Immettere il nome che si desidera assegnare al nuovo sottoreport, quindi fare clic sul
report pulsante Procedura guidata report per creare un nuovo report.

Creazione guidata Fare clic su questo pulsante per aprire la Procedura guidata per la creazione di report
report standard. Seguire le istruzioni visualizzate sulle schede per creare un nuovo sottoreport.

Sottoreport su Selezionare questa casella di controllo se si desidera creare un sottoreport su richiesta. I


richiesta dati di un sottoreport su richiesta non vengono letti dal database fin quando non viene
attivato il collegamento ipertestuale utilizzato per rappresentarlo. Diversamente, i dati del
sottoreport verranno raccolti contemporaneamente ai dati del report contenitore.

Informazioni correlate

Inserimento di sottoreport [pagina 753]


Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

Sottoreport non collegati e sottoreport collegati [pagina 754]


Progettazione di scelte per migliorare le prestazioni [pagina 770]
Procedure guidate per la creazione di report Crystal [pagina 649]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 923
1.7.3.1.44.2 Scheda Collegamento (Inserisci sottoreport)

È possibile utilizzare la scheda Collegamento per specificare il campo del report principale che dovrà servire da
campo di collegamento ai dati contenuti nel sottoreport.

Per sottoreport È possibile utilizzare questo elenco per selezionare il sottoreport che si desidera
collegare ai dati del report che lo contiene.

Campi disponibili In questa casella di controllo sono elencati tutti i campi disponibili nel report contenitore
ai quali è possibile collegare il sottoreport.

Aggiungi (>) Fare clic sul pulsante Aggiungi > per copiare un campo dalla casella Campi disponibili alla
casella Campo/i a cui collegarsi.

Rimuovi (<) Fare clic sul pulsante Rimuovi < per rimuovere un campo dalla casella Campo/i a cui
collegarsi.

Campo/i a cui In questa casella sono visualizzati i campi correntemente selezionati nei quali si desidera
collegarsi collocare il collegamento del sottoreport.

Campo di parametro Questo elenco viene visualizzato quando la casella Campo/i a cui collegarsi contiene
sottoreport da almeno un nome di campo. Servirsi dell'elenco Campo di parametro sottoreport da
utilizzare utilizzare per determinare il campo del sottoreport al quale il report contenitore e il
sottoreport sono collegati.

Seleziona dati nel È possibile utilizzare la casella di controllo Seleziona dati nel sottoreport in base al
sottoreport in base al campo per attivare l'elenco omonimo.
campo
Una volta selezionata questa casella di controllo è sufficiente scegliere un campo
dall'elenco sottostante per organizzare i dati del sottoreport in base a un campo
specifico. Deselezionare questa casella di controllo se invece si desidera che nel
sottoreport venga adottato il tipo di organizzazione utilizzato nel report primario.

1.7.3.1.45 Finestra di dialogo Inserisci riepilogo

È possibile utilizzare la finestra di dialogo Inserisci riepilogo per eseguire il riepilogo dei dati di un campo del
report. Utilizzando questa finestra di dialogo è possibile inserire riepiloghi, totali parziali e totali generali.

Tale finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Report Designer, quindi
su Inserisci e infine su Riepilogo.

Scegliere il In questa casella di riepilogo sono visualizzati i campi e le formule utilizzati nel report, oltre ai
campo da campi disponibili nelle tabelle di origine dati del report. Selezionare il campo che si desidera
riepilogare includere nel riepilogo.

Calcolare questo In questa casella di riepilogo sono visualizzate tutte le operazioni di riepilogo che è possibile
riepilogo eseguire sul report. Selezionare l'operazione desiderata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
924 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
Non tutti i tipi di riepilogo disponibili sono applicabili a tutti i campi. Ad esempio, non è
possibile sommare o calcolare la media di un campo testo booleano, data/ora, ora o data.

Percorso Questo elenco contiene le posizioni del report in cui è possibile inserire un riepilogo. Per
riepilogo impostazione predefinita, ogni report può contenere un campo di riepilogo nel Piè di pagina
report (un Totale generale). Se si desidera aggiungere un diverso tipo di riepilogo, ad esempio
un totale parziale, aggiungere un gruppo con il pulsante Inserisci gruppo.

Inserisci gruppo Utilizzare questo pulsante per aggiungere un gruppo al report. Viene visualizzata la finestra di
dialogo Inserisci Gruppo. Una volta salvato, il gruppo verrà visualizzato nell’elenco Percorso
riepilogo e potrà essere selezionato.

Mostra come Selezionare questa casella di controllo se si desidera calcolare il totale in percentuale di un
percentuale di gruppo all'interno di un raggruppamento più grande. Ad esempio, è possibile mostrare la
percentuale di vendite in ciascuna città in base alle vendite totali per ciascun paese.

Dopo aver selezionato questa casella di controllo, è possibile scegliere il totale o il gruppo sul
quale si desidera basare il confronto.

Nota
L'opzione percentuale è disponibile solo quando il risultato di una operazione di riepilogo è
un valore numerico.

Riepiloga Questa opzione consente di eseguire un riepilogo di tutti i raggruppamenti effettuati in ordine
attraverso gerarchico. Per impostare o modificare le Opzioni gerarchiche di un gruppo esistente,
gerarchia scegliere Opzioni Raggruppamento Gerarchico dal menu Report.

Informazioni correlate

Finestra di dialogo Inserisci gruppo [pagina 918]


Raggruppamento dei dati in ordine gerarchico [pagina 696]
Nascondere i dettagli nei report di riepilogo [pagina 701]
Raggruppamento, ordinamento e calcolo dei totali dei dati [pagina 695]

1.7.3.1.46 Finestra di dialogo Opzioni di collegamento

Utilizzare la finestra di dialogo Opzioni di collegamento per definire i tipi di join e di collegamento.

Questa finestra di dialogo viene visualizzata quando è selezionata una linea di collegamento e si fa clic sul pulsante
Opzioni di collegamento nella scheda Collegamenti dell'Esperto database.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 925
Casella di Questa casella presenta la descrizione del collegamento selezionato.
visualizzazione del
collegamento

Tipo join Il programma consente di specificare il tipo di join che si desidera utilizzare per il
collegamento delle tabelle SQL.

Imponi join Il programma consente di imporre l’uso di tabelle mentre si specificano join.

Non Se si seleziona questa opzione, il collegamento creato viene utilizzato solo


imposto se esplicitamente richiesto dall'istruzione Select. Si tratta dell’opzione
predefinita. Gli utenti possono creare report basati sulle tabelle selezionate
senza restrizioni, ovvero senza l'imposizione in base ad altre tabelle.

Imposto da Quando si seleziona questa opzione, se viene utilizzata la tabella di


destinazione per il collegamento, esso viene imposto. Se, ad esempio, si
crea un collegamento da Tabella A a Tabella B utilizzando l'opzione Imposto
da e si seleziona solo un campo da Tabella B, l'istruzione Select includerà il
join in Tabella A poiché è imposto. Diversamente, se si seleziona un campo
solo da Tabella A con la stessa condizione di join, il join a Tabella B non verrà
imposto.

Imposto a Quando si seleziona questa opzione, se viene utilizzata la tabella di origine


per il collegamento, esso viene imposto. Se, ad esempio, si crea un
collegamento da Tabella A a Tabella B utilizzando l'opzione Imposto a e si
seleziona solo un campo da Tabella A, il join a Tabella B verrà imposto e
l'istruzione Select generata includerà entrambe le tabelle.

Imposto Quando si seleziona questa opzione, se viene utilizzata la tabella di origine o


da/a la tabella destinazione per il collegamento, esso viene imposto.

Tipo join Il programma consente di specificare il tipo di collegamento che si desidera utilizzare per
l’unione delle tabelle.

Informazioni correlate

Scheda Collegamenti (Esperto database) [pagina 980]


Accesso e aggiunta di dati [pagina 657]

1.7.3.1.47 Finestra di dialogo Mappatura campi

La finestra di dialogo Mappatura campi viene utilizzata per collegare i campi del report ai campi database
corrispondenti quando vengono apportate delle modifiche alla struttura del database o quando il database ad
accesso diretto viene trasformato in un database SQL. In tal modo la finestra di dialogo consente di verificare che i
report vengano stampati con la versione corrente del database attivo.

Questa finestra di dialogo viene visualizzata, facendo clic su Aggiorna nella finestra di dialogo Imposta percorso
origine dati oppure nel caso in cui il database del report sia stato modificato dall'ultima volta in cui è stato
eseguito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
926 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Campi non Nell'elenco Campi non mappati (collocato in alto a sinistra) sono visualizzati i campi report
mappati (campi non mappati per i quali il programma rileva una modifica nel database attivo.
report)

Campi non Nell'elenco Campi non mappati (collocato in alto a destra) sono visualizzati i campi database
mappati (campi non mappati per i quali viene rilevata una modifica.
database)

Mappa Fare clic su Mappa per mappare il campo report selezionato nell'elenco Campi non mappati
(collocato in alto a sinistra) al campo database selezionato nell'elenco Campi non mappati
(collocato in alto a destra).

Corrispon. tipo Quando questa casella di controllo è selezionata, nell'elenco Campi non mappati (collocato
in alto a destra) sono visualizzati solo i nomi dei campi database non mappati dello stesso
tipo del campo selezionato nell'elenco Campi non mappati (collocato in alto a sinistra).
Quando invece tale casella non è selezionata, nell'elenco Campi non mappati (collocato in
alto a destra) sono visualizzati tutti i campi database non mappati, indipendentemente dal
tipo di campo.

Campi mappati Nell'elenco Campi mappati, collocato in basso a sinistra, sono visualizzati I nomi dei campi
(campi report) report mappati. Quando si esegue la mappatura dei campi report, tali campi saranno inclusi
in questo elenco.

Campi mappati Nell'elenco Campi mappati (collocato in basso a destra) sono visualizzati I campi database
(campi database) mappati. Quando si esegue la mappatura dei campi database, tali campi saranno inclusi in
questo elenco.

Elimina Fare clic su Elimina mappatura per rimuovere la mappatura del campo report selezionato
mappatura nell'elenco Campi mappati (collocato in basso a sinistra) e del campo database selezionato
nell'elenco Campi mappati (collocato in basso a destra). Dopo aver fatto clic su questo
pulsante, i due campi non presenteranno alcuna mappatura.

Informazioni correlate

Accesso e aggiunta di dati [pagina 657]

1.7.3.1.48 Finestra di dialogo Nuova formula di formattazione

La finestra di dialogo Nuova formula di formattazione viene visualizzata quando si seleziona l'opzione Formula di
formattazione nell'elenco Nuovo della finestra di dialogo Workshop formule.

Nota
L'opzione Formula di formattazione è disponibile dopo aver selezionato una sezione o oggetto da formattare
nella cartella Formule di formattazione di Workshop formule.

Utilizzare questa finestra di dialogo per determinare il tipo di formula di formattazione che si desidera creare per
l’elemento selezionato (le opzioni disponibili dipendono dall’elemento selezionato nella cartella delle formule di

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 927
formattazione nella Workshop formule). Ad esempio, per il Piè di pagina sono disponibili opzioni per la creazione
delle seguenti formule di formattazione:

● Colore Sfondo
● Ricomincia numerazione pagine dopo
● Elimina (nessuna analisi dettagliata)
● Elimina sezioni vuote
● Sezioni seguenti sullo sfondo

Selezionare l'opzione appropriata e fare clic sul pulsante Usa Editor per creare la formula nella finestra di dialogo
Editor delle formule.

Informazioni correlate

Esecuzione di calcoli nei report [pagina 713]


Finestra di dialogo Editor delle formule [pagina 910]

1.7.3.1.49 Finestra di dialogo Griglie e scale asse numerico

Utilizzare la finestra di dialogo Griglie e scale asse numerico per formattare tutti gli assi del grafico. Per
visualizzare questa finestra di dialogo, fare clic con il tasto destro del mouse su un grafico, scegliere Opzioni
grafico e fare clic su Griglia.

La finestra di dialogo Griglie e scale Asse numerico contiene diverse opzioni a seconda della scheda selezionata
per l'asse e la formattazione.

Le schede nella parte sinistra della finestra di dialogo mostrano gli assi disponibili nel grafico:

● Asse gruppo
● Asse dati
● Asse dati2 (per i grafici a due assi)
● Asse X (per i grafici a bolle, istogrammi e a dispersione)
● Asse serie (per i grafici 3D).

Quando si seleziona una scheda relativa agli assi, l'aspetto delle linguette nella parte superiore della finestra di
dialogo cambierà per indicare le opzioni di formattazione per ciascun asse.

1.7.3.1.50 Finestra di dialogo Ordina collegamenti

Questa finestra di dialogo viene visualizzata quando si fa clic su Ordine collegamenti nella scheda collegamenti
dell'Esperto database.

Utilizzare questa finestra di dialogo per specificare l’ordine di elaborazione dei collegamenti delle tabelle. Per
impostazione predefinita, l’elaborazione segue l’ordine in cui i collegamenti sono visualizzati nella scheda
Collegamenti. Utilizzare i pulsanti freccia presenti nella finestra di dialogo Ordine collegamenti per cambiare
l’ordine predefinito.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
928 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Ad esempio, se dal database Xtreme sono state scelte le tabelle Credito, Cliente, Ordini e Dettagli ordine, la
scheda collegamenti mostrerà le tabelle collegate in ordine alfabetico.

In questo caso, verranno elaborati prima i collegamenti tra le tabelle Credito/Cliente, quindi quelli tra le tabelle
Cliente/Ordini e infine tra Ordini/Dettagli ordine.

Nota
A insiemi di dati differenti restituiti per essere utilizzati nel report possono corrispondere diversi ordini per i
collegamenti.

Informazioni correlate

Scheda Collegamenti (Esperto database) [pagina 980]


Accesso e aggiunta di dati [pagina 657]

1.7.3.1.51 Finestra di dialogo Imposta pagina

È possibile utilizzare la finestra di dialogo Imposta pagina per impostare I margini delle pagine del report. Quando
viene visualizzata questa finestra di dialogo presenta i valori predefiniti.

Viene visualizzata facendo clic con il pulsante destro del mouse su Report Designer, scegliendo Progettazione e
selezionando Imposta pagina.

Nota
In questo programma verranno utilizzate le aree non stampabili, che per la stampante sono state impostate
come margini predefiniti. Poiché è possibile impostare i margini che cadono all'interno delle aree non
stampabili, alcune parti del report potrebbero non essere stampate.

Margine superiore Immettere la dimensione del margine superiore in pollici o nell'unità di misura
predefinita impostata per il report.

Margine sinistro Immettere la dimensione del margine sinistro in pollici o nell'unità di misura impostata
per il report.

Margine inferiore Immettere la dimensione del margine inferiore in pollici o nell'unità di misura
predefinita impostata per il report.

Margine destro Immettere la dimensione del margine destro in pollici o nell'unità di misura predefinita
impostata per il report.

Usa margini predefiniti Selezionare questa casella di controllo per utilizzare le impostazioni dei margini
predefinite.

Correggi Selezionando questa casella di controllo, se il report viene stampato su una carta di
automaticamente formato diverso da quello per cui è stato progettato, i margini vengono regolati
automaticamente in modo che la dimensione dell’area occupata dal report non viene

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 929
modificata ma viene allineata nella pagina rispettando lo stesso rapporto specificato
originariamente. Ad esempio, se la nuova pagina è più larga di tre centimetri rispetto
all’originale, questi tre centimetri verranno ripartiti in modo da aumentare i margini
conservando il rapporto originale.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari sulle sezioni di report [pagina 641]

1.7.3.1.52 Finestra di dialogo Imposta stampante

È possibile utilizzare la finestra di dialogo Imposta stampante per selezionare la stampante, l'orientamento della
pagina e le dimensioni del foglio che si desidera utilizzare per la stampa del report. Nel caso in cui non si specifichi
una stampante, la stampa verrà eseguita con la stampante predefinita di Windows.

Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Report Designer,
quindi su Progettazione e infine su Imposta stampante.

Nessuna stampante Selezionare la casella di controllo Nessuna stampante quando la stampa non è un'opzione
proveniente da una stazione di lavoro particolare.

Stampante

Nome Selezionare il nome della stampante alla quale è possibile inviare i report dall'elenco Nome.

Proprietà Fare clic sul pulsante Proprietà per visualizzare la finestra di dialogo Proprietà relativa alla stampante
selezionata.

Foglio

Dimensione Utilizzare l'elenco Dimensione per selezionare il tipo di carta desiderato tra fogli e buste di varie
dimensioni.

Alimentazione Utilizzare l'elenco Alimentazione per selezionare la modalità di alimentazione tra una varietà di
opzioni.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
930 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Orientamento

Verticale Selezionare l'opzione Verticale per stampare il report con l'orientamento lettera
standard.

Orizzontale Selezionare l'opzione Orizzontale per stampare il report con l'orientamento orizzontale.

Reimposta su Fare clic sul pulsante Proprietà predefinite su predefinito per ripristinare le impostazioni
predefinito predefinite per tutte le proprietà della stampante.

Informazioni correlate

Definizione delle caratteristiche dell'area di stampa [pagina 656]


Cenni preliminari sulle sezioni di report [pagina 641]

1.7.3.1.53 Esperto ordinamento record

È possibile utilizzare l’Esperto ordinamento record per definire l'ordinamento dei record del report per la stampa.
Campo di dati su cui si basa la procedura di ordinamento. È possibile aggiungere o rimuovere i campi di
ordinamento e definire l'ordine (crescente o decrescente) dei dati contenuti nel report.

Per visualizzare questa finestra di dialogo, fare clic con il pulsante destro del mouse su Report Designer, scegliere
Report, quindi fare clic su Esperto ordinamento record.

Campi Disponibili Contiene un elenco dei campi correntemente presenti nel report nonché di quelli
disponibili nelle tabelle di origine dati del report.

Campi di ordinamento Visualizza un elenco dei campi di ordinamento al momento presenti nel report.

Aggiungi (>) Il campo selezionato verrà aggiunto all'elenco Campi di ordinamento.

Rimuovi (<) Rimuove il campo di ordinamento selezionato dall'elenco Campi di ordinamento.

Direzione di ordinamento Imposta l'ordine su crescente o decrescente.

Informazioni correlate

Raggruppamento, ordinamento e calcolo dei totali dei dati [pagina 695]


Nascondere i dettagli nei report di riepilogo [pagina 701]
Progettazione di scelte per migliorare le prestazioni [pagina 770]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 931
1.7.3.1.54 Finestra di dialogo Aggiorna i dati del report

Questa finestra di dialogo consente di eseguire il report utilizzando i valori dei parametri correnti o di immettere
nuovi valori dei parametri.

Usa valori parametro Scegliere questa opzione per eseguire il report utilizzando i valori dei parametri
correnti correnti.

Richiedi nuovi valori dei Scegliere questa opzione per eseguire il report utilizzando valori dei parametri
parametri differenti. Quando si sceglie questa opzione viene visualizzata la finestra di dialogo
Immetti valori dei parametri, in cui è possibile indicare un valore specifico o un
intervallo di valori dei parametri.

Informazioni correlate

Impostazione dei parametri [pagina 689]

1.7.3.1.55 Finestra di dialogo Rinomina formula

È possibile utilizzare la finestra di dialogo Rinomina formula per specificare un nome per la formula, l'espressione
SQL o il parametro.

Nome Immettere un nome per la formula, l'espressione SQL o il parametro che si sta creando.

Quando immessa nel report, la formula verrà visualizzata come @NomeFormula nel caso in cui nella
finestra di dialogo Impostazioni predefinite sia selezionata la casella Mostra nomi campi.

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 910]


Finestra di dialogo Impostazioni predefinite [pagina 878]
Explorer Campo [pagina 646]

1.7.3.1.56 Finestra di dialogo Rinomina parametro

È possibile utilizzare la finestra di dialogo Rinomina parametro per assegnare un nuovo nome a un campo di
parametro. Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Campi di
parametro in Explorer Campo, quindi su Rinomina.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
932 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Nome Utilizzare questa casella per immettere il nuovo nome da assegnare al campo di parametro.

Informazioni correlate

Impostazione dei parametri [pagina 689]


Inserimento dei parametri nelle formule [pagina 694]
Esercitazione: Lettura e impostazione di parametri discreti [pagina 248]
In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Esercitazione: Lettura e impostazione di parametri discreti [pagina 381]


In questa esercitazione viene descritto come creare un report i cui dati possano essere filtrati in base a un
parametro discreto.

Explorer Campo [pagina 646]

1.7.3.1.57 Finestra di dialogo Rinomina totale parziale

Utilizzare la finestra di dialogo Rinomina totale parziale per assegnare un nuovo nome a un campo totale parziale.
Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Campi totale parziale
in Explorer Campo, quindi su Rinomina.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Nome Utilizzare questa casella per immettere il nuovo nome da assegnare al campo totale parziale.

Informazioni correlate

Creazione di totali parziali [pagina 708]


Inserimento di campi di totale parziale [pagina 708]
Explorer Campo [pagina 646]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 933
1.7.3.1.58 Finestra di dialogo Opzioni report

È possibile utilizzare la finestra di dialogo Opzioni report per modificare le opzioni del report corrente. Tale finestra
può essere visualizzata facendo clic con il pulsante destro del mouse su Report Designer, scegliendo Inserisci,
quindi facendo clic su Opzioni report.

Se si desidera modificare i valori predefiniti per il programma, vedere laFinestra di dialogo Impostazioni predefinite
[pagina 878].

Converti valori NULL Selezionare questa casella di controllo per impostare la conversione automatica dei
del database in valori null del database in 0 (per i campi numerici) o in uno spazio vuoto (per i campi non
impostazioni numerici).
predefinite
Questa opzione riguarda esclusivamente i valori null presenti nel database utilizzato per
un report.

Converti altri valori Selezionare questa casella di controllo per impostare la conversione automatica dei
NULL in impostazioni valori null presenti nel report ma non contenuti nel database in 0 (per i campi numerici)
predefinite o in uno spazio vuoto (per i campi non numerici).

Questa opzione riguarda esclusivamente i valori null del report che non sono contenuti
nel database.

Mostra tutte le È possibile utilizzare questa casella di controllo se si desidera che le visualizzazioni
intestazioni in analisi dell'analisi dettagliata dei report includano le intestazioni di tutte le sezioni sopra ai
dettagliata record di analisi dettagliata. In base all'impostazione predefinita questa opzione non è
selezionata.

Ordina sempre Selezionare questa casella di controllo per assicurarsi che i record vengano ordinati
localmente localmente anche nel caso in cui erano stati preordinati al momento del recupero
dall'origine dati.

Server di database Questa casella di controllo consente di specificare se i dati SQL utilizzati nel report
senza distinzione devono essere sensibili alla distinzione tra maiuscole e minuscole. Selezionare questa
maius./minus. casella di controllo se si desidera che dati utilizzati contengano campi in cui i dati siano
in lettere maiuscole e minuscole e non si desidera categorizzare i dati da questo punto di
vista.

i dati SQL con distinzione tra maiuscole e minuscole non sono supportati nella versione
standard del programma a 32 bit.

Esegui Questa casella di controllo è disponibile esclusivamente se la casella di controllo Usa


raggruppamento su indici o server per velocità è selezionata.
server
Questa opzione non è disponibile per i report creati da dati OLAP.

Selezionare questa casella di controllo per l'esecuzione dei raggruppamenti sul server
ovvero l'esecuzione dell'elaborazione sul server. Il lato server consente di impostare un
report che esegua la maggior parte dell’elaborazione sul server e passi al computer solo
le informazioni necessarie. L'elaborazione sul lato server offre i vantaggi seguenti:

● riduzione del tempo di connessione al server


● minore memoria necessaria per elaborare il report sul computer locale
● tempi di trasferimento inferiori dal server al client.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
934 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
È inoltre opportuno notare che l'elaborazione sul server ha luogo solo per report basati
su origini di dati SQL ad esempio, non è possibile utilizzare l'elaborazione sul server per
un report basato su una query, in quanto una query non è un'origine di dati SQL.

In base all'impostazione predefinita questa opzione non è selezionata.

Usa indici o server per Quando questa casella di controllo è selezionata, gli indici o i server disponibili vengono
velocità utilizzati per velocizzare il processo di selezione dei record.

Quando questa casella di controllo non è selezionata, i record vengono selezionati senza
l'utilizzo degli indici e dei server specificati ovvero un processo molto più lento.

se un indice presenta un nome diverso dal database al quale si riferisce, è necessario


identificare l’indice per il programma. Questa operazione può essere eseguita
utilizzando la finestra di dialogo Opzioni di collegamento, cui si accede dalla scheda
Collegamenti (Esperto database).

Verifica al primo Se questa casella di controllo è selezionata, al primo aggiornamento di ogni sessione il
aggiornamento report viene aggiornato con la versione corrente del database attivo (a meno che non si
tratti di una procedura memorizzata) e i buffer dei record vengono reimpostati in base
alla dimensione corrente del record. In base all'impostazione predefinita questa opzione
non è selezionata.

Verifica procedure Se questa casella di controllo è selezionata, al primo aggiornamento di ogni sessione il
memorizzate al primo report viene aggiornato con la versione corrente della procedura memorizzata e i buffer
aggiornamento dei record vengono reimpostati in base alla dimensione corrente del record. In base
all'impostazione predefinita questa opzione non è selezionata.

Rispetta Mantieni Deselezionare questa casella di controllo per iniziare a stampare il primo gruppo sulla
gruppo unito sulla prima pagina del report, anche se è stata selezionata la casella di controllo Mantieni il
prima pagina gruppo unito nella Scheda Opzioni [pagina 919].

Selezionare questa casella di controllo insieme alla casella di controllo Mantieni il gruppo
unito per fare in modo che SAP Crystal Reports inizi a stampare il primo gruppo sulla
seconda pagina del report, quando il primo gruppo si estende oltre una singola pagina.

Seleziona record È possibile utilizzare questa opzione per selezionare solo I record univoci delle tabelle
distinti SQL del database. Selezionando questa opzione nella finestra di dialogo Opzioni report,
è possibile impostare l'opzione per il report corrente. In alternativa, è possibile
impostare l'opzione per tutti i report scegliendo il comando Seleziona record distinti dal
menu Database.

Questa opzione non è disponibile per i report creati da dati OLAP.

Seleziona dati distinti In base all'impostazione predefinita, quando si sfoglia un campo vengono visualizzati i
per sfogliare primi 500 valori univoci presenti in tale campo. È possibile modificare questa
impostazione per il record corrente deselezionando questa opzione. Se l'opzione
Seleziona dati distinti per sfogliare non è selezionata, si otterranno i valori univoci
contenuti nei primi 500 record.

poiché la maggior parte dei server SQL non supportano la selezione di record distinti per
i dati di tipo long, quali campi memo e blob, le operazioni di selezione ed esplorazione dei
record non sono supportate per tali campi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 935
Mantieni profondità Se si desidera che, quando vengono incapsulate, le immagini del report conservino la
colore immagine profondità del colore originale, selezionare questa opzione. Altrimenti, prima
originale dell'incapsulamento, tutte le immagini saranno convertite in un formato a 8 bit per pixel.

Impostazioni parti Se si desidera utilizzare oggetti del report in questione nel controllo
report iniziali CrystalReportPartsViewer, definire in quest'area l'oggetto principale. L’oggetto
principale costituisce la base di un percorso di collegamenti ipertestuali per le parti del
report e diventa inoltre il primo oggetto del report ad essere visualizzato nel controllo
CrystalReportPartsViewer.

Incolla il collegamento Utilizzare il pulsante Incolla collegamento per incollare il nome e il contesto dati di un
parte report oggetto report precedentemente selezionato e copiato. Il pulsante prevede le seguenti
opzioni: Parte report in contesto e Parte report in anteprima. Queste opzioni incidono
sul tipo di contesto dati incollato.

Nome oggetto Immettere il nome dell’oggetto del report che si desidera utilizzare come oggetto
principale.

Contesto dati Immettere il contesto, vale a dire il report o i report specifici, per i dati che si desidera
utilizzare nell’oggetto principale.

Anteprima pagine a Questo elenco consente di selezionare il livello di ingrandimento predefinito per la
partire da visualizzazione dei report nella scheda Anteprima.

● La dimensione ingrandita consente di visualizzare il report al livello massimo di


ingrandimento per la lettura. Questa pagina presenta dimensioni maggiori di una
scheda Anteprima VGA standard. Se si modificano le dimensioni della scheda
Anteprima, le dimensioni del report rimarranno invariate. Viene modificata
esclusivamente la quantità di report visualizzabile per volta. Potrebbe essere
necessario utilizzare le barre di scorrimento per visualizzare tutte le sezioni del
report.
● L'opzione di adattamento della larghezza consente di adattare la larghezza del
report alla larghezza della scheda Anteprima. Se si modificano le dimensioni della
scheda Anteprima, portandole a una misura realistica, verranno modificate anche le
dimensioni dell'immagine della pagina. Per visualizzare un'immagine con dimensioni
maggiori, è possibile espandere la finestra.
● L'opzione di adattamento alla pagina consente di regolare la larghezza e la
lunghezza della pagina del report per visualizzare un'immagine intera nella scheda
Anteprima. Se si modificano le dimensioni della scheda Anteprima, portandole a una
misura realistica, verranno modificate anche le dimensioni dell'immagine della
pagina. Per visualizzare un'immagine con dimensioni maggiori, è possibile
espandere la finestra.

Informazioni correlate

Finestra di dialogo Impostazioni predefinite [pagina 878]


Cenni preliminari sulle parti del report [pagina 732]
Ottimizzazione delle prestazioni dei report [pagina 768]
Illustra i modi in cui è possibile migliorare le prestazioni dei report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
936 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.59 Finestra di dialogo Campi di mappatura parti record

Questa finestra di dialogo si apre quando si crea un collegamento ipertestuale Un altro oggetto report, si sceglie
l’opzione Parte report in visualizzazione Design (o se si sceglie l’opzione Parte report per un oggetto copiato dalla
visualizzazione Design di un report) e i report di origine e di destinazione hanno strutture di dati diverse. Ogni
campo dell’area Campi non mappati rappresenta un gruppo del report di origine. Utilizzare questa finestra di
dialogo per mappare i gruppi ai campi del report di destinazione.

Campi non L’elenco Campi non mappati riporta i gruppi non mappati del report di origine.
mappati

Campi report L’elenco Campi report riporta i campi di database del report di destinazione che è possibile
selezionare per la mappatura.

Mappa Fare clic su Mappa per mappare il gruppo selezionato nell’elenco Campi non mappati al
campo di database selezionato nell’elenco Campi report. Dopo aver fatto clic su questo
pulsante, il gruppo e il campo selezionati saranno mappati ed entrambi saranno spostati
nell’area Campi mappati.

Campi originali L’elenco Campi originali riporta i gruppi del report di origine mappati.

Campi mappati L’elenco Campi mappati riporta i campi di database mappati del report di destinazione.

Elimina mappatura Fare clic su Elimina mappatura per annullare la mappatura dei gruppi e dei campi del report
selezionati nell’area Campi mappati. Dopo aver fatto clic su questo pulsante, il gruppo e il
campo selezionati non presenteranno più alcuna mappatura.

Informazioni correlate

Cenni preliminari sulle parti del report [pagina 732]


Implementazione dell'analisi dettagliata delle parti del report [pagina 735]

1.7.3.1.60 Finestra di dialogo Imposta classe CSS

È possibile utilizzare la finestra di dialogo Set CSS Class per formattare i report mediante le classi CSS (Cascading
Style Sheet). Per visualizzare questa finestra fare clic con il tasto destro del mouse in Report Designer e scegliere
Set CSS Class.

Nota
Questa finestra di dialogo modifica l'output del report solo se questo viene convertito in versione HTML e la
classe è stata definita nel file .aspx del progetto.

Portata oggetto Selezionare gli oggetti o le sezioni a cui si desidera applicare le classe quando il report viene
convertito in HTML.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 937
Nome classe Immettere il nome della classe. Quando il report viene convertito in HTML, il nome della
CSS classe verrà associato a tutti gli oggetti o le sezioni definite nel campo Portata oggetto.

Informazioni correlate

Formattazione dei report mediante le classi CSS (Cascading Style Sheets) [pagina 731]

1.7.3.1.61 Finestra di dialogo Imposta percorso origine dati

Utilizzare la finestra di dialogo Imposta percorso origine dati per specificare un nuovo database o un nuovo
percorso del database utilizzato nel report. Per accedere a questa finestra di dialogo, fare clic con il pulsante
destro del mouse nella cartella Campi database contenuta in Explorer Campo, quindi su Imposta percorso origine
dati.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Origine dati In questa casella di riepilogo vengono visualizzati i database e le tabelle utilizzati correntemente
corrente nel report. Il report principale è visualizzato come nodo principale.

Nota
● tutti i sottoreport sono collocati sotto un unico nodo, in modo che le relative origini dati
siano raggruppate insieme. Un’origine dati utilizzata in due o più sottoreport è indicata da
una diversa icona al livello dell’origine dati.
● Se una tabella è utilizzata in due o più sottoreport, ma il nome alias è diverso, il nome reale
della tabella viene accodato.

Espandendo il nodo delle Proprietà per un’origine dati o una tabella vengono visualizzate le
informazioni dettagliate relative all’elemento. Per alcune voci del nodo Proprietà, ad esempio per
il Nome database, sono disponibili menu di scelta rapida con le relative opzioni.

Sostituisci Nell’elenco sono visualizzate le stesse opzioni presenti nella scheda Dati dell’Esperto database.
con Per informazioni sulle modalità di selezione di una nuova origine dati o tabella, vedere Scheda Dati
(Esperto database) [pagina 977] .

Aggiorna Fare clic sul pulsante Aggiorna per aggiornare le informazioni sulla nuova origine dati nell’elenco
Origine dati corrente. Se la nuova origine dati è diversa da quella che si sta sostituendo, viene
visualizzata la finestra di dialogo Mappatura campi.

Informazioni correlate

Finestra di dialogo Mappatura campi [pagina 926]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
938 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Accesso e aggiunta di dati [pagina 657]

1.7.3.1.62 Finestra di dialogo Imposta valori predefiniti

È possibile utilizzare la finestra di dialogo Imposta valori predefiniti per specificare le richieste predefinite che si
desidera visualizzare con il campo di parametro.

Questa finestra di dialogo viene visualizzata facendo clic su Imposta valori predefiniti nelle finestre di dialogo Crea
campo parametro o Modifica campi parametro.

Seleziona da database

Sfoglia È possibile utilizzare questo elenco per individuare la tabella che si desidera esplorare in base ai
tabella campi o ai valori da utilizzare per modificare i valori predefiniti del campo di parametro.

Sfoglia È possibile utilizzare questo elenco per individuare il campo che si desidera esplorare in base ai
campo valori da utilizzare per modificare i valori predefiniti del campo di parametro.

Selezionare o immettere un valore

Utilizzare la casella "Selezionare o immettere un valore" per inserire valori nell'elenco Valori predefiniti. È possibile
inserire nuovi valori nella casella "Selezionare o immettere un valore", quindi premere il pulsante Aggiungi (>)
oppure è possibile selezionare un valore nell'elenco "Selezionare o immettere un valore" sottostante l'omonima
casella, quindi premere il pulsante Aggiungi (>).

Aggiungi (>) È possibile utilizzare il pulsante Aggiungi per spostare i valori dalla casella "Selezionare o
immettere un valore" all'elenco Valori predefiniti.

Aggiungi tutto (>>) Utilizzare questo pulsante per spostare tutti i valori della casella "Selezionare o
immettere un valore" all'elenco Valori predefiniti.

Elimina (<) È possibile utilizzare questo pulsante per rimuovere un valore dall'elenco Valori
predefiniti.

Elimina tutto (<<) È possibile utilizzare il pulsante Elimina tutto per rimuovere tutti i valori dall'elenco Valori
predefiniti.

Valori predefiniti È possibile utilizzare questo elenco per creare un elenco di valori predefiniti per il campo
di parametro che si sta creando. Le voci prescelte per l'elenco Valori predefiniti possono
rappresentare un sottoinsieme delle voci prescelte dall'elenco Sfoglia campo.

Pulsanti frecce di Utilizzare I pulsanti delle frecce di ordinamento per spostare un valore verso l'alto o
ordinamento verso il basso dell'elenco valori predefiniti.

Importa Fare clic su questo pulsante per importare un file di testo contenente un elenco scelta di
valori di parametro.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 939
Esportazione Fare clic su questo pulsante per esportare l'elenco scelta dai valori dei parametri a un file
di testo.

Imposta descrizione È possibile utilizzare questa opzione per aggiungere una descrizione a qualsiasi valore
contenuto nell'elenco Valori predefiniti Facendo clic su questo pulsante verrà
visualizzata la finestra di dialogo Definisci descrizione.

Opzioni

Limite lungh. Selezionando la casella di controllo Limite lungh. è possibile determinare la lunghezza minima e
massima del valore di un parametro immesso nella finestra Immetti valori dei parametri. In base
all'impostazione predefinita questa opzione non è selezionata.

Lunghezza È possibile utilizzare la casella di controllo Lunghezza minima per limitare il numero minimo di
minima caratteri che è possibile visualizzare nel campo di parametro con valore stringa.

Lungh. È possibile utilizzare la casella di controllo Lungh. massima per limitare il numero massimo di
massima caratteri che è possibile visualizzare nel campo di parametro con valore stringa.

Masch. Mod. Per un campo parametro stringa, è possibile scegliere di immettere una maschera di modifica
nella casella Masch. Mod., anziché specificare un intervallo. Una maschera di modifica può
essere costituita da un insieme di caratteri utilizzati per limitare i valori che è possibile
immettere come valori dei parametri (la maschera di modifica limita inoltre i valori che è
possibile immettere come valori di richiesta predefiniti).

Nota
Quando si immette una maschera di modifica, le opzioni relative alla lunghezza diventano
inattive.

Visualizza È possibile utilizzare l'elenco Visualizza per selezionare la modalità di immissione dei valori
predefiniti nella finestra di dialogo Immetti valori dei parametri. Se si seleziona Valore e
descrizione, i valori predefiniti saranno visualizzati come valori con le corrispondenti descrizioni.
Se invece si seleziona Descrizione, verranno visualizzate solo le descrizioni dei valori.

Ordine Nell'elenco Ordine è possibile specificare se ordinare o meno i valori predefiniti. L'ordinamento
può essere in ordine alfabetico crescente, in ordine alfabetico decrescente, in ordine numerico
crescente, in ordine numerico decrescente, in ordine di data e di ora crescenti e in ordine di data
e di ora decrescenti.

Ordine basato Nell'elenco Ordine basato su è possibile specificare se ordinare i valori predefiniti in base al
su valore o alla descrizione.

Nota
Se si applica un ordinamento numerico a una descrizione o a un valore alfabetico, i valori
predefiniti non verranno ordinati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
940 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Impostazione dei parametri [pagina 689]


Finestra di dialogo Crea campo parametro [pagina 863]
Limitazione di tipo di immissione e formato nei parametri [pagina 692]

1.7.3.1.63 Finestra di dialogo Imposta data e ora di stampa

È possibile utilizzare la finestra di dialogo Imposta data e ora di stampa per impostare la data e l'ora di del report È
possibile scegliere la data e l'ora correnti oppure specificare una data e un'ora diverse.

Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Report Designer,
scegliendo Report quindi selezionando Imposta data e ora di stampa.

Data e ora Selezionare questa casella di controllo se si desidera utilizzare la data e l'ora correnti.
correnti

Altro Selezionare questa casella di controllo se per il report si desidera utilizzare una data diversa
da quella corrente. Quando si seleziona questa casella di controllo, le caselle di modifica Anno,
Mese e Giorno sono attive consentendo quindi di specificare la data di stampa desiderata.

Data Utilizzare l'elenco Data per selezionare una data di stampa.

Ora Utilizzare la casella Ora per impostare l'ora di stampa.

Informazioni correlate

Finestra di dialogo Impostazioni predefinite [pagina 878]

1.7.3.1.64 Finestra di dialogo Mostra query SQL

Nella finestra di dialogo Mostra query SQL è visualizzata la query SQL inviata al server SQL. Questa finestra di
dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Report Designer, scegliendo Database,
quindi facendo clic su Mostra query SQL.

SELECT Nell'elenco SELECT sono contenuti tutti i campi utilizzati nel report, compresi i campi utilizzati nelle
formule, nei totali, negli ordinamenti, nelle formule di selezione e negli intervalli.

FROM Nell'elenco FROM sono contenute tutte le tabelle utilizzate nel report e i nomi di tali tabelle sono
seguiti da un alias.

WHERE Nell'elenco WHERE è specificato qualsiasi collegamento tra le tabelle e gli intervalli dei campi del
report.

ORDER BY ORDER BY consente l'ordinamento dei dati in ordine alfabetico o numerico crescenti o decrescenti.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 941
Informazioni correlate

Selezione dei record [pagina 678]


Invio della selezione di record al server del database [pagina 679]
Definizione delle tabelle virtuali in base a un Comando/Query SQL [pagina 660]

1.7.3.1.65 Finestra di dialogo Nome espressione SQL

È possibile utilizzare la finestra di dialogo Nome espressione SQL per immettere il nome di un campo espressione
SQL che si sta creando. Questa finestra di dialogo viene visualizzata facendo clic su Campi espressione SQL in
Explorer Campo e selezionando Nuovo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Nome È possibile utilizzare questa finestra di dialogo per immettere un nome per un campo espressione SQL
che si sta creando.

Quindi fare clic su OK per aprire Editor espressioni SQL. A questo punto è possibile immettere
l'espressione SQL.

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 910]


Espressioni SQL [pagina 725]
Descrive quando utilizzare le Espressioni SQL nei report.

Invio della selezione di record al server del database [pagina 679]

1.7.3.1.66 Finestra di dialogo Collegamenti sottoreport

È possibile utilizzare la finestra di dialogo Collegamenti sottoreport per specificare il campo del report principale
che dovrà servire da campo di collegamento ai dati contenuti nel sottoreport.

Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse sull'oggetto sottoreport
e scegliendo Modifica collegamenti sottoreport.

Per sottoreport È possibile utilizzare questo elenco per selezionare il sottoreport che si desidera
collegare ai dati del report che lo contiene. Questo elenco è attivo solo se sono presenti
più sottoreport.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
942 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Campi disponibili In questa casella di controllo sono elencati tutti i campi disponibili nel report contenitore
ai quali è possibile collegare il sottoreport.

Aggiungi (>) Fare clic sul pulsante Aggiungi > per copiare un campo dalla casella Campi disponibili alla
casella Campo/i a cui collegarsi.

Rimuovi (<) Fare clic sul pulsante Rimuovi < per rimuovere un campo dalla casella Campo/i a cui
collegarsi.

Campo/i a cui In questa casella sono visualizzati i campi correntemente selezionati nei quali si desidera
collegarsi collocare il collegamento del sottoreport.

Campo di parametro Questo elenco viene visualizzato quando la casella Campo/i a cui collegarsi contiene
sottoreport da almeno un nome di campo. Servirsi dell'elenco Campo di parametro sottoreport da
utilizzare utilizzare per determinare il campo del sottoreport al quale il report contenitore e il
sottoreport sono collegati.

Seleziona dati nel È possibile utilizzare la casella di controllo Seleziona dati nel sottoreport in base al campo
sottoreport in base al per attivare l'elenco omonimo.
campo
Una volta selezionata questa casella di controllo è sufficiente scegliere un campo
dall'elenco sottostante per organizzare i dati del sottoreport in base a un campo
specifico. Deselezionare questa casella di controllo se invece si desidera che nel
sottoreport venga adottato il tipo di organizzazione utilizzato nel report primario.

Informazioni correlate

Inserimento di sottoreport [pagina 753]


Descrive come aggiungere collegamenti ipertestuali ad altri report o dati di report.

1.7.3.1.67 Finestra di dialogo Formato testo

È possibile utilizzare questa finestra di dialogo per modificare i tipi di carattere e gli stili, formattare i paragrafi e
impostare tabulazioni per un oggetto di testo. La finestra di dialogo viene visualizzata quando si modifica un
oggetto di testo, si seleziona un testo nell'oggetto, si fa clic con il pulsante destro del mouse sul testo selezionato
e si sceglie Formattazione testo.

1.7.3.1.67.1 Scheda Paragrafo (Formato testo)

È possibile utilizzare la scheda Paragrafo per impostare le opzioni di formattazione per i paragrafi presenti in un
oggetto di testo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 943
Rientri

Prima riga Immettere la distanza in pollici o nell'unità di misura predefinita del report del quale si desidera far
rientrare la prima riga.

A sinistra Immettere la distanza in pollici o nell'unità di misura predefinita del report del quale si desidera far
rientrare il lato sinistro.

A Destra Immettere la distanza in pollici o nell'unità di misura predefinita del report del quale si desidera far
rientrare il lato destro.

Spaziatura

Interlinea Immettere l'interlinea desiderata come multiplo della dimensione del carattere utilizzato o come
numero esatto di punti.

Di È possibile utilizzare questa casella per immettere il multiplo da utilizzare, se per l'interlinea si è
selezionato il valore Multiplo o il numero di punti se invece si è selezionato Esatto.

Direzione di lettura

Da sinistra a destra Fare clic su questo pulsante se si desidera che il testo venga letto da sinistra a destra.

Da destra a sinistra Fare clic su questo pulsante se si desidera che il testo venga letto da destra a sinistra.

Allineamento orizzontale

Elenco Selezionare l'opzione di allineamento che si desidera utilizzare per il paragrafo da questo
Allineamento elenco. Sono disponibili le seguenti quattro opzioni: A sinistra, A destra, Centrato e
Giustificato.

Informazioni correlate

Oggetti campo e oggetti testo [pagina 665]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
944 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.67.2 Scheda Tabulazioni (Formato testo)

È possibile utilizzare la scheda Tabulazioni per impostare, eliminare, modificare e cambiare le tabulazioni in un
oggetto di testo.

Posizione tabulazione Immettere la posizione della tabulazione desiderata in questa casella. Le posizioni delle
tabulazioni vengono misurate in pollici.

Opzioni di Per la posizione della tabulazione desiderata è possibile scegliere tra quattro opzioni di
allineamento allineamento: A sinistra, A destra, Centrato e Decimale.

Imposta Una volta immessa la posizione nella casella Posizione tabulazione, è sufficiente fare clic
su questo pulsante per impostarla.

Canc Facendo clic su questo pulsante, la posizione della tabulazione selezionata verrà
eliminata.

Elimina tutto Facendo clic su questo pulsante tutte le posizioni delle tabulazioni in precedenza
definite verranno eliminate.

Informazioni correlate

Finestra di dialogo Editor formato [pagina 897]


Oggetti campo e oggetti testo [pagina 665]

1.7.3.1.68 Finestra di dialogo Titoli

È possibile utilizzare la finestra di dialogo Titoli per aggiungere, modificare o eliminare un titolo, sottotitolo, nota a
piè di pagina, titolo gruppo, titolo asse dati, titolo asse dati2 e titolo asse serie del grafico.

Per visualizzare questa finestra di dialogo, fare clic con il tasto destro del mouse su un grafico, scegliere Opzioni
grafico e quindi Titoli.

Titolo Per impostazione predefinita, il titolo del grafico viene posizionato al centro della parte
superiore del grafico

Sottotitolo Per impostazione predefinita, il sottotitolo viene collocato al centro nella parte superiore del
grafico, appena sotto il titolo.

Piè di pagina Per impostazione predefinita, la nota a piè di pagina è collocata nell’angolo inferiore destro del
grafico.

Titolo Asse serie Nei grafici 3D, le etichette di serie, che generalmente vengono visualizzate nell'area della
legenda, vengono tracciate lungo un asse di gruppo secondario. Nella configurazione
predefinita, queste etichette serie vengono disegnate nella parte inferiore del lato sinistro del
cubo 3D. Per descrivere ulteriormente le informazioni fornite sull'asse di serie, aggiungere un
titolo per tale asse.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 945
Nome gruppo Aggiunge un titolo all'asse di gruppo del grafico. Il titolo del gruppo viene posizionato al di
sopra, al di sotto o accanto alle etichette dell'asse di gruppo.

Nome dei dati Aggiunge un titolo all'asse dati primario (Y1) del grafico:

Titolo dati2 Nei grafici bipolari e con assi duplici, l’asse dati principale (Y1) mostra alcuni dei gruppi del
foglio dati mentre l’asse dati secondario (Y2) riporta altri gruppi di dati. Per illustrare gli
elementi riportati sull'asse, aggiungere un titolo all'asse Y2.

1.7.3.1.69 Impostazioni 3D

In questa sezione sono descritte le opzioni disponibili nella finestra di dialogo Scegli un angolo di visualizzazione.
Utilizzare questa finestra di dialogo per definire gli angoli di visualizzazione nei grafici 3D.

Informazioni sulle impostazioni 3D

La finestra di dialogo Angoli di visualizzazione 3D contiene diverse opzioni di angoli preimpostati tra cui scegliere.
Non solo è possibile eseguire panoramiche, rotazioni o spostamenti del grafico 3D in qualsiasi punto dello
schermo, ma è anche possibile regolare lo spessore delle pareti della cornice, nonché estenderle e comprimerle.
Gli angoli di visualizzazione 3D consentono di eseguire presentazioni creative del grafico 3D. Oltre agli angoli di
visualizzazione per un grafico 3D, è possibile utilizzare queste funzionalità in un grafico 3D avanzato.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
946 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.1.69.1 Scelta di un angolo di visualizzazione

Nella finestra di dialogo Scegli un angolo di visualizzazione è presente un'immagine di tutti gli angoli di
visualizzazione definiti. Il numero delle immagini degli angoli di visualizzazione dipende da selezioni precedenti
nella sezione Opzioni avanzate della finestra di dialogo.

1.7.3.1.69.1.1 Per selezionare un angolo di visualizzazione


definito

Procedura

1. Selezionare l'immagine di un angolo di visualizzazione.


2. Scegliere OK per applicare l'angolo di visualizzazione al grafico 3D, quindi tornare alla finestra di dialogo
Scegli un angolo di visualizzazione.
3. Scegliere Opzioni avanzate per visualizzare selezioni aggiuntive di angoli di visualizzazione.

1.7.3.1.69.2 Opzioni degli angoli di visualizzazione avanzate

Selezionare Opzioni avanzate nella finestra di dialogo Scegli un angolo di visualizzazione.

Opzioni

● Selezionare Preimposta solo per chiudere la sezione Opzioni avanzate della finestra di dialogo Scegli un
angolo di visualizzazione.
● Utilizzare i pulsanti freccia sotto l'immagine dell'angolo di visualizzazione per scorrere e selezionare i diversi
angoli sul lato sinistro della finestra di dialogo. I pulsanti doppia freccia sinistra [<<] e doppia freccia destra
[>>] consentono di scorrere l'elenco degli angoli di visualizzazione in modo continuo. I pulsanti freccia sinistra
singola [<] e freccia destra singola[>] consentono di passare all'angolo di visualizzazione successivo
nell'elenco. Il pulsante quadrato al centro dei pulsanti freccia consente di arrestare lo scorrimento continuo.
● Utilizzare le schede Ruota, Panoramica, Lati e Sposta per modificare un angolo di visualizzazione. Vedere
Rotazione di un grafico 3D [pagina 948], Panoramica di un grafico 3D [pagina 949], Lati del grafico 3D
[pagina 950] e Spostamento di un grafico 3D [pagina 951].
● Dopo avere modificato o creato un nuovo angolo di visualizzazione, selezionare il pulsante Salva per salvare
un angolo di visualizzazione nuovo o esistente utilizzando il nome del file dell'angolo di visualizzazione
esistente.
● Selezionare il pulsante Salva con nome per salvare il nuovo angolo di visualizzazione con un nuovo nome.
● Selezionare il pulsante Rinomina per modificare il nome del file dell'angolo di visualizzazione.
● Selezionare il pulsante Elimina per eliminare un file dell'angolo di visualizzazione esistente.
● Selezionare il pulsante Duplica per creare un duplicato di un file dell'angolo di visualizzazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 947
● Scegliere OK per applicare l'angolo di visualizzazione al grafico e chiudere questa finestra di dialogo. Quando
si sceglie questo pulsante, viene richiesto di salvare eventuali modifiche apportate a un angolo di
visualizzazione. È possibile salvare le modifiche a un angolo di visualizzazione esistente oppure crearne uno
nuovo che verrà visualizzato nella finestra di dialogo Scegli un angolo di visualizzazione alla successiva
selezione dell'opzione Impostazioni 3D.
● Selezionare il pulsante Annulla per uscire dalla finestra di dialogo senza modificare il grafico.

1.7.3.1.69.3 Rotazione di un grafico 3D


È possibile utilizzare la scheda Ruota nella sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione per ruotare un grafico 3D su qualsiasi angolo.

1.7.3.1.69.3.1 Per ruotare un grafico 3D

Procedura

1. Selezionare il pulsante Opzioni avanzate nella finestra di dialogo Scegli un angolo di visualizzazione.
2. Selezionare la scheda Ruota nella sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione.

Quando viene selezionata la scheda Ruota nella sezione Opzioni avanzate della finestra di dialogo Scegli un
angolo di visualizzazione, è possibile ruotare il grafico 3D in diversi modi:

○ Fare clic sulle schede delle frecce X, Y e Z.


X consente di ruotare il grafico da sinistra a destra o da destra a sinistra, Y consente di ruotarlo dall'alto in
basso o dal basso in alto e Z consente di ruotarlo da lato a lato. Quando si ruota un grafico con X, Y o Z, si
noti come le frecce di rotazione si accendano.

Le frecce di rotazione corrispondono alla rotazione X, Y e Z. Le frecce sinistra e destra corrispondono alla
direzione X. Le frecce su e giù corrispondono alla direzione Y. Le frecce intermedie corrispondono alla
direzione Z. È possibile utilizzare le frecce di rotazione per ruotare un grafico. Fare semplicemente clic
sulle frecce. Le frecce consentono di ruotare il grafico come i pulsanti freccia sinistra-destra X, Y, Z.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
948 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
○ Utilizzare la finestra dell'angolo di visualizzazione 3D, Opzioni avanzate.

Fare clic e trascinare il mouse all'interno della finestra per ruotare il grafico 3D.

1.7.3.1.69.4 Panoramica di un grafico 3D

È possibile utilizzare la scheda Panoramica all'interno della sezione Opzioni avanzate della finestra di dialogo
Scegli un angolo di visualizzazione per eseguire una panoramica e lo zoom di un grafico 3D all'interno della cornice
di un grafico. È possibile spostare il grafico da sinistra a destra o dall'alto in basso all'interno della cornice. Per
spostare il grafico lungo gli assi X, Y e Z, vedere Spostamento di un grafico 3D [pagina 951].

1.7.3.1.69.4.1 Per eseguire una panoramica di un grafico 3D

Procedura

1. Selezionare il pulsante Opzioni avanzate nella finestra di dialogo Scegli un angolo di visualizzazione.
2. Selezionare la scheda Panoramica nella sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione.

Quando viene selezionata la scheda Panoramica nella sezione Opzioni avanzate della finestra di dialogo Scegli
un angolo di visualizzazione, è possibile eseguire la panoramica e lo zoom del grafico 3D in diversi modi:

○ Fare clic sulle schede Zoom e X, Y.


X consente di eseguire una panoramica da sinistra a destra o da destra a sinistra, Y dall'alto in basso o dal
basso in alto e Zoom consente di ingrandire o ridurre il grafico.
○ Utilizzare queste frecce per eseguire la panoramica del grafico 3D nella direzione X e Y.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 949
○ Utilizzare la finestra dell'angolo di visualizzazione 3D, Opzioni avanzate.

Fare clic e trascinare il mouse all'interno della finestra per eseguire la panoramica del grafico 3D.

1.7.3.1.69.5 Lati del grafico 3D


Utilizzare la scheda Lati all'interno della sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione per aumentare o ridurre lo spessore dei lati di un grafico 3D. È possibile utilizzare la scheda Lati
nella sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di visualizzazione per modificare i lati di
un grafico 3D.

1.7.3.1.69.5.1 Per modificare lo spessore dei lati di un grafico


3D

Procedura

1. Selezionare il pulsante Opzioni avanzate nella finestra di dialogo Scegli un angolo di visualizzazione.
2. Selezionare la scheda Lati nella sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione.

Quando viene selezionata la scheda Lati nella sezione Opzioni avanzate della finestra di dialogo Scegli un
angolo di visualizzazione, è possibile modificare le dimensioni dei dati del grafico 3D in diversi modi:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
950 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
○ Utilizzare le aree X, Y e Z di Lunghezza e Spessore per aumentare e diminuire la lunghezza e lo spessore
dei lati.
X controlla lunghezza e spessore lungo l'asse X, Y controlla lunghezza e spessore lungo l'asse Y, Z
controlla lunghezza e spessore lungo l'asse Z.
Se si seleziona Collega le opzioni Y e Z nell'area Lunghezza o Spessore vengono disabilitate. Quando si
seleziona Collega, le modifiche apportate a X vengono duplicate per Y e Z.
○ Utilizzare le frecce nel grafico della scheda Lati per modificare la lunghezza e lo spessore dei lati del
grafico 3D.
Le frecce sul grafico corrispondono alle frecce dello spessore e della lunghezza X, Y e Z.

Le frecce a sinistra e verso l'alto corrispondono allo spessore del lato X. Le frecce al centro e verso il
basso corrispondono allo spessore del lato Y. Le frecce a destra e verso l'alto corrispondono allo spessore
del lato Z. Le frecce a destra e verso il basso corrispondo alla lunghezza del lato X. Le frecce al centro e
verso l'alto corrispondono alla lunghezza del lato Y. Le frecce a sinistra e verso il basso corrispondono alla
lunghezza del lato Z.
○ Utilizzare la finestra dell'angolo di visualizzazione 3D, Opzioni avanzate.

Fare clic e trascinare il mouse all'interno della finestra per modificare la lunghezza e lo spessore dei lati
del grafico 3D.

1.7.3.1.69.6 Spostamento di un grafico 3D

Utilizzare la scheda Sposta all'interno della sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione per spostare e impostare la prospettiva del grafico 3D all'interno della cornice. È possibile
spostare il grafico lungo gli assi X, Y e Z all'interno della cornice del grafico. Per spostare il grafico da sinistra a
destra o dall'alto in basso, vedere Panoramica di un grafico 3D [pagina 949].

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 951
1.7.3.1.69.6.1 Per spostare un grafico 3D

Procedura

1. Selezionare il pulsante Opzioni avanzate nella finestra di dialogo Scegli un angolo di visualizzazione.
2. Selezionare la scheda Sposta nella sezione Opzioni avanzate della finestra di dialogo Scegli un angolo di
visualizzazione.

Quando viene selezionata la scheda Sposta nella sezione Opzioni avanzate della finestra di dialogo Scegli un
angolo di visualizzazione, è possibile spostare il grafico 3D in diversi modi:

○ Utilizzare le frecce Prospettiva e X, Y, Z per spostare e modificare la prospettiva del grafico.


X consente di spostare il grafico 3D da destra in basso a sinistra in alto, Y consente di spostare il grafico
verso l'alto e verso il basso, Z consente di spostare il grafico da destra in alto a sinistra in basso.
○ Utilizzare queste frecce per spostare il grafico nelle direzioni X, Y e Z.

Le frecce sinistra e destra corrispondono a X. Le frecce verso il basso e verso l'alto corrispondono a Y. Le
frecce intermedie più corte corrispondono a Z.
○ Utilizzare la finestra dell'angolo di visualizzazione 3D, Opzioni avanzate.

Fare clic e trascinare il mouse all'interno della finestra per spostare il grafico 3D all'interno della cornice.

1.7.3.2 Procedure guidate ed esperti di SAP Crystal Reports


SAP Crystal Reports include una serie di Esperti e procedure guidate che consentono di creare numerosi tipi di
report, preparare grafici, impostare il formato generale dei report, collegare database correlati, selezionare record

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
952 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
e gruppi da includere nel report e raggruppare i file che è necessario includere durante la distribuzione del report
con istruzioni dettagliate.

Seguendo le istruzioni contenute nelle finestre di dialogo o nelle schede visualizzate sarà possibile completare
procedure complesse con facilità.

1.7.3.2.1 creazioni guidate di report

La Creazione guidata report guida l'utente nella creazione di un nuovo report. Questa finestra di dialogo viene
visualizzata quando si crea un nuovo report Crystal e si seleziona l'opzione "Uso della procedura guidata report"
nella finestra di dialogo Galleria Crystal Reports.

SAP Crystal Reports include le seguenti procedure guidate per la creazione di report:

● Standard
● Campi incrociati
● Etichetta postale

Ciascuna creazione guidata di report è costituita da numerose schermate che forniscono informazioni dettagliate
per la creazione del report specificato. La Creazione guidata report a campi incrociati e la Creazione guidata
report etichette indirizzo sono dotate di schermate specifiche per un determinato tipo di report.

Informazioni correlate

Creazione guidata report etichette indirizzo [pagina 651]


Creazione guidata report a campi incrociati [pagina 650]
Procedura guidata per la creazione di report standard [pagina 650]
Progettazione di nuovi report [pagina 653]
Descrive le modalità di accesso a SAP Crystal Reports Designer incorporato e illustra in modo dettagliato i
passaggi necessari per la progettazione di un nuovo report.

1.7.3.2.1.1 Schermata Dati (Creazione guidata report)

La schermata Dati viene visualizzata nella Creazione guidata report se si seleziona una delle procedure guidate
disponibili nella finestra di dialogo Galleria Crystal Report quando si crea un nuovo report.

La schermata Dati consente di selezionare l’origine dati e le tabelle per il nuovo report.

Origini dati La struttura delle origini dati disponibili è ubicata nel percorso in cui si seleziona l’origine
disponibili dati. Per informazioni sulle modalità di utilizzo di questa casella di riepilogo, vedere Scheda
Dati (Esperto database) [pagina 977].

Tabelle selezionate Una volta selezionata l'origine dati desiderata, aggiungere le tabelle da utilizzare nel report
mediante il pulsante freccia >.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 953
Informazioni correlate

Accesso e aggiunta di dati [pagina 657]


Schermata Collegamento (Creazione guidata report) [pagina 954]

1.7.3.2.1.2 Schermata Collegamento (Creazione guidata


report)

La schermata Collegamento consente di creare collegamenti tra le tabelle del report La schermata Collegamento
viene visualizzata nella Creazione guidata report quando si sono selezionate due o più tabelle nella Schermata Dati
(Creazione guidata report) [pagina 953].

La scheda Collegamenti ha le stesse funzioni della Scheda Collegamenti (Esperto database) [pagina 980] nella
finestra di dialogo Esperto database.

1.7.3.2.1.3 Schermata Campi (Creazione guidata report)

Utilizzare la schermata Campi per selezionare i campi che si desidera includere nel report.

Campi Disponibili In questa casella di riepilogo vengono visualizzati tutti campi che è possibile utilizzare nel
report. La casella si basa sulle tabelle selezionate nella Schermata Dati (Creazione
guidata report) [pagina 953].

Sfoglia dati Fare clic su questo pulsante per sfogliare i dati del campo selezionato nella casella di
riepilogo Campi Disponibili.

Trova Campo Fare clic su questo pulsante per immettere il nome di un campo che si desidera
individuare nella casella di riepilogo Campi disponibili.

Pulsanti freccia di Utilizzare il pulsante freccia > accanto alla casella di riepilogo Campi da visualizzare per
aggiunta o rimozione aggiungere campi dalla casella di riepilogo Campi disponibili. Utilizzare i pulsanti freccia
< per rimuovere campi precedentemente aggiunti. Le doppie frecce aggiungono o
rimuovono tutti i campi.

Campi da visualizzare In questa casella di riepilogo vengono visualizzati tutti campi di report correntemente
attivi nel report.

Pulsanti freccia Su o Utilizzare i pulsanti freccia Su e Giù adiacenti alla casella di riepilogo Campi da
Giù visualizzare per modificare l’ordine dei campi aggiunti dalla casella di riepilogo Campi
disponibili.

Informazioni correlate

Finestra di dialogo Trova nome campo [pagina 896]


Oggetti campo e oggetti testo [pagina 665]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
954 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.2.1.4 Schermata Raggruppamento (Creazione guidata
report)

Utilizzare la schermata Gruppo per specificare il modo in cui i campi verranno raggruppati nel report. La creazione
di un ordinamento di gruppo è un’operazione facoltativa nella procedura guidata.

Campi Disponibili In questa casella di riepilogo vengono visualizzati tutti campi che è possibile utilizzare
nel report. La casella è basata sui campi scelti nella schermata Campi (Creazione
guidata report) e sulle tabelle selezionate nella schermata Dati (Creazione guidata
report).

Sfoglia dati Fare clic su questo pulsante per sfogliare i dati del campo selezionato nella casella di
riepilogo Campi Disponibili.

Trova Campo Fare clic su questo pulsante per immettere il nome di un campo che si desidera
individuare nella casella di riepilogo Campi disponibili.

Pulsanti freccia di Utilizzare il pulsante freccia > adiacente alla casella di riepilogo Tipo di raggruppamento
aggiunta o rimozione per aggiungere campi dalla casella di riepilogo Campi disponibili. Utilizzare i pulsanti
freccia < per rimuovere campi precedentemente aggiunti. Le doppie frecce aggiungono
o rimuovono tutti i campi.

Tipo di In questa casella di riepilogo vengono visualizzati tutti i campi selezionati per
raggruppamento l’ordinamento. I campi aggiunti dall’utente vengono inseriti in una gerarchia, che
stabilisce l’ordine in base al quale i gruppi verranno mostrati all’interno del report. È
possibile modificare l’ordine gerarchico mediante i pulsanti freccia Su e Giù.

È anche possibile modificare l’ordinamento specificato per ciascun campo che si


aggiunge alla casella di riepilogo Tipo di raggruppamento. A tale scopo, selezionare il
tipo di ordinamento desiderato dalla casella di riepilogo adiacente:

● per ordinare con criterio crescente (da A a Z, da 1 a 9) i valori relativi al campo


selezionato nella casella di riepilogo Tipo di raggruppamento, fare clic su In ordine
crescente
● per ordinare con criterio decrescente (da Z a A, da 9 a 1) i valori relativi al campo
selezionato nella casella di riepilogo Tipo di raggruppamento, fare clic su In ordine
decrescente.

Pulsanti freccia Su o Utilizzare i pulsanti freccia Su e Giù adiacenti alla casella di riepilogo Tipo di
Giù raggruppamento per modificare l’ordine dei campi aggiunti dalla casella di riepilogo
Campi disponibili.

1.7.3.2.1.5 Schermata Riepiloghi (Creazione guidata report)

Utilizzare la schermata Riepiloghi per selezionare i campi di cui si desidera calcolare il totale parziale, il conteggio
e così via. Tale schermata viene visualizzata solo se si è specificato un gruppo nella Schermata Raggruppamento
(Creazione guidata report) [pagina 955]. La creazione di un campo di riepilogo è un’operazione facoltativa nella
procedura guidata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 955
Campi Disponibili In questa casella di riepilogo vengono visualizzati tutti i campi di report disponibili per il
calcolo del totale nel report.

Sfoglia dati Fare clic su questo pulsante per sfogliare i dati del campo selezionato nella casella di
riepilogo Campi Disponibili.

Trova Campo Fare clic su questo pulsante per immettere il nome di un campo che si desidera individuare
nella casella di riepilogo Campi disponibili.

Campi di riepilogo In questa casella di riepilogo vengono visualizzati i campi del totale utilizzati
correntemente nel report.

Pulsanti freccia di Utilizzare il pulsante freccia > accanto alla casella Campi di riepilogo per aggiungere campi
aggiunta o dalla casella di riepilogo Campi disponibili. Utilizzare i pulsanti freccia < per rimuovere
rimozione campi precedentemente aggiunti. Le doppie frecce aggiungono o rimuovono tutti i campi.

Opzioni di riepilogo Fare clic su una opzione di riepilogo per il campo selezionato nella casella Campi di
riepilogo. È possibile scegliere opzioni per il calcolo del totale di un campo, il conteggio
delle sue voci e così via.

Informazioni correlate

Nascondere i dettagli nei report di riepilogo [pagina 701]


Progettazione di scelte per migliorare le prestazioni [pagina 770]

1.7.3.2.1.6 Schermata Ordinamento di gruppo (Creazione


guidata report)

Utilizzare la schermata Ordinamento di gruppo per ordinare i gruppi creati nella schermata Raggruppamento. È
possibile eseguire l’ordinamento di tutti i gruppi oppure scegliere i primi 5 o gli ultimi 5 per tale operazione.
Quando si effettua un ordinamento in base ai primi o agli ultimi 5 gruppi, è possibile selezionare il campo di
riepilogo sul quale si desidera basare tale ordinamento.

La schermata in esame viene visualizzata solo se si è specificato un gruppo all'interno della Schermata
Raggruppamento (Creazione guidata report) [pagina 955] e un riepilogo nella Schermata Riepiloghi (Creazione
guidata report) [pagina 955]. La creazione di un ordinamento di gruppo è un’operazione facoltativa nella
procedura guidata.

Gruppo che verrà Scegliere il gruppo di cui si desidera eseguire l'ordinamento dall'elenco di gruppi
ordinato creato nella schermata Raggruppamento.

Opzioni per Selezionare una delle opzioni descritte di seguito.


l’ordinamento di gruppo
Se si sceglie Primi 5 o Ultimi 5, il report visualizzerà soltanto i dati relativi a tali
gruppi; tutti gli altri verranno esclusi.

Confronto dei valori di Se si è specificata come opzione per l’ordinamento di gruppo Primi 5 o Ultimi 5, è
riepilogo necessario selezionare un campo di riepilogo su cui basare l’ordinamento. Le scelte

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
956 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
visualizzate nell'apposito elenco corrispondono ai riepiloghi creati nella schermata
Riepiloghi.

Informazioni correlate

Raggruppamento, ordinamento e calcolo dei totali dei dati [pagina 695]

1.7.3.2.1.7 Schermata Grafico (Creazione guidata report)

Consente di inserire un grafico nel report e viene visualizzata con leggere differenze in tutte le creazioni guidate di
report fuorché in quella per le etichette indirizzo.

Nella Procedura guidata per la creazione di report standard, la schermata Grafico viene mostrata solo se sono
stati precedentemente specificati un gruppo nella Schermata Raggruppamento (Creazione guidata report) [pagina
955] e un riepilogo nella Schermata Riepiloghi (Creazione guidata report) [pagina 955]. La creazione di un grafico
è un’operazione facoltativa in tutte le procedure guidate.

Tipi di grafici Fare clic sul tipo di grafico che si desidera aggiungere al report. È possibile scegliere tra le
opzioni elencate di seguito:

● Grafico a barre
● Grafico a linee
● Grafico a torta.

Titolo del grafico Inserire un titolo per il grafico.

Su modifica di Selezionare il gruppo che si desidera utilizzare come condizione per tracciare i valori nel
grafico. I punti vengono tracciati ogni volta che cambia il valore nel campo. È possibile
scegliere tra i gruppi creati nella Schermata Raggruppamento (Creazione guidata report)
[pagina 955].

Suddiviso da Utilizzare questa casella di riepilogo per selezionare la riga o la colonna secondaria su cui
basare il grafico. Se si fa clic su questa casella vengono visualizzati i campi di riga/colonna
contenuti nel report tra i quali è possibile effettuare una scelta.

Mostra riepilogo Utilizzare questa casella di riepilogo per selezionare il campo di riepilogo i cui valori si desidera
visualizzare nel grafico. È possibile scegliere tra i gruppi creati nella Schermata Riepiloghi
(Creazione guidata report) [pagina 955].

Informazioni correlate

Tipi di grafici [pagina 744]


Layout grafico [pagina 743]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 957
1.7.3.2.1.8 Schermata Selezione record (Creazione guidata
report)

La schermata Selezione record permette di scegliere i campi da utilizzare per selezionare o filtrare i record nel
report. In tal modo, è possibile restringere l’ambito del report e ottimizzare la velocità di elaborazione. La
creazione di una selezione di record è un’operazione facoltativa nella procedura guidata.

Campi In questa casella di riepilogo vengono visualizzati i campi di report correntemente disponibili
Disponibili per la selezione nel report.

Filtra campi In questa casella di riepilogo vengono visualizzati i campi correntemente selezionati come
filtro per il report.

Pulsanti freccia Utilizzare il pulsante freccia > accanto alla casella Filtra campi per aggiungere campi dalla
di aggiunta o casella di riepilogo Campi disponibili. Utilizzare i pulsanti freccia < per rimuovere campi
rimozione precedentemente aggiunti.

Opzioni di Un elenco delle opzioni di selezione disponibili viene visualizzato al di sotto della casella di
selezione riepilogo Filtra campi ogni volta che viene aggiunto un campo. Le opzioni contenute al suo
interno sono dinamiche e variano in base al campo scelto.

● Utilizzare le caselle di riepilogo per selezionare la condizione che completa nel modo
migliore la frase seguente:
“Selezionare tutti i record in cui il valore del campo selezionato è”
● Le opzioni di selezione consentono di creare una selezione di record del tipo:
"Selezionare tutti i record in cui il valore del campo Vendite è compreso tra 10.000 e
20.000".

Informazioni correlate

Filtro di dati [pagina 678]

1.7.3.2.1.9 Stile report (Creazione guidata report)

La schermata Stile report consente di selezionare modelli di formattazione predefiniti da utilizzare nel report.
L’aggiunta di un stile è un’operazione facoltativa nella procedura guidata.

Stili disponibili In quest’area vengono visualizzati i stili che è possibile utilizzare nel report. Scegliere lo stile
prescelto nella casella di riepilogo.

Anteprima In questa casella viene mostrato un esempio dello stile selezionato nell'area Stili disponibili.

Informazioni correlate

Formattazione assoluta [pagina 726]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
958 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Formattazione condizionale [pagina 728]
Formattazione delle sezioni del report [pagina 646]

1.7.3.2.1.10 Schermata A campi incrociati (Creazione guidata


report a campi incrociati)

Utilizzare questa schermata per creare e formattare un oggetto a campi incrociati per il report. La schermata
viene visualizzata solo nella Creazione guidata report a campi incrociati.

Campi In questa casella di riepilogo sono visualizzati tutte le tabelle e i campi che sono stati selezionati
Disponibili per essere utilizzati nel report.

Selezionare il campo che si desidera utilizzare e trascinarlo nella casella di riepilogo appropriata
oppure fare clic sul pulsante freccia appropriato. Ripetere il procedimento per aggiungere campi
supplementari.

Sfoglia dati Fare clic sul pulsante Sfoglia dati per visualizzare i valori relativi a un campo selezionato nella
casella di riepilogo Campi disponibili.

Trova Campo Fare clic su questo pulsante per immettere il nome di un campo che si desidera individuare nella
casella di riepilogo Campi disponibili.

Pulsanti Utilizzare i pulsanti freccia > adiacenti a ciascuna casella di riepilogo per aggiungere campi
freccia di dall'elenco Campi disponibili. Utilizzare i pulsanti freccia < per rimuovere campi
aggiunta o precedentemente aggiunti.
rimozione

Pulsanti Utilizzare i pulsanti freccia Su e Giù adiacenti a ciascuna casella di riepilogo per modificare
freccia Su o l’ordine dei campi aggiunti dalla casella di riepilogo Campi disponibili.
Giù

Colonne In questa casella di riepilogo sono visualizzati i campi selezionati come intestazioni di colonna
per i campi incrociati. Se si vi sono intestazioni di colonna multiple verranno visualizzate nel
report nell’ordine in cui compaiono in questa casella di riepilogo.

Per aggiungere un'intestazione di colonna a questa casella di riepilogo, scegliere un campo dalla
casella di riepilogo Campi disponibili, quindi trascinarlo sulla casella, oppure fare clic sul pulsante
freccia > accanto alla casella di riepilogo Colonne.

Se si seleziona un campo di tipo Data o Booleano, nella casella di riepilogo adiacente si attivano
le opzioni relative al tipo di campo in questione. Ad esempio, se si sceglie un campo data, è
possibile selezionare opzioni come "giornaliero", "settimanale", "bisettimanale" e così via.

Righe In questa casella di riepilogo sono visualizzati i campi selezionati come intestazioni di riga per i
campi incrociati. Se si vi sono intestazioni di riga multiple verranno visualizzate nel report
nell’ordine in cui compaiono in questa casella di riepilogo.

Per aggiungere un'intestazione di riga a questa casella di riepilogo, scegliere un campo dalla
casella di riepilogo Campi disponibili, quindi trascinarlo sulla casella, oppure fare clic sul pulsante
freccia > accanto alla casella di riepilogo Righe.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 959
Se si seleziona un campo di tipo Data o Booleano, nella casella di riepilogo adiacente si attivano
le opzioni relative al tipo di campo in questione. Ad esempio, se si seleziona un campo booleano,
è possibile scegliere opzioni come "ad ogni modifica", "se diventa sì", "se diventa no" e così via.

Campi di In questa casella di riepilogo sono visualizzati i campi selezionati come intestazioni di campi di
riepilogo riepilogo per i campi incrociati. Se si vi sono intestazioni di campi di riepilogo verranno
visualizzate nel report nell’ordine in cui compaiono in questa casella di riepilogo.

Per aggiungere un'intestazione di campo di riepilogo a questa casella di riepilogo, scegliere un


campo dalla casella di riepilogo Campi disponibili, quindi trascinarlo sulla casella, oppure fare clic
sul pulsante freccia > accanto alla casella Campi di riepilogo.

Se si aggiunge il campo di riepilogo selezionato, la casella di riepilogo adiacente si rende


disponibile con le opzioni di riepilogo. Scegliere il tipo di riepilogo che si desidera applicare al
campo.

Informazioni correlate

Oggetti a campi incrociati [pagina 755]


Illustra come aggiungere oggetti griglia a campi incrociati per organizzare i dati nel report.

1.7.3.2.1.11 Schermata Stile griglia (Creazione guidata report


a campi incrociati)

Utilizzare la schermata Stile griglia per scegliere uno stile predefinito per il campo incrociato.

Stili disponibili In questa casella vengono visualizzati gli stili di formattazione disponibili per il campo
incrociato. Scegliere lo stile prescelto nella casella di riepilogo.

Esempio di In questa casella viene mostrato un esempio dello stile selezionato nella casella di
anteprima riepilogo Stili disponibili.

Informazioni correlate

Formattazione assoluta [pagina 726]


Formattazione condizionale [pagina 728]
Formattazione delle sezioni del report [pagina 646]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
960 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.2.1.12 Schermata Etichetta (Creazione guidata report
etichette indirizzo)

Utilizzare la schermata Etichetta per impostare le opzioni relative alle etichette. Tale schermata consente di
stampare dati su qualsiasi etichetta disponibile in commercio per le stampanti a righe (a matrice di punti) o per le
stampanti a pagine (laser, a getto di inchiostro). Utilizzare le impostazioni e i comandi di formattazione per
perfezionare la stampa in modo che le etichette vengano impostate nel modo desiderato.

Tipo etichetta È possibile specificare il tipo di etichetta desiderato selezionando dalla casella di riepilogo
l’opzione Etichetta definita dall’utente. Tuttavia, per agevolare il lavoro dell’utente, all’interno del
programma sono disponibili modelli preimpostati per numerosi altri tipi di etichette, elencati
nell’apposita casella di riepilogo Tipo etichetta.

Quando si sceglie un modello di etichetta predefinito, vengono automaticamente impostate le


specifiche per la relativa etichetta.

Dimensione Queste caselle di modifica consentono di specificare le dimensioni (altezza e larghezza) di


etichetta un'etichetta. In genere è possibile trovare tali informazioni nella finestra o cartella in cui si trova
l'etichetta. È sufficiente immettere i valori di altezza e larghezza nelle rispettive caselle di
modifica.

L’unità di misura utilizzata nella finestra di dialogo (pollici o centimetri) è basata sulle
impostazioni configurate nelle Opzioni internazionali del Pannello di controllo di Windows.

Distanza tra le Queste caselle di modifica consentono di specificare l'area vuota (distanza, margine ecc.) tra le
etichette etichette. Misurare semplicemente le distanze, quindi immettere i valori orizzontale e verticale
nelle rispettive caselle di modifica.

Horizontal Le distanze tra le etichette disposte orizzontalmente nella pagina. Le etichette


verticali (una etichetta) non hanno distanze in orizzontale.

Vertical Le distanze tra le etichette disposte verticalmente nella pagina.

Nota
L’unità di misura utilizzata nella finestra di dialogo (pollici o centimetri) è basata
sulle impostazioni configurate nelle Opzioni internazionali del Pannello di
controllo di Windows.

Margini Queste caselle di modifica consentono di impostare i margini superiore, inferiore, sinistro e
pagina destro della pagina. Misurare semplicemente i margini e immettere i valori nelle rispettive
caselle di modifica.

Nota
● Tutti i margini vengono calcolati rispetto al bordo della carta. Ad esempio, l'impostazione
0,5 centimetri determina l'impostazione del margine a mezzo pollice.
● Non è possibile utilizzare le impostazioni per i margini di pagina per impostare le
dimensioni del foglio; a tale scopo, utilizzare la casella di riepilogo Dimensioni foglio nella
finestra di dialogo Imposta stampante.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 961
● L’unità di misura utilizzata nella finestra di dialogo (pollici o centimetri) è basata sulle
impostazioni configurate nelle Opzioni internazionali del Pannello di controllo di Windows.

Direzione di La sezione Direzione di stampa consente di specificare il percorso di stampa utilizzato per la
stampa stampa dei dati sulle etichette.

Per righe I dati vengono stampati da sinistra a destra lungo la prima riga di etichette, quindi
lungo la seconda riga e così via.

Per colonne I dati vengono stampati lungo la prima colonna di etichette, quindi lungo la
seconda colonna e così via.

Numero di In questa casella di informazioni viene visualizzato il numero massimo di etichette che è
etichette possibile stampare orizzontalmente e verticalmente nella pagina in base alle impostazioni
specificate nelle caselle di modifica per i margini di pagina, le dimensioni delle etichette, la
distanza tra le etichette e le dimensioni dei fogli, queste ultime impostate nel Pannello di
controllo di Windows.

Nota
● Viene visualizzato solo il numero di etichette complete che è possibile stampare. Ad
esempio, se lo spazio disponibile è sufficiente per stampare 2,75 etichette in orizzontale
nella pagina, viene visualizzato il valore 2 come impostazione di Orizzontalmente e
vengono stampate solo due etichette nella pagina.
● Se si desidera stampare un numero di etichette in orizzontale nella pagina inferiore
rispetto al numero calcolato (un numero inferiore di colonne), aumentare la dimensione
del margine destro, sinistro o la distanza orizzontale fino a ottenere il numero di etichette
desiderato.

Informazioni correlate

creazioni guidate di report [pagina 953]

1.7.3.2.2 Finestra di dialogo Esperto formato colore grafico

L'Esperto formato colore grafico viene visualizzato quando si fa clic sul pulsante Formato nell'area “Colore
grafico” della Scheda Opzioni (Esperto grafico) [pagina 970]. L'esperto consente di applicare in maniera
condizionale colori basati sui campi di valore di un grafico. Per applicare un colore all’elemento selezionato, è
necessario specificare una condizione.

La finestra di dialogo si compone di due aree: nell’Elenco elementi sono visualizzate le condizioni della formula,
mentre nell’Editor elementi è possibile impostare tali condizioni.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
962 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Nota
● Se il grafico è a linee, è necessario che disponga di indicatori di dati per poter mostrare la formattazione
condizionale.
● I grafici ad area devono avere due valori "Su modifica di" perché la formattazione condizionale venga
visualizzata.
● Una volta applicata la formattazione condizionale, occorre inoltre selezionare l'opzione "Colore per gruppi"
nella scheda Vista della finestra di dialogo Opzioni grafico per poterla visualizzare. Per impostare la
suddetta opzione, fare clic con il pulsante destro del mouse sul grafico, scegliere Opzioni grafico dal menu
di scelta rapida e selezionare Generale dal relativo sottomenu. La nota si applica ai grafici a linee, a
intervallo barre 3 D e a superficie 3 D con un campo "Su modifica di" nonché ai grafici a barre, con assi
numerici, a superficie 3 D, radar, azionari e ai tipometri con due riepiloghi.

Elenco elementi L'Elenco elementi riporta le condizioni della formula colore grafico specificate per il campo
selezionato.

Priorità I pulsanti Priorità nella casella di riepilogo Elenco elementi dell'Esperto formato colore grafico
consentono di impostare le priorità delle formule.

Nuovo Fare clic sul pulsante Nuovo per creare una nuova formula con le impostazioni predefinite.

Rimuovi Utilizzare il pulsante Rimuovi per eliminare le formule di formato colore grafico dal campo
selezionato.

Valore di Utilizzare questa casella di riepilogo per selezionare il campo su cui si basa la condizione,
ovvero scegliere un campo appropriato da sostituire a X nella seguente frase: "Se il valore del
campo X soddisfa la condizione A, applicare il colore selezionato".

Casella di Da questa seconda casella di riepilogo, selezionare il confronto da utilizzare per la formula
riepilogo condizionale. La frase comparativa funge da operatore in tale formula.
Confronto

Valori campi Utilizzare questa casella di riepilogo per immettere il valore cui si desidera applicare la
formattazione condizionale. Ad esempio, per applicare il colore rosso quando il valore
corrisponde a 25.000 dollari, digitare 25.000 nella casella.

Se il campo selezionato nella casella di riepilogo "Valore di" è un campo non numerico, è
possibile scegliere da un elenco di valori disponibili.

Colore formato Utilizzare questa casella di riepilogo per selezionare un colore per il valore di campo al quale si
desidera applicare la formattazione di colore condizionale.

Informazioni correlate

Inserimento di grafici [pagina 742]


Elenca i grafici disponibili e illustra come inserirli nei report.

Layout grafico [pagina 743]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 963
1.7.3.2.3 Esperto grafico

Utilizzare l'Assistente Grafici per preparare i grafici da inserire nei report. Viene visualizzato l'Assistente Grafici
con la scheda Tipo attiva.

1.7.3.2.3.1 Scheda Tipo (Esperto grafico)

La scheda Tipo consente di selezionare tra quindici diversi tipi di grafici da inserire in un report. Fare clic su sul
pulsante relativo al tipo di grafico desiderato e il programma avvierà la generazione di un grafico del tipo
selezionato, che sarà quindi possibile modificare ulteriormente.

Imposta Se si seleziona questa casella di controllo, l'Esperto grafico utilizza le opzioni


automaticamente le predefinite delle schede Assi e Opzioni. Se si desidera personalizzare alcune proprietà
opzioni del grafico del grafico, quali proporzioni degli assi, legenda e coordinate, assicurarsi che questa
casella di controllo non sia selezionata.

Se si sceglie "Imposta automaticamente le opzioni del grafico", le opzioni riportate di


seguito verranno impostate sui valori predefiniti:

● Valori dati
● Numero di divisioni
● Coordinate
● Personalizza impostazioni
● Legenda

Tipo di grafico Utilizzare la casella di riepilogo Tipo di grafico per selezionare il tipo di Grafico che si
desidera utilizzare. Dopo aver selezionato un tipo di grafico, è possibile utilizzare i
pulsanti riportati a destra della casella di riepilogo per selezionare il formato di grafico
desiderato.

Verticale/Orizzontale Utilizzare i pulsanti Verticale e Orizzontale per specificare se il grafico dovrà presentare
valori crescenti in una direzione orizzontale o verticale.

Tali opzioni sono disponibili solo per i tipi di grafico a Barre, Linea e Area.

Informazioni correlate

Tipi di grafici [pagina 744]


Layout grafico [pagina 743]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
964 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.2.3.2 Scheda Dati (Esperto grafico)

Posizionamento

La sezione Posizionamento consente di determinare la posizione del grafico all'interno del report, così come la
frequenza di visualizzazione.

Posiziona grafico Utilizzare questa casella di riepilogo per selezionare la sezione di report in cui far apparire il
grafico. Un grafico può essere riportato una sola volta all'interno del report o una sola volta
all'interno del gruppo (la sezione del gruppo che contiene i campi di riepilogo su cui è basato
il grafico).

Nota
La scelta del punto di inserimento del grafico influisce sulla suddivisione dei dati nel
grafico.

Intestazione/Piè Utilizzare i pulsanti di opzione Intestazione e Piè di pagina per visualizzare il grafico nella
di pagina sezione Intestazione gruppo o Piè di pagina gruppo del report. Se il grafico viene visualizzato
una volta per report, l'opzione Intestazione/Piè di pagina lo inserisce nella sezione
Intestazione report o nella sezione Piè di pagina report del report.

Layout

La sezione Layout consente di determinare il layout corrente del grafico, in base ai dati da inserirvi. Sono
disponibili quattro opzioni:

● Visualizzazione delle opzioni Avanzate


● Visualizzazione delle opzioni Gruppo
● Visualizzazione delle opzioni A Campi Incrociati
● Visualizzazione delle opzioni OLAP

Visualizzazione delle opzioni Avanzate

Campi In questa casella di riepilogo vengono visualizzati tutti campi che è possibile utilizzare nel
disponibili grafico.

Fare clic sul pulsante Aggiungi (>) per aggiungere i campi selezionati dalla casella di riepilogo
Campi disponibili alla casella Su modifica di. Fare clic sul pulsante Rimuovi (<) per rimuovere i
campi selezionati dalla casella di riepilogo Su modifica di.

Sfoglia Fare clic su questo pulsante per sfogliare i valori del campo selezionato nella casella di riepilogo
Campi disponibili.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 965
Su modifica di Utilizzare le opzioni della casella di riepilogo "Su modifica di" per definire i valori che si desidera
vengano mostrati nel grafico:

● Scegliere "Su modifica di" per visualizzare i valori di riepilogo in base al campo selezionato
per l’area al di sotto della casella di riepilogo.
Ad esempio, se il campo specificato è "Paese", verranno riportati i valori di riepilogo per
ciascun paese.
● Scegliere "Per ogni record" per mostrare i valori per ogni record contenuto nel report.

Nota
Questa opzione non richiede la selezione di un campo per l’area al di sotto della casella di
riepilogo.

● Scegliere "Tutti i record" per visualizzare un valore di riepilogo corrispondente al totale


generale di tutti i record presenti nel report.

Nota
Questa opzione non richiede la selezione di un campo per l’area al di sotto della casella di
riepilogo.

Se è necessario scegliere un campo per l’area al di sotto della casella di riepilogo "Su modifica
di", utilizzare i pulsanti freccia per aggiungere o rimuovere i campi selezionati nella casella
Campi disponibili.

Ordine Fare clic sul pulsante Ordine per modificare l'ordinamento del campo selezionato. Se si fa clic su
questo pulsante, viene visualizzata la Finestra di dialogo Criterio ordinamento grafici [pagina
857].

Questo pulsante è attivo solo quando è stato selezionato un campo nella casella di riepilogo "Su
modifica di".

Primi N Fare clic sul pulsante Primi N per ordinare il campo selezionato in base a Primi N, Ultimi N
oppure Ordina tutto. Quando si fa clic su questo pulsante, viene visualizzato l'Assistente Primi
N/Ordina gruppo.

Questo pulsante è attivo solo quando è stato selezionato un campo nella casella di riepilogo "Su
modifica di".

Mostra In questa casella di riepilogo viene visualizzato il campo scelto come valore per il grafico. I punti
valore/i verranno tracciati per questi valori sul grafico ogni volta che la condizione selezionata nella
casella di modifica "Su modifica di" viene cambiata. Ad esempio, se si crea un grafico sulle
vendite registrate nell'ultimo anno per tutti i clienti, selezionare il campo relativo al nome del
cliente come condizione e il campo relativo alle vendite dell'ultimo anno come valore. Ogni volta
che il valore nel campo Nome Cliente cambia, viene tracciato un punto in base al valore delle
vendite dell'ultimo anno corrispondenti a questo cliente.

Utilizzare i pulsanti freccia per aggiungere o rimuovere i campi selezionati nella casella di
riepilogo Mostra valori. Fare clic sul pulsante doppia freccia per rimuovere tutti i campi dalla
casella di riepilogo Mostra valori.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
966 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Non Utilizzare la casella di riepilogo Non riepilogare valori per determinare se il programma deve
riepilogare riepilogare automaticamente i valori riportati nel grafico.
valori
Nota
Questa opzione è disponibile solo per i campi formula.

● Se si seleziona la casella di controllo, il programma non riepiloga i valori.


● Se si deseleziona la casella, il programma riepiloga i valori della mappa e viene attivato il
pulsante Imposta operazione di riepilogo. Il programma aggiunge un campo di riepilogo alla
casella di riepilogo Mappa valori.

Imposta Utilizzare questo pulsante per impostare o modificare l'operazione di riepilogo per il campo
operazione di selezionato. Se si fa clic su questo pulsante, viene visualizzata la Finestra di dialogo Modifica
riepilogo riepilogo [pagina 890]. Il pulsante si attiva solo quando viene deselezionata la casella Non
riepilogare valori e quando viene selezionato un campo nella casella di riepilogo Mappa valori.

Visualizzazione delle opzioni Gruppo

Su modifica di Selezionare il campo che si desidera utilizzare come condizione per tracciare i valori nel grafico. I
punti vengono tracciati ogni volta che cambia il valore nel campo di condizione.

Mostra Utilizzare questa casella di riepilogo per selezionare il campo di riepilogo i cui valori si desidera
visualizzare nel grafico. Utilizzare la finestra di dialogo Inserisci riepilogo per creare un campo di
riepilogo.

Visualizzazione delle opzioni A campi incrociati

Su modifica di Selezionare il campo che si desidera utilizzare come condizione per tracciare i valori nel grafico. I
punti vengono tracciati ogni volta che cambia il valore nel campo di condizione.

Suddiviso da Utilizzare questa casella di riepilogo per selezionare la riga o la colonna secondaria su cui basare
il grafico. Se si fa clic su questa casella viene visualizzato un elenco di campi di righe/colonne nel
report in cui è possibile effettuare una scelta.

Mostra Utilizzare questa casella di riepilogo per selezionare il campo di riepilogo i cui valori si desidera
visualizzare nel grafico.

Visualizzazione delle opzioni OLAP

Il layout OLAP consente di eseguire un grafico su una griglia OLAP.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 967
Nota
Gli oggetti griglia OLAP non sono supportati in questa versione di SAP Crystal Reports. La visualizzazione delle
opzioni OLAP è disattivata.

Informazioni correlate

Selezione dei primi o degli ultimi gruppi N [pagina 701]

1.7.3.2.3.3 Scheda Assi (Esperto grafico)

La scheda Assi consente di impostare le proprietà degli assi del grafico. Le modifiche che è possibile apportate
tramite la scheda Assi dipendono dal tipo di grafico che si sta creando.

Selezionare "Imposta automaticamente le opzioni del grafico" se si desidera utilizzare nell'Esperto grafico le
opzioni predefinite nelle schede Assi e Opzioni.

Mostra linee griglia

Utilizzare le griglie per aggiungere linee al grafico. Ad esempio, in un grafico a barre, è possibile aggiungere linee
orizzontali in corrispondenza di ciascun valore dell'asse verticale.

Maggiore Utilizzare le caselle di controllo Maggiore per determinare se devono essere visualizzate le linee guida
principali degli assi del grafico. In base al tipo di grafico che si sta creando, può essere presente una
casella di controllo Maggiore per gli assi Gruppo, Serie, Dati e/o Dati2.

● Selezionare una delle caselle di controllo Maggiore per visualizzare la linea guida dell'asse
corrispondente.
● Deselezionare una delle caselle di controllo Maggiore per nascondere la linea guida dell'asse
corrispondente.

Minore Utilizzare la casella di controllo Minore per determinare se devono essere visualizzate le linee guida
secondarie degli assi del grafico. In base al tipo di grafico che si sta creando, può essere presente una
casella di controllo Minore per gli assi Gruppo, Serie, Dati e/o Dati2.

● Selezionare una delle caselle di controllo Minore per visualizzare la linea guida dell'asse
corrispondente.
● Deselezionare una delle caselle di controllo Minore per nascondere la linea guida dell'asse
corrispondente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
968 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Valori dati

Scala Quando si seleziona la casella di controllo Scala automatica, il numero di etichette viene regolato
automatica per garantire una corretta visualizzazione lungo l'asse Dati.

Intervallo Quando si seleziona la casella di controllo Intervallo automatico, ai valori dei dati dell'asse
automatico corrispondente viene assegnato un intervallo predefinito.

Min Utilizzare la casella di testo Min per immettere l'intervallo minimo per i valori dei dati sugli Assi
dati corrispondenti. Esiste una casella di testo Min per l'Asse dati e può esserne presente una
anche per l'Asse dati2. La seconda casella di testo Min si attiva solo se il grafico è a campi
incrociati o OLAP.

Se la casella Intervallo automatico è selezionata, la casella di testo Min resta deselezionata.

Nota
Gli oggetti griglia OLAP non sono supportati in questa versione di SAP Crystal Reports.

Max Utilizzare la casella di testo Max per immettere l'intervallo massimo per i valori dei dati sugli Assi
dati corrispondenti. Esiste una casella di testo Max per l'Asse dati e può esserne presente una
anche per l'Asse dati2. La seconda casella di testo Max si attiva solo se il grafico è a campi
incrociati o OLAP.

Se la casella di controllo Intervallo automatico è selezionata, la casella di testo Max resta


deselezionata.

Formato Utilizzare la casella di riepilogo Formato numero per selezionare un formato per i valori dei dati
numero sull'Asse dati corrispondente. Esiste una casella di riepilogo Formato numero per l'Asse dati (y)
e una per l'Asse dati2. La seconda casella di riepilogo Formato numero si attiva solo se il grafico
è a campi incrociati o OLAP.

Se la casella di controllo Intervallo automatico è selezionata, la casella di riepilogo Formato


numero resta deselezionata.

Numero di divisioni

Automatico Se si seleziona l'opzione Automatico, il programma imposta automaticamente il numero di divisioni


per l'Asse dati corrispondente. Esiste un'opzione Automatico per l'Asse dati e può esserne
presente una anche per l'Asse dati2. La seconda opzione Automatico si attiva solo se il grafico è a
campi incrociati o OLAP.

Nota
Gli oggetti griglia OLAP non sono supportati in questa versione di SAP Crystal Reports.

Manual Utilizzare l'opzione Manuale per impostare manualmente il numero di divisioni per l'Asse dati
corrispondente. Esiste un'opzione Manuale per l'Asse dati e può esserne presente una anche per
l'Asse dati2. La seconda opzione Manuale si attiva solo se il grafico è a campi incrociati o OLAP.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 969
Se si fa clic su uno dei pulsanti di opzione Manuale, la casella di testo adiacente si attiva. Utilizzare
la casella di testo per immettere il numero di divisioni.

Informazioni correlate

Scheda Testo (Esperto grafico) [pagina 971]

1.7.3.2.3.4 Scheda Opzioni (Esperto grafico)

La scheda Opzioni consente di operare una serie di scelte relative alla visualizzazione di un grafico.

Selezionare "Imposta automaticamente le opzioni del grafico" se si desidera utilizzare nell'Esperto grafico le
opzioni predefinite nelle schede Assi e Opzioni.

Colore grafico

Utilizzare i pulsanti di opzione Colore grafico per indicare se si desidera che il grafico venga riprodotto a colori o in
bianco e nero.

Coordinate

Utilizzare i pulsanti di opzione Coordinate per indicare il tipo di etichetta che si desidera visualizzare per ciascun
dato (vale a dire, per ciascun valore del grafico. È possibile scegliere tra Nessuno, Mostra etichetta e Mostra
valore. Se si fa clic su Mostra valore, la casella di riepilogo Formato numero si attiva. Utilizzare la casella di
riepilogo Formato numero per selezionare il formato che si desidera applicare ai valori del grafico.

Personalizza impostazioni

Sfondo trasparente Quando questa casella di controllo è selezionata, lo sfondo del grafico diventerà
trasparente e quindi gli oggetti posizionati dietro di essa saranno visibili.

Dimensione indicatore Utilizzare questa casella di riepilogo per specificare le dimensioni degli indicatori del
valore in un grafico a linee.

Forma indicatore Utilizzare questa casella di riepilogo per specificare la forma degli indicatori del valore
in un grafico a linee.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
970 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Angolo di Utilizzare questa casella di riepilogo per specificare l’angolo da cui verrà visualizzato il
visualizzazione grafico (Angolo standard, dall’alto e così via).

Dimensione torta Utilizzare la casella di riepilogo per selezionare la dimensione di un grafico a torta
(Minimo, Piccolo, Medio, Grande o Massimo).

Dimensione barra Utilizzare questa casella di riepilogo per selezionare la dimensione della barra di un
grafico a barre (Minima, Piccola, Media, Grande o Massima).

Estrai settore Quando questa casella di controllo è selezionata, un settore viene staccato dal grafico a
torta. È possibile fare clic su Settore più piccolo o Settore più grande per specificare il
settore da staccare.

Legenda

Mostra legenda Quando questa casella di controllo è selezionata, viene visualizzata la legenda del grafico.
Quando il segno di spunta non è visibile, l'opzione è deselezionata e non viene visualizzata
alcuna legenda per il grafico. Per impostazione predefinita, l'opzione è seleziona.

Posizionamento Utilizzare la casella di riepilogo Posizionamento per indicare dove si desidera che venga
collocata la legenda del grafico (angolo superiore destro, a sinistra, a destra e così via).

Questa casella di riepilogo si attiva solo quando viene selezionata la casella di controllo Mostra
legenda.

Layout Utilizzare questa casella di riepilogo per visualizzare valori percentuale, valori effettivi, valori
effettivi e percentuali o nessun valore.

Informazioni correlate

Finestra di dialogo Opzioni grafico [pagina 844]

1.7.3.2.3.5 Scheda Testo (Esperto grafico)

La scheda Testo consente di specificare i titoli, i piè di pagina e i titoli degli assi per il grafico.

Titoli

Testo automatico Quando queste caselle di controllo sono selezionate, i titoli dei grafici vengono generati
automaticamente. Se sono deselezionate è possibile specificare i titoli dei grafici
manualmente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 971
Titolo Utilizzare questa casella di testo per immettere il titolo del grafico. Il titolo verrà visualizzato
subito sopra il grafico.

Sottotitolo Utilizzare questa casella di testo per immettere il sottotitolo del grafico. Il sottotitolo verrà
visualizzato subito sotto il titolo, sopra il grafico.

Piè di pagina Utilizzare questa casella di testo per immettere il testo di una nota a piè di pagina. La nota a
piè di pagina verrà visualizzata nel report subito sotto il grafico.

Nome gruppo Utilizzare questa casella di testo per immettere il nome dell'asse x del grafico.

Nome dei dati Utilizzare questa casella di testo per immettere il nome dell'asse y del grafico.

Nome dei dati2 Utilizzare questa casella di testo per immettere il nome del secondo asse y del grafico (se si
sta creando un grafico a campi incrociati od OLAP).

Nome serie Utilizzare questa casella di testo per immettere il titolo della serie del grafico.

Formato

Utilizzare questa casella di riepilogo per selezionare il testo per cui si stanno impostando le opzioni del carattere.

Font Fare clic sul pulsante Carattere per impostare le opzioni del carattere del testo selezionato nella casella di
riepilogo Formato. Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Caratteri.

Informazioni correlate

Finestra di dialogo Carattere [pagina 896]


Tipi di grafici [pagina 744]

1.7.3.2.4 Finestra di dialogo Esperto campi incrociati

Utilizzare l’Esperto campi incrociati per creare un campo incrociato in modo rapido e semplice. I campi incrociati
vengono utilizzati nei report per presentare i dati riepilogati in una struttura composta da righe e colonne, analoga
ai fogli di calcolo. Questi report risultano facili da leggere e consentono di eseguire rapidi confronti e di identificare
le tendenze.

Questa finestra di dialogo viene visualizzata quando si fa clic con il pulsante destro del mouse in un report, si
seleziona Inserisci, quindi Campo incrociato.

Informazioni correlate

Procedure guidate per la creazione di report Crystal [pagina 649]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
972 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.2.4.1 Scheda A campi incrociati (Esperto campi
incrociati)

La scheda A campi incrociati contiene le funzionalità di base necessarie per la creazione di un campo incrociato. È
possibile definire righe, colonne e campi di riepilogo nonché creare gruppi e formule direttamente da questa
scheda.

Campi Disponibili In questa casella di riepilogo sono visualizzati tutte le tabelle e i campi che sono stati
selezionati per essere utilizzati nel report.

Selezionare il campo che si desidera utilizzare e trascinarlo nella casella di riepilogo


appropriata oppure fare clic sul pulsante Aggiungi appropriato. Ripetere il procedimento per
aggiungere campi supplementari.

Sfoglia dati Fare clic sul pulsante Sfoglia dati per visualizzare i valori relativi a un campo selezionato nella
casella di riepilogo Campi disponibili.

Trova Campo Fare clic su questo pulsante per immettere il nome di un campo che si desidera individuare
nella casella di riepilogo Campi disponibili.

Nuova formula Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Nome Formula.
Immettere un nome per la nuova formula e fare clic su OK. La finestra di dialogo Workshop
formule viene visualizzata con l'Editor di Formula attivo per consentire di creare la nuova
formula.

Modifica Formula Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Workshop formule
è disponibile solo con l'Editor di Formula attivo. Utilizzare l’editor per modificare la formula selezionata.
se è stato Modifica Formula è disponibile solo se è stato selezionato un campo di formula in una delle
selezionato un casella di riepilogo.
campo di formula
in una delle
casella di
riepilogo.

Colonne In questa casella di riepilogo sono visualizzati i campi selezionati come intestazioni di
colonna per i campi incrociati. Se si vi sono intestazioni di colonna multiple verranno
visualizzate nel report nell’ordine in cui compaiono in questa casella di riepilogo.

Per aggiungere un'intestazione di colonna a questa casella di riepilogo, scegliere un campo


dalla casella di riepilogo Campi Disponibili, quindi trascinarlo nella casella di riepilogo oppure
fare clic sul pulsante Aggiungi Colonna.

Righe In questa casella di riepilogo sono visualizzati i campi selezionati come intestazioni di riga per
i campi incrociati. Se si vi sono intestazioni di riga multiple verranno visualizzate nel report
nell’ordine in cui compaiono in questa casella di riepilogo.

Per aggiungere un'intestazione di riga a questa casella di riepilogo, scegliere un campo dalla
casella di riepilogo Campi Disponibili, quindi trascinarlo nella casella di riepilogo oppure fare
clic sul pulsante Aggiungi Riga.

Campi di riepilogo In questa casella di riepilogo sono visualizzati i campi selezionati come intestazioni di campi
di riepilogo per i campi incrociati. Se si vi sono intestazioni di campi di riepilogo verranno
visualizzate nel report nell’ordine in cui compaiono in questa casella di riepilogo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 973
Per aggiungere un'intestazione di campo di riepilogo a questa casella di riepilogo, scegliere
un campo dalla casella di riepilogo Campi Disponibili, quindi trascinarlo nella casella di
riepilogo oppure fare clic sul pulsante Aggiungi Campo di Riepilogo.

Pulsanti freccia di Utilizzare i pulsanti freccia > adiacenti a ciascuna casella di riepilogo per aggiungere campi
aggiunta o dall'elenco Campi disponibili. Utilizzare i pulsanti freccia < per rimuovere campi
rimozione precedentemente aggiunti.

Opzioni gruppo Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Opzioni di
Raggruppamento a Campi Incrociati. Utilizzare questa finestra di dialogo per immettere un
gruppo per i campi incrociati. Opzioni gruppo è disponibile solo per righe e colonne.

Modifica Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Modifica riepilogo.
Riepilogo Utilizzare questa finestra di dialogo per modificare il tipo di riepilogo dei campi di riepilogo
della scheda Campi incrociati. Modifica Riepilogo è disponibile solo per i campi di riepilogo.

Informazioni correlate

Finestra di dialogo A campi incrociati [pagina 868]


Finestra di dialogo Editor delle formule [pagina 715]
Finestra di dialogo Modifica riepilogo [pagina 890]
Procedure guidate per la creazione di report Crystal [pagina 649]

1.7.3.2.4.2 Scheda Stile (Esperto campi incrociati)

La scheda Stile consente di scegliere uno stile predefinito per la griglia del campo incrociato. Nella parte destra
dello schermo viene visualizzato un esempio di ogni stile selezionato.

Nota
Il colore dello stile selezionato potrebbe non essere visualizzato correttamente se la risoluzione della schermo
è impostata a 256 colori. Per correggere questa visualizzazione, aumentare la risoluzione del colore.

Se si seleziona uno degli stili di griglia predefiniti, le relative impostazioni appaiono sulla scheda Personalizza stile.
È possibile creare uno stile personalizzato in base agli stili predefiniti, scegliendo uno stile e modificando le
impostazioni nella scheda Personalizza stile. Dopo aver creato uno stile predefinito, alla casella di riepilogo nella
scheda Stile viene aggiunta la nuova opzione Personalizzato.

1.7.3.2.4.3 Scheda Personalizza stile (Esperto campi


incrociati)

Utilizzare la scheda Personalizza stile per formattare la griglia del campo incrociato con i colori di sfondo, le griglie
e i margini delle celle desiderati.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
974 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Colonne Questa casella di riepilogo visualizza le colonne selezionate per il campo incrociato. Selezionare il
campo per il quale si desidera personalizzare lo stile.

Righe Questa casella di riepilogo visualizza le righe selezionate per il campo incrociato. Selezionare il
campo per il quale si desidera personalizzare lo stile.

Campi di Utilizzare le opzioni disponibili in questa area per specificare le modalità di visualizzazione dei
riepilogo campi di riepilogo.

Vertical Scegliere questa opzione per visualizzare i campi di riepilogo in un elenco verticale:

● Riepilogo 1
● Riepilogo 1
● Riepilogo 1

Horizontal Scegliere questa opzione per visualizzare i campi di riepilogo in un elenco


orizzontale:

Riepilogo 1 -- Riepilogo 2 -- Riepilogo 3

Mostra Selezionare questa opzione per visualizzare i nomi dei campi di riepilogo. Le etichette possono
etichette essere utilizzate sia per i riepiloghi orizzontali che per quelli verticali.

Opzioni gruppo

Ometti totale Utilizzare questa casella di controllo per omettere il totale parziale del campo selezionato.
parziale Occorre innanzitutto selezionare un campo nella casella di riepilogo Righe o Colonne.

Ometti etichetta Utilizzare questa casella di controllo per omettere l'etichetta del campo con totale parziale
omesso. Questa casella di controllo non è attiva se la casella Ometti totale parziale non è
selezionata.

Alias per Immettere un nome alias per il campo riga o colonna selezionato. La creazione di un alias
formule consente di abbreviare i nomi di campo lunghi ed è utile quando si fa riferimento a un campo
nella formula di formattazione condizionale. Per impostazione predefinita, il nome originale del
campo viene visualizzato in questa casella.

Colore Sfondo Utilizzare questa casella di riepilogo per selezionare un colore per il campo riga o colonna
selezionato.

Opzioni griglia

Mostra margini Selezionare questa casella di controllo per formattare automaticamente le celle del campo
cella incrociato. Se questa casella non è selezionata, tutti gli spazi superflui all'interno delle celle
del campo incrociato vengono eliminati e il contenuto delle celle viene formattato in modo
da utilizzare la minor quantità di spazio possibile nel report.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 975
Fai rientrare Selezionare questa casella di controllo per fare rientrare le etichette delle righe nel campo
Etichette delle incrociato. Utilizzare la casella pollici per specificare le dimensioni del rientro da
Righe visualizzare.

Formatta linee Se si fa clic su questo pulsante, viene visualizzata la finestra di dialogo Formatta linee
griglia griglia. In questa finestra di dialogo è possibile specificare se visualizzare o meno le linee
della griglia nonché definirne il colore, lo stile e la larghezza.

Ripeti etichette Selezionare questa casella di controllo per ripetere le etichette delle righe su ciascuna
righe pagina per i campi incrociati che in stampa occupano più di una pagina.

Mantieni Insieme le Selezionare questa casella di controllo per tenere unite le colonne su ciascuna pagina per i
Colonne campi incrociati che in stampa occupano più di una pagina.

Totali colonna in Selezionare questa casella di controllo se si desidera visualizzare i totali delle colonne nella
alto parte superiore del campo incrociato anziché nella parte inferiore (posizione predefinita).

Totali riga a sinistra Selezionare questa casella di controllo se si desidera visualizzare le dimensioni delle righe a
sinistra del campo incrociato anziché sulla destra (posizione predefinita).

Elimina righe vuote Selezionare questa casella di controllo per rimuovere le righe vuote del campo incrociato.
Se questa casella è selezionata, tutte le righe i cui campi non contengono alcun record
verranno nascoste.

Elimina colonne Selezionare questa casella di controllo per rimuovere le colonne vuote dal campo
vuote incrociato. Se questa casella è selezionata, verranno nascoste tutte le colonne i cui campi
non contengono alcun record.

Ometti totali Selezionare questa casella di controllo per rimuovere il totale generale dalle righe del
generali riga campo incrociato.

Ometti totali Selezionare questa casella di controllo per rimuovere il totale generale dalle colonne del
generali colonna campo incrociato.

Informazioni correlate

Finestra di dialogo Formatta linee griglia [pagina 909]

1.7.3.2.5 Finestra di dialogo Esperto database

L'Esperto database fornisce una visualizzazione della struttura integrata di tutte le origini dei dati che è possibile
utilizzare con SAP Crystal Reports. Questa finestra di dialogo viene visualizzata quando si fa clic con il pulsante
destro del mouse su Campi database in Explorer Campo e si seleziona Esperto database. È inoltre possibile fare
clic con il pulsante destro del mouse in Report Designer, scegliere Database e fare clic su Esperto database
oppure fare clic sul pulsante Esperto database della barra degli strumenti nella pagina di progettazione
incorporata.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
976 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
L’Esperto database consente di:

● creare un report utilizzando una delle origini di dati correntemente collegate


● creare un report basato su un elenco "Preferiti" di origini dati personalizzate (che vengono gestite nell'Esperto
database)
● creare un report basato su un elenco di origini dati con accesso recente (che l’Esperto database gestisce in
modo automatico)
● creare un report collegandosi a un’origine di dati esistente (ad esempio, un file di dati che risiede in locale
oppure un’origine di dati ODBC che è già stata impostata)
● generare un report creando prima una nuova connessione (ad esempio, una nuova origine dati ODBC oppure
un collegamento ai dati file OLE DB)
● visualizzare informazioni su una connessione di database facendo clic con il pulsante destro del mouse sulla
relativa icona e selezionando Proprietà dal menu di scelta rapida.

L'Esperto database contiene le schede seguenti:

Scheda Dati Utilizzare la scheda Dati per selezionare l'origine dei dati e le tabelle da utilizzare nel
report.

Scheda Collegamenti Utilizzare la scheda Collegamenti per collegare due o più tabelle.

Informazioni correlate

Accesso e aggiunta di dati [pagina 657]


Creazione di report da set di dati ADO.NET [pagina 658]
Descrive le modalità di connessione del report a un set di dati ADO.NET.

1.7.3.2.5.1 Scheda Dati (Esperto database)

La scheda Dati fornisce una visualizzazione della struttura integrata di tutte le origini dei dati che è possibile
utilizzare con SAP Crystal Reports. Utilizzare la scheda Dati per selezionare l'origine dei dati e le tabelle da
utilizzare nel report.

Se il database in uso supporta un linguaggio di query, ad esempio SQL, è possibile scrivere comandi personalizzati
che verranno rappresentati come oggetti Table in SAP Crystal Reports. Vedere Definizione delle tabelle virtuali in
base a un Comando/Query SQL [pagina 660].

Origini dati disponibili

La finestra principale di Esperto database dati mostra una visualizzazione della struttura delle origini dei dati che è
possibile selezionare per creare un report. La struttura è costituita dalle cartelle seguenti:

Dati del progetto Mostra un elenco delle origini dei dati correntemente collegate, oltre alle origini dei dati
ADO.NET aggiunte al progetto corrente.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 977
Connessioni Mostra un elenco di origini dei dati correntemente collegati.
correnti

Preferiti Mostra un elenco di origini dei dati utilizzati frequentemente dall'utente e gestiti nell'elenco
dei Preferiti.

Cronologia Mostra un elenco di origini dei dati utilizzate di recente. In genere, vengono visualizzate le
ultime cinque origini dei dati utilizzate.

Crea nuova Mostra le sottocartelle relative alle diverse origini dati cui è possibile collegarsi. Di seguito
connessione sono descritte alcune tra le scelte più diffuse:

● Access/Excel (DAO) consente di connettersi a un tipo di database supportato (Access,


dBASE, Excel, Lotus e così via). È possibile creare una nuova connessione utilizzando
l’opzione Effettuare nuovo collegamento.
● File di database mostra un elenco di database per PC standard che risiedono in locale.

Suggerimento
Per personalizzare le estensioni predefinite nella casella di riepilogo Tipo di file della
finestra di dialogo Apri, aggiungere le estensioni nel campo Filtro file database nella
Scheda Impostazioni predefinite origine dati (Impostazioni predefinite) [pagina 884].

● ODBC (RDO) mostra un elenco di origini dati ODBC che l'utente ha già configurato per
l'uso.
● ODBC (ADO) mostra un elenco di origini dati OLE DB che l'utente ha già configurato per
l'uso. È anche possibile specificare un file Microsoft Data Link da utilizzare.
● Altre origini dati mostra un elenco di altre origini dei dati alle quali è possibile accedere
mediante driver nativi, ad esempio Definizioni di campi.
Le Definizioni di campi sono driver speciali utilizzati per creare report basati su un solo
schema senza dati reali. Questo driver è incluso principalmente per la compatibilità con
le versioni precedenti ed è utilizzato solo durante il processo di creazione dei report. In
fase di runtime un report creato con questo driver deve essere passato a un recordset o a
un set di dati.

Nota
Le opzioni relative alle origini dati disponibili nella cartella Crea nuove connessioni variano in base ai
componenti di accesso dati selezionati durante l'installazione.

Tabelle selezionate

Questa casella di riepilogo mostra le tabelle selezionate per il report. Se sono state aggiunte più tabelle,
nell'esperto viene visualizzata la Scheda Collegamenti (Esperto database) [pagina 980] .

Utilizzare le frecce per aggiungere o eliminare le tabelle dalla casella di riepilogo.

Suggerimento
Per modificare l'alias di una tabella, selezionare la tabella e premere F2.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
978 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Pulsanti e menu di scelta rapida

Nell'Esperto database sono disponibili pulsanti e menu di scelta rapida. È possibile fare clic con il tasto destro del
mouse nell'Esperto database per visualizzare un menu di scelta rapida con le seguenti opzioni:

Aggiungi a report Utilizzare questa opzione per aggiungere un oggetto database (ad esempio, una tabella
o una procedura memorizzata) al report. Questa opzione è disponibile anche facendo
clic sul pulsante freccia destra nell'Esperto database.

Aggiungi a Preferiti Utilizzare questa opzione per aggiungere un'origine dei dati selezionata alla cartella
Preferiti.

Aggiungi comando al Utilizzare questa opzione per aggiungere una nuova query SQL al report. Una volta
report definita nella finestra di dialogo Aggiungi comando al report, la query viene visualizzata
nell'elenco Tabelle selezionate.

Effettuare nuovo Utilizzare questa opzione per effettuare un nuovo collegamento a un file di database o
collegamento altra origine dati.

Rimuovi dal report Utilizzare questa opzione per rimuovere un oggetto database (ad esempio, una tabella
o una procedura memorizzata) dal report.

Proprietà Utilizzare questa opzione per ottenere informazioni dettagliate sul collegamento al
database selezionato.

Rinomina preferito Utilizzare questa opzione per rinominare un'origine dei dati nella cartella Preferiti.

Elimina preferito Utilizzare questa opzione per rimuovere un'origine dei dati dalla cartella Preferiti.

Opzioni Utilizzare questa opzione per impostare le opzioni generali visualizzate nella scheda
Database della finestra di dialogo Impostazioni predefinite.

Aggiorna Utilizzare questa opzione per aggiornare l’elenco delle origini dati disponibili
nell’Esperto database.

Aggiungi (>) Consente di aggiungere l'oggetto database selezionato al report.

Aggiungi tutto (>>) Consente di aggiungere tutti gli oggetti database al report.

Elimina (<) Consente di rimuovere l'oggetto database selezionato dal report.

Elimina tutto (<<) Consente di rimuovere tutti gli oggetti database dal report.

Nota
Per aggiungere o modificare l'alias di un oggetto database, fare clic sull'oggetto
database per modificarlo. Se si desidera aggiungere un alias aggiuntivo all'oggetto
database, aggiungere di nuovo l'oggetto database alla tabella selezionata. Quando si
crea un alias non viene modificata la posizione del database. Se si desidera
modificare la posizione del database, vedere Per cambiare la posizione dell'origine
dati [pagina 660]. Le modifiche apportate tramite questa finestra di dialogo non
influiscono sugli alias in uso nelle formule.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 979
Informazioni correlate

Accesso e aggiunta di dati [pagina 657]


Creazione di report da set di dati ADO.NET [pagina 658]
Descrive le modalità di connessione del report a un set di dati ADO.NET.

1.7.3.2.5.2 Scheda Collegamenti (Esperto database)

Utilizzare la scheda Collegamenti per collegare due o più tabelle di database. Quando si scelgono più tabelle nella
scheda Dati, viene visualizzata la scheda Collegamenti.

Le tabelle vengono collegate in modo che i record di una tabella corrispondano ai record correlati di un’altra
tabella. Il metodo più semplice per collegare le tabelle consiste nella selezione di Collegamento automatico. Il
Collegamento automatico sceglie automaticamente i collegamenti per le tabelle in base ai campi comuni o alle
relazioni esterne tra le tabelle (se il database supporta le informazioni esterne). È inoltre possibile collegare
manualmente le tabelle di database.

Area di visualizzazione Nell’area di visualizzazione vengono mostrate tutte le tabelle attualmente presenti nel
dei collegamenti report nonché i collegamenti e gli indici relativi.

se si fa clic sul pulsante Legenda indice, viene mostrata una legenda relativa agli
indicatori degli indici.

Fare clic su un campo e trascinarlo su un altro campo per collegare manualmente le


tabelle. I soli limiti della struttura di collegamento sono quelli definiti dal fornitore di
database.

Disponi Quando si fa clic su questo pulsante, il programma dispone le tabelle nel modo più
automaticamente efficiente possibile all’interno dell’area di visualizzazione dei collegamenti.

Collegamento Fare clic sul collegamento Per nome per collegare le tabelle in base ai rispettivi nomi o
automatico Per tasto per utilizzare informazioni esterne.

Collegamento Fare clic su Collegamento per collegare le tabelle automaticamente. Questo pulsante
consente di scegliere automaticamente i collegamenti per le tabelle in base ai campi
comuni o alle relazioni esterne tra le tabelle, se i dati supportano le informazioni
esterne.

Ordina collegamenti Se sono presenti più collegamenti, è possibile utilizzare la funzione Ordina
collegamenti per disporre i collegamenti nell'ordine con cui si desidera elaborarli. In
query diverse possono essere presenti collegamenti ordinati in modo differente.

Cancella Collegamenti Fare clic su questo pulsante per eliminare tutti i collegamenti della tabella correnti.

Elimina collegamento Fare clic su un collegamento, quindi fare clic su questo pulsante per rimuoverlo.

Opzioni di Per attivare questo pulsante, è necessario che sia selezionata una linea di
collegamento collegamento. Dopo aver selezionato un collegamento, fare clic su questo pulsante per
aprire la finestra di dialogo Opzioni di collegamento in cui è possibile scegliere il tipo di
join e di collegamento.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
980 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Legenda indice Fare clic su questo pulsante per aprire la finestra di dialogo Legenda indice in modo che
venga mostrata una legenda per gli indicatori degli indici nell'area di visualizzazione dei
collegamenti.

Informazioni correlate

Finestra di dialogo Ordina collegamenti [pagina 928]


Finestra di dialogo Opzioni di collegamento [pagina 925]
Finestra di dialogo Esperto database [pagina 976]
Finestra di dialogo Legenda indice [pagina 918]

1.7.3.2.6 Esperto formule

Utilizzare l'Esperto formule per creare una formula basata su una funzione personalizzata esistente. L'esperto
viene visualizzato quando si sceglie l'opzione Usa Esperto nella finestra di dialogo Nome formula oppure si
seleziona una formula semplice nel Workshop formule senza fare clic sul pulsante Alterna visualizzazione delle
proprietà.

l’esperto viene mostrato anche quando si modifica un campo formula vuoto oppure un campo formula che
richiama una funzione personalizzata.

Logica della In questa casella di riepilogo sono riportate tutte le funzioni personalizzate disponibili nel
specifica delle report (Funzioni personalizzate report). Selezionare la funzione personalizzata su cui si
funzioni desidera basare la nuova formula.
personalizzate
Se si seleziona una funzione personalizzata, i dati inseriti nelle aree Riepilogo, Tipo restituito
e Argomenti funzione saranno basati sulla definizione della funzione.

Riepilogo Quest'area contiene il riepilogo precedentemente definito per la funzione personalizzata


nella finestra di dialogo Proprietà funzioni personalizzate. Le informazioni di riepilogo
fungono solo da riferimento e non possono essere modificate.

Tipo restituito In quest’area è specificato il tipo di dati che verrà restituito dalla funzione personalizzata. Le
informazioni relative al tipo restituito fungono solo da riferimento e non possono essere
modificate.

Reimposta valori Fare clic su questo pulsante per reimpostare i valori immessi nei campi Valore dell’area
Argomenti funzione. Se per un argomento è stato specificato un insieme di valori predefiniti,
il valore viene reimpostato sul primo di essi. Se invece all'argomento non è stato assegnato
alcun valore predefinito, il valore viene reimpostato su "Seleziona campi o immetti valore",
quindi viene considerato non associato. Se infine l'argomento è facoltativo, viene
reimpostato su "Usa valore opzionale:" seguito dal valore corrente del valore opzionale
definito nella funzione personalizzata.

Altre informazioni Fare clic su questo pulsante per visualizzare ulteriori informazioni sulla funzione
personalizzata selezionata.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 981
Argomenti Quest’area contiene gli argomenti specificati per la funzione personalizzata. La maggior
funzione parte delle informazioni relative agli argomenti funge solo da riferimento e non può essere
modificata.

Tuttavia, è nel campo Valore che si specifica il valore dell’argomento per la formula che si sta
creando. È possibile immettere un valore direttamente oppure fare clic sul campo Valore e
selezionare il valore desiderato dall’elenco che viene visualizzato. Le opzioni disponibili,
specifiche del tipo di dati dell’argomento, sono le seguenti:

● Un insieme di valori predefiniti creato nella finestra di dialogo Proprietà funzioni


personalizzate. Il salvataggio della formula non richiede la selezione di un valore
specifico; viene automaticamente utilizzato il primo valore predefinito dell’insieme.
● Un valore opzionale specificato nella funzione personalizzata. Per indicare questa
opzione si utilizza il testo "Usa valore opzionale" seguito dal valore corrente del valore
opzionale definito nella funzione personalizzata. Il salvataggio della formula non richiede
la selezione di un valore specifico; viene utilizzato automaticamente il valore opzionale.
● Un campo il cui tipo corrisponde a quello dell’argomento selezionato (ad esempio, se il
tipo dell’argomento è una stringa, è possibile scegliere un campo stringa). Per poter
essere visualizzato nell’elenco in esame, il campo deve essere utilizzato nel report
corrente.
● True o False per gli argomenti che presentano un tipo di dati Booleano.
● Un campo formula o un’espressione SQL il cui tipo restituito corrisponde al tipo
dell’argomento selezionato. Per poter essere visualizzata nell'elenco, la formula o
l'espressione deve essere presente nella finestra di dialogo Workshop formule, ma non
utilizzata nel report.
● Un totale parziale in cui il tipo del campo di riepilogo corrisponde al tipo dell’argomento
selezionato. Per poter essere visualizzato nell'elenco, il totale parziale deve essere
presente in Explorer Campo, ma non utilizzato nel report.
● Un campo di parametro il cui tipo di valore corrisponde al tipo dell’argomento
selezionato. Per poter essere visualizzato nell'elenco, il parametro deve essere presente
in Explorer Campo, ma non utilizzato nel report.
● Un nome di gruppo. Per poter essere visualizzato nell’elenco in esame, il gruppo deve
essere utilizzato nel report corrente.
● Un valore costante. Per alcuni tipi, quali stringa o numero, è possibile immettere
direttamente un valore costante semplice. Per altri, che richiedono invece una
formattazione specifica, quali data, data e ora e così via, viene mostrata una versione
della finestra di dialogo Immetti il valore per, che consente di scegliere un valore o un
intervallo di valori.
● Un altro campo. Fare clic su Scegli altro campo per accedere alla finestra di dialogo
Scegli campo, in cui sono riportati soltanto i campi del report e del database il cui tipo
corrisponde a quello dell'argomento selezionato.

Informazioni correlate

Funzioni personalizzate [pagina 717]


Descrive come creare funzioni personalizzate cui è possibile fare riferimento nelle formule.

Finestra di dialogo Editor delle formule [pagina 910]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
982 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.7.3.2.7 Finestra di dialogo Esperto gruppo

Utilizzare l’Esperto gruppo per specificare le modalità di raggruppamento dei campi all’interno del report. Tale
finestra di dialogo consente di riposizionare i gruppi e modificare i criteri impiegati per attivarli e ordinarli. Questa
finestra di dialogo viene visualizzata quando si fa clic con il pulsante destro del mouse su un'intestazione di
gruppo in Report Designer o su Nome gruppo in Explorer Campo e si seleziona Esperto gruppo, oppure quando si
fa clic con il pulsante destro del mouse in Report Designer, si seleziona Report, quindi Esperto gruppo.

Suggerimento
Per visualizzare l'Explorer Campo, fare clic sul menu Crystal Reports quindi su Explorer Campo.

Campi Disponibili In questa casella di riepilogo vengono visualizzati tutti campi che è possibile utilizzare
nel raggruppamento. La casella è basata sui campi del report scelti in Explorer Campo e
sulle tabelle selezionate nella scheda Dati dell'Esperto database.

Sfoglia dati Fare clic su questo pulsante per sfogliare i dati del campo selezionato nella casella di
riepilogo Campi Disponibili.

Trova Campo Fare clic su questo pulsante per immettere il nome di un campo che si desidera
individuare nella casella di riepilogo Campi disponibili.

Pulsanti freccia di Utilizzare il pulsante freccia > adiacente alla casella di riepilogo Tipo di raggruppamento
aggiunta o rimozione per aggiungere campi dalla casella di riepilogo Campi disponibili. Utilizzare i pulsanti
freccia < per rimuovere campi precedentemente aggiunti. Le doppie frecce aggiungono
o rimuovono tutti i campi.

Tipo di In questa casella di riepilogo vengono visualizzati tutti i campi selezionati per
raggruppamento l’ordinamento. I campi aggiunti dall’utente vengono inseriti in una gerarchia, che
stabilisce l’ordine in base al quale i gruppi verranno mostrati all’interno del report.

Quando si entra in un gruppo, tale gruppo appare direttamente sopra e sotto la sezione
Dettagli. Se si aggiunge un secondo gruppo, verrà visualizzato tra la sezione Dettagli e il
primo gruppo. Il terzo gruppo apparirà tra la sezione Dettagli e il secondo gruppo e così
via. Quando si osserva Report Designer, l'intestazione di gruppo del primo gruppo sarà
quella superiore, mentre il Piè di pagina di gruppo del primo gruppo sarà quello inferiore.

Nella casella di riepilogo Raggruppa è riportato l’ordine dei piè di pagina di gruppo
relativo ai gruppi specificati; il primo gruppo corrisponde all’ultimo visualizzato nella
casella, il secondo al gruppo che precede immediatamente l’ultimo nella casella e così
via.

Quando si seleziona un gruppo nella casella di riepilogo, vengono attivati i pulsanti


relativi al gruppo selezionato.

Pulsanti freccia Su o Utilizzare i pulsanti freccia Su e Giù adiacenti alla casella di riepilogo Tipo di
Giù raggruppamento per modificare l’ordine dei campi aggiunti dalla casella di riepilogo
Campi disponibili.

Opzioni Se si fa clic su questo pulsante, verrà visualizzata la finestra di dialogo Modifica opzioni
di gruppo. Utilizzare questa finestra di dialogo per modificare i criteri di attivazione e
ordinamento dei gruppi.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 983
Informazioni correlate

Finestra di dialogo Modifica opzioni di gruppo [pagina 843]

1.7.3.2.8 Finestra di dialogo Esperto ordinamento gruppo

Utilizzare L’Esperto ordinamento gruppo per identificare i primi o gli ultimi gruppi (ad esempio, gli stati con il
numero maggiore/minore di clienti in un report clienti). È anche possibile identificare percentuali superiori o
inferiori.

Per visualizzare questa finestra di dialogo, fare clic con il pulsante destro del mouse su Report Designer, scegliere
Report, quindi fare clic su Esperto ordinamento gruppo.

Nota
per poter eseguire un ordinamento di gruppo, un report deve contenere un valore di riepilogo. Vedere Riepilogo
dei dati raggruppati [pagina 698].

Per questo gruppo Utilizzare questa casella di riepilogo per selezionare una delle seguenti opzioni di
ordina ordinamento per il gruppo:

● Nessun ordinamento
● Tutti
● Primi N
● Ultimi N
● Percentuale superiore
● Percentuale inferiore

L’esperto riporterà opzioni diverse a seconda dell’opzione selezionata.

In base a In questa casella di riepilogo viene visualizzato un elenco dei campi di riepilogo nel report.
Specificare in questa casella di riepilogo il campo di cui si desidera selezionare i primi o gli
ultimi valori/percentuali. Se è selezionata l'opzione Tutti, utilizzare la casella di
scorrimento posta sotto la casella di riepilogo "in base a" per visualizzare i campi
prescelti per l'ordinamento.

Dove N corrisponde a Immettere in questa casella di modifica il numero dei primi o ultimi N valori (in cui N
rappresenta il numero dei valori) che si desidera selezionare.

Dove Percentuale è Immettere in questa casella di modifica la percentuale dei primi o ultimi valori da
selezionare.

Includi Altri, con il Selezionare questa opzione se si desidera includere tutti i campi che non rientrano nella
nome selezione di primi o ultimi N con il nome di gruppo specificato. Immettere il nome di
gruppo con il quale si desidera visualizzare tutti i campi esclusi dalla selezione eseguita.

Includi collegamenti Selezionare questa opzione per inserire gruppi che presentano gli stessi valori di
riepilogo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
984 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Informazioni correlate

Raggruppamento, ordinamento e calcolo dei totali dei dati [pagina 695]


Selezione dei primi o degli ultimi gruppi N [pagina 701]

1.7.3.2.9 Finestra di dialogo Esperto evidenziazione

L'Esperto evidenziazione consente di applicare la formattazione condizionale a tutti i tipi di campi del report
(Numero, Valuta, Stringa, Booleano, Data, Ora e DataOra). Grazie all’esperto, è possibile formattare il campo
selezionato specificando una condizione basata sul valore di tale campo oppure sul valore di un campo del report
differente. In altre parole, l'esperto permette di creare la formula seguente: se il valore del campo X soddisfa la
condizione A, applicare la formattazione specificata al campo selezionato nel report.

È possibile visualizzare questa finestra di dialogo facendo clic con il pulsante destro del mouse su un oggetto
campo numerico o di valuta e selezionando Esperto evidenziazione dal menu di scelta rapida.

Elenco elementi

L'elenco elementi riporta le formule di evidenziazione create per il campo selezionato.

Priorità I pulsanti Priorità nella casella di riepilogo Elenco voci dell'Esperto evidenziazione consentono di
impostare le priorità delle formule.

Nuovo È possibile utilizzare il pulsante Nuovo per aggiungere una nuova formula di evidenziazione. Dopo aver
fatto clic su Nuovo, specificare I valori della formula nell'Editor voci.

Rimuovi Utilizzare il pulsante Rimuovi per eliminare le formule di evidenziazione dal campo selezionato.

Editor voci

L'Editor voci consente di impostare la formula. L'Editor voci comprende una visualizzazione di esempio, che
illustra le specifiche di formattazione applicate.

Valore di Utilizzare la prima casella di riepilogo a discesa per selezionare il campo al quale applicare la
regola di evidenziazione.

Utilizzare la seconda casella di riepilogo a discesa per specificare la condizione. La condizione


predefinita è "è uguale a".

Utilizzare la terza casella di riepilogo a discesa per immettere il valore numerico o di valuta a cui
si desidera applicare le condizioni di evidenziazione.

Stile È possibile utilizzare questo elenco per selezionare un valore numerico o di valuta a cui si
desidera applicare la condizione di evidenziazione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 985
Colore Utilizzare la casella di riepilogo per selezionare un colore per il carattere del numero o valore di
Caratteri valuta a cui si desidera applicare la condizione di evidenziazione.

Sfondo Utilizzare la casella di riepilogo per selezionare un colore di sfondo per il carattere del numero o
valore di valuta a cui si desidera applicare la condizione di evidenziazione.

Bordo Utilizzare la casella di riepilogo per selezionare lo stile del bordo per il carattere del numero o
valore di valuta a cui si desidera applicare la condizione di evidenziazione.

Campione Mostra un campione utilizzando le impostazioni selezionate nell'Esperto evidenziazione.

Informazioni correlate

Formattazione condizionale [pagina 728]


Finestra di dialogo Editor formato [pagina 897]

1.7.3.2.10 Esperto sezione

Utilizzare l'Assistente sezione per apportare modifiche relative alla formattazione che influiscano su intere sezioni
del report. Questa finestra di dialogo viene visualizzata facendo clic con il pulsante destro del mouse su Report
Designer quindi selezionando l’Esperto sezione, oppure facendo clic con il pulsante destro del mouse su Report
Designer, scegliendo Inserisci e infine Sezione.

Suggerimento
In SAP Crystal Report 2008 è possibile accedere all'Esperto sezione facendo clic sul pulsante Esperto sezione
nella finestra di progettazione incorporata.

Sezioni Questa casella elenca tutte le sezioni nel report attivo. Quando si evidenzia una sezione in questo
elenco, il programma imposta i pulsanti della finestra di dialogo per indicare le azioni che è
possibile mettere in atto e le proprietà che è possibile impostare per la sezione selezionata.

Inserisci Utilizzare questo pulsante per inserire una nuova sezione nel report immediatamente sotto e dello
stesso tipo selezionato nella casella di riepilogo Sezioni.

Canc Utilizzare questo pulsante per eliminare la sezione selezionata nell’elenco Sezioni. È possibile
eliminare solo sezioni che sono state aggiunte alle sezioni di origine, non è possibile eliminare le
sezioni di origine.

Unisci Utilizzare questo pulsante per unire la sezione corrente con la sezione che compare appena sotto
di essa.

Nota
Non è possibile unire sezioni di tipo diverso; ad esempio, non è possibile unire una sezione
Dettagli con una sezione Intestazione gruppo.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
986 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Pulsanti Utilizzare questi pulsanti per spostare una sezione verso l’alto o il basso rispetto alle altre sezioni
Freccia correlate.

Nota
Non è possibile spostare una sezione oltre una sezione di un altro tipo.

Informazioni correlate

Cenni preliminari sulle sezioni di report [pagina 641]


Formattazione delle sezioni del report [pagina 646]

1.7.3.2.10.1 Scheda Comune (Esperto sezione)

Utilizzare la scheda Comune per impostare proprietà quali: Visibile, Nuova pagina prima, Mantieni unite e così via
per una sezione desiderata.

Nascondi (con Selezionare questa casella di controllo se non si desidera stampare la sezione, ma si vuole
Analisi che il contenuto delle sezioni sia disponibile per l’analisi dettagliata.
Dettagliata)

Elimina (nessuna Selezionare questa casella di controllo se non si desidera stampare la sezione e non si vuole
analisi che il contenuto delle sezioni sia disponibile per l’analisi dettagliata.
dettagliata)

Stampa a fine Selezionando questa casella di controllo ciascun valore del gruppo verrà stampato nella parte
pagina inferiore della pagina. (I dettagli continueranno ad essere stampati nelle posizioni normali.) Il
comando è utile per stampare fatture e altri tipi di report in cui si desidera che un solo gruppo
(ad esempio elementi della riga raggruppati per numero d’ordine ) sia visualizzato su un
Pagina e il valore per quel gruppo (totale parziale, campo di riepilogo, ecc.) venga stampato
solo nella parte inferiore della pagina.

Nuova pagina Nuova pagina prima è una proprietà di formattazione per le sezioni Gruppo (intestazione e piè
prima di pagina ) e Dettagli. Quando si seleziona questa opzione, il programma inserisce
un’interruzione di pagina prima di stampare la sezione. L’interruzione di pagina è quindi
inserita prima:

● del gruppo (se si utilizza l’opzione con una sezione Piè di pagina gruppo) o
● di ciascun record del report (se si utilizza l’opzione con una sezione Dettagli).

L’intestazione pagina e il piè di pagina compaiono su tutte le pagine. Se vi è un campo di


riepilogo o di totale parziale in una sezione Piè di pagina gruppo, è possibile utilizzare
l’opzione Nuova pagina prima per collocare i valori nelle pagine che seguono il valore che
viene calcolato.

Nuova pagina Quando questa casella di controllo è selezionata, il programma inserisce un’interruzione di
dopo pagina dopo aver stampato la sezione.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 987
● L’intestazione pagina e il piè di pagina compaiono su tutte le pagine.
● Utilizzare Nuova pagina dopo nella sezione Piè di pagina gruppo per stampare ciascun
gruppo in una pagina a parte.

Ricomincia Reimposta il numero della pagina su uno (1) per la pagina seguente, dopo aver stampato un
numerazione totale di gruppo. Quando questa opzione è utilizzata congiuntamente a Stampa a fine pagina,
pagine dopo il programma stampa un solo gruppo su un pagina, stampa il valore del gruppo nella parte
inferiore della pagina e reimposta il numero della pagina su 1 per la pagina successiva. Questa
opzione è utile ogni volta che si stampano più report da uno stresso file (ad esempio fatture),
e si desidera che ciascun report sia numerato a partire da Pagina 1.

Mantieni Unite Quando questa casella di controllo è selezionata, il programma mantiene unite tutte le linee
della sezione, nella pagina corrente (se vi è spazio) o in quella successiva (in caso contrario).

In un elenco clienti, ad esempio, i dati di un cliente (da un unico record o record collegati) può
estendersi su più linee. Se l’interruzione di pagina standard rientra nei dati di un cliente, i dati
verranno divisi, in parte su una pagina e in parte sull’altra. Ma con Mantieni Unite, il
programma inserisce l'interruzione di pagina prima dell'inizio del record in modo che tutti i
dati vengano stampati assieme, sulla pagina successiva.

Nota
Questa opzione non funziona con stringhe su più linee o campi memo. Un’interruzione di
pagina può essere inserita a metà di un campo su più linee.

Elimina sezioni Quando si seleziona questa casella di controllo, il programma nasconde la sezione del report
vuote se vuota, e la stampa se non lo è.

Sezioni seguenti Selezionare questa casella di controllo se si desidera che per l'oggetto selezionato le sezioni
sullo sfondo successive siano sullo sfondo in fase di stampa.

Formato a Quando si seleziona questa opzione appare la scheda Layout.


colonne multiple

Esegui Questa opzione consente di ridurre al minimo lo spazio riservato per le sezioni del piè di
l'allocazione di pagina, ottimizzando lo spazio a disposizione di informazioni di rilievo in ogni pagina del
Piè di pagina report. L'opzione è applicabile solo a piè di pagina con più sezioni.
Minimo
Per impostazione predefinita, SAP Crystal Reports riserva un certo spazio alle sezioni del piè
di pagina nella parte inferiore di ogni pagina. Questo spazio viene riservato
indipendentemente dall'omissione condizionale delle sezioni del piè di pagina. Normalmente,
lo spazio riservato è equivalente all'altezza combinata di tutte le sezioni del piè di pagina
visualizzate oppure omesse in modo condizionale.

È tuttavia possibile ridurre al minimo lo spazio riservato. Per eseguire questa operazione,
omettere in modo condizionale i singoli piè di pagina come necessario. Selezionare quindi Piè
di pagina nell'area Sezioni dell'Assistente sezione e selezionare l'opzione Esegui l'allocazione
di Piè di pagina Minimo nella scheda Comune dell'Esperto. SAP Crystal Reports riserva spazio
in ogni pagina solo alle sezioni più alte del piè di pagina.

Posizioni relative Questa opzione consente di bloccare la posizione relativa di un oggetto report posto accanto
a un oggetto griglia all’interno di una sezione. Ad esempio, se si posiziona un oggetto di testo
un centimetro a destra di un oggetto a campi incrociati, durante la generazione del report

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
988 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
l’oggetto di testo verrà spostato verso destra in modo da conservare la distanza di un
centimetro indipendentemente dalla larghezza dell’oggetto a campi incrociati.

● è possibile soltanto il bloccaggio orizzontale. Se si desidera mantenere il posizionamento


relativo verticale, è necessario creare una nuova sezione di report.
● Una volta selezionata l’opzione Posizioni relative per una data sezione, non è più possibile
trascinare gli oggetti verso nuove posizioni all’interno di tale sezione.
● Il posizionamento relativo si applica solo ad oggetti posti a destra di oggetti griglia,
ovvero oggetti che è possibile spostare in senso orizzontale.

Informazioni correlate

Cenni preliminari sulle sezioni di report [pagina 641]


Definizione delle caratteristiche dell'area di stampa [pagina 656]
Modello di elaborazione dei report [pagina 651]
Inserimento di immagini di sfondo [pagina 764]
Descrive come impostare oggetti come sfondo vicino o sotto (opposto a sopra) gli oggetti posti nella sezione di
report successiva.

Scheda Layout (Esperto sezione) [pagina 989]

1.7.3.2.10.2 Scheda Colore (Esperto sezione)

Utilizzare la scheda Colore per impostare il colore dello sfondo della sezione desiderata.

Colore Sfondo Per aggiungere un colore di sfondo alla sezione selezionata, selezionare questa casella di
controllo, quindi scegliere un colore dall’elenco.

Formula condizionale Fare clic su questo pulsante se si desidera impostare una formula per la formattazione
condizionale per la proprietà corrispondente.

Informazioni correlate

Finestra di dialogo Editor delle formule [pagina 910]

1.7.3.2.10.3 Scheda Layout (Esperto sezione)

La scheda Layout viene visualizzata quando è evidenziata la sezione dei dettagli ed è selezionata la casella di
controllo Formato a Colonne Multiple della scheda Comune.

Utilizzare la scheda Layout per impostare il report con un formato a più colonne. In questo modo, anziché avere i
dati stampati direttamente lungo tutta la pagina, è possibile impostare più colonne e fare in modo che i dati vi

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 989
vengano visualizzati. È inoltre possibile far sì che i dati vengano stampati da una parte all’altra della pagina e
quindi lungo tutta la pagina stampando un primo record in ciascuna colonna, quindi un secondo record in
ciascuna colonna, quindi un terzo e così via. La finestra di dialogo è suddivisa in quattro caselle più piccole.

Dimensioni Questa casella consente di specificare le dimensioni (altezza e larghezza) di una colonna.
colonne Determina quanto deve essere larga una colonna (in base al numero di caratteri, dimensione,
ecc.) e immette tale valore nella casella di modifica Larghezza.

Determina quanto deve essere alta una colonna (in base al numero di linee nella colonna,
dimensione del carattere, ecc.) e inserisce tale valore nella casella di modifica Altezza.

Distanza tra le Questa casella consente di specificare l'area vuota (distanza, margine, ecc.) che si desidera
colonne avere tra le colonne. Orizzontale = la distanza tra le colonne in orizzontale, Verticale = la
distanza tra le colonne in verticale.

Determinare le distanze volute. Inserire la distanza in orizzontale nella casella di modifica


Orizzontale e quella verticale nella casella di modifica Verticale.

Direzione di La casella Direzione di stampa consente di specificare il percorso seguito dal programma nella
stampa stampa dei dettagli in una pagina di report. Le opzioni disponibili sono riportate di seguito.

Per righe Stampa i dettagli sulle colonne procedendo in senso orizzontale, il primo
dettaglio nella prima colonna, il successivo nella seguente e così via. Al termine,
quando è stato inserito un dettaglio in ogni colonna, il programma si sposta
verso il basso all’interno della pagina e stampa un secondo dettaglio nella prima
colonne, quindi nella successiva e così via.

Per colonne Stampa in verticale i dettagli nella prima colonna quindi nella seconda e così via.

Formatta Selezionare questa casella di controllo se si desidera che il programma formatti i gruppi su più
gruppi con più colonne utilizzando Larghezza, Distanza tra i Dettagli e Direzione di stampa specificati.
colonne

Informazioni correlate

Cenni preliminari sulle sezioni di report [pagina 641]


Definizione delle caratteristiche dell'area di stampa [pagina 656]

1.7.3.2.10.4 Scheda Paging (Esperto sezione)

La scheda Paging consente di impostare proprietà quali numeri di pagina, orientamento e così via per una
determinata sezione.

Nuova pagina Nuova pagina prima è una proprietà di formattazione per le sezioni Gruppo (intestazione e piè
prima di pagina ) e Dettagli. Quando si seleziona questa opzione, il programma inserisce
un’interruzione di pagina prima di stampare la sezione. L’interruzione di pagina è quindi
inserita prima:

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
990 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
● del gruppo (se si utilizza l’opzione con una sezione Piè di pagina gruppo) o
● di ciascun record del report (se si utilizza l’opzione con una sezione Dettagli).

L’intestazione pagina e il piè di pagina compaiono su tutte le pagine. Se vi è un campo di


riepilogo o di totale parziale in una sezione Piè di pagina gruppo, è possibile utilizzare l’opzione
Nuova pagina prima per collocare i valori nelle pagine che seguono il valore che viene
calcolato.

Nuova pagina Quando questa casella di controllo è selezionata, il programma inserisce un’interruzione di
dopo pagina dopo aver stampato la sezione.

● L’intestazione pagina e il piè di pagina compaiono su tutte le pagine.


● Utilizzare Nuova pagina dopo nella sezione Piè di pagina gruppo per stampare ciascun
gruppo in una pagina a parte.

Ricomincia Reimposta il numero della pagina su uno (1) per la pagina seguente, dopo aver stampato un
numerazione totale di gruppo. Quando questa opzione è utilizzata congiuntamente a Stampa a fine pagina,
pagine dopo il programma stampa un solo gruppo su un pagina, stampa il valore del gruppo nella parte
inferiore della pagina e reimposta il numero della pagina su 1 per la pagina successiva. Questa
opzione è utile ogni volta che si stampano più report da uno stresso file (ad esempio fatture),
e si desidera che ciascun report sia numerato a partire da Pagina 1.

Orientamento Consente di impostare l'orientamento di ciascuna sezione del report tranne l'intestazione e il
piè di pagina. L'impostazione predefinita corrisponde all'orientamento della pagina del report
definito nella finestra di dialogo Imposta pagina.

Nota
se si modifica l'impostazione predefinita, l'orientamento della sezione non risentirà di
eventuali modifiche apportate all'orientamento di pagina del report.

1.7.3.2.11 Finestra di dialogo Esperto selezione


Utilizzare l'Esperto selezione per selezionare i record o i gruppi che si desidera includere nel report, nel caso non si
desideri includerli tutti. Quando si utilizza l'Esperto selezione, il programma genera automaticamente una formula
di selezione dei record o gruppi.

Per accedere alle opzioni dell'Esperto selezione, fare clic con il pulsante destro del mouse in Report Designer,
scegliere Report e fare clic su Esperto selezione oppure fare clic sul pulsante Esperto selezione della barra degli
strumenti di Crystal Reports.

In SAP Crystal Reports 2008 è stata aggiunta una nuova opzione all'Esperto selezione: la formula di selezione dei
dati salvati. Questa opzione consente agli utenti di visualizzare un sottoinsieme di dati salvati in un report. Quando
il report viene aggiornato, SavedDataFilter impedisce che i dati salvati vengano scartati e non esegue chiamate al
database per aggiornarli. La formula di selezione dei dati salvati utilizza la stessa sintassi della formula di
selezione dei record.

Suggerimento
Questo Esperto consente di impostare criteri di selezione abbastanza complessi, ma per controllare con
maggiore efficacia la formula che viene generata, utilizzare l'Editor delle formule.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 991
Impostazioni di Utilizzare la casella di riepilogo per selezionare la condizione che si adatta meglio a
ricerca completare la frase seguente:

"Selezionare tutti i record il cui valore del campo selezionato è"

È possibile scegliere condizioni primarie, condizioni di data o condizioni booleane, a seconda


del tipo di campo che è stato selezionato.

Nuovo Fare clic sulla scheda o sul pulsante Nuovo per creare una nuova formula di selezione. Quando
si fa clic sulla scheda, viene visualizzata la finestra di dialogo Scegli Campo in cui selezionare
un campo per creare la formula di selezione.

Canc Fare clic su questo pulsante per eliminare la formula di selezione attiva e la scheda associata.

Sfoglia Il pulsante Sfoglia facilita la selezione dei valori definiti nella formula di selezione. Quando si fa
clic su questo pulsante, viene visualizzato un elenco dei valori di campo del database. Se il
valore desiderato è incluso nell'elenco, selezionare il valore e fare clic sul pulsante Incolla Dati.
Viene immesso il valore selezionato nella casella di testo attiva, ovvero la casella di testo in cui
è visualizzato il punto di inserimento.

Nota
Se è necessario selezionare più valori, ad esempio, se si desidera includere record in cui il
valore del campo è uno di tre valori, il punto di inserimento viene automaticamente
spostato nella casella di testo successiva non appena si è terminato di incollare i dati nella
casella precedente.

Mostra/ I criteri di selezione dei record immessi mediante l'Esperto generano automaticamente una
Nascondi formula di selezione dei record. È possibile esaminare e modificare questa formula facendo
formula clic sul pulsante Mostra. Quando si fa clic sul pulsante l'Esperto espande la visualizzazione
della formula. Al termine delle operazioni di modifica o revisione, fare clic sul pulsante
Nascondi per nascondere la formula dalla visualizzazione. L'Esperto selezione viene
aggiornato automaticamente con tutte le modifiche apportate alla formula.

Selezione Attivare l'opzione Selezione record per creare una formula di selezione dei record.
record /
Attivare l'opzione Selezione gruppo per creare una formula di selezione dei gruppi.
Raggruppa
Selezioni

Editor di formula Quando si fa clic su questo pulsante, viene visualizzato l’Editor formula con la formula di
selezione nella casella di testo Formula.

Informazioni correlate

Invio della selezione di record al server del database [pagina 679]


Finestra di dialogo Editor delle formule [pagina 910]

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
992 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
1.8 Glossario

controllo CrystalReportViewer Classe che fornisce la funzionalità per visualizzare un report.

controllo Classe che fornisce la funzionalità per visualizzare singole parti dei report, quali
CrystalReportPartsViewer grafici, testo o oggetti campo.

campo di database Campo di SAP Crystal Reports che rappresenta una particolare colonna di dati
di un database.

drill Modifica della modalità di visualizzazione dei dati in un report finalizzata a


ottenere una comprensione più specifica dell'origine dei dati ("drill down") o
una comprensione dei dati di più alto livello riunendo i set di dati ("drill up").

report incorporato Report importato o creato in un progetto Visual Studio 2005. Quando un report
viene incorporato nel progetto, viene generata automaticamente una classe
wrapper appropriata. Durante la compilazione del progetto sia il report che la
relativa classe wrapper vengono incorporati nell'assembly, come avviene con
qualsiasi altra risorsa del progetto.

report gestito File di report Crystal che risiede nel repository CMS di BusinessObjects
Enterprise e a cui si accede a livello di programmazione tramite un'istanza della
classe InfoObject.

filtro Espressione che limita i dati restituiti.

campo formula Campo di SAP Crystal Reports in cui viene memorizzata un'espressione
eseguibile. Una formula può essere una combinazione di operazioni, valori
numerici e campi.

dati gerarchici Dati contenenti più parametri con una relazione principale-secondario.

report non incorporato Report esterno al progetto Visual Studio 2005. Questa categoria include i
report presenti sul disco rigido nel percorso directory di un file, i report esposti
come Servizio Web report e quelli che appartengono a un gruppo di report
esposti tramite Crystal Services

campo di parametro Campo di SAP Crystal Reports che rappresenta un valore dinamico. L'utente
provvederà quindi a popolare il valore con un parametro. I parametri sono di
due tipi: discreti e inclusi in un intervallo. I parametri discreti prevedono un solo
valore, mentre quelli organizzati in intervalli prevedono un intervallo di valori
compresi tra un limite inferiore e uno superiore. Un parametro con più valori
può essere sia discreto che organizzato in intervalli. Oltre a questi due tipi, i
parametri possono essere statici, dinamici o interattivi. I valori statici dei
parametri sono memorizzati nel report. I valori dinamici dei parametri vengono
recuperati da un'origine dati esterna al report. Un parametro interattivo può
essere modificato in fase di esecuzione.

prompt di parametro Prompt dell'interfaccia utente che consente agli utenti di impostare un valore
per i parametri del report.

Report Application Server Ampia serie di servizi di reporting basati sul server che consentono di integrare
accuratamente il reporting nelle applicazioni Web personalizzate. RAS fornisce

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 993
una serie di servizi di base destinati all'elaborazione dei report, all'integrazione
delle applicazioni e alla modifica dei report in fase di esecuzione.

parte del report Oggetto report visualizzato da solo in un visualizzatore senza il resto della
pagina del report.

origine report Oggetto utilizzato dal visualizzatore per accedere alle proprietà di un report.
Fornisce al visualizzatore gli strumenti per eseguire query per ottenere dati del
report, informazioni sulla pagina e altre informazioni interne del report

rpt Formato file dei report Crystal. I report vengono salvati, per impostazione
predefinita, con l'estensione rpt.

rptr Formato file dei report Crystal di sola lettura. I report di sola lettura hanno le
stesse proprietà dei normali report ma non possono essere modificati né aperti
in un programma di progettazione. Possono solo essere visualizzati in SAP
Crystal Reports Viewer.

dati salvati Dati correnti di un report. Possono essere salvati quando viene salvato il report
e, nel caso non vengano salvati, verranno eliminati al momento
dell'aggiornamento o della chiusura del report.

formula di selezione Formula che specifica i record o i gruppi di record che si desidera includere nel
report. Le formule di selezione che è possibile utilizzare per filtrare i dati sono
tre: gruppo, record o dati salvati. La formula di selezione gruppo specifica quali
record verranno visualizzati. La formula di selezione record specifica quali
record costituiscono i dati salvati. La formula di selezione dati salvati mostra un
sottoinsieme dei dati salvati di un report.

campo speciale Campo che contiene informazioni specifiche sul report, ad esempio il conteggio
delle pagine, i dati e le informazioni orarie.

sottoreport Un sottoreport è un report indipendente o collegato che si trova all'interno di un


report principale. Consente di recuperare informazioni, impostare opzioni di
formato generiche ereditate dal report e aprire il sottoreport come report.

User Function Library (UFL) Libreria di funzioni creata da uno sviluppatore per soddisfare una specifica
esigenza.

report non gestito File di report Crystal che risiede in un file system locale e a cui si accede a livello
di programmazione mediante un percorso file.

Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
994 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual Studio .NET
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. 995
www.sap.com/contactsap

© 2014 SAP AG o una sua affiliata. Tutti i diritti riservati.

Non è ammessa la riproduzione o la trasmissione del presente


documento, né di alcuna delle sue parti, in qualsiasi formato o per
qualsiasi fine senza l’esplicita autorizzazione di SAP AG. Le
informazioni qui contenute sono soggette a modifica senza
preavviso.
Alcuni prodotti software commercializzati da SAP AG e dai suoi
distributori contengono componenti software di proprietà di altri
produttori di software. Le specifiche nazionali dei prodotti possono
variare.
Tali informazioni sono fornite da SAP AG e dalle sue affiliate
(“Gruppo SAP”) solo a scopo informativo, senza alcun fine
illustrativo o di garanzia di qualsiasi natura; il Gruppo SAP non si
assume alcuna responsabilità per eventuali errori od omissioni
presenti nelle informazioni. Le uniche garanzie applicabili ai prodotti
e ai servizi del Gruppo SAP sono quelle espressamente menzionate
nelle apposite clausole contrattuali eventualmente previste per i
singoli prodotti o servizi. Nessuna parte del presente documento è
da interpretarsi come garanzia aggiuntiva.
SAP e gli altri prodotti e servizi SAP qui menzionati, nonché i relativi
loghi, sono marchi o marchi registrati di SAP AG in Germania e in
altri Paesi.
Per ulteriori informazioni e comunicazioni sui marchi consultare
http://www.sap.com/corporate-en/legal/copyright/index.epx.

Potrebbero piacerti anche