Crystal Report Lento

venerdì 04 agosto 2006 - 17.14

Gianluca Profilo | Newbie

Salve,
son passato da Visual Studio 2002 e il relativo Crystal a VS.NEt 2005 e Relativo Crystal. Ho avuto un sacco di problemi. Il più importante è che un report che prima mi si visualizzava in 2 secondi ora mi si viuslizza in 12 su una macchina notevole, non oso pensare su macchine "normali" dove prima il report ci metteva 5 o sei secondi.

Il report ha molti sottoreport (una decina) e prendi i dati da un dataset.

Alcuni di voi hanno avuto lo stesso problema? Sanno come risolverlo?

Grazie e saluti
Gianluca

freeteo Profilo | Guru

ciao,
sinceramente non ho avuto assolutamente problemi nell'upgrade,anzi...strano.
A parte il tuo problema, devo anche dire che 10 sottoreport sono 1po tantini, sei sicuro che non puoi lavorare a livello di query sql per fare delle left join che poi aggreghi con raggruppamenti?perche' cosi' facendo fai lavorare meno il runtime...

Questo e' indipendente dalla versione del report, è 1 mio consiglio "generico" per ottimizzare 1po i processi
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

Gianluca Profilo | Newbie

Ciao,
ho verificato e quasiasi report che faccio con la nuova versione è più lento.

So di avere molti sottoreport ma già con 2 o 3 il report diventa moolto lento. La funzione lenta è la SetDataSource quando imposto il DataSet nel report.

Vedo se riesco a fare un esempio e a postarlo.

Saluti
Gianluca

freeteo Profilo | Guru

ciao,
strano.

Non è che visualizzi troppi dati e quindi hai i dataset/datatable troppo grosso?
hai tabelle linkate? prova ad utilizzare left join a livello di query sql per dar meno da fare al report...

Prova eventualmente a specificare le logonInfo al posto di settargli tu il datasource, tipo come si spiega in questo thread:
http://dotnethell.it/forum/messages.aspx?ThreadID=5078
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

Gianluca Profilo | Newbie

Ciao,
mentre provavo ai buttar giù un esempio da postare ho scoperto chela velocità del SetDataSource è influenzata da delle operazioni precedenti.

Ovvero prima di fare il SetDataSource, mi giro tutto il report per impostare ad ogni oggetto un font diverso da quello a design time e già questo è più lento con la nuova versione, non molo ma un po sì.

Facendo l'ApplyFont prima del SetDataSource, il SetDataSource dura un infinità, 10-20 secondi, se prima non cambio il font il SetDataSource dura un secondo circa.

Provo a buttar giù un esempio e lo posto. Volevo far delle prove a far l'apply dopo il set ... vi farò sapere.

Saluti
Gianluca

P.S.
Non posso fara accedere direttamente il report al DB.

freeteo Profilo | Guru

>Ciao,
>mentre provavo ai buttar giù un esempio da postare ho scoperto
>chela velocità del SetDataSource è influenzata da delle operazioni
>precedenti.
allora lei ha velocita' normale?

>Ovvero prima di fare il SetDataSource, mi giro tutto il report
>per impostare ad ogni oggetto un font diverso da quello a design
>time e già questo è più lento con la nuova versione, non molo
>ma un po sì.
ti conviene usare 1parametro e dentro ai singoli oggetti vai a mettere la proprieta' font soggetta a formula che considera il parametro pe metteer questo o quel font


>Facendo l'ApplyFont prima del SetDataSource, il SetDataSource
>dura un infinità, 10-20 secondi, se prima non cambio il font
>il SetDataSource dura un secondo circa.
non so di questa dipendenza cmq fai come ti ho consigliato prima, è il metodo piu corretto

>Provo a buttar giù un esempio e lo posto. Volevo far delle prove
>a far l'apply dopo il set ... vi farò sapere.
ok

>P.S.
>Non posso fara accedere direttamente il report al DB.
ok

>Saluti
>Gianluca
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

Gianluca Profilo | Newbie

Ciao,
scusate il ritardo nella risposta, rpovo a spiegarvi ora come sono messo.
Ho trovato qual'è il pezzo di codice incriminato, ovvero io giro tuto il report, sottoreport compreso per cambiare il font. Inoltre nella versione di CR con VS.NET 2002 quando si cambiava il font di un oggetto, CR in automatico gli cambiava la posizione per cui io reimpostato la posizione dei controlli.

Facendo così ottegno che la funzione SetDataSource dura dai 10 ai 20 secondi.

Se sposto la procedra di cambio font dopo il SetDataSource mi si rallenta la visualizzazione del Report.

Con CR per VS.NET 2005 ho che i controlli non cambiano posto per cui modificando solo il font attraverso il ciclo ho che il report si visualizza lento (10 secondi).

Ora la domanda è come cambio il font senza impostare una formula su tutti i campi ???

freeteo Profilo | Guru

ciao,
mmmm non saprei, l'unica possibilita' è che se sei in asp.net puoi lavorare con 1 foglio di stile...e qiundi classi css...
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

mimmob Profilo | Newbie

Scusate una domanda,
ma che intendete con tabelle linkate ???

Grazie
Mimmo

freeteo Profilo | Guru

ciao,
per tabelle linkate intendo che aggiungi piu' di una tabella al report finche lo costruisci e lui ti chiede di mettere la relazione tra le due, quindi di specificare il campo che fa da "link" tra le 2 tabelle.

Questa operazione rallenta parecchio l'esecuzione del report, meglio usare un "group by" a livello di query sql...
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