Reporting Services alcune considerazioni

In questi giorni sto sviluppando alcuni report in Visual Studio 2008 e ho deciso di adottare Reporting Services da momento che può essere utilizzato non solo in ambito Windows Application. Anzi dsi può dire in realtà in contrario ovvero che nasce per essere ospitato in una pagina web, ma può anche essere utilizzato in ambiente Windows Forms.

Lo strumento è decisamente semplice e per report di tipo gestionale a mio avviso può bastare.

Al seguente ReportViewer control in Visual Studio 2008 è possibile trovare alcuni esempio con cui impratichirsi velocemente dei concetti base di questa tecnologia.

Personalmente l’approccio che ho trovato più pratico è quello di utilizzare come daatasource un DataSet con un’unica DataTable che riempio a runtime e su cui poi gestisco i vari ragguppamenti nel report.

Il report lo gestisco con una singola tabella in quato è possibile fare il merge delle colonne e inserento nelle cello un oggetto Rectangle è posibile ineserire poi in questo vari oggetti Textbox per gestire ad esempio diverse formattazioni.

Per impostazioni prerdefinita ho notato che il Language del report è impostato su English (forse perchè io utilizzo il Visual studio in lingua inglese)

image

Ciò causa l’utilizzo del formato anglosassone

image

Per risolvere è comunque sufficiente impostare il language di default:

image

E avere così il formato corretto rispetto alle proprie impostazioni internazionali.

image

Inoltre è anche possibile impostare il language a livello del singolo controllo List, Table, Matrix o Textbox.

image

Un altro problema è quello inserire nel page footer campi calcolati ad esempio una somma al termine di un gruppo. Reporting Services non consente di insereire nel Page Footer campio calcolati, consente però di inserire campi che facciano riferimenti a variabili report.

Si puo quindi pensare di inserire nel codice del report il seguente:

Public Shared Dim Totale as Integer

Public Function SetTotale ( ByVar value as Integer)
   Totale = value
End Function

Creare nel body del report un Textbox con la seguente expression:
“=Code.SetTotale(Fields!colValore.Value)”

Quindi creare nel Page Footer un Textbox con la seguente expression “=Code.Totale”

Per un altro esempio e un altro approccio più semplice, ma con delle limitazioni si veda Reporting Services (SSRS) – Get data value into page header/footer