Home Page Home Page Tips & Tricks Modiche "al volo" ai Report con Crystal Reports

Modiche "al volo" ai Report con Crystal Reports


Per quanto il programmatore sia bravo e progetti il suo codice in maniera piu parametrica possibile, spesso (io direi pure MAI ;-) non riesce a soddisfare tutte le esigenze dell'utente finale.
Nel caso si generino dei report poi, la cosa è ancora piu facile dato che i dati caricati possono essere visti in diversi modi con totali parziali differenti.
Ancora di piu quando si hanno grafici: basta pensare che se si sta visualizzando degli importi, chi lo utilizza potrebbe voler vedere andamenti per periodo, per cliente per chi lo ha fatto etc...(Ecco perche esiste Excel !!! ;-)
Ad ogni modo, è possibile con alcuni piccoli accorgimenti dare la possibilita di scegliere il raggruppamento (ovvero la "vista" migliore), in modo che tutto venga ricalcolato automaticamente ed i grafici vengano ricostruiti "on the fly".
Basta preparare un report con un gruppo dove il campo discriminate non sia un campo classico del database collegato al report, bensi' un "campo formula":



In fase di creazione di questo campo formula basta metterlo uguale ad un'altro campo del report (raggruppamento di default).



Per i grafici basterà crearli considerando sempre il campo "gruppo" per poterli fare diventare dinamici.



Bastera' poi da codice cambiare facilmente la proprieta text del campo e assegnargli il nome di un'altro campo del database,nel fomato corretto "{miodb.miocampo}": (nell'esempio allegato lo si fa scegliere da una combo dopo avergli caricato tutti i campi disponibili del report):

Codice .NET n°1
nReport.DataDefinition.FormulaFields["gruppo"].Text = (string)cmbGruppo.SelectedValue;
crView.RefreshReport();


Chiamando il metodo RefreshReport del visualizzatore Crystal lo ricostruirà secondo le nuove caratteristiche...
Ovviamente essendo Crystal Report, funziona anche su web.
Con questa tecnica si ottengono delle "personalizazioni" senza dover fare piu report, per esigenze magari molto silmili.


Pro:


- Con un piccolo accorgimento si ottiene un bellissimo effetto per chi utilizza il programma, ovvero che se lo puo personalizzare.
- Il file del report costruito rimane unico e si modifica a runtime.
- Non servono licenze aggiuntive di Crystal per fare modifiche al report (come succedeva nella versione 8.5 per vb6)

Contro:


- Ricordarsi di usare questo campo come gruppo e fare i grafici con esso.
- Non si riesce a dare formattazione al campo, inquanto cambia e Crysta Report lo fa con le impostazioni predefinite.
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5