Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Studio
Versione del documento: Support Package 10 - 2014-06-23
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.
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:
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
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.
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.
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
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>
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:
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.
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.
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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
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.
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.
Il Servizio di aggiornamento si avvia e controlla gli aggiornamenti disponibili. È possibile accettare o rifiutare
gli aggiornamenti disponibili.
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.
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
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
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.
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.
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.
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
\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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
Alcuni degli esempi di funzionalità, degli scenari di collegamento report e delle esercitazioni si basano su report di
esempio disponibili con SAP Crystal Reports.
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.
Procedura
C:\WebSites\NomeProgetto
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.
Procedura
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().
End Sub
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
End Sub
○ Se il codice viene scritto in C#, immettere il gestore eventi Page_Init utilizzando la sintassi esatta indicata.
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();
Procedura
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.
Risultati
Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
<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:
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
<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
<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
<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
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.
Procedura
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.
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#.
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.
Procedura
1. Aggiungere alla classe Form1 un nuovo metodo di supporto dell'ambito privato senza valore restituito,
denominato ConfigureCrystalReports().
End Sub
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();
Procedura
Nota
Nelle versioni precedenti di Visual Studio, il controllo CrystalReportViewer veniva visualizzato nel nodo
Crystal Reports.
Risultati
Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.
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.1 Architettura
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.
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
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.
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.
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.
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
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.
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
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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]
● 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.
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
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.
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
● 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.
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.
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.
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
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
● 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
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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:
Informazioni correlate
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.
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.
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.
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.
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.
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).
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
Procedura
Nota
Nelle versioni precedenti di Visual Studio, il controllo CrystalReportViewer veniva visualizzato nel nodo
Crystal Reports.
Risultati
Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Risultati
Quando si aggiunge un controllo CrystalReportViewer all'applicazione, i riferimenti agli assembly SAP Crystal
Reports vengono automaticamente aggiunti al progetto.
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
myCrystalReportViewer.ReportSource = "C:\MyReport.rpt"
crystalReportViewer.ReportSource = "C:\\MyReport.rpt";
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";
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.
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.
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.
Questo comando di menu consente di apportare ulteriori modifiche al report precedentemente selezionato o
creato per l'origine report.
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.
Questo comando di menu consente di cancellare la proprietà ReportSource per il controllo CrystalReportViewer.
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.
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.
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).
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à:
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.
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.
Questa casella di controllo consente di mostrare o nascondere la barra degli strumenti del controllo
CrystalReportViewer.
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.
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.
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
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.
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.
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.
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.
● Controllo CrystalReportViewer.
● Report collegato al controllo CrystalReportViewer.
In ASP e ASP.NET tradizionali lo stato viene mantenuto mediante il browser Web o il server Web nei seguenti
modi:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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:
ViewState memorizza solo le informazioni che possono essere convertite in formato stringa.
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:
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.
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.
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
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à.
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à.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
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.
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.
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.
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.
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.
Informazioni correlate
Procedura
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]
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.
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.
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.
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:
L'implementazione di queste procedure consigliate viene descritta nelle sezioni riportate di seguito.
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à:
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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
Visualizzazione interattiva X X X
dei report
Single Sign-On X X X
Modelli X X
Parametri di sovrapposi X X
zione dinamici
Protezione integrata 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. 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
Server RAS X
Informazioni correlate
Confronto tra le architetture di tutte le soluzioni di reporting per SAP Business Intelligence [pagina 40]
È 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.
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.
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]
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.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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.
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.
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.
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.
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
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]
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.
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
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
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.
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.
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.
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.
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.
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
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
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à:
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.
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.
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.
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.
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
Nelle Web farm e nei Web garden è necessario condividere Stato sessione su più server utilizzando alcuni form di
Stato sessione fuori processo.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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].
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.
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.
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.
Il modello a oggetti ReportClientDocument può essere serializzato. È possibile accedere al modello a oggetti
ReportClientDocument in molti modi diversi.
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]
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].
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.
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.
È 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.
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.
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:
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.
In SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio è possibile pubblicare i report
Crystal come servizi Web.
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
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
C:\WebServices\MyCrystalReportsWebServices
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
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.
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.
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
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.
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.
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.
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".
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]
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.
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
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.
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.
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
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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\
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:
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
Procedura
<?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.
http://localhost/CrystalReportsWebServices/ServerFileReportService.asmx?wsdl
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
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Procedura
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.
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."
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.
Contesto
Tale metodo può anche aggiungere impostazioni relative al proxy firewall all'istanza RemoteReportProxy.
Procedura
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.
string reportWebServiceURL =
"http://mywebserviceserver.com/MyWebServiceDirectory/Hierarchical
%20GroupingService.asmx";
myRemoteReportProxy.Url = reportWebServiceURL
remoteReportProxy.Url = reportWebServiceURL;
myRemoteReportProxy.Credentials = ConfigureAuthentication(True,
reportWebServiceURL)
remoteReportProxy.Credentials = ConfigureAuthentication(true,
reportWebServiceURL);
Nota
Sostituire la stringa URI con il server proxy firewall 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. 95
remoteReportProxy = AddFirewallProxySettings(false, "<<
http://firewallproxyserver:8080>>",
remoteReportProxy);
Return myRemoteReportProxy
return remoteReportProxy;
Contesto
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.
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.
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.
5. Dichiarare e creare un'istanza della classe NetworkCredential e passare le variabili di stringa di nome
utente (username), password e dominio (domain).
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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().
11. Passare l'istanza Uri, la stringa ntlmAuthorization e l'istanza NetworkCredential al metodo Add() dell'istanza
CredentialCache.
myCredentialCache.Add(myUri, ntlmAuthorization,
myNetworkCredential)
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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;
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
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
È 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
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:
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.
Nota
Le istruzioni riportate di seguito sono valide solo per un nuovo progetto creato in Impostazione di un progetto
[pagina 14].
Contesto
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.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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";
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
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).
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Procedura
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.
Passi successivi
Modificare quindi il progetto client Web o Windows per accedere al servizio Web report protetto mediante
l'autenticazione NT.
Informazioni correlate
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
○ 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;
End Class
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.
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;
Risultati
A questo punto è possibile modificare la classe di codice sottostante per il Web Form o il Windows Form specifico.
Procedura
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.
Procedura
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.
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.
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.
È 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
In questa sezione vengono fornite istruzioni dettagliate sulle modalità di utilizzo delle funzionalità specifiche
dell'SDK di SAP Crystal Reports .Net.
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.
● 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
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.
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 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.
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
Contesto
È possibile utilizzare l'SDK per stampare un report anche se il pulsante di stampa non è visibile.
Procedura
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Prerequisiti
Assicurarsi che sia configurata una stampante sul computer client prima di provare a stampare.
Contesto
Procedura
Esempio
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
CrystalReportViewer1.PrintMode = PrintMode.ActiveX
CrystalReportViewer1.PrintMode = PrintMode.ActiveX;
<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>
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
È 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.
Informazioni correlate
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:
Per apportare modifiche alle opzioni di stampa per un report, è necessario recuperare un oggetto PrintOptions
mediante la proprietà PrintOptions della classe ReportDocument.
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.
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
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName;
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
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
rd.PrintOptions.CopyTo(printerSettings, pageSettings)
rd.PrintOptions.CopyTo(printerSettings, pageSettings);
printerSettings.PrintToFile = True
printerSettings.PrintToFile = true;
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Esempio
Informazioni correlate
Procedura
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]
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.
● 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
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.
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.
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.
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.
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.
HTML 4.0 x x
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
Definizione report x
Testo separato da x x
tabulazione (TTX)
Testo x x
XML x x x
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.
L'esportazione è attivata in tutte le applicazioni SAP Crystal Reports per impostazione predefinita. È possibile
limitare l'esportazione in due modi:
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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.
Per esportare un report utilizzando il metodo ReportDocument.Export è necessario impostare quattro 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. 127
ExportDestinationType.DiskFile. Tra gli altri valori supportati sono inclusi ExchangeFolder,
MicrosoftMail e NoDestination.
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:
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.
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.
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
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.
exOptions.ExportFormatType = ExportFormatType.HTML40
exOptions.ExportFormatOptions = html40FormatOptions
Return exOptions
End Function
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
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Esempio
rd.Export(wordExportOptions)
End Sub
rd.Export(wordExportOptions);
}
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
Esempio
Informazioni correlate
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.
Per evitare errori di runtime quando si impostano i parametri a livello di codice, osservare quanto segue:
Informazioni correlate
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.
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.
Se un valore del parametro viene impostato come facoltativo, alla richiesta di immissione di un valore l'operazione
non verrà forzata.
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.
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.
Un valore del parametro deve corrispondere a uno dei seguenti tipi di parametro:
● ReportParameter
● StoredProcedureParameter
● QueryParameter
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;
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]
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.
● 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
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
In questo esempio i parametri vengono impostati su valori specifici utilizzati dal report di esempio.
Prerequisiti
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
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.
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
Prerequisiti
Contesto
Procedura
Suggerimento
utilizzare la classe ParameterRangeValue per i parametri di intervallo.
3. Creare un'istanza dell'insieme ParameterFields e assegnare alla stessa il valore della proprietà
ReportDocument.ParameterFields 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. 141
4. Accedere al parametro nel sottoreport mediante un indice con nome dell'istanza ParameterFields.
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);
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
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.
Prerequisiti
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.
dateRange.StartValue = startDate
dateRange.EndValue = endDate
dateRange.StartValue = startDate;
dateRange.EndValue = endDate;
dateRange.LowerBoundType = RangeBoundType.BoundInclusive
dateRange.UpperBoundType = RangeBoundType.BoundInclusive
dateRange.LowerBoundType = RangeBoundType.BoundInclusive;
dateRange.UpperBoundType = RangeBoundType.BoundInclusive;
Esempio
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
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.
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:
Nella tabella che segue sono riportati i tipi di campi consentiti nei diversi filtri dei report:
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
La tabella che segue mostra le differenze di comportamento associate ai diversi filtri dei report:
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:
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
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.
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.
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.
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.
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.
● 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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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:
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.
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
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
Esempio
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
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.
Nota
Tables è una classe indicizzata che contiene istanze della classe Table.
Esempio
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;
Passi successivi
Dopo avere impostato le informazioni di accesso al database per l'istanza ReportDocument, aggiornare la
proprietà ReportSource dell'oggetto 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
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.
Esempio
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:
Nota
le classi per questo provider di dati si trovano nello spazio dei nomi System.Data.OleDb.
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
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 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
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.
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.
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()
Class Person
Private _name As String
class Employee
{
int _employeeID;
Person _person = new 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;
Esempio
Espansione dei tipi complessi
Nell'esempio precedente la proprietà Employee.Person non è visibile poiché restituisce dati di tipo
complesso.
Class Employee
Private _employeeID As Integer
Private _person As New Person()
<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
class Employee
{
int _employeeID;
Person _person = new Person();
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;
Informazioni correlate
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
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.
Per utilizzare LINQ con SAP Crystal Reports è necessario che i seguenti prodotti software siano installati:
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
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.
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.
● 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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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.
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.
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.
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.
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
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.
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.
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
myCrystalReportViewer.ReportSource = "C:\MyReport.rpt"
crystalReportViewer.ReportSource = "C:\\MyReport.rpt";
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
myCrystalReportViewer.ReportSource = rd
crystalReportViewer.ReportSource = rd;
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.
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.
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
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
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.
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
myCrystalReportViewer.ReportSource = "C:\MyReport.rpt"
crystalReportViewer.ReportSource = "C:\\MyReport.rpt";
myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt"
crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";
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
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
Procedura
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.
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
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
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.
Modello a oggetti
In questo scenario di collegamento dei report viene utilizzato il modello a oggetti CrystalReportViewer.
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
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.
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
SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio consente l'accesso a livello di codice a
File di server mediante Crystal Services.
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:
È 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].
Modello a 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. 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.
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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;
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";
myCrystalReportViewer.ReportSource = myServerFileReport
crystalReportViewer.ReportSource = serverFileReport1;
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.
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
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
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
Risultati
Ora è possibile configurare Crystal Services>Crystal Enterprise nel progetto Web o Windows.
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.
myCrystalReportViewer.ReportSource = enterpriseReport1
crystalReportViewer.ReportSource = enterpriseReport1;
Modello a oggetti
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.
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.
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]
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
myServerFileReport.ObjectType = CrystalDecisions.
[Shared].EnumServerFileType.REPORT
serverFileReport.ObjectType = CrystalDecisions.Shared.EnumServerFileType.REPORT;
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";
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;
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].
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.
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]
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:
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
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
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.
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.
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
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.
○ 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;
Procedura
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.
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");
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");
4. Inserire la stringa di query riportata di seguito per ricercare il report in SAP Crystal Reports Server o SAP
BusinessObjects Enterprise.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
myCrystalReportViewer.ReportSource = myReportSource
crystalReportViewer.ReportSource = reportSource;
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.
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
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
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
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.
myCrystalReportViewer.ReportSource = myReport
crystalReportViewer.ReportSource = myReport;
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
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.
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.
string reportPath =
"C:\\Programmi\\Microsoft Visual Studio 9.0\\" + "Crystal Reports\\Samples\\En
\\Reports\\General Business\\" + "World Sales Report.rpt";
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;
Modello a oggetti
In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.
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.
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.
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
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
myCrystalReportViewer.ReportSource = cachedHierarchicalGroupingReport
crystalReportViewer.ReportSource = cachedHierarchicalGroupingReport;
Modello a oggetti
In questo scenario di collegamento dei report viene utilizzato il modello a oggetti ReportDocument.
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.
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
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
string reportPath =
"C:\\Program Files\\Microsoft Visual Studio 9.0\\"
+ "Crystal Reports\\Samples\\En\\Reports\\General Business\\"
+ "World Sales Report.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. 205
Nota
Per informazioni su come creare la classe NonEmbeddedReportCacher, fare riferimento alla successiva
procedura.
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;
Procedura
End Class
using System;
namespace MyWebApplication
{
public class NonEmbeddedReportCacher
{
public NonEmbeddedReportCacher()
{
}
}
}
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.
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.
○ IsCacheable
○ ShareDBLogonInfo
○ CacheTimeOut
○ CreateReport()
○ GetCustomizedCacheKey(RequestContext request)
6. Creare la proprietà IsCacheable che dovrebbe restituire 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. 207
public virtual Boolean IsCacheable
{
get
{
return true;
}
set
{
}
}
8. Creare la proprietà CacheTimeOut che restituisce una costante della classe CachedReportConstants.
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.
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.
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
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
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:
È 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].
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.
I report sono situati sul server RAS non gestito. e sono racchiusi nella classe ReportDocument.
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
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
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.
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;
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.
I report sono situati nel server RAS gestito. e sono racchiusi nella classe ReportDocument.
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
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
216 © 2014 SAP AG o una sua affiliata. Tutti i diritti riservati. Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports .Net
Procedura
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;
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.
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).
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
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]
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
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:
● 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
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 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
Contesto
Il testo del messaggio dell'indicatore di elaborazione del report viene configurato nel file Web.Config del sito
Web.
Procedura
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>
<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.
Risultati
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
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>
<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>
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
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.
Nel server Web o nel client Windows è possibile accedere alle risorse di lingua per il controllo CrystalReportViewer
dalle due origini indicate di seguito.
○ 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.
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).
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.
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.
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.
Di seguito vengono indicati i fattori che determinano la lingua visualizzata dall'applicazione client in fase di
esecuzione.
In un'applicazione Windows:
In un sito Web:
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.
Per capire gli standard dei set di caratteri occorre effettuare una distinzione tra tre tipi di carattere:
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à.
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:
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).
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.
● UTF-8
● UTF-16
● UTF-32
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:
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.
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.
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.
Di seguito vengono descritti gli aspetti più rilevanti da tenere in considerazione in caso di supporto della codifica
GB18030 fornito mediante conversione Unicode.
Nota
Microsoft SQL Server 2005 converte i dati GB18030 in UTF-16 in fase di recupero. Per altri server,
contattare il fornitore del database.
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.
Contesto
Per eliminare l'eccezione generata, è necessario chiamare il metodo di evento Error e impostare
ErrorEventArgs.Handled su True nel gestore dell'evento.
Procedura
Esempio
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
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.
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.
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
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Informazioni correlate
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
Risultati
Quando si esegue l'applicazione, la barra degli strumenti non viene più visualizzata sul controllo
CrystalReportViewer.
Esempio
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à:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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.
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.
1.5 Esercitazioni
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.
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:
Informazioni correlate
Prerequisiti
○ 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).
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.
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.
Procedura
○ 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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
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;
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
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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().
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.
End Sub
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.
4. Creare un ciclo foreach che passi attraverso ogni istanza nell’istanza TableLogOnInfo della classe
indicizzata TableLogOnInfos.
Next
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;
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.
Procedura
SetDBLogonForReport(myConnectionInfo)
SetDBLogonForReport(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";
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
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.
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";
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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 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:
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
Per iniziare, creare un report con informazioni 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 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.
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.
Risultati
È ora possibile collegare il report al controllo CrystalReportViewer e impostare il parametro Città con due valori
iniziali, Parigi e Tokyo.
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
○ 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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
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
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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.
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.
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à".
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.
End Sub
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]).
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.
Next
6. All’interno del ciclo foreach, dichiarare e creare un’istanza per la classe 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();
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.
myParameterField.CurrentValues = currentParameterValues
parameterField.CurrentValues = currentParameterValues;
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.
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.
SetCurrentValuesForParameterField(myParameterFields, myArrayList)
SetCurrentValuesForParameterField(parameterFields, arrayList);
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
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.
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.
Procedura
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.
Contesto
A questo punto è possibile creare un metodo di supporto che recuperi i valori predefiniti dal campo parametro.
Procedura
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.
ParameterField parameterField =
parameterFields[PARAMETER_FIELD_NAME];
ParameterValues defaultParameterValues =
parameterField.DefaultValues;
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:
Next
8. Se la proprietà disponibile è IsRange, all'interno del ciclo foreach inserire il seguente codice:
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
{
}
End If
if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue)
{
}
10. All'interno del blocco condizionale nidificato, eseguire il cast dell’istanza ParameterValue nella classe
estesa, DiscreteParameterValue.
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;
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.
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);
Contesto
A questo punto è possibile creare ed eseguire il progetto per verificare se il controllo ListBox
defaultParameterValuesList è stato compilato.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Procedura
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
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;
4. Creare un ciclo foreach per recuperare tutte le istanze ListItem dalla proprietà Items del controllo ListBox
defaultParameterValuesList.
Next
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.
ParameterFields parameterFields =
crystalReportViewer.ParameterFieldInfo;
SetCurrentValuesForParameterField(myParameterFields, myArrayList)
SetCurrentValuesForParameterField(parameterFields, arrayList);
Procedura
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.
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.
Next
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.
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);
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
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.
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.
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.
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.
arrayList = (ArrayList)Session["arrayList"];
Risultati
if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
Session["arrayList"] = arrayList;
}
else
{
arrayList = (ArrayList)Session["arrayList"];
}
Nella sezione successiva vengono apportate due modifiche al codice dell'evento clic del controllo Button:
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;
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
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.
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.
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:
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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].
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.
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.
Risultati
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
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"
4. Alla fine della classe creare un nuovo metodo privato denominato SetDateRangeForOrders() con tre
parametri: ParameterFields, string startDate e string endDate.
End Sub
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]).
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;
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;
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();
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.
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.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
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].
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.
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";
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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].
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.
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.
Contesto
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;
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
A questo punto è possibile creare ed eseguire il progetto per verificare che i valori TextBox reimpostino il
parametro di intervallo nel sottoreport.
Contesto
A questo punto è possibile verificare l'impostazione del parametro del sottoreport con i valori del controllo
TextBox.
Procedura
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.
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:
Informazioni correlate
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.
Il report CustomersBySalesName viene creato e caricato nella finestra principale di Visual Studio.
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
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.
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".
b) Assegnare la stringa della formula di selezione alla proprietà SelectionFormula del controllo
CrystalReportViewer.
myCrystalReportViewer.SelectionFormula = mySelectFormula
crystalReportViewer.SelectionFormula = selectFormula;
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Procedura
○ 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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
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;
Procedura
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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.
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
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.
Procedura
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.
myCrystalReportViewer.SelectionFormula = mySelectFormula
crystalReportViewer.SelectionFormula = selectFormula;
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:
Risultati
È stata creata una formula di selezione che può essere modificata in fase di esecuzione.
Procedura
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.
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
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
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
selectOperatorList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))
selectOperatorList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
Contesto
Procedura
1. Alla fine della classe, creare un metodo di supporto privato denominato GetSelectedCompareOperator()
che restituisca una variabile di stringa.
End Function
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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 "=";
}
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
2. Per la variabile di stringa della formula di selezione, sostituire il segno "maggiore di" (">") con la stringa
dell'operatore selezionato.
Contesto
È stata creata una formula di selezione che dipende dai valori inseriti per il campo Vendite anno precedente e per il
campo Nome cliente.
Procedura
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.
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:
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
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.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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].
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
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.
Nota
(1 x 40%) e (4 x 15%) = 100% dello spazio disponibile.
Risultati
A questo punto è possibile aggiungere i controlli personalizzati nella tabella per il progetto Windows.
In questa esercitazione vengono utilizzati i vari elementi di report e barra degli strumenti del controllo
CrystalReportViewer.
Gli elementi predefiniti del controllo CrystalReportViewer per i siti Web variano leggermente da quelli per i 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:
○ Barra di stato: consente di visualizzare il numero di pagina corrente e altre informazioni sul report nella
parte inferiore dell'area del report.
Gli elementi predefiniti della barra degli strumenti per i siti Web variano leggermente da quelli per i 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:
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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.
Queste enumerazioni forniscono l'elenco degli elementi selezionabili per report e barra degli strumenti.
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
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
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
Nota
Il metodo ConfigureCrystalReports() è stato creato in Impostazione di un progetto [pagina 14]
all'inizio dell'esercitazione.
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].
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
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;
Contesto
A questo punto è possibile creare ed eseguire il progetto per personalizzare la barra degli strumenti di
CrystalReportViewer.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
Queste enumerazioni forniscono l'elenco degli elementi selezionabili per report e barra degli strumenti.
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
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
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
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));
Per informazioni sui report di esempio, vedere Directory dei report di esempio [pagina 14].
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
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
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.
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.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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".
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
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().
selectBackColor.DataSource = System.Enum.GetValues(GetType(KnownColor))
selectBackColor.DataSource = System.Enum.GetValues(typeof(KnownColor));
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
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);
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
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.
5. Creare un blocco condizionale per verificare che il colore selezionato per lo sfondo non sia trasparente.
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
Procedura
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.
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
Procedura
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
A tal fine, è necessario un controllo TextBox in cui digitare il fattore di zoom desiderato e un controllo Button per
ricaricare la pagina.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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));
Procedura
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.
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
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
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]).
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;
Contesto
Ignorare la seguente procedura per un progetto Windows e passare alla procedura di verifica riportata di seguito.
Procedura
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.
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;
Procedura
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].
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.
Procedura
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;
selectBorderStyle.DataSource = System.Enum.GetValues(GetType(BorderStyle))
selectBorderStyle.DataSource = System.Enum.GetValues(typeof(BorderStyle));
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));
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
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);
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);
Procedura
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.
Procedura
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.
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 (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 (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.
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"]);
}
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;
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.
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.
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?
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Iniziare aggiungendo due pulsanti al Web Form, assegnare loro un nome e creare gli eventi clic per ciascuno di
essi.
Procedura
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".
Procedura
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.
Procedura
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.
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.
Procedura
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.
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.
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
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
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.
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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
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;
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
In questa sezione viene verificato se utilizzando la persistenza Session le modifiche all'ordinamento vengono
rese persistenti.
Procedura
Risultati
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
● 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].
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:
Informazioni correlate
Nota
Northwind è un database di esempio fornito con SQL Server.
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
○ 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.
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
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.
● 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
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].
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
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
northwindCustomersReport.Load(reportPath)
northwindCustomersReport.Load(reportPath);
myCrystalReportViewer.ReportSource = northwindCustomersReport
crystalReportViewer.ReportSource = northwindCustomersReport;
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
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.
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.
A questo punto è possibile aggiungere il codice di accesso alla classe di codice sottostante. Iniziare creando un
metodo di supporto privato, 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.
End Sub
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.
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.
Next
5. All'interno del ciclo foreach, recuperare l’istanza TableLogonInfo dalla proprietà LogOnInfo dell’istanza
Table.
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.
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]).
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";
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.
Procedura
Risultati
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.
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";
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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].
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.
Procedura
Risultati
Ora è possibile scegliere di utilizzare uno dei seguenti metodi API avanzati:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Procedura
DataSourceConnections dataSourceConnections =
northwindCustomersReport.DataSourceConnections;
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");
Procedura
DataSourceConnections dataSourceConnections =
northwindCustomersReport.DataSourceConnections;
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")
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Contesto
Procedura
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");
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.
● 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].
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:
Informazioni correlate
Nota
Northwind è un database di esempio fornito con SQL Server.
Procedura
○ 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.
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.
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.
● 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.
Procedura
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].
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.
Procedura
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.
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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
northwindCustomersReport.Load(reportPath)
northwindCustomersReport.Load(reportPath);
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.
Procedura
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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().
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.
End Sub
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.
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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]).
myConnectionInfo.DatabaseName = "Northwind"
myConnectionInfo.IntegratedSecurity = True
connectionInfo.DatabaseName = "Northwind";
connectionInfo.IntegratedSecurity = true;
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
Risultati
Nella sezione successiva viene descritto come 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.
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.
Procedura
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.
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
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.
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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].
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.
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
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.
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.
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().
Procedura
End Sub
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.
5. Creare un ciclo foreach che passi attraverso tutte le istanze Section nell’istanza della classe indicizzata
Sections.
Next
6. Nel ciclo foreach, recuperare l'istanza ReportObjects dalla proprietà ReportObjects dell'istanza
Section.
7. Nel ciclo foreach, creare un nuovo ciclo foreach nidificato che passi attraverso tutte le istanze ReportObject
nell'istanza della classe indicizzata ReportObjects.
Next
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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)
{
}
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 .
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);
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.
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);
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
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 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:
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
Per iniziare, creare un report con informazioni 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 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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
Risultati
È ora possibile collegare il report al controllo CrystalReportViewer e impostare il parametro Città con due valori
iniziali, Parigi e Tokyo.
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.
● 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.
Procedura
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].
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.
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
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.
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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
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à.
Procedura
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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.
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].
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à".
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.
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.
End Sub
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]).
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.
Next
6. All’interno del ciclo foreach, dichiarare e creare un’istanza per la classe 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();
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.
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.
ParameterFieldDefinition parameterFieldDefinition =
parameterFieldDefinitions[PARAMETER_FIELD_NAME];
myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues)
parameterFieldDefinition.ApplyCurrentValues(currentParameterValues);
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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");
SetCurrentValuesForParameterField(customersByCityReport,
myArrayList)
SetCurrentValuesForParameterField(customersByCityReport,
arrayList);
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.
Procedura
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.
Procedura
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”.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Risultati
A questo punto è possibile creare un metodo di supporto che recuperi i valori predefiniti dal campo parametro.
Procedura
End Function
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;
ParameterFieldDefinition parameterFieldDefinition =
parameterFieldDefinitions[PARAMETER_FIELD_NAME];
6. Recuperare una classe indicizzata ParameterValues (come variabile defaultParameterValues) dalla proprietà
DefaultValues dell’istanza ParameterFieldDefinition.
Next
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:
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:
End If
if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue)
{
}
11. All'interno del blocco condizionale nidificato, eseguire il cast dell’istanza ParameterValue nella classe estesa,
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;
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.
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);
Contesto
A questo punto è possibile creare ed eseguire il progetto per verificare se il controllo ListBox
defaultParameterValuesList è stato compilato.
Procedura
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.
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.
Procedura
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
Imports System.Web.UI.WebControls
using System.Web.UI.WebControls;
Nota
Questa dichiarazione è necessaria per accedere alla classe ListItem.
4. Creare un ciclo foreach per recuperare tutte le istanze ListItem dalla proprietà Items di
defaultParameterValuesList.
Next
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);
}
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;
Procedura
3. Creare un ciclo foreach per recuperare tutti gli elementi (come stringa) dalla proprietà SelectedItems di
defaultParameterValuesList.
Next
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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);
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;
Contesto
A questo punto è possibile creare ed eseguire il progetto per verificare se il campo parametro è stato reimpostato
correttamente.
Procedura
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
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).
Procedura
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.
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.
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.
arrayList = (ArrayList)Session["arrayList"];
Risultati
Nella sezione successiva vengono apportate due modifiche al codice dell'evento clic del controllo Button:
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;
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].
Procedura
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.
In questa esercitazione viene descritto come eliminare il metodo di supporto e chiamare invece il metodo
SetParameterValue() della classe ReportDocument.
È 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().
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
È necessario apportare quattro modifiche al progetto creato in Esercitazione: Lettura e impostazione di parametri
discreti [pagina 381]:
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:
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Procedura
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].
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
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
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.
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
4. Alla fine della classe creare un nuovo metodo privato denominato SetDateRangeForOrders() con tre
parametri: ReportDocument, string startDate e string endDate.
End Sub
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;
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.
Nota
ParameterFieldDefinitions è una classe indicizzata che contiene istanze della classe
ParameterFieldDefinition.
ParameterFieldDefinitions parameterFieldDefinitions =
reportDocument.DataDefinition.ParameterFields;
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();
myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue)
parameterFieldDefinition.CurrentValues.Add(parameterRangeValue);
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.
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.
Procedura
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:
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].
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.
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.
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
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.
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.
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.
Dopo la chiamata si trova il codice originale che collega il report al controllo CrystalReportViewer.
8. Dal menu File, scegliere Salva tutto.
Risultati
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;
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.
Procedura
Nelle procedure precedenti veniva illustrato come creare il metodo di supporto SetDateRangeForOrders() che
utilizza le classi ParameterFieldDefinitions e ParameterFieldDefinition.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Prerequisiti
È necessario creare un progetto in base alle istruzioni riportate in Esercitazione: Lettura e impostazione di
parametri con un sottoreport [pagina 410].
Procedura
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.
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.
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();
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
È 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
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.
Procedura
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:
Risultati
A questo punto è necessario compilare il controllo DropDownList con l'enumerazione ExportFormatType dello
spazio dei nomi CrystalDecisions.Shared.
Procedura
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();
Procedura
exportTypesList.DataSource = System.Enum.GetValues(GetType(ExportFormatType))
exportTypesList.DataSource = System.Enum.GetValues(typeof(ExportFormatType));
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
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.
End Sub
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à.
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))
{
}
System.IO.Directory.CreateDirectory(exportPath)
System.IO.Directory.CreateDirectory(exportPath);
myExportOptions = hierarchicalGroupingReport.ExportOptions
exportOptions = hierarchicalGroupingReport.ExportOptions;
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
4. Alla fine della classe, creare un metodo di supporto privato denominato ExportSelection() senza valore
restituito.
End Sub
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.
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().
Procedura
End Sub
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;
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.
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.
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()
Procedura
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()
{
}
myExportOptions.ExportFormatType = ExportFormatType.CrystalReport
exportOptions.ExportFormatType = ExportFormatType.CrystalReport;
diskFileDestinationOptions.DiskFileName = exportPath +
"Report.rpt";
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions
exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Procedura
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;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions
exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Procedura
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;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions
exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Procedura
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;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions
exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Procedura
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;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions
exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Procedura
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;
html32FormatOptions.HTMLBaseFolderName = exportPath +
"Html32Folder";
html32FormatOptions.HTMLFileName = "html32.html"
html32FormatOptions.HTMLFileName = "html32.html";
html32FormatOptions.HTMLEnableSeparatedPages = False
html32FormatOptions.HTMLEnableSeparatedPages = 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;
Procedura
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;
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";
html40FormatOptions.HTMLFileName = "html40.html"
html40FormatOptions.HTMLFileName = "html40.html";
html40FormatOptions.HTMLEnableSeparatedPages = True
html40FormatOptions.HTMLEnableSeparatedPages = true;
html40FormatOptions.HTMLHasPageNavigator = True
html40FormatOptions.HTMLHasPageNavigator = true;
html40FormatOptions.FirstPageNumber = 1
html40FormatOptions.FirstPageNumber = 1;
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.
Procedura
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].
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.
Procedura
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
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.
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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].
Procedura
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.
End Sub
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;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions
exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Risultati
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].
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].
In questa sezione viene illustrato come creare 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;
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.
9. Fuori dal blocco Try/Catch, impostare la proprietà Visible del controllo Label message su "True".
message.Visible = True
message.Visible = true;
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();
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().
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:
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.
○ 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;
}
In questa sezione viene illustrato come modificare il metodo ExportSetup() per creare cartelle per i formati di
esportazione HTML32 e HTML40.
Procedura
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à.
End If
if (!System.IO.Directory.Exists(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à.
End If
if (!System.IO.Directory.Exists(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().
Procedura
1. Nel metodo ExportSelection(), dichiarare una variabile di stringa e creare l'istanza della variabile in una
stringa vuota.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.CrystalReport,
myFileName)
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.CrystalReport,
fileName);
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);
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.WordForWindows,
myFileName)
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.WordForWindows,
fileName);
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.Excel,
myFileName)
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.Excel,
fileName);
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.PortableDocFormat,
myFileName)
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.PortableDocFormat,
fileName);
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML32, myFileName)
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML32, fileName);
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);
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:
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.
● 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.
Procedura
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.
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;
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
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.
Procedura
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.
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;
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.
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]
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].
In questa sezione viene descritto come creare 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.
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;
ExportSetup()
ExportSelection()
ExportSetup();
ExportSelection();
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().
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
○ 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;
}
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.
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.
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.
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.
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.
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.
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.
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.
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.
In questa sezione viene illustrato come chiamare il metodo ExportToStream() e come scrivere i dati del report
esportato in un file nel formato specificato.
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.
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.
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);
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:
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:
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
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.
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.
● 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
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].
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
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
Procedura
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.
In questa sezione viene descritto come applicare un filtro ai dati del report.
Procedura
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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 (!IsPostBack)
{
}
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.
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;
Risultati
Nella sezione successiva viene descritto come creare sul form i controlli che consentono di regolare in modo
dinamico la formula di selezione.
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.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
EqualTo
GreaterThan
GreaterThanOrEqualTo
LessThan
LessThanOrEqualTo
NotEqualTo
EqualTo,
GreaterThan,
GreaterThanOrEqualTo,
LessThan,
LessThanOrEqualTo,
NotEqualTo
○ 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;
Risultati
Nella sezione successiva viene descritto come creare un metodo che recupera le selezioni dal controllo quando si
fa clic sul pulsante Rivisualizza report.
In questa sezione viene descritto come recuperare le selezioni dal controllo DropDownList (Web) o ComboBox
(Windows).
Procedura
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.
4. All'interno del metodo, dichiarare una stringa selectedOperator e assegnarle un valore di stringa vuoto.
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.
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;
}
Return selectedOperator
return selectedOperator;
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.
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.
Procedura
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;
ConfigureCrystalReports()
ConfigureCrystalReports();
Risultati
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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.
Procedura
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:
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
customerBySalesNameReport.DataDefinition.SavedDataSelectionFormula =
selectionFormula
customerBySalesNameReport.DataDefinition.SavedDataSelectionFormula =
selectionFormula;
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
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
Procedura
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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:
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
Per iniziare, creare un report con informazioni 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, 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
In questa sezione viene descritto come impostare nel report i collegamenti ipertestuali per collegare informazioni
generali a informazioni più dettagliate.
Procedura
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Procedura
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].
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.
Contesto
Procedura
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.
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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
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
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].
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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].
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.
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:
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
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
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
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.
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.
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.
Contesto
Il report viene creato e designato come report per il controllo CrystalReportSource. A questo punto è possibile
creare ed eseguire il progetto.
Procedura
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
○ Il tag CrystalReportSource, che contiene il tag Report nidificato. Il tag Report fa riferimento al report nella
proprietà FileName.
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.
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:
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
Prerequisiti
Prima di creare un progetto Windows, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio sia installato nel sistema.
Procedura
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
Contesto
Il report viene creato e diventa il report designato per il controllo CrystalReportViewer. A questo punto è possibile
rinominare la variabile del report.
Procedura
Contesto
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Procedura
Nota
In C# la classe vuota contiene solo il costruttore di classe.
public Form1()
{
InitializeComponent();
}
Contesto
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].
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:
Nota
DataSources viene visualizzata come proprietà del report nella finestra Proprietà o come tag nella
visualizzazione del codice HTML (visualizzazione Origine).
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
Informazioni correlate
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
○ 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.
Procedura
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Informazioni correlate
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
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.
Contesto
Il report viene creato e designato come report per il controllo CrystalReportSource. A questo punto è possibile
creare ed eseguire il progetto.
Procedura
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
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.
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Nota
Ricordarsi di utilizzare un account di database con accesso limitato.
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.
Sul Web Form sono ora presenti tre controlli correlati l'uno all'altro:
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
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>
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:
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Prerequisiti
Prima di creare un sito Web, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio sia installato nel sistema.
Procedura
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
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.
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...>.
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.
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.
Risultati
A questo punto è possibile aggiungere un parametro denominato Città e compilarlo con i valori predefiniti.
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.
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.
Contesto
Il report viene creato e designato come report per il controllo CrystalReportSource. A questo punto è possibile
creare ed eseguire il progetto.
Procedura
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:
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
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.
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
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
Procedura
<Parameters>
<CR:controlparameter name="City" propertyname="SelectedValue"
controlid="cityList"></CR:controlparameter>
</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. 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].
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:
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
Contesto
Prima di creare un sito Web, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft Visual
Studio sia installato nel sistema.
Procedura
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:
Informazioni correlate
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.
End Sub
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:
End Sub
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;
Contesto
Procedura
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
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
Prerequisiti
Prima di creare un progetto Windows, verificare che SAP Crystal Reports, versione per sviluppatori per Microsoft
Visual Studio sia installato nel sistema.
Procedura
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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:
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. 539
CrystalDecisions.Windows.Forms.DrillEventArgs e)
{
In questa sezione viene descritto come aggiungere testo al controllo Label per indicare quale parte del report è
stata analizzata in dettaglio.
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.
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:
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:
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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:
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.
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.
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.
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.
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.
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>
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
}
}
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).
○ 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.
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);
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);
Return myDataSet
return dataSet;
Risultati
La proprietà CustomerDataSet viene creata e può essere chiamata da qualsiasi punto del progetto.
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.
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.
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
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.
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].
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.
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;
customerReport.SetDataSource(myDataSet)
customerReport.SetDataSource(dataSet);
myCrystalReportViewer.ReportSource = customerReport
crystalReportViewer.ReportSource = customerReport;
Procedura
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
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.
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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
customerReport.Load(reportPath)
customerReport.Load(reportPath);
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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;
Contesto
Procedura
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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 sta creando un sito Web, passare a Memorizzazione in cache del DataSet in un sito Web [pagina 553].
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
myDataSet = DataSetConfiguration.CustomerDataSet
dataSet = DataSetConfiguration.CustomerDataSet;
4. Sostituire questa riga di codice con un blocco condizionale completo che ricerchi un valore Cache
denominato "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. 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 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
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:
Nota
le classi per questo provider dei dati si trovano nello spazio dei nomi System.Data.OleDb.
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:
Informazioni correlate
Procedura
○ 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.
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
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.
12. Creare una seconda constante di stringa privata per la stringa di query del database.
13. Creare un metodo pubblico "Shared" [Visual Basic] o "static" [C#] denominato
GetCustomersUsingOleDb() che restituisca IDataReader.
14. All'interno di questo metodo, dichiarare e creare un'istanza di OleDbConnection e passare la costante
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();
Return myIDataReader
return 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
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
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.
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
● 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.
Procedura
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].
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;
Contesto
A questo punto è possibile creare ed eseguire il progetto. Passare alla sezione successiva.
Procedura
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. 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.
Nota
Al momento della compilazione, copiare il report nella directory contenente il file eseguibile.
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.
Procedura
Nota
Affinché il report non incorporato venga caricato dall'eseguibile Windows in fase di esecuzione, è
necessario salvare il report nella stessa directory dell'eseguibile.
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:
Informazioni correlate
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.
Sub New()
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. 567
set
{
_price = value;
}
}
<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
10. Dopo la classe Stock creare una nuova classe Company che esponga due proprietà pubbliche, simbolo e
nome.
public 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. 569
set { _symbol = value; }
}
Risultati
A questo punto è possibile accedere a questo oggetto dal componente incorporato SAP Crystal Report Designer.
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
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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);
stockObjectsReport.SetDataSource(stockValues)
stockObjectsReport.SetDataSource(stockValues);
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.
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().
End Sub
Else
End If
if(Session["stockValues"] == null)
{
}
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. 573
5. Creare tre oggetti Company, ciascuno con un simbolo e un nome.
6. Quindi, usare il costruttore overload della classe Stock per creare e assegnare tre istanze della classe Stock.
stockValues.Add(s1)
stockValues.Add(s2)
stockValues.Add(s3)
stockValues.Add(s1);
stockValues.Add(s2);
stockValues.Add(s3);
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 = (ArrayList)Session["stockValues"];
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();
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.
Procedura
Nota
Per aprire la pagina ASPX in visualizzazione Progettazione, aprire il file, quindi fare clic sul pulsante
Progettazione nella parte inferiore del form.
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().
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
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.
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 = 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 = Convert.ToInt32(volume.Text);
stockValues.Add(temp)
stockValues.Add(temp);
Session("stockValues") = stockValues
Session["stockValues"] = stockValues;
ConfigureCrystalReports()
ConfigureCrystalReports();
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.
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.
Procedura
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}
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
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.
Se non si verificano errori di compilazione, la pagina Default.aspx viene caricata nel browser.
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.
● 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:
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
● 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.
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.
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
○ 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
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
○ 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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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].
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)
<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.
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.
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>
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.
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
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>
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.
Risultati
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.
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
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].
Risultati
In questo scenario:
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.
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.
Procedura
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].
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
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
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.
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)".
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....
Risultati
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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 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 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:
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:
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
Contesto
In questa sezione vengono descritte le procedure per creare la libreria di classi UFL e configurarla per la
registrazione nell'interoperabilità COM.
Procedura
Nota
Tutte le librerie funzioni utente devono essere precedute da CRUFL per essere riconosciute da SAP Crystal
Reports Designer incorporato.
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.
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
Contesto
In questa sezione vengono descritte le procedure per creare un'interfaccia e configurarla con gli attributi COM.
Procedura
Nota
In Visual Basic ricordare di cambiare sia la firma di apertura che quella di chiusura. In C# eliminare il
costruttore.
Imports System.Runtime.InteropServices
using System.Runtime.InteropServices;
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
{
}
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.
Risultati
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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;
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.
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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.
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.
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.
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.
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.
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
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.
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;
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.
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
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:
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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.
● 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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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.
● 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.
SAP Crystal Reports, versione per sviluppatori per Microsoft Visual Studio offre i tipi di moduli di installazione
ridistribuibili seguenti:
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.
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
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
Risultati
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.
Procedura
Driver di 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. 617
Nome della proprietà per il driver di database Descrizione
InstallFILESYSTEM Driver di database Crystal Reports per dati del file sy
stem
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
Altro
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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:
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:
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:
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].
Nota
Windows Installer fornisce i file di runtime di SAP Crystal Reports richiesti da un progetto di distribuzione.
Informazioni correlate
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.
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.
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.
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
http://localhost/ProjectName/publish.htm
○ 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.
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.
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.
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
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).
Prerequisiti
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
● 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.
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.
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
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).
Prerequisiti
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
● setup.exe
● setup1.msi
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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).
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.
Prerequisiti
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
● setup.exe
● setup1.msi
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.
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.
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
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).
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.
Prerequisiti
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
● setup.exe
● setup1.msi
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
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.
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.
Procedura
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
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.
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.
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
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
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
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
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
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.
Informazioni correlate
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
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.
Informazioni correlate
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.
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
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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
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
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.
● 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
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.
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
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".
È 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:
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.
Informazioni correlate
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.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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).
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
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
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.
● 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.
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.
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
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.
È 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.
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
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.
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
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:
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
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
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.
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
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.
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
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
Nota
Per impostazione predefinita, il comando viene denominato comando. È possibile modificarne l'alias
selezionandolo e premendo F2.
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.
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:
Testo richiesta Immettere il testo che si desidera visualizzare quando il programma effettua una
richiesta all’utente.
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.
Procedura
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.
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
Contesto
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.
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
Oggetti 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
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
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.
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
Suggerimento
Ridimensionare un campo e la relativa intestazione premendo CTRL e contemporaneamente facendo clic
per selezionare entrambi gli oggetti.
Informazioni correlate
Procedura
Suggerimento
Eliminare un campo e la relativa intestazione premendo CTRL e contemporaneamente facendo clic per
selezionare entrambi gli oggetti.
2. Premere Elimina.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
PrintDate
Informazioni correlate
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
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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]
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.
Procedura
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
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.
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.
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
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à.
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.
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 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.
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 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 (######).
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.
Risultati
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.
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.
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.
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:
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:
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.
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
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:
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.
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.
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:
Nella tabella che segue sono riportati i tipi di campi consentiti nei diversi filtri dei report:
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
La tabella che segue mostra le differenze di comportamento associate ai diversi filtri dei report:
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:
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
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.
Per creare una formula di selezione dei record, utilizzare la sintassi Crystal.
Informazioni correlate
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.
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.).
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.).
Seleziona i record nei quali il valore del campo {file.CAMPO} è maggiore di 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
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).
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).
Le funzioni Month, Day e Year possono essere utilizzate negli esempi riportati di seguito:
Seleziona i record nei quali l’anno contenuto nel campo {file.DATA} è precedente al 1999.
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).
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).
Seleziona tutti i record nei quali la data contenuta nel campo {file.DATA} è precedente alla data odierna.
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.
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.
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.
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:
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.
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:
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.
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.
● 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:
Booleano è richiesta una risposta Sì/No, "Includere le cifre del bilancio pre
True/False (vero/falso). ventivo nel 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. 689
Tipo dati Definizione Esempio parametro
● È 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
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.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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.
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).
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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.
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.
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.
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
È 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.
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.
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
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:
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
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.
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
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
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.
○ 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
Informazioni correlate
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
Segni di punteggiatura
Numeri
Lettere maiuscole
Lettere minuscole
Tre lettere
Ad esempio:
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
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.
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.
● 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.
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
Contesto
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
Contesto
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.
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.
Informazioni correlate
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:
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.
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.
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
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.
Informazioni correlate
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
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
Nel caso di un elenco di valori non raggruppati è possibile che si desideri calcolare il totale intermedio solo di
alcuni valori nell’elenco.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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"
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
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.
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.
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.
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
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
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.
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).
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.
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.
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
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
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.
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
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.
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.
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.
Risultati
Una volta salvata, la funzione personalizzata può essere modificata o utilizzata all'occorrenza nelle formule del
report.
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.
La sintassi Basic per le funzioni personalizzate è molto simile a quella per le funzioni in Visual Basic.
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
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.
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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:
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
Il quadrato di 5 è 25.
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
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.
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 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.
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.
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.
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.
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.
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.
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.
Informazioni correlate
La formattazione condizionale viene applicata solo in determinate condizioni. Ad esempio, è possibile che in un
report si desideri solo:
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
If Condition A Then
crRed
Else
crBlack
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.
If Condition A Then
crRed
Else If Condition B Then
crBlack
Else If Condition C Then
crGreen
Else
crBlue
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
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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>
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.
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 è 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
● 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):
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.
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
○ 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:
○ 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].
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:
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
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.
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.
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.
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.
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
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.
Nota
Il pulsante Incolla collegamento non è disponibile se l’oggetto di destinazione non è stato copiato.
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:
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.
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.
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")
/USA/Bicycle
/Country[USA]/Product Class[Bicycle]
/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:
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.
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.
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.
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
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.
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:
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.
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.
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.
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.
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
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.
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
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
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.
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.
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.
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
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
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
Procedura
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.
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
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
● 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.
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.
● 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:
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
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.
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
In questa sezione viene illustrato come utilizzare un campo incrociato dopo averlo aggiunto al report.
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
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
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.
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.
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.
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.
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.
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.
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.
Questa sessione fornisce i passaggi necessari per omettere i dati del report. È possibile omettere:
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.
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.
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.
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.
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.
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
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.
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).
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).
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.
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.
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.
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.
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.
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.
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.
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
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
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
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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, 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.
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
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:
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.
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".
L'uso della variabile formula è simile alla scrittura di una funzione denominata formula in Visual Basic.
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:
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
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
Per conoscere l’importo totale di un particolare prodotto di cui è stato eseguito l’ordine, moltiplicare il prezzo
unitario per la quantità ordinata:
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:
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.
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
Utilizzare il segno uguale (=) quando si eseguono le assegnazioni. Facoltativamente, può essere inclusa anche la
parola chiave Let.
Esempio
x = 10
Let y = 20
In questa sezione sono descritti i tipi di dati semplici disponibili in SAP Crystal Reports.
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.
10000
-20
1.23
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.
È anche possibile estrarre sottostringhe da una stringa utilizzando le funzioni Left, Right e Mid.
True
False
Nota
È possibile utilizzare Yes al posto di True e No al posto di False.
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
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,
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:
I valori di data possono essere costruiti con CDate e i valori di ora con CTime:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
2 To 5
2 _To 5
Is <= 5
Is < 5
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.
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:
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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:
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:
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.
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:
È possibile dichiarare più di una variabile per istruzione separandone le dichiarazioni con le virgole:
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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)
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.
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.
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.
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.
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
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.
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:
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:
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:
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.
È possibile assegnare valori agli elementi di una matrice e utilizzare tali valori per altri tipi di calcolo.
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.
Diverse variabili possono essere dichiarate in un'unica istruzione separando le rispettive dichiarazioni con le
virgole.
Informazioni correlate
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
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
● 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
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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.
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.
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].
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.
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.
Il gruppo delle funzioni di riepilogo fornisce le funzioni per la creazione di campi di riepilogo, ad esempio:
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.
È 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:
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}
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
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.
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
Informazioni correlate
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
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.
Le seguenti funzioni restituiscono i valori degli attributi relativi a un documento: Ad esempio, le funzioni
PrintDate e ReportTitle.
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.
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.
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.
O più semplicemente:
è vera e la formula restituisce il valore Vero. Al contrario, se l’importo delle vendite dell’ultimo anno è maggiore o
uguale a 50.000
● 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:
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.
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 (^).
Ordine di precedenza
● 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:
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.
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).
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).
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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.
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
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.
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:
In questo esempio, se la condizione {Dipendente.Dip} = "Vendite" dà come risultato true (vero), l'espressione
verrà elaborata. In caso contrario, verrà elaborata l’istruzione che segue la clausola Else,
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.
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.
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%.
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.
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.
L’esempio seguente mostra diverse forme di istruzione If linea singola, corrette dal punto di vista sintattico:
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):
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.
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".
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.
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
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.
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.
È 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 è:
la formula restituisce 3.
Un ciclo Do 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
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
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.
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.
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
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
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.
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:
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".
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.
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".
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:
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 riepilogo e nome di gruppo hanno l’aspetto simile alle chiamate di funzione. Tuttavia, rappresentano
realmente notazioni abbreviate di campi del report.
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:
Per conoscere l’importo totale di un particolare prodotto di cui è stato eseguito l’ordine, moltiplicare il prezzo
unitario per la quantità ordinata:
Per calcolare un prezzo di vendita uguale all’80 per cento del prezzo unitario originale:
Un'espressione è una combinazione qualsiasi di parole chiave, operatori, funzioni e valori costanti che restituisce
un valore di un certo tipo. Ad esempio:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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 (;).
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
È 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.
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
L'operatore di assegnazione è costituito da due punti seguiti dal segno uguale (:=).
Ad esempio:
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.
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
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)
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:
È 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.
È anche possibile estrarre sottostringhe da una stringa utilizzando le funzioni Left, Right e Mid.
True
False
Nota
È possibile utilizzare Yes al posto di True e No al posto di False.
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
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,
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:
I valori di data possono essere costruiti con CDate e i valori di ora con CTime:
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.
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
2 _To 5
UpTo 5
UpTo_ 5
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.
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:
Informazioni correlate
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]
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:
Per indicizzare le matrici è possibile utilizzare anche gli intervalli numerici. Il risultato è un’altra matrice. Ad
esempio:
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:
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.
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:
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:
Informazioni correlate
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.
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:
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.
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.
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;
Per utilizzare le variabili condivise, è necessario dichiarare la variabile e assegnarle un valore prima di trasferirla
dal report principale al sottoreport.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
È possibile assegnare valori agli elementi di una matrice e utilizzare tali valori per altri tipi di calcolo.
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.
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.
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.
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
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.
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:
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:
Nota
Non sono consentite le conversioni inverse. Ad esempio:
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.
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.
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.
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].
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.
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.
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
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.
O più semplicemente:
è vera e la formula restituisce il valore Vero. Al contrario, se l’importo delle vendite dell’ultimo anno è maggiore o
uguale a 50.000
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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.
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 (^).
Ordine di precedenza
● 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
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.
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).
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).
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
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:
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.
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
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.
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:
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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%.
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.
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:
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 "".
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".
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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:
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.
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".
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.
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
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.
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:
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.
È 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.
la formula restituisce 3.
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.
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
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
● 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.
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.
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.
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
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
Informazioni correlate
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.
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.
Informazioni correlate
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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
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
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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.
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].
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.
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
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.
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.
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.
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.
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:
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.
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.
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.
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:
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.
Dopo aver selezionato Torta nella scheda Galleria, è possibile scegliere una o più opzioni tra quelle riportate di
seguito:
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:
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.
● 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
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
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
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
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".
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.
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.
Valori predefiniti Fare clic su Valori predefiniti per specificare le impostazioni predefinite di prompt per il
campo di parametro che si sta creando.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
Utilizzo dell'Esperto report Segue l'utente durante il processo di creazione del report e aggiunge le selezioni a
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
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.
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
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.
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
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.
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.
Utilizzare la scheda Numero per impostare opzioni di formattazione dettagliate per i campi numerici 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. 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.
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-).
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.
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.
● 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.
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:
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.
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.
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.
La data di esempio nella parte inferiore della finestra di dialogo viene modificata in base alla
sequenza prescelta.
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.
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.
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.
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:
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.
Opzioni Consente di accedere alle opzioni che è possibile impostare globalmente nella scheda
Database della finestra di dialogo Opzioni.
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
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.
PrintDate
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.
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:
È 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.
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.
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.
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.
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.
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.
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.
Su e Giù Utilizzare i pulsanti Su e Giù per modificare l’ordinamento dei valori contenuti nell’elenco in basso.
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.
Informazioni correlate
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
● 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.
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.
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
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.
Ultimo Questa riga visualizza la data e l'ora dell'ultimo salvataggio del report.
salvataggio
Informazioni correlate
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
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
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.
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.
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.
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.
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.
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.
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
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.
Sostituisci Fare clic su questo pulsante per cercare il testo digitato nella casella Trova e sostituirlo con
la stringa inserita nel campo Sostituisci con.
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.
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
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
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.
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
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.
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:
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.
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.
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.
È 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.
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
È 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.
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:
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.
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.
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.
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.
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
È 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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
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:
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.
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.
È 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.
Nome sottoreport Utilizzare questo campo per rinominare un sottoreport a partire dal report che lo
contiene.
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
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.
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 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
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:
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.
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.
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.
Di seguito sono elencate le funzioni dei pulsanti della barra degli strumenti generale del Workshop formule:
Pulsante Descrizione
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
Crea una nuova formula del tipo selezionato dall’elenco. Consente anche di generare
una nuova funzione personalizzata o un'espressione SQL.
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.
Di seguito sono elencate le funzioni dei pulsanti della barra degli strumenti del Workshop formule:
Pulsante Descrizione
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.
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.
Nota
Questo pulsante non è disponibile per le funzioni personalizzate.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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:
Ctrl+C Copia.
Ctrl+F Apre la finestra di dialogo Trova, cui è possibile accedere anche facendo clic sull’ap
posito pulsante.
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+Maiusc+Tab Sposta lo stato attivo sulla casella di controllo successiva (ordine inverso rispetto a
Ctrl-Tab).
Ctrl+V Incolla.
Ctrl+X Taglia.
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
F3 Individua la voce successiva in base alle specifiche definite nella finestra di dialogo
Trova.
Informazioni correlate
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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
È 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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
È 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).
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.
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.
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.
È 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.
È 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.
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
È 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
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]
È 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.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
È 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
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.
Tipo join Il programma consente di specificare il tipo di collegamento che si desidera utilizzare per
l’unione delle tabelle.
Informazioni correlate
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
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
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.
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
È 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
È 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
È 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.
Informazioni correlate
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
È 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
È 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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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:
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.
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.
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.
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.
Informazioni correlate
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
È 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]
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
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]
È 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.
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
È 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.
Informazioni correlate
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
È 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
È 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
È 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.
È 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
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
È 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.
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.
Procedura
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.
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:
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.
È 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].
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:
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
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:
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.
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à.
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
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
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.
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
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ù.
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.
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
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.
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
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.
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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
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]
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.
Informazioni correlate
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
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.
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.
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
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
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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.
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.
● 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
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:
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.
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.
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.
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.
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.
Manuale per gli sviluppatori dell'SDK di SAP Crystal Reports per Visual 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
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.
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.
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.
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.
Numero di divisioni
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
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
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
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
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.
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.
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
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.
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
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
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:
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
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].
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:
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] .
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 tutto (>>) Consente di aggiungere tutti gli oggetti database al 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
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.
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
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.
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:
Informazioni correlate
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.
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
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
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
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
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 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.
Informazioni correlate
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
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).
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.
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.
Informazioni correlate
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
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.
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
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).
Nuova pagina Quando questa casella di controllo è selezionata, il programma inserisce un’interruzione di
dopo pagina dopo aver stampato la sezione.
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.
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:
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
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 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.
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.
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.
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