Crystal report.. questo semi-sconosciuto..

martedì 30 settembre 2008 - 12.15

angie81 Profilo | Junior Member

ciao
da pochissimo sto utilizzando Crystal Report ..
avrei qualche domandina..

a - tutorial on line per l'utilizzo di Crystal Report?

b - nel mio report ho inserito una sezione contenente solo il campo EMAIL e vorrei che tale sezione non comparisse se il campo mail è vuoto.
nel menu "Esperto sezione" per questa determinata sezione ho selezionato il campo "ometti sezioni vuote" .. ma ugualmente mi compare la riga bianca quando il campo mail è vuoto...

c - se utilizzo la stampa con Crystal Report in un applicativo on line.. l'utente che dal suo pc vuole stampare i miei report.. deve installare qualcosa sul suo pc?

freeteo Profilo | Guru

>ciao
>da pochissimo sto utilizzando Crystal Report ..
>avrei qualche domandina..
ottimo, siamo qui per questo!


>a - tutorial on line per l'utilizzo di Crystal Report?
ti do qualche link:
http://help.sap.com/content/bobj/overview/index.htm (dove impostando i filtri puoi ricavarti cose ufficiali, sia come sviluppo, che come deployment etc...)
http://msdn.microsoft.com/it-it/library/ms225416(VS.80).aspx (d'obbligo un link su msdn)


>b - nel mio report ho inserito una sezione contenente solo il
>campo EMAIL e vorrei che tale sezione non comparisse se il campo
>mail è vuoto.
>nel menu "Esperto sezione" per questa determinata sezione ho
>selezionato il campo "ometti sezioni vuote" .. ma ugualmente
>mi compare la riga bianca quando il campo mail è vuoto...
vero perchè il fatto è che lui sente cmq la presenza del campo e quindi per lui quella sezione non è vuota...si lo so è forviante ma è così.
Facile sistemare il problema, nell'esperto sezione->suppress->[X+2] (ovvero il pulsante "formula" per la proprietà "sopprimi") gli dici di controllare tu il campo, ovvero gli metti:
isnull({campoDelDb}) or {campoDelDb}=''


>c - se utilizzo la stampa con Crystal Report in un applicativo
>on line.. l'utente che dal suo pc vuole stampare i miei report..
>deve installare qualcosa sul suo pc?
cosa intendi per "online", intendi di agganciare dentro il report in una web application asp.net? se è così, puoi decidere 2 formati di stampa:
1- PDF => ti genera un file pdf e l'utente se lo stampa come vuole
2- OCX => ti installa un ocx locale (la prima volta) e ti chiede su che stampante stampare etc...cmq diciamo con "accesso diretto" alla stampante del tuo pc.
sono impostabili con l'attributo (che poi è la proprietà dell'oggetto) "PrintMode" del CrystalReportViewer che metterai nella pagina.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member


>cosa intendi per "online", intendi di agganciare dentro il report
>in una web application asp.net? se è così, puoi decidere 2 formati
>di stampa:
>1- PDF => ti genera un file pdf e l'utente se lo stampa come
>vuole
>2- OCX => ti installa un ocx locale (la prima volta) e ti
>chiede su che stampante stampare etc...cmq diciamo con "accesso
>diretto" alla stampante del tuo pc.
>sono impostabili con l'attributo (che poi è la proprietà dell'oggetto)
>"PrintMode" del CrystalReportViewer che metterai nella pagina.

si .. online con un'applicazione asp.net .. l'utente potrà selezionare dei parametri di ricerca .. visualizzare a video i risultati.. e stampare..
quindi così facendo.. se stampassi solo in pdf non servirebbe nessun componente da installare per l'utente?

mentre lo stesso è indispensabile per la stampa "normale"...

freeteo Profilo | Guru

>si .. online con un'applicazione asp.net .. l'utente potrà selezionare
>dei parametri di ricerca .. visualizzare a video i risultati..
>e stampare..
>quindi così facendo.. se stampassi solo in pdf non servirebbe
>nessun componente da installare per l'utente?
esatto, viene mandato in risposta al pulsante il pdf, quindi di media viene aperto da AcrobatReader (o ancora meglio FoxitReader ) e quindi poi viene lasciato a programma la stampa, come se fosse un normale download di file...


>mentre lo stesso è indispensabile per la stampa "normale"...
si diciamo che la prima volta all'utente viene chiesto di isntallare l'ocx, con la solita barra giallina che ti chiede di attivare etc. in internet explorer...insomma una scomodità doverlo spiegare all'utente al telefono.
Se invece ci sei tu, ti fai un giro sui vari pc, e fatto una volta non te lo chiede più.
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

oltre che in pdf .. è possibile esportare in .doc?

inoltre io dovrei avere 1 pagina per ogni record selezionato..
comporta qualcosa questo per l'esportazione dei dati?


per quanto riguarda le licenze e lato server.. come devo procedere?

freeteo Profilo | Guru

>oltre che in pdf .. è possibile esportare in .doc?
gestitio automaticamente con il pulsante "print" del viewer, no.
Puoi però farti un pulsante tu, esportare in doc, e poi darlo in risposta al browser, casomai ti servisse ti posso postare del codice utile.


>inoltre io dovrei avere 1 pagina per ogni record selezionato..
>comporta qualcosa questo per l'esportazione dei dati?
se vuoi questo allora devi farlo direttamente nel report, impostando la proprietà "New page After" della sezione che vuoi come "fine record" (se hai tutto sulla riga dettagli, allora è proprio la dettagli a cui mettere questa proprietà, se hai gruppi allora basta impostarlo nella sezione "Group Footer")


>per quanto riguarda le licenze e lato server.. come devo procedere?
allora diciamo che Crystal non da una licenza lato server "piena" nel senso che puoi usarlo ma il runtime è soggetto a delle limitazioni di prestazioni/richieste che potrebbero darti fastidio.
Fai così, provalo, magari quando lo carichi usa l'overload dove puoi specificare l'enum "OpenReportByTmpCopy", e vedere di aumentare questa chiave di registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\Server\PrintJobLimit
insomma piccoli trucchetti per fare andare lo stesso (entro certi limiti) la tua applicazione.
Se anche così vedi che ti da errori strani ogni tanto, o cmq è troppo lento allora si, devi valutare una licenza aggiuntiva (che sinceramente non conosco bene come/dove) perchè significa che hai troppi accessi contemporanei.
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

>>oltre che in pdf .. è possibile esportare in .doc?
>gestitio automaticamente con il pulsante "print" del viewer,
>no.
>Puoi però farti un pulsante tu, esportare in doc, e poi darlo
>in risposta al browser, casomai ti servisse ti posso postare
>del codice utile.

se puoi postare del codice te ne sarei grata :)

cmq ho aggiunto anche l'oggetto "ReportExporter" ed ho visto che in effetti l'esportazione in vari formati c'è.. solo che non mi consente di visualizzare l'anteprima (cioè il CrystalReportViewer stesso)

altra cosa.. per eseguire la stampa.. devo inserire io del codice? o basta il pulsante sulla toolbar del CrystalReportViewer?

freeteo Profilo | Guru

>se puoi postare del codice te ne sarei grata :)
certo! :
se hai agganciato il reportviewer ad un ReportSource nella pagina:
ReportDocument report = CrystalReportSource1.ReportDocument

Altrimenti se l'hai caricato tu da codice, e poi passato al reportviewer:
ReportDocument report =new ReportDocument(); report.Load("...path...report.rpt"); ... CrystalReportViewer.ReportSource= report; CrystalReportViewer.DataBind();

In entrambi i casi, quando hai recuperato l'oggetto "ReportDocument" che hai visualizzato sulla variabile "report" :
report.ExportToHttpResponse(ExportFormatType.WordForWindows, Response, true, "nome");
è il codice che te lo esporta, come vedi, in output sul browser con il "nome" che vuoi e il tipo che preferisci.





>cmq ho aggiunto anche l'oggetto "ReportExporter" ed ho visto
>che in effetti l'esportazione in vari formati c'è.. solo che
>non mi consente di visualizzare l'anteprima (cioè il CrystalReportViewer
>stesso)
questo componente non lo conosco, ho visto sul sito che è della versione XI, quindi non quella inclusa in Visual Studio.Io conosco il viewer ma l'exporter purtroppo no


>altra cosa.. per eseguire la stampa.. devo inserire io del codice?
>o basta il pulsante sulla toolbar del CrystalReportViewer?
allora se hai il viewer, è gia incluso il pulstante nella toolbar, se così non fosse impsta la proprieta "HasPrintButton="True"".
Come ti dicevo prima, il print è gestito dal viewer, quindi o in pdf o tramite ocx, ma non hai nessun evento da intercettare per poterlo gestire, diciamo che è tutto già fatto.
Quindi vedi tu se ti va bene com'è (cosa che al 90% delle volte è veritiera) oppure devi fare un bottone tu e gestirlo da codice dando in ritorno un documento che poi l'utente si stamperà (avere accesso alla stampante del client non è ovviamente possibile in asp.net, che è appunto una tecnologia "lato server").
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

io infatti ho realizzato il report con l'ultima versione di Crystal.

cmq inserendo il tuo codice per l'esportazione ho lo stesso risultato che avevo con ReportExporter, cioè non vedo il viewer di Crystal ma solo la finestra di Windows che mi chiede di aprire o salvare il file ".doc" .. io invece vorrei visualizzare il report e poi cliccando sul pulsante esporta, dare la possibilità all'utente di esportare i dati .. mentre cliccando su stampa.. la possibilità di stampare (cosa che non avviene neanche dato che cliccando sul pulsane della toolbar non fa nulla..))

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

freeteo Profilo | Guru

>io infatti ho realizzato il report con l'ultima versione di Crystal.
ok

>cmq inserendo il tuo codice per l'esportazione ho lo stesso risultato
>che avevo con ReportExporter, cioè non vedo il viewer di Crystal
>ma solo la finestra di Windows che mi chiede di aprire o salvare
certo, infatti il mio codice è quello per esportare...forse non ho capito cosa vuoi fare


>il file ".doc" .. io invece vorrei visualizzare il report e poi
>cliccando sul pulsante esporta, dare la possibilità all'utente
>di esportare i dati .. mentre cliccando su stampa.. la possibilità
ma allora a te basta il viewer, che ha i bottoni già predisposti a queste funzionalità


>di stampare (cosa che non avviene neanche dato che cliccando
>sul pulsane della toolbar non fa nulla..))
mmm...questo non mi convince, c'è qualcosa di sbagliato allora...


>CrystalReportViewer1.ReportSource = Server.MapPath("CTF005.rpt");
questa riga è sbagliata, come reportsource devi passare l'oggetto report che hai caricato


Ti basterebbe un codice come questo:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

uhm.. c'è qualcosa che non quadra..
io sto già utilizzando il viewer .. ma i tasti stampa / esporta / navigazione pagine.. non funzionano..

Questo il codice della mia applicazione .aspx

default.aspx

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

default.aspx.cs

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

freeteo Profilo | Guru

ciao,
allora nel codice csharp fai uno switch che però dentro ai vari case fa sempre le stesse operazioni, e cambia solo il nome del file, non ti basta usare la variabile "reportid" per comporre il nome del report da caricare?
Intendo:
... //--- al posto del case... Report.Load(Server.MapPath(reportid + ".rpt")); Report.SetDataSource(dsTemp.Tables[0]); CrystalReportViewer1.ReportSource = Report; CrystalReportViewer1.DataBind();

poi nella parte aspx, nel tag del viewer impostando HasExportButton="True" e HasPrintButton="True" dvresti vederli ed utilizzarli.

Per caso hai impostato "no printer" nelle proprietà della stampante quando sei in design del report?
Perchè con quel flag, il motore del report non permette la stampa, e quindi potrebbe forzare il pulsante stampa nascosto...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

si.. in effetti.. potrei fare anche così ..
ma questo cmq non risolve il mio problema.. dato che posso solo visualizzare ma non stampare / esportare / navigare tra le pagine.. pur utilizzando il viewer di Crystal...

freeteo Profilo | Guru

Perdonami, stavo finendo di scrivere ancora nel post di sotto e mi è partito un "salva" con un messaggio incompleto.
L'ho sistemato, ma tu avevi già risposto, rileggi tutto il post mio precedente.

Altra domande:
- ma la toolbar del viewer la vedi ci sono tutti i vari bottoni e non sono abilitati o non ci sono proprio?
- il report nel viewer viene visualizzato (con i vari dati/immagini/grafici etc...) correttamente?
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

i due tasti del viewer li visualizzo.. sono attivi .. ma al click nulla..
il report è visualizzato correttamente..

come posso controllare il "no printer" nel design?
il report l'ho realizzato con Crystal, non con Visual studio..

freeteo Profilo | Guru

>i due tasti del viewer li visualizzo.. sono attivi .. ma al click nulla..
>il report è visualizzato correttamente..
non è che hai il blocco pup-up? perchè tenta di aprire una pagina nuova del browser, permettendoti di scegliere i parametri di stampa/esportazione...


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

nessun blocco popup...

freeteo Profilo | Guru

riesci a darmi la pagina e il report (magari con un db di dati di prova ancora meglio, ma non è necessario) con la stessa tua configurazione e allegarlo qui, o mandarmelo via email?
Così vedo di indagare a fondo, perchè questo comportamento è veramente strano...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

ciao
finalmente ho risolto...
è un problema di compatibilità di Crystal con Visual Web Developer 2008 Express Edition (avevo realizzato con questo software il mio progetto).
ricreato con Visual Studio 2003 nessun problema e il viewer di Crystal Report funziona alla perfezione!

angie81 Profilo | Junior Member

rettifico..
funziona tutto tranne la navigazione tra la pagine..
ho un report di 124 pagine.. vedo la prima.. vado avanti.. vedo la seconda.. e poi nulla.. se vado avanti resto sempre sulla seconda pagina..

freeteo Profilo | Guru

>è un problema di compatibilità di Crystal con Visual Web Developer
>2008 Express Edition (avevo realizzato con questo software il mio progetto).
>ricreato con Visual Studio 2003 nessun problema e il viewer
hai fatto un salto di 3 versioni di framework visual studio 2003 usa la versione 1.1, mentre la 2008 usa il 3.5.
Cmq penso di aver capito allora che il problema è dovuto al fatto che il webserver (anche se di debug) non era configurato per gesire le chiamate del viewer per 2003, perchè quando premi i bottoni della toolbar lui fa delle chiamate a degli handler (che con il runtime vengono installati) che poi si occupano di dare le pagine di stampa/esportazione etc... in automatico.

Probabilmente avresti risolto con il viewer per 2008, che è dentro a visual studio 2008, oppure lo trovi come runtime da installare:
http://service.sap.com/sap/bc/bsp/spn/bobj_download/main.htm

però tu devi valutare che versione hai di report, e fare l'installazione se ti serve, del pacchetto corretto.
Non ho capito come hai fatto il report, con che versione? Se hai usato la XI, devi installare il runtime della XI, e quello dovrebbe sistemare anche i viewer che poi usi nel sito a runtime.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

angie81 Profilo | Junior Member

il report l'ho fatto con la XI e il runtime che avevo in Visual Studio è quello della XI ...

angie81 Profilo | Junior Member

risolto il problema della navigazione..
ho spostato il mio codice dall'evento Page_Load ad OnInit


dovrei accettare la mia stessa risposta

freeteo Profilo | Guru

>dovrei accettare la mia stessa risposta
vero

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5