giovedì 24 gennaio 2013

Tutorial Reporting Services 2012 parte 10 le funzioni

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/tutorial-reporting-services-2012/art_usare-le-funzioni_1249.aspx

Introduzione
In questa parte vedremo l’utilizzo di alcune formule messe a disposizione da reporting services, e la creazione di formule create dall’utente, tramite il linguaggio di programmazione Visual Basic.
L'articolo fornirà al lettore le conoscenze base sull'utilizzo delle funzioni messe a disposizione dal sistema, naturalmente sta al lettore valutare quale sia più appropriata nel suo lavoro. Reporting Services offre numerose funzioni, che possiamo integrare o aumentare.

Utilizzo delle formule di Reporting Services

Apriamo uno dei nostri report creati nei precedenti articoli ed aggiungiamo una casella di testo, per aggiungere la casella di testo, fare click sul report con il tasto destro, e dalla voce di menu “Inserisci” selezionare la voce “Casella di testo”. In alternativa dalla barra degli strumenti, posta di norma sulla sinistra del nostro ambiente di sviluppo trascinare tale oggetto sul report.
Fatto ciò, facciamo click con il tasto destro dentro sulla casella di testo e nel menu che viene visualizzato, facciamo click sulla voce “Espressione” la quale voce è contraddistinta da un’immagine di tipo “Fx”.
Nella finestra che viene aperta (figura 1) abbiamo nella parte centrale in alto, una grande casella che permette di impostare le informazioni che verranno visualizzate, come assegnazioni di campi del dataset, formule e codice.
Notiamo che nella parte inferiore ci sono altre caselle o meglio delle liste che riportano informazioni.
La prima colonna di sinistra, quella delle categorie, ci fornisce indicazioni sulle formule, campi ed altri operatori.
I campi, indicano le colonne del nostro datasest associato al report,  i set di dati, l’aggiunta del collegamento alla nostra fonte dati, dove troviamo i campi della tabella associata, la categoria variabili, ci fornisce quelli presenti nel report, ma le funzionalità le troviamo nella categoria “operatori” e “funzioni Comuni”.
Se facciamo click su una determinata voce, nella colonna centrale verrà visualizzato il dettaglio per quella voce selezionata, mentre nella parte terza colonna quella di destra, verrà visualizzata una descrizione ed esempio di utilizzo.
Come mostrato in figura 1, abbiamo selezionato nella categoria “Funzioni comuni” la voce “Data/ora”, e nella colonna “Elemento” quella centrale, sono riportate le varie funzioni per quella categoria.
Selezioniamo la formula “Now” e facciamo doppio click su tale voce, verifichiamo che le parantesi siano aperte e chiuse, la parte superiore dev’essere visualizzata nel seguente modo “=Now()”



Figura 1 – La pagina che visualizza elenco formule

Confermiamo il tutto tramite il pulsante “OK”.


Figura 2 – la finestra per la selezione delle formule – espressioni

Continuiamo ad esplorare altre funzioni della categoria “Data/ora”, l’elenco è numeroso per tanto ne trattiamo solo alcune, lasciamo al lettore la scoperta delle altre funzioni.
La funzione Day restituisce il giorno (da 1 a 31) di una data, mentre Month il mese (da 1 a 12) invece la funzione Year restituisce l’anno della data inserita tra le parentesi tonde.
Riportiamo qui di seguito la formula che potremmo scrivere a mano, oppure ottenerla nel fare doppio click sulle singole funzioni.
=Day(Now)&"/" & Month(Now)& "/" & Year(Now)
Il lettore avrà notato il carattere “&” il quale lo troviamo nella categoria “Operatori” sottocategoria “Concatenazione”. Questo carattere, permette di unire due valori stringe. Altro simbolo di unione è quello relativo a “+”.
La formula la possiamo anche digitale, quando digitiamo le parole chiavi, l’editor ci fornisce indicazioni dei parametri e dei valori che restituisce, il tutto come mostrato in figura 3.


Figura 3 – Le indicazioni fornite dall’editor.

Continuiamo ad esplorare le funzioni che ci fornisce Reporting Services, la sottocategoria “Matematiche” sono riportate tutte quelle funzioni relativi ai calcoli, tra queste prendiamo in esame quella per il calcolo della radice quadrata (“sqrt”).
Facciamo doppio click su tale formula, oppure la scriviamo a mano, tra parenti tonde dobbiamo inserire un numero, per esempio 9.
La formula sarà simile a quella illustrata qui di seguito.
=Sqrt(9)
Le funzioni sono tantissime, alcune riguardano il testo, altre situazioni finanziarie,  alcune di queste categorie e funzioni, li vedremo nel corso dei prossimi articoli, invitiamo per tanto il lettore a scoprire quelle che per lui potrebbero soddisfare le proprie esigenze.

Creazione di una formula personalizzata

Le potenzialità di reporting services sono altissime, o meglio la sua flessibilità è ampia, se tra le funzioni presenti non esiste quella che fa al caso nostro, che succede? Semplice, l’utente può crearne una tramite il linguaggio Visual Basic, oppure tramite un assembley (scritto per esempio in C#).
Vediamo come creare una formula personalizzata.
Nel report su cui stiamo facendo le prove facciamo click con il tasto destro sul bordo di esso (non al suo interno) nella cornice (di norma giallino) e selezionare la voce di menu “Proprietà report…” il tutto come mostrato in figura 4.



Figura 4 – Il menu di scelta rapida sul bordo del report.

 Nella finestra che viene aperta (figura 5)  nella parte sinistra, troviamo varie voci di menu, tra queste la voce “Codice” . Questo menu, ci visualizza una grande area dove possiamo digitare il codice per eseguire determinate operazioni.



Figura 5 – La finestra per la gestione del codice personalizzato

La funzione che andremo a scrivere è molto semplice, in pratica passando un valore di tipo stringa, ci restituisce il testo tutto in maiuscolo.
Qui di seguito si riporta la funzione completa in VB.Net.

Public Function Maiuscole(ByVal testo As String) As String
     Return  testo.ToUpper()
End Function


Per chi conosce la programmazione, non troverà difficile tale codice, in pratica viene dichiarata una funzione di tipo string (ossia testo) di nome “Maiuscole” la quale restituisce il parametro passato in maiuscolo.
A questo punto confermiamo il tutto tramite il pulsante “OK”.
Tramite il tasto destro sulla casella di testo, che precedentemente si è usata per lo studio delle funzioni, selezioniamo dal menu che viene visualizzato la voce “Espressioni…” e dalla finestra che viene aperta, scriviamo nell’area delle formule la formula per utilizzare la funzione appena creata.
Qui di seguito si riporta la funzione da utilizzare nella casella delle formule
=Code.Maiuscole("ciao")


Figura 6 – La funzione per utilizzare il codice personalizzato.

Come si vede dal codice precedente, si utilizza la parola chiave “Code” seguita da un punto e dal nome della funzione. Tra parantesi tonde viene passato il valore da rendere in maiuscole.
Ora non ci resta che confermare il tutto tramite il pulsante “OK” e testare il nostro codice.
Verrà visualizzato il testo tutto in maiuscolo.

Conclusioni
L'articolo ha voluto fornire indicazioni sull'utilizzo di alcune formule presenti in Reporting Services 2012, o estendere quelle già presenti tramite il codice di programmazione.
Nel prossimo articolo, vedremo altri aspetti delle formule, in particolare come creare un componente (dll) da utilizzare in Reporting services.
Parte 1 http://emanuelemattei.blogspot.it/2012/09/tutorial-reporting-services-2012.html

Parte 2 http://emanuelemattei.blogspot.it/2012/12/tutorial-reporting-services-di-sql.html
Parte 3 http://emanuelemattei.blogspot.it/2012/12/tutorial-reporting-services-2012-parte.html
Parte 4 http://emanuelemattei.blogspot.it/2012/12/tutorial-reporting-services-2012-le.html
Parte 5 http://emanuelemattei.blogspot.it/2012/12/tutorial-reporting-services-2012-parte_20.html
Parte 6 http://emanuelemattei.blogspot.it/2012/12/tutorial-reporting-services-parte-6-la.html
Parte 7 http://emanuelemattei.blogspot.it/2013/01/tutorial-reporting-services-parte-7-la.html
Parte 8 http://emanuelemattei.blogspot.it/2013/01/tutorial-reporting-services-2012-parte.html
Parte 9 http://emanuelemattei.blogspot.it/2013/01/tutorial-reporting-services-2012-parte_16.html

Nessun commento: