DbWebPart version 3
Tempestive
DbWebPart
version 3
For Microsoft® Sharepoint®
Manuale di installazione e
configurazione
TEMPESTIVE SRL
Pagina 1 di 66
DbWebPart version 3
Indice
Introduzione ................................................................................................................................ 3
Capitolo 1. Installazione .............................................................................................................. 5
Capitolo 2. Backend .................................................................................................................. 24
Capitolo 3. Frontend .................................................................................................................. 29
Capitolo 4. Struttura dei Form.................................................................................................... 34
Capitolo 5. List Form ................................................................................................................. 45
Capitolo 6. Page Form............................................................................................................... 47
Capitolo 7. Search Form............................................................................................................ 48
Capitolo 8. Tree Form................................................................................................................ 49
Capitolo 9. Chart Form .............................................................................................................. 51
Capitolo 10. Report Form .......................................................................................................... 55
Capitolo 11. Import .................................................................................................................... 57
Appendice A .............................................................................................................................. 59
API utilizzabili per realizzare gli script C# .................................................................................. 59
Appendice B .............................................................................................................................. 65
Utilizzo di xslt per la generazione di report in pdf ....................................................................... 65
TEMPESTIVE SRL
Pagina 2 di 66
DbWebPart version 3
Introduzione
DbWebPart è una WebPart per Microsoft Sharepoint Server 2010, Microsoft Office Sharepoint
Server 2007, Sharepoint Portal 2003, Windows Sharepoint Services 3.0, Windows Sharepoint
Services 2.0.
É stata studiata e realizzata per consentire l’accesso ad un database in modo guidato, veloce e
sicuro. Questa WebPart rende disponibili agli utenti i dati, lasciando all’amministratore la facoltà di
regolare le politiche di accesso tramite delle interfacce di configurazione dedicate. La struttura delle
tabelle del database, i campi, i tipi di dati le e proprietà vengono caricati automaticamente attraverso
le pagine di configurazione, dalle quali è possibile impostare anche il livello di presentazione
mediante la manipolazione di una serie di parametri intuitivi.
La DbWebPart consente di utilizzare le operazioni CRUD (create, retrieve, update e delete) su una
tabella, di controllare le politiche di accesso ai dati e di gestire la grafica. Potenzialità aggiuntive
derivano dalla possibilità di collegare più DbWebPart nella stessa pagina affinché comunichino tra
loro scambiandosi e incrociando i dati. Queste caratteristiche consentono ad un utente con modesti
skill informatici di creare applicazioni personalizzate per l'accesso ai dati aziendali in pochi click.
Attraverso semplici ed intuitive pagine di configurazione si impostano tutti gli aspetti legati ai dati,
alla loro sicurezza ed alla loro presentazione web.
I parametri di configurazione della DbWebPart consentono di impostare l’accesso alle tabelle del
database e ai loro campi per gruppi o per singolo utente; allo stesso modo è possibile impostare i
permessi per l’accesso alle diverse funzionalità messe a disposizione dall’applicativo.
Grazie ai servizi di Sharepoint, DbWebPart eredita automaticamente le impostazioni estetiche e di
sicurezza dello stesso. L’interfaccia grafica -sia di presentazione che di configurazione- è stata
sviluppata con filosofia web 2.0, avvalendosi in particolare dell’attuale tecnologia Ajax. Tale scelta è
stata assunta al fine di sfruttare pattern di usabilità standardizzati, che permettano di ridurre al
minimo i costi di apprendimento non solo per gli utenti finali, ma anche per coloro che si occupano
delle attività di configurazione (spesso lunghe, complicate o limitate).
DbWebPart inoltre consente di realizzare applicazioni multilingua.
Caratteristiche principali e funzionalità:

Accesso a qualsiasi database via ADO.NET

Supporto intuitivo alle operazioni CRUD

Configurabile in scenari master-detail

Export dei dati in pdf, excel, csv

Import dei dati tramite file excel e csv

Supporto ai dati nazionalizzati

Supporto a etichette, hint e menù nazionalizzati

"awareness" dei campi che identificano utenti/gruppi

Campi abilitabili alle connessioni verso altri db
TEMPESTIVE SRL
Pagina 3 di 66
DbWebPart version 3

Dati filtrabili in base a gruppi di utenti o a singolo utente

Validazione dei dati inseriti dall’utente

Campi collegati a lookup-table

Politiche di accesso a diversa granularità: singolo campo/record/tabella
TEMPESTIVE SRL
Pagina 4 di 66
DbWebPart version 3
Capitolo 1. Installazione
Prima dell’installazione è consigliato un backup dei propri sistemi. Per iniziare è necessario
decomprimere in una cartella temporanea il file .zip scaricato dal sito www.tempestive.com
L’installazione è guidata da un wizard che si sviluppa in pochi passi, per lanciarlo è necessario
eseguire il file setup.exe che si trova nella cartella in cui si è decompresso il file .zip
Il wizard si presenta con una schermata di benvenuto(fig. 1), cliccare Next per proseguire.
fig. 1
TEMPESTIVE SRL
Pagina 5 di 66
DbWebPart version 3
Il software di installazione controlla che siano soddisfatti i prerequisiti necessari, se il controllo ha
esito positivo si può proseguire cliccando il tasto Next(fig. 2)
fig. 2
TEMPESTIVE SRL
Pagina 6 di 66
DbWebPart version 3
Nella schermata successiva viene richiesto di leggere ed accettare, spuntando il checkbox
opportuno, la licenza d’uso del software. Una volta spuntato il checkbox si può proseguire
l’installazione cliccando il tasto Next.(fig. 3 e fig. 4)
fig. 3
TEMPESTIVE SRL
Pagina 7 di 66
DbWebPart version 3
fig. 4
TEMPESTIVE SRL
Pagina 8 di 66
DbWebPart version 3
A questo punto dell’installazione viene quindi richiesto di selezionare i site SharePoint per i quali
installare la DbWebPart, una volta scelti spuntando i rispettivi checkbox si può proseguire cliccando
il tasto Next(fig. 5 e fig. 6)
fig. 5
TEMPESTIVE SRL
Pagina 9 di 66
DbWebPart version 3
fig. 6
TEMPESTIVE SRL
Pagina 10 di 66
DbWebPart version 3
Inizia quindi l’installazione vera e propria, una barra di avanzamento segnala lo stato di
avanzamento , una volta terminata si può cliccare il tasto Next(fig. 7 e fig. 8)
fig. 7
TEMPESTIVE SRL
Pagina 11 di 66
DbWebPart version 3
fig. 8
TEMPESTIVE SRL
Pagina 12 di 66
DbWebPart version 3
Si apre infine la schermata conclusiva(fig. 9) che riporta i dettagli dell’installazione appena effettuata
ed avvenuta con successo, cliccando il tasto Close si termina il wizard. La DbWebPart comparirà
ora tra le webPart che possono essere aggiunte alle pagine di SharePoint attraverso le normali
procedure di creazione e modifica delle pagine.
fig. 9
TEMPESTIVE SRL
Pagina 13 di 66
DbWebPart version 3
Per aggiungere infatti una DbWebPart ad una pagina nella versione 2007 di Sharepoint è sufficiente
aprire il menu “Site Action” e selezionare “Edit Page” (fig. 10).
fig. 10
Cliccare quindi, nella schermata di configurazione appena aperta, il pulsante “Add a Web Part”(fig.
11)
fig. 11
TEMPESTIVE SRL
Pagina 14 di 66
DbWebPart version 3
Si aprirà una finestra in cui è possibile selezionare le WebPart da aggiungere alla pagina, spuntare il
checkbox relativo alla DbWebPart e cliccare il pulsante “Add”(fig. 12)
fig. 12
TEMPESTIVE SRL
Pagina 15 di 66
DbWebPart version 3
Procedura di aggiornamento e disinstallazione
Per disinstallare la DbWebPart è necessario eseguire lo stesso file utilizzato per l’installazione. Per
aggiornarla bisogna ugualmente decomprimere il file .zip in una cartella temporanea ed eseguire il
file setup.exe.
In entrambi i casi, come per l’installazione, si è guidati da un wizard che si sviluppa in pochi passi.
Il wizard inizialmente si sviluppa con le stesse prime due schermate descritte per l’installazione(fig. 1
e fig. 2). Dopo il controllo dei prerequisiti se si clicca il pulsante “Next” viene richiesto se si desidera
proseguire con l’aggiornamento o la disinstallazione(fig. 13).
Disinstallazione
Una volta scelta l’opzione “Remove”(fig. 13) inizia la disinstallazione vera e propria(fig. 14)
fig. 13
TEMPESTIVE SRL
Pagina 16 di 66
DbWebPart version 3
fig. 14
Una volta conclusa la disinstallazione(fig. 15) cliccando il tasto “Next” si apre la finestra
conclusiva(fig. 16) che riporta i dettagli di quanto appena avvenuto, cliccando il tasto ”Close” si
termina il wizard.
TEMPESTIVE SRL
Pagina 17 di 66
DbWebPart version 3
fig. 15
TEMPESTIVE SRL
Pagina 18 di 66
DbWebPart version 3
fig. 16
Aggiornamento
Una volta scelta l’opzione “Repair”(fig. 17) inizia l’aggiornamento vero e proprio(fig. 18)
TEMPESTIVE SRL
Pagina 19 di 66
DbWebPart version 3
fig. 17
TEMPESTIVE SRL
Pagina 20 di 66
DbWebPart version 3
fig. 18
Una volta concluso l’aggiornamento(fig. 19) cliccando il tasto “Next” si apre la finestra conclusiva(fig.
20) che riporta i dettagli di quanto appena avvenuto, cliccando il tasto ”Close” si termina il wizard.
TEMPESTIVE SRL
Pagina 21 di 66
DbWebPart version 3
fig. 19
TEMPESTIVE SRL
Pagina 22 di 66
DbWebPart version 3
fig. 20
TEMPESTIVE SRL
Pagina 23 di 66
DbWebPart version 3
Capitolo 2. Backend
Terminata l’installazione, la DbWebpart comparirà tra le webpart a disposizione in Sharepoint:
Una volta aggiunta in una pagina, è possibile editarne le proprietà cliccando nella sezione Metadati
Editor il tasto “Edit”:
TEMPESTIVE SRL
Pagina 24 di 66
DbWebPart version 3
Si aprirà una nuova finestra con un editor grafico nel quale è possibile editare tutte le proprietà della
DbWebPart.
Nel primo Tab vengono impostate le proprietà del Backend, ovvero quelle che controllano la fonte
dei dati.
fig. 213. Screenshot del tab di configurazione "Backend"
Datasource Type
Scelta del tipo di datasource.
Le possibili opzioni sono:










SQLServer
ODBC
OLEDB
WebService
Sharepoint
File System
Domino
XML
Odata
List
TEMPESTIVE SRL
Pagina 25 di 66
DbWebPart version 3


Atom/RSS
Parameter
Connection String
Impostazione delle proprietà di inizializzazione necessarie per connettersi ad un database. Tali
informazioni vengono fornite sotto forma di stringa secondo una sintassi opportuna e dipendono dal
tipo di Datasource selezionato.
Un elenco esaustivo di connection string si trova a www.connectionstrings.com .
Table Name
Nome della tabella o vista su cui è configurata la WebPart.
Nel caso in cui il nome della tabella contenga degli spazi, può essere necessario racchiuderlo tra
parentesi quadre, Ex. [Order Details], o utilizzare la sintassi opportuna per il database a cui ci si
connette.
Nel caso in cui il nome dello schema in cui si trova la tabella non sia quello di default per la
connessione, o non corrisponda a quello assegnato all’utente, e necessario specificare anche lo
schema. Ex. DB2ADMIN.Orders
Attenzione! La tabella deve avere impostato una chiave primaria, altrimenti non sarà possibile
aggiornare i dati.
Order By
Elenco dei campi della tabella secondo i quali vengono ordinati i dati recuperati dal database.
La sintassi deve essere standard SQL: nomi dei campi separati da ‘,’. Ex. OrderId, OrderName
Max Records
Numero massimo di record recuperati nell’export.
L’impostazione ‘-1’ rilassa tale vincolo e permette il recupero di tutti i record.
All Records Message (Filter)
Se il valore del campo ricevuto in un messaggio è uguale al valore impostato qui, non viene presa in
considerazione la condizione di selezione imposta dal filtro.
Esempio:
Supponiamo che la WebPart A invii messaggi alla WebPart B. Il messaggio inviato si riferisce al
campo X presente nella tabella di A, e la WebPart B filtra i suoi valori nel suo campo Y con il valore
selezionato in X.
TEMPESTIVE SRL
Pagina 26 di 66
DbWebPart version 3
Può essere conveniente in alcune circostanze, visualizzare tutti i dati di B, se il valore selezionato in
X è uguale a NULL. Per impostare questo comportamento, è sufficiente mettere una stringa vuota
nel campo All Records Message.
Se invece si vuol visualizzare tutti i valori di B, quando X contiene un valore particolare, ad esempio
*, mettere * in questo campo.
Refresh
Pulsante da utilizzare obbligatoriamente dopo aver impostato i parametri Datasource Type,
Connection String e Table Name per caricare la struttura della tabella del db. Una volta caricata la
struttura, sulla destra viene visualizzata una griglia contenente i campi della tabella.
Per ognuno di tali campi vengono visualizzate le proprietà (tipo di dato, chiave e identità) ed alcuni
controlli per configurare la funzionalità di messaggistica tra diverse DbWebPart.
Affinché due DbWebPart possano scambiarsi un messaggio, è necessario che prima della
configurazione venga instaurata una connection tra le due come mostrato nella seguente figura:
fig. 142. Procedura di impostazione di una "connection" tra due WebPart per abilitare lo
scambio di messaggi
Nell’esempio, è stata impostata una connection tale per cui la DbWebPart di sinistra è mittente e la
DbWebPart di destra è ricevente.
A questo punto è possibile procedere con la configurazione dei seguenti campi nel tab di Backend:

Send Message (solo per mittente): tutti i campi per i quali viene impostato questo parametro
sono inclusi nel messaggio inviato dalla DbWebPart mittente alla DbWebPart ricevente.
TEMPESTIVE SRL
Pagina 27 di 66
DbWebPart version 3

Drag (solo per mittente): tutti i campi per i quali viene impostato questo parametro possono
essere trascinati graficamente con il meccanismo di drag&drop dalla DbWebPart mittente alla
DbWebPart ricevente. Tale meccanismo corrisponde all’invio di un messaggio tra le due
DbWebPart. Attenzione! Per il Drag&Drop non è necessario collegare le WebPart tra loro con
il procedimento descritto in fig. 1. E’ invece indispensabile impostare uno script nella WebPart
ricevente (campo OnDrop nella sezione Frontend).

Filter By (solo per ricevente): la ricezione di un messaggio scatena una ricerca filtrata
secondo le informazioni ricevute. FilterBy è quindi necessario ad associare i campi contenuti
nel messaggio in arrivo ai campi della tabella ricevente sulla quale si effettua la ricerca.
Espandendo la combobox relativa al FilterBy, si trova infatti la lista dei campi provenienti dal
mittente tra i quali è possibile scegliere l’associazione.

Operator (solo per ricevente): Alla ricezione di un messaggio, la WebPart ricevente filtra i
suoi dati con i valori dei campi ricevuti. Il tipo di filtro applicato (uguaglianza, maggiore di,
like...) dipende dall’operatore scelto in questo campo.
TEMPESTIVE SRL
Pagina 28 di 66
DbWebPart version 3
Capitolo 3. Frontend
Tab tramite il quale si configurano i parametri più generali per la selezione e la presentazione dei
dati.
fig. 215. Screenshot del tab di configurazione "Frontend"
Title
Intestazione della DbWebPart, che compare come titolo.
Chrome Type
Combobox per la scelta dello stile di rendering della WebPart. La lista di possibilità è ereditata
dall’insieme di stili tipici di SharePoint.
Global access script
Script C# per filtrare globalmente l’accesso degli utenti alla DbWebPart.
Al termine del controllo di condizione, è necessario ritornare un valore “true” o ”false”.
TEMPESTIVE SRL
Pagina 29 di 66
DbWebPart version 3
Per le API si rimanda all’appendice.
View Query
E’ possibile inserire in questo campo una clausola per limitare la visibilità dei record della tabella.
Tale clausola deve determinare una condizione di vero o falso.
La sintassi è quella che segue il WHERE in una query SQL, e oltre ai nome dei campi della tabella,
può contenere un insieme di nomi speciali:
DBWP_USERNAME : contiene una stringa con il nome dell’utente corrente
DBWP_ROLES : contiene una stringa con i ruoli dell’utente corrente separate da “;”
DBWP_LANGUAGES : contiene una stringa con le lingue preferite, così come inviate da browser
DBWP_CURRENTFORM : contiene una stringa con il nome del form corrente, e può assumere i
valori: List, New,Edit,Search,Tree,Chart,Report,Import
Tutti i valori specificati nel campo Ldap Attributes diventano un nome speciale e conterranno una
stringa con il valore dell’attributo corrispondente in Active Directory dell’utente corrente.
Ex. OrderId>10000
Ex. DBWP_USERNAME =’Francesca’
Ex. DBWP_LANGUAGES Like ’en’ AND OrderId>10000
Se in Ldap Attributes si è impostato company come attributo utente da recuperare dall’Active
Directory:
Ex. Company = ‘My Company Name’
Edit Query
E’ possibile inserire in questo campo una clausola per limitare la modifica dei record della tabella.
Tale clausola deve determinare una condizione di vero o falso e può essere definita attraverso l’uso
dei valori dei campi, di ruoli ed attributi utente così come descritto in View Query
Ex. OrderId>10000
Ex. USERNAME =’Francesca’
Delete Query
E’ possibile inserire in questo campo una clausola per limitare la cancellazione dei record della
tabella.
Tale clausola deve determinare una condizione di vero o falso e può essere definita attraverso l’uso
dei valori dei campi, di ruoli ed attributi utente così come descritto in View Query
Ex. OrderId>10000
Ex. USERNAME =’Francesca’
TEMPESTIVE SRL
Pagina 30 di 66
DbWebPart version 3
Force Culture Info
Compilando questo campo è possibile forzare l’utilizzo di una sola lingua per etichette, hint, formato
standard di date e numeri.
Sovrascrive le impostazioni del browser.
Users Roles
Compilando questo campo è possibile mappare i propri utenti/gruppi di dominio con ruoli da
utilizzare per filtrare l’accesso ai dati della DbWebPart.
La sintassi deve essere definita come una lista di coppie RUOLO=VALORE separati da ‘;’
AD attributes
Elenco di attributi dell’utente, separati da ‘;’, che vengono recuperati dall’Active Directory a cui è
agganciato Sharepoint.
Tali attributi vengono aggiunti come colonne della tabella, e possono essere utilizzati in tutti i campi
Edit Query, View Query e Delete Query, e nei vari script C# mediante l’attributo UserAttributes
dell’oggetto sessionData.
AD Identity Name
Username di un utente che abbia i diritti opportuni per eseguire query nell’Active Directory al quale è
agganciato Sharepoint. Le credenziali di un tale tipo di utente sono necessarie per recuperare ruoli
ed attributi impostati nei campi di configurazione precedenti.
AD Identity Password
Password di un utente che abbia i diritti opportuni per eseguire query nell’Active Directory al quale è
agganciato Sharepoint. Le credenziali di un tale tipo di utente sono necessarie per recuperare ruoli
ed attributi impostati nei campi di configurazione precedenti.
Languages
Elenco dei codici delle lingue supportate, separate da ‘;’.
Ex: Languages: en; fr; it. Oppure en-US; it-IT
Tale elenco permette di impostare le traduzioni nelle diverse lingue supportate per ogni etichetta,
label ed hint, e formattare correttamente i campi data e numerici
On Drag (solo per DbWebPart mittente)
Il codice C# definito in questo campo viene eseguito quando dalla DbWebPart mittente viene
trascinato –mediante il meccanismo di drag&drop- un record verso una DbWebPart ricevente. In
particolare, affinché l’invio di un messaggio scateni qualche operazione di aggiornamento anche
sulla DbWebPart mittente, è possibile utilizzare codice come il seguente:
TEMPESTIVE SRL
Pagina 31 di 66
DbWebPart version 3
Hashtable mesDrag = sessionData.GetMessageDrag();
DataRow[] rows = dataSet.Tables[0].Select("id=" + mesDrag["id"].ToString());
rows[0]["Stato"] = 1;
Save();
dove
- id è la chiave della tabella e deve essere impostato come campo “drag” nel backend
- ‘Stato’ è il campo che viene modificato nell’esempio
A tale codice, nella DbWebPart ricevente il drop deve corrispondere il seguente codice:
RefreshBackend();
On Drop (solo per DbWebPart ricevente)
Il codice C# definito in questo campo viene eseguito quando all’interno della DbWebPart ricevente
viene trascinato -mediante il meccanismo di drag&drop- un record proveniente da una DbWebPart
mittente.
In particolare, affinché la ricezione di un messaggio scateni una ricerca filtrata per i campi inviati, è
necessario utilizzare il seguente codice:
sessionData.SearchFilter = sessionData.GetMessageDropFilter();
RefreshBackend();
Utilizzando le classi C# messe a disposizione, è possibile far eseguire i compiti più disparati in caso
di un Drag&Drop.
Per le restanti API si rimanda all’appendice.
Start Page
In questo campo viene definita la pagina iniziale di visualizzazione della DbWebPart.
E’ possibile effettuare la scelta tra List, Page, New, Search, Tree, Chart, Report ed Import.
La pagina di New corrisponde ad una Page non ancora compilata e quindi ne ha la stessa struttura.
Per le funzionalità e configurazione di tali pagine si rimanda alla relativa descrizione.
Post Charset
Charset utilizzato nei submit dei form delle pagine della DBWebPart.
Style
Codice .css utilizzato dalla DbWebPart per il rendering dei suoi componenti.
TEMPESTIVE SRL
Pagina 32 di 66
DbWebPart version 3
Il rendering può essere personalizzato modificandolo a piacimento questo stylesheet o scegliendo
uno dei template a disposizione (cliccando sull’immagine che si trova a fianco del field di
configurazione).
Javascript
E’ possibile aggiungere codice javascript eseguito al caricamento della pagina. Qui possono essere
inserite quelle funzioni javascript generiche, richiamabili dai controlli nei singoli campi (vedi campo
Client Validation Javascript nelle Properties)
TEMPESTIVE SRL
Pagina 33 di 66
DbWebPart version 3
Capitolo 4. Struttura dei Form
La DbWebPart può presentare sette diverse pagine, ognuna di queste configurabile tramite uno
specifico tab.
Il tab di Page Form costituisce la base sia per realizzare una pagina di dettaglio, sia per realizzare
una pagina di nuovo inserimento (New).
Tutti i tab sono caratterizzati dalla stessa struttura: nella parte superiore si trovano alcuni campi
generici di configurazione, specifici per ogni pagina.
Nella parte inferiore si trovano quattro aree distinte:

TOOLBOX: presenta i pulsanti ed i campi che possono essere aggiunti alla pagina tramite
drag & drop nell’area WINDOW.

WINDOW: rappresenta l’attuale struttura della pagina da visualizzare.

PROPERTIES: mostra le proprietà di configurazione di ogni elemento che si seleziona nella
pagina.

LANGUAGES: permette di impostare etichette ed hint di ciascun elemento che si seleziona
nella pagina.
TEMPESTIVE SRL
Pagina 34 di 66
DbWebPart version 3
fig. 216. Screenshot della struttura di un tab di configurazione di form con evidenziate le
quattro aree TOOLBOX, WINDOW, PROPERTIES e LANGUAGES
Toolbox
Quest’area della pagina presenta i pulsanti ed i campi che possono essere aggiunti alla pagina
tramite drag & drop nell’area WINDOW.
I pulsanti arancioni sono di testata, poiché possono essere aggiunti solo alla testata della pagina.
I pulsanti grigi sono inseribili in ogni riga di tabella per le pagine di List, Page e Search.
I pulsanti azzurri corrispondono ai campi della tabella su cui insiste la DbWebPart.
E’ possibile trascinare nella tabella (e quindi visualizzare) solo alcuni dei pulsanti esistenti o
addirittura visualizzare più volte uno stesso pulsante in più punti della tabella/pagina.
Questo consente un’ampia personalizzazione della struttura della tabella e della pagina.
I pulsanti di testata sono:

New: indirizza alla pagina PageForm che permette di inserire i dati per la creazione di un
nuovo record;

Search: indirizza alla pagina SearchForm che permette di eseguire una ricerca sui dati della
tabella;
TEMPESTIVE SRL
Pagina 35 di 66
DbWebPart version 3

Export: esporta i dati della tabella in un file Excel;

Word: crea un documento .doc per il record selezionato a partire da un template impostato
nella configurazione del pulsante;

Pdf: crea un report in .pdf dei record selezionati a partire da un xslt impostato nella
configurazione del pulsante;

Save: se abilitato l’editing della tabella, salva le modifiche effettuate sui record;

Chart: indirizza alla pagina ChartForm che permette di visualizzare un grafico dei dati;

Delete: cancella i/il record selezionati/o;

Clear Filter: rimuove il filtro di ricerca. In seguito a un Search, o a un filtraggio di dati sulle
colonne di una ListForm, è possibile rimuovere il filtraggio applicato attraverso questo
pulsante. Il pulsante è automaticamente nascosto, se alla tabella non è applicato alcun filtro

Import: indirizza alla pagina di Import che permette di importare dati da sorgenti esterne CSV
o Excel;

Script: esegue lo script C# definito nella configurazione del pulsante;

Close: chiude la pagina corrente e torna alla precedente.

Find: esegue la ricerca nel Form Search

OpenRecord: affiancato ad un record di tabella, quando viene selezionato indirizza alla
relativa pagina di dettaglio;

Button: affiancato ad un record di tabella, quando selezionato esegue uno script C# che gli
viene associato tra le proprietà di configurazione;

Html: affiancato ad un record di tabella, visualizza il codice HTML che gli viene associato tra
le proprietà di configurazione;

Pdf: affiancato ad un record di tabella, quando viene selezionato crea un report in .pdf del
relativo record.
Window
Quest’area rappresenta l’attuale struttura della pagina.
TEMPESTIVE SRL
Pagina 36 di 66
DbWebPart version 3
L’aggiunta di un qualsiasi elemento si ottiene trascinando all’interno dell’area i componenti a
disposizione nella barra laterale.
La rimozione di un qualsiasi elemento si ottiene trascinandolo all’esterno dell’area.
Properties
Quest’area mostra le proprietà caratteristiche e configurabili di ogni elemento selezionato all’interno
della pagina.
Alcune proprietà sono comuni sia a pulsanti sia ai campi della tabella:

Name: nome del pulsante o del campo che lo identifica all’interno della pagina. Tale valore
non è legato né alle etichette né al bind corrispondente ma è un identificatore univoco. Non ha
effetti nella visualizzazione

Type: indica il tipo di pulsante o di campo. A seconda del tipo selezionato, è necessario
definire ulteriori proprietà correlate. Per i pulsanti di testata il tipo non può essere modificato.

TextBox: campo di testo (campo input di tipo text nel linguaggio HTML).

HintTextBox: campo di testo arricchito da funzionalità di suggerimento in input. Mentre
l’utente digita del testo in questo campo, appare una lista di suggerimenti selezionabili
dinamicamente
relativi
a
cosa
l’utente
stesso
sta
inserendo.
E’ necessario definire la sorgente (tabella da database) dalla quale il campo di “HintTextBox”
preleva i suggerimenti attraverso le seguenti proprietà. Per meglio comprendere come
configurare tale campo, si rimanda alle istruzioni di ListBox from DB (più avanti).
o
DataSourceType: tipo di datasource;
o
ConnectionString: stringa di connessione al database;
o
Table: nome della tabella del database da cui recuperare i dati per i suggerimenti;
o
Filter: clausola di filtro utilizzata nella query che recupera i dati per i suggerimenti. Non è
indispensabile, ma è necessario nel caso la relazione che unisce la tabella principale a
quella esterna abbia una foreign-key composta da più campi.
o
ID Field: nome del campo il cui valore viene inserito nel database se selezionato come
suggerimento accettato;
o
Description Field: nome del campo il cui valore viene mostrato come suggerimento.
TEMPESTIVE SRL
Pagina 37 di 66
DbWebPart version 3

TextArea: il campo viene presentato nella pagina di dettaglio come area di testo (la textarea
nel linguaggio HTML).

CheckBox: il campo viene visualizzato come checkbox. Una volta scelto “CheckBox “
compare un ulteriore campo di configurazione -Boolean Values- in cui vanno impostati i valori
del database che corrispondono allo stato di spuntato o meno del checkbox. Il primo valore
inserito corrisponde al true, il secondo al false e devono essere separati da ‘;’
Integer: campo di tipo numerico senza valori decimali presentato nella pagina di dettaglio
come campo di testo (campo input del linguaggio HTML di tipo text).


Decimal: campo di tipo numerico con valori decimali presentato nella pagina di dettaglio come
campo di testo (campo input del linguaggio HTML di tipo text).

Date: campo di tipo data viene presentato nella pagina di dettaglio come campo di testo, in cui
è possibile scrivere una data, affiancato dall’immagine di un piccolo calendario. Cliccando
sull’immagine di calendario viene presentata un’area che permette di selezionare una data in
maniera intuitiva scegliendo giorno anno e mese senza la necessità di digitarla.

Image: campo di tipo immagine. In visualizzazione tale campo mostra l’immagine, mentre in
modalità di editing appare un campo di input di tipo file che, attraverso il tasto “browse”,
permette di scegliere un immagine dal filesystem del pc client. Cliccando sull’immagine si apre
la modalità di download. Scegliendo tale campo è necessario definire altre due proprietà:


o
File Name: nome attribuito al file nel momento in cui verrà effettuato il download;
o
Mime Type: Mime Type con il quale il file viene scaricato. Il mime type specifica il tipo di
dati che vengono trasferiti attraverso il protocollo HTTP.
File: campo di tipo file. In visualizzazione tale campo mostra il nome del file, mentre in
modalità di editing appare un campo di input (campo input di tipo file nel linguaggio HTML)
che, attraverso il tasto “browse”, permette di scegliere un file dal filesystem del pc client.
Scegliendo tale campo è necessario definire altre due proprietà:
o
File Name: nome attribuito al file nel momento in cui verrà effettuato il download e
utilizzato per visualizzarne il link;
o
Mime Type: Mime Type con il quale il file viene scaricato. Il mime type specifica il tipo di
dati che vengono trasferiti attraverso il protocollo HTTP.
ListBox from DB: Un campo “Listbox from DB” permette di visualizzare un listbox con dei
valori provenienti da una JOIN con una tabella secondaria. I campi caratteristici sono:
o
DataSourceType
o
ConnectionString
TEMPESTIVE SRL
Pagina 38 di 66
DbWebPart version 3
o
Table
o
Filter
o
IdField
o
Description Field
La JOIN con la tabella secondaria può essere fatta con una tabella dello stesso DB o con una
tabella di un altro DB.
Se la JOIN è fatta con un altro DB e il campo è visualizzato in una lista, NON è possibile
eseguire un sort sulla colonna descrizione, ma il sort è fatto sempre sull’ID della tabella base.
Ex. Se la tabella esterna è questa:
COLORI:
ID
DESCR
1
Rosso
2
Giallo
3
Verde
4
Nero
e il listbox visualizza la DESCR, vi sono due possibilità:
1.
Se la JOIN è fatta con tabelle dello stesso DB  l’ordinamento è sulla DESCR.
2.
Se la JOIN è fatta con tabelle su diversi DB  l’ordinamento è sull’ID.
Se la JOIN è fra tabelle dello stesso DB, i campi “Datasource Type” e “ConnectionString” non
devono essere impostati, altrimenti sì.
Table: è il nome della tabella secondaria (COLORI).
Id Field: è il nome del campo ID nella tabella secondaria (ID).
Description Field: è il nome del campo descrizione nella tabella secondaria (DESCR).
E’ dato per assunto che esiste una relazione “foreign key” fra la tabella principale
(Backend/Table) e la tabella secondaria “Table” del campo corrente.
E’ sottinteso che la relazione è fra il campo della tabella principale (Backend/Table)
TEMPESTIVE SRL
Pagina 39 di 66
DbWebPart version 3
specificato nel Bind e il campo della tabella secondaria (Id Field).
Esistono dei casi (abbastanza frequenti) in cui la relazione “foreign key” è fra più colonne.
Ex.
Dipendenti
IDDip
Nome
Provincia
Comune
1
Mario
Rossi
1
1
2
Carlo
Bianchi
1
2
3
Ezio
Neri
2
1
Province
IDProv
DESCR
1
PN
2
PD
IDProv
IDCom
Descr
1
1
Chions
1
2
Brugnera
2
1
Vigonza
2
2
Cittadella
Comuni
TEMPESTIVE SRL
Pagina 40 di 66
DbWebPart version 3
Se volessimo visualizzare il Campo Comune in Dipendenti come una ListBox, dobbiamo
prevedere il fatto che le tabelle Dipendenti e Comuni sono collegate da questa relazione:
Provincia -> IDProv
Comune -> IDCom
Per gestire questi casi è stato introdotto il campo Filter. Nell’esempio sopra i campi
andrebbero compilati in questo modo:
DataSource Type:
ConnectionString:
Table: Comuni
Filter: Dipendenti.Provincia = Comuni.IDProv
Id Field: IDCom
Description Field:Descr
Bind:Comune
Se la join fosse fra 3 o più colonne in filter potrei scrivere:
Dipendenti.Provincia = Comuni.IDProv AND … AND…

ListBox from List: campo di tipo ComboBox che mostra una lista di scelte predefinite.
Tali
scelte
non
sono
di
tipo
chiave/valore
ma
puramente
descrittive.
Ex: M;F per maschio e femmina o 1;2 per prima e seconda classe o A;B;C per sezione...
Scegliendo tale campo, è necessario configurare la seguente proprietà:
o


List values: lista dei valori predefiniti e selezionabili, separati da ‘;’
ListBox from SP: campo di tipo ComboBox che mostra una lista di scelte ottenute da liste di
SharePoint. Scegliendo tale campo, è necessario definire le seguenti proprietà:
o
URL Sharepoint: indirizzo dello SharePoint cui appartiene la lista;
o
SharePoint List Name: nome della lista SharePoint;
o
ID Field: nome del campo il cui valore viene inserito nel database se selezionato dalla
combobox;
o
Description Field: nome del campo i cui valori vengono mostrati come possibili scelte
della combobox.
Style: è possibile integrare i tag HTML di stile già presenti inserendone di nuovi in questo
campo. La sintassi è quella del tag HTML style (attributo:valore;attributo:valore).
TEMPESTIVE SRL
Pagina 41 di 66
DbWebPart version 3

View Query: E’ possibile inserire in questo campo una clausola per limitare la visibilità
dell’elemento selezionato. Tale clausola deve determinare una condizione di vero o falso e
può essere definita attraverso l’uso dei valori dei campi, di ruoli ed attributi utenti così come
spiegato nel campo View Query nel Frontend.

Execute: script C# eseguito alla selezione del pulsante.

Client Validation Javascript: codice javascript per inserire controlli lato client sull’elemento
selezionato. Deve ritornare true se il campo è corretto, false altrimenti. Nel caso il ritorno dal
controllo sia false, non sarà possibile eseguire il salvataggio del record. E’ consigliabile
inserire nel codice un alert javascript che notifichi all’utente l’errore che si è verificato. Nello
script è possibile accedere al valore del campo corrente attraverso una variabile preimpostata
currentElement,
che
contiene
l’elemento
html
corrente.
Attenzione! Non il valore del campo, ma il textbox (se è un textbox) il select (se è un listbox).
Per recuperare il valore del campo utilizzare currentElement.value se è un textbox o
currentElement.options[currentElement.selectedIndex].value se è un listbox. Se non si scrive
nulla o la variabile non viene impostata, il valore di default rimane true.

Icon: url o uri di un’icona che viene posizionata di fianco all’etichetta dell’elemento
selezionato.
I campi di configurazione che seguono non sono disponibili per i pulsanti di testata ma per i restanti:

Bind: indica il campo della tabella sulla quale insiste la DbWebPart al quale corrisponde il
campo selezionato nella pagina.

Default Value: valore di default per il campo selezionato. Tale valore viene preimpostato alla
creazione di un nuovo record ma può essere modificato dall’utente in inserimento se è abilitato
l’editing e se l’utente ne ha i diritti. La sintassi è quella del codice C# e deve ritornare il valore
di default. E’ possibile aggiungere codice che acceda alle API interne per calcolare questo
valore.

Tag Attributes: è possibile integrare i tag HTML già presenti inserendone di nuovi in questo
campo. La sintassi è quella HTML (attributo=’valore’ attributo=’valore’).

Is Label Visible: è possibile visualizzare/nascondere l’intestazione della colonna relativa al
campo selezionando/deselezionando tale opzione.

Column Menu: è possibile abilitare/disabilitare la possibilità di visualizzare il menu per il
filtraggio e l’ordinamento dei record in una lista selezionando/deselezionando tale opzione. Il
menu appare cliccando sull’intestazione della colonna e permette di filtrare/ordinare rispetto
alla colonna che si sta considerando.
TEMPESTIVE SRL
Pagina 42 di 66
DbWebPart version 3

String Format: è possibile associare una stringa di formattazione (formatter) al campo. Utile
per i tipi di dato come Data. ex: dd/MM/yyyy, o Numerico. Ex: #,00. Per la sintassi completa di
campi Data e Numerico, fare riferimento alla documentazione Microsoft:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

Is Sortable: è possibile abilitare/disabilitare la funzionalità di ordinamento rispetto ad una
colonna selezionando/deselezionando tale checkbox.

Refresh On Change: Permette di eseguire un refresh del form corrente, quando viene
modificato il valore del campo. E’ utile nel caso in cui il valore di un qualche altro campo della
pagina dipende dal valore del campo corrente, come nel caso di listbox in cascata.

Edit Query: E’ possibile inserire in questo campo una clausola per limitare la possibilità di
modifica dell’elemento selezionato. Tale clausola deve determinare una condizione di vero o
falso e può essere definita attraverso l’uso dei valori dei campi, di ruoli ed attributi utenti. Fare
riferimento alla descrizione in FrontEnd - View Query.

Span: disponibile solo negli elementi delle pagine di Search Form e Page Form. Corrisponde
al tag HTML colspan e indica il numero di colonne all’interno della griglia di visualizzazione
che l’elemento occupa.

Search Operator: disponibile solo negli elementi della pagina di Search Form. Indica
l’operatore di uguaglianza che viene utilizzato nella query SQL come clausola di ricerca per
recuperare i dati.
Alcuni dei pulsanti inseribili in una riga di tabella o nelle pagine di Page e Search hanno ulteriori
parametri di configurazione:

Button - Execute: script C# eseguito alla selezione del pulsante.

Pdf - Query: query per la selezione dei dati che devono popolare il file .pdf. Se non compilato,
viene preso il dataset corrente per la generazione del pdf, compreso il filtro applicato al
momento. Nel caso sia valorizzato, deve contenere una query di tipo Select sul database
corrente, con la possibilità di aggiungere dei parametri. Es: SELECT * FROM [ORDER
DETAILS] WHERE ORDERID = ‘@ORDERID’. Alla scritta @ORDERID, viene sostituito il
valore del campo ORDERID del record corrente selezionato.
Xslt: codice xslt per la generazione grafica del file .pdf. Per i dettagli della sintassi si rimanda
all’Appendice B
Alcuni dei pulsanti di testata hanno ulteriori parametri di configurazione:

Export - Select: query per la selezione dei record da esportare in formato Excel. Se non
impostato viene esportato il dataset corrente con i filtri applicati.
TEMPESTIVE SRL
Pagina 43 di 66
DbWebPart version 3

Word - Template FileName: path del template word usato per produrre l’output. In tale
template devono essere indicati, racchiusi tra parentesi quadre, i nomi dei campi del record
coinvolti nell’esportazione. Il motore di esportazione della dbWebPart sostituirà il reale valore
del campo del record in corrispondenza di questi placeholder.
Output FileName: nome del file .doc generato in esportazione.

Pdf – Output FileName: nome del file .pdf generato in esportazione.
Query: query per la selezione dei dati che devono popolare il file .pdf. Se non
compilato,
viene preso il dataset corrente per la generazione del pdf, compreso il filtro applicato al
momento. Nel caso sia valorizzato, deve contenere una query di tipo Select sul database
corrente, con la possibilità di aggiungere dei parametri. Es: SELECT * FROM [ORDER
DETAILS] WHERE ORDERID = ‘@ORDERID’. Alla scritta @ORDERID, viene sostituito il
valore del campo ORDERID del record corrente selezionato.
Xslt: codice xslt per la generazione grafica del file .pdf. Per i dettagli sintattici si rimanda
all’Appendice B
LANGUAGES
Quest’area permette di impostare le traduzioni per etichette ed hint di campi e pulsanti della pagina.
L’area contiene una riga di configurazione per ogni lingua definita nel campo Languages del
Frontend.
Attenzione: quando vengono effettuate delle modifiche al campo Languages in FrontEnd, è
necessario selezionare il tasto di Refresh affinché le modifiche vengano applicate all’area
LANGUAGES.
TEMPESTIVE SRL
Pagina 44 di 66
DbWebPart version 3
Capitolo 5. List Form
Attraverso questo tab si configura la pagina che presenta una lista di record in forma tabellare come
risultato da una ricerca eseguita dall’utente, o come pagina di home della dbWebPart a seconda
delle impostazioni di configurazione.
fig. 217. Screenshot del tab di configurazione "List Form"
View Navigation Bar
Attraverso la selezione/deselezione di questo parametro, è possibile mostrare/nascondere la barra
di navigazione e paginazione presente nel footer della tabella (fig. 2).
Record x Page
Se selezionato il parametro di View Navigation Bar, i record vengono paginati secondo quanto
impostato in questo campo. Si possono inserire uno o più valori separati da ‘;’ per lasciare all’utente
un grado di libertà nella visualizzazione personale. Il primo valore indica il numero iniziale di record
per pagina, per i successivi valori viene creato un link nella barra di navigazione in modo che
l’utente possa cambiare la paginazione secondo le proprie preferenze (esempio 10,20,30 come in
fig.).
TEMPESTIVE SRL
Pagina 45 di 66
DbWebPart version 3
fig. 218. Navigation Bar
Max Records in Filter
Tramite un click sul tasto destro del mouse in corrispondenza dell’header di ogni colonna è possibile
accedere ad un menu contestuale che permette di filtrare i record della tabella per effettuare
un’operazione di distinct. E’ possibile limitare il numero massimo di record sui quali effettuare tale
operazione impostandone il numero in questo campo.
Il valore ‘-1’ rilassa il vincolo e rimuove la limitazione.
Editing
Selezionando/deselezionando questo parametro è possibile abilitare/disabilitare globalmente la
tabella per l’editing inline, ovvero permettere all’utente di modificare direttamente tutti i campi
all’interno della tabella mentre li visualizza, senza dover passare ad altre pagine di dettaglio.
Tale proprietà si integra con le politiche di accesso impostate nel parametro EDIT QUERY
caratterizzante i pulsanti azzurri che corrispondono ai campi: la granularità maggiore prevale.
Ex: EDITING=’true’ ma EDIT QUERY=’false’ sul pulsante DESCRIZIONE  Il campo
DESCRIZIONE non è editabile.
Attenzione: per l’effettività delle modifiche eseguite con l’editing è necessario inserire un pulsante di
Save poiché il commit non è automatico.
Double Click To Open
E’possibile configurare il doppio click su una riga della lista, in modo che apra il form Page per le
modifiche. Se non si vuole utilizzare il doppio click per aprire il record, è possibile utilizzare come
modalità alternativa l’uso del tasto “OpenRecord” a fianco di ogni item che svolge la stessa funzione.
OnLoad
Script C# eseguito al caricamento dei dati, prima del rendering della pagina.
Per le API si rimanda all’appendice.
TEMPESTIVE SRL
Pagina 46 di 66
DbWebPart version 3
Capitolo 6. Page Form
Questo tab permette di configurare le pagine New e Page.
La pagina di New consente all’utente di creare un nuovo record;
La pagina di Detail consente all’utente la visualizzazione ed eventualmente la modifica di un record
in dettaglio.
fig. 219. Screenshot del tab di configurazione "Page Form"
View Navigation Bar
Attraverso la selezione/deselezione di questo parametro, è possibile mostrare/nascondere la barra
di navigazione e paginazione presente nel footer della tabella (fig. 2 precedente).
OnLoad
Script C# eseguito al caricamento dei dati, prima del rendering della pagina.
TEMPESTIVE SRL
Pagina 47 di 66
DbWebPart version 3
Capitolo 7. Search Form
Questo tab permette di configurare la pagina di Search che consente all’utente, valorizzando i campi
di filtro impostati in configurazione, di eseguire una ricerca sul contenuto della tabella.
fig. 220. Screenshot del tab di configurazione "Search Form"
OnLoad
Script C# eseguito al caricamento dei dati, prima del rendering della pagina.
Send Client Message On Change
Se selezionato, permette di inviare in modo automatico i messaggi alle webpart collegate non
appena avviene una modifica in un campo del form.
TEMPESTIVE SRL
Pagina 48 di 66
DbWebPart version 3
Capitolo 8. Tree Form
Con questo tab si configura la pagina Tree che permette di visualizzare i record della tabella
secondo una struttura gerarchica ad albero.
L’area di WINDOW in questo tab è puramente indicativa e non ha possibilità di interazione.
Affinché possa essere rappresentata in questa modalità, la tabella deve essere caratterizzata da
una struttura (necessaria e sufficiente ma estensibile) ben precisa:

Deve avere un campo identificatore unico

Deve avere un campo di descrizione

Deve avere un campo che indica l’identificativo del parent per ogni record

Almeno un record deve avere nel campo di parentid l’identificativo relativo alla radice
La tabella deve essere “auto referenziata”, cioè in ogni record deve esserci l’indicazione relativa al
proprio record padre. Sono ammesse strutture multi radice. La profondità massima dell’albero è
limitata a 20 livelli, al fine di evitare lo stallo in caso i dati non siano corretti e contengano dei cicli.
fig. 221. Screenshot del tab di configurazione "Tree Form"
TEMPESTIVE SRL
Pagina 49 di 66
DbWebPart version 3
Description Field
In questo campo deve essere indicato il campo di descrizione. Tale valore viene utilizzato come
etichetta per i nodi dell’albero
Key Field
E’ necessario selezionare qui il campo di identificazione del record (e quindi del nodo dell’albero).
Tale campo, insieme al Parent Key Field, permette di identificare le relazioni padre-figlio necessarie
per costruire la struttura ad albero.
Parent Key Field
E’ necessario selezionare qui il campo che contiene l’indicazione di parent key del record (e quindi
di parent del nodo dell’albero).
La tabella deve essere popolata in modo che i valori contenuti in questo campo appartengano solo e
soltanto all’insieme degli identificativi dei record, oppure coincidano con un valore speciale (Root
Condition) che indica la condizione di radice. Sono ammesse più radici all’interno della stessa
tabella.
Root Condition
Espressione che indica la condizione di radice. La sintassi è quella che segue l’istruzione Where in
una query SQL, tipo :
nomeCampo = valore speciale dove
nomeCampo è solitamente il nome del campo selezionato indicato in Parent Key Field.
valore speciale è il valore contenuto nel campo di parent key field che rappresentano la/le radice/i.
Nel caso in cui l’identificatore sia di tipo alfanumerico, è necessario racchiudere il valore speciale tra
‘’.
Icon Script
E’ possibile associare un’immagine da affiancare alla label di ogni nodo dell’albero (record)
inserendone qui l’url.
E’ necessario utilizzare una sintassi del tipo: return “url”;
L’utilizzo di questo campo è facoltativo poiché è già prevista un’immagine di default.
OnLoad
Script C# eseguito al caricamento dei dati, prima del rendering della pagina.
TEMPESTIVE SRL
Pagina 50 di 66
DbWebPart version 3
Capitolo 9. Chart Form
Con questo tab si configura la pagina Chart che permette di visualizzare i record della tabella in un
grafico di varie possibili tipologie: a torta, a barre o a linee.
L’area di WINDOW in questo tab è puramente indicativa e non ha possibilità di interazione.
fig. 30. Screenshot del tab di configurazione "Chart Form"
Chart Type
Combobox per la scelta della tipologia di grafico: Bar, Pie e Line corrispondenti rispettivamente a
torta, barre o linee. Il grafico di tipo a linee in particolare possiede ulteriori campi di configurazione
che permettono di graficare un maggior numero di serie di dati al contrario di come avviene negli
altri due casi.
Title
TEMPESTIVE SRL
Pagina 51 di 66
DbWebPart version 3
Valore riportato come titolo del grafico. Possono essere usati i valori contenuti nei campi della
tabella attraverso la sintassi @nomeCampo
Title Font Name
Nome del font utilizzato per il titolo.
Title Font Size
Dimensione font utilizzato per il titolo.
View Navigation Bar
Attraverso la selezione/deselezione di questo parametro, è possibile mostrare/nascondere la barra
di navigazione e paginazione presente nel footer del grafico (fig. 2 precedente).
Questa funzionalità è necessaria perché nel grafico sono visualizzati i dati di n record dove n è il
numero impostato nel campo di configurazione Record x Page.
Legend
Abilitando/Disabilitando questo parametro, è possibile visualizzare/nascondere la legenda.
Record x Page
Numero di record presi in considerazione nella composizione del grafico.
OnLoad
Script C# eseguito al caricamento dei dati, prima del rendering della pagina.
Record x Gap
Questo parametro viene utilizzato solo nel caso di grafico di tipo Line ed è il valore numerico che
regola l’ampiezza della scala in ascissa.
Chart Font Name
Nome del font utilizzato nel testo delle etichette e dei valori riportati nei grafici
Chart Font Size
Dimensione del font utilizzato nel testo delle etichette e dei valori riportati nei grafici.
Legend Font Name
TEMPESTIVE SRL
Pagina 52 di 66
DbWebPart version 3
Nome del font utilizzato nel testo della legenda.
Legend Font Size
Dimensione del font utilizzato nel testo della legenda.
Label Column
E’ necessario indicare in questo parametro quale è il campo della tabella di estrazione che contiene
i valori relativi alle descrizioni/etichette/legenda del grafico.
Questo parametro viene considerato solo se i valori devono essere selezionati dalla stessa tabella
sulla quale insiste la dbWebPart. In caso contrario viene ignorato ma devono necessariamente
essere compilati i tre parametri successivi (Label External Table, Label External Id Field, Label Ext.
Detail Field).
Label External Table
Da configurare solo se c’è bisogno di una relazione con una tabella esterna, e le descrizioni del
grafico devono essere prese da una tabella diversa rispetto a quella indicata in Backend-Table.
E’ il nome della tabella (dallo stesso database sul quale insiste la dbWebPart) da cui estrarre i valori
relativi alle descrizioni/etichette/legenda del grafico.
Label External Id Field
Da configurare solo se c’è bisogno di una relazione con una tabella esterna, e le descrizioni del
grafico devono essere prese da una tabella diversa rispetto a quella indicata in Backend-Table.
Campo della tabella impostata in Label External Table che indica la foreign-key nella tabella
esterna.
Label Ext. Detail Field
Campo della tabella impostata in Label External Table che contiene i valori relativi alle
descrizioni/etichette/legenda del grafico.
Data Column 1
E’ necessario indicare in questo parametro quale è il campo della tabella di estrazione che contiene
l’insieme di valori da rappresentare nel grafico.
Questo parametro viene considerato solo se i valori devono essere selezionati dalla stessa tabella
sulla quale insiste la dbWebPart. In caso contrario viene ignorato ma devono necessariamente
essere compilati i tre parametri successivi (Data External Table, Data External Id Field, Data Ext.
Detail Field).
TEMPESTIVE SRL
Pagina 53 di 66
DbWebPart version 3
Data External Table 1
Da configurare solo se c’è bisogno di una relazione con una tabella esterna, e i valori del grafico
devono essere presi da una tabella diversa rispetto a quella indicata in Backend-Table. Nome della
tabella (dallo stesso database sul quale insiste la dbWebPart) da cui estrarre i valori da graficare.
Data External Id Field 1
Campo della tabella impostata in Data External Table 1 che indica la foreign-key dai quali prelevare i
valori da graficare.
Data Ext. Detail Field 1
Campo della tabella impostata in Data External Table 1 che contiene l’insieme dei valori da
graficare.
Data Column 2 (solo per Chart di tipo Line)
E’ necessario indicare in questo parametro quale è il campo della tabella di estrazione che contiene
il secondo insieme di valori da rappresentare nel grafico a linee.
Questo parametro viene considerato solo se i valori devono essere selezionati dalla stessa tabella
sulla quale insiste la dbWebPart. In caso contrario viene ignorato ma devono necessariamente
essere compilati i tre parametri successivi (Data External Table 2, Data External Id Field 2, Data Ext.
Detail Field 2).
Data External Table 2 (solo per Chart di tipo Line)
Da configurare solo se c’è bisogno di una relazione con una tabella esterna, e i valori del grafico
devono essere presi da una tabella diversa rispetto a quella indicata in Backend-Table.Nome della
tabella (dallo stesso database sul quale insiste la dbWebPart) da cui estrarre il secondo insieme di
valori da rappresentare nel grafico a linee.
Data External Id Field 2 (solo per Chart di tipo Line)
Campo della tabella impostata in Data External Table 2 che indica la foreign-key dai quali prelevare
la seconda serie di valori da rappresentare nel grafico a linee.
Data Ext. Detail Field 2 (solo per Chart di tipo Line)
Campo della tabella impostata in Data External Table 2 che contiene la seconda serie di valori da
rappresentare nel grafico a linee.
TEMPESTIVE SRL
Pagina 54 di 66
DbWebPart version 3
Capitolo 10. Report Form
Con questo tab si configura la pagina Report dalla quale è possibile generare report personalizzati.
fig. 22. Screenshot del tab di configurazione "Report Form"
Datasource Type
Scelta del tipo di datasource dal quale prelevare i dati.
Le possibili opzioni sono:



SQLServer
ODBC
OLEDB
Connection String
Impostazione delle proprietà di inizializzazione necessarie per connettersi al database. Tali
informazioni vengono fornite sotto forma di stringa secondo una sintassi opportuna e dipendono dal
tipo di Datasource selezionato.
Un elenco esaustivo di connection string si trova a www.connectionstrings.com .
TEMPESTIVE SRL
Pagina 55 di 66
DbWebPart version 3
Query Select
Query SQL per l’estrazione dei dati da esportare nel report.
Xslt
Codice xslt necessario per la generazione grafica del report. Per i dettagli sintattici si
rimanda all’Appendice B
OnLoad
Script C# eseguito al caricamento dei dati, prima del rendering della pagina.
TEMPESTIVE SRL
Pagina 56 di 66
DbWebPart version 3
Capitolo 11. Import
Con questo tab si configura la pagina Import che permette di importare massivamente dei record
nella tabella del database. L’import può avvenire da file di tipo Excel o csv.
L’area di WINDOW in questo tab indica la corrispondenza tra l’ordine delle colonne esistenti nella
tabella e l’ordine delle colonne in import. E’necessario associare un numero ad ogni campo della
tabella in modo che per es. la prima colonna importata corrisponda alla prima colonna della tabella,
la seconda colonna importata corrisponda alla seconda colonna della tabella, etc... a seconda della
struttura del file in import.
Il numero ‘-1’ corrisponde a colonna da non importare.
fig. 23. Screenshot del tab di configurazione "Import"
File Type
Tale parametro deve essere impostato per poter effettuare un import da file Excel o CSV.
CSV Delimeter Type (solo per import da CSV)
Specifica se la struttura del file csv è a lunghezza fissa (FixedWidth) o se è delimitato (Delimited).
Se è a lunghezza fissa, è necessario compilare il parametro CSV Fixed Width Sequence.
Se è delimitato, è necessario compilare il parametro CSV Delimiter Char.
TEMPESTIVE SRL
Pagina 57 di 66
DbWebPart version 3
CSV Delimiter Char (solo per import da CSV Delimited)
E’ necessario indicare in questo parametro il carattere di delimitazione tra i campi.
CSV Fixed Width Sequence (solo per import da CSV Fixed Width)
E’ necessario indicare in questo parametro la serie di lunghezze dei campi nel file CSV da cui
saranno importati i dati. Le quantità devono essere separate da ‘;’
Ex: 5;5;10;4 indica una tabella composta da 4 campi lunghi rispettivamente 5 5 10 e 4.
Excel WorkSheet Number (solo per import da Excel)
E’ necessario indicare il numero di sheet (foglio) del file Excel dal quale i dati devono essere
prelevati per l’importazione.
First Row Contains Column Heading
Selezionando/Deselezionando questo parametro si indica al motore di importazione se la prima riga
presente nel file di import rappresenta l’intestazione della tabella (e quindi non deve essere
considerata dato) o contiene già valori utili.
Import Update Type
Questo parametro permette di realizzare la procedura di import scegliendo tra due diverse modalità.
Update aggiunge i record alla tabella o aggiorna quelli esistenti se hanno la stessa chiave.
Replace rimuove i record già esistenti dalla tabella ed aggiunge solo i nuovi record di import.
TEMPESTIVE SRL
Pagina 58 di 66
DbWebPart version 3
Appendice A
API utilizzabili per realizzare gli script C#
Per poter configurare la DbWebPart in modo avanzato e fortemente personalizzato, è possibile
realizzare degli script in linguaggio c# come descritto in precedenza.
All’interno di tali script sono disponibili i seguenti:

Attributi:
data stored in current session
public SessionDataBundle sessionData
Current Dataset
public DataSet dataSet
Current Row selected in Dataset
public DataRow currentRow
Current Rendered Row in Dataset
public DataRow renderedRow
Rows selected
public DataRow[] selectedRows

Metodi:
Send a mail
<param name="MailServer">ip address or hostname of relay server</param>
<param name="from">sender email address</param>
<param name="to">receiver email address</param>
<param name="bcc">bcc email address</param>
<param name="cc">cc email address</param>
<param name="subject">subject of email</param>
<param name="body">body of email</param>
<returns>boolean indicating if mail has been sent</returns>
public bool SendMail(string MailServer, string from, string to, string bcc, string cc, string subject, string body)
Open Chart Form
public void OpenChartForm()
Open List Form
public void OpenListForm
Open Page Form
public void OpenPageForm
TEMPESTIVE SRL
Pagina 59 di 66
DbWebPart version 3
Open Search Form
public void OpenSearchForm
Open New Form
public void OpenNewForm
Open Report Form
public void OpenReportForm
Open Import Form
public void OpenImportForm
Save current dataset
public void Save
Delete selected rows
public void Delete
Clone current Row
public DataRow Clone
Search in current database
<param name="table">table name</param>
<param name="select">select command</param>
public DataSet Search(string table,string select)
Search in external database
<param name="dtType">database type</param>
<param name="connectionString">connection string</param>
<param name="table">table name</param>
<param name="select">select command</param>
public DataSet Search(DataSourceType dtType, string connectionString,string table, string select)
Execute StoredProcedure in current database
<param name="storedProcedureName">Stored Procedure Name</param>
<returns>Effected rows</returns>
public int Execute(string storedProcedureName, DbParameter[] parameters)
Reload data from backend
public void RefreshBackend()

Oggetti:
L’oggetto SessionData, che si trova tra gli attributi, è di tipo SessionDataBundle: contiene tutte
le informazioni della sessione ed ha i seguenti metodi ed attributi:
The DbWebPart uniqueID. Is a unique string of DbWebPart instance
public string UniqueID
TEMPESTIVE SRL
Pagina 60 di 66
DbWebPart version 3
userName, roles and AD custom attributes
public Hashtable UserAttributes
Names of controls in error
public ArrayList ControlsInError
The Message coming from other webpart
public string Message
The Message coming from other webpart when a drop is performed in this webpart.
ex of message: 'field1=xxx;field2=yyy;field3=zzz'
public string Drop
Hashtable of FilterObj
public Hashtable SearchFilter
ArrayList of SortObjects
public ArrayList SortFilter
Hashtable of AbstractAction created in previous server callback
public Hashtable Actions
Hashtable of AbstractControl created in previous server callback
public Hashtable Controls
the selected rows, separated by ; from zero to Dataset.Rows.Count
public string SelectedRowsString
The row count in Dataset
public int RowCount
When this web part is a consumer this value contains the provider webpart UniqueID
The webpart use this value on client to register for call
public string MessageProviderUniqueID
Current number of record X page
public int RecordXPage
Hashtable of string, containing error messages in format:
key = Exception.Message
value = Exception.InnerException
public Hashtable ErrorMessage
In TreeView, the value of unique Key of currentRow
public object CurrentTreeUniqueKeyValue
Is true if current Tree Element in Tree Form is Open
public bool IsCurrentTreeElementOpen
Is true if current Tree Element in Tree Form is Selected
public bool IsCurrentTreeElementSelected
TEMPESTIVE SRL
Pagina 61 di 66
DbWebPart version 3
Current rendered row in dataset
public int RenderedRowIndex = 0;
The Browser CultureInfo
public CultureInfo CultureInfo
Return an Hashtable of FilterObj.
Hashtable.Keys = message keys
<returns>Hashtable of FilterObj</returns>
public Hashtable GetMessageFilter
Return an Hashtable containing the Drop attribute splitted.
key = name Of Field in Drop Message
value = value Of Field in Drop Message
public Hashtable GetMessageDrop
Add a value in SearchFilter. Test if value is already present and if so, replace it.
<param name="obj">the FilterObj to add</param>
public void AddSearchFilter(FilterObj obj)
Add a value in SortFilter ArrayList
<param name="obj">the SortObject to add</param>
public void AddSortFilter(SortObject obj
Return the index of SortObject in SortFilter ArrayList
<param name="obj">SortObject</param>
public int SortFilterFindIndexOf(SortObject obj)
Return the index of SortObject in SortFilter ArrayList
<param name="obj"></param>
public int SortFilterFindIndexOf(string ColumnName)
Return an Hashtable of Array
Hashtable.Keys = Dataset ColumnNames with FilterBy != null
Compose: MessageFilter + SearchFilter
public Hashtable GetDatasetFilter()
Get Control by Bind
public AbstractControl GetControlByBindName(string bindField)
Get the current control by name
<param name="fieldName">the field name</param>
public AbstractControl GetControl(string fieldName)
Get the control by name and index in dataset
<param name="fieldName">filed name</param>
<param name="rowIndex"></param>
public AbstractControl GetControl(string fieldName,int rowIndex)
The webpart metadati Object
public MetadatiObj Metadati
TEMPESTIVE SRL
Pagina 62 di 66
DbWebPart version 3
Current Form to Render
public FormControl CurrentForm
The start Row in Dataset
public int StartRow
The end Row in Dataset
public int EndRow
The current Row in Database (StartRow +CurrentDataSetIndex)
public int CurrentRowIndex
Like set in CurrentRowIndex Attribute but don't clear the Controls set.
<param name="i"></param>
public void SetCurrentRowIndex(int i)
Get the current dataset index (CurrentRowIndex - StartRow)
public int CurrentDataSetIndex
An ArryList containig the index(int) of selected rows
public ArrayList SelectedRowsIndex
The CurrentPage
public int CurrentPage
The PageCount
public int PageCount
Return the fields with connection on local db.
For this fields it's possible to make a join query
public Field[] GetExternalFields
Return an Hashtable of FilterObj.
Hashtable.Keys = message keys
<returns>Hashtable of FilterObj</returns>
public Hashtable GetMessageDropFilter()
L’oggetto FilterObj:
public string Name;
public SearchOperator SearchOperator;
public ArrayList Value;
public FilterObj(string name)
public FilterObj(string name,object value)
public string GetOperatorString()
L’oggetto SortObj:
public string ColumnName;
public OrderDir Order;
TEMPESTIVE SRL
Pagina 63 di 66
DbWebPart version 3
Alcune enumeration:
public enum OrderDir {
ASC = 0,
DESC =1
}
public enum SearchOperator {
Equal = 0,
Less = 1,
LessEqual = 2,
Greater = 3,
GreaterEqual = 4,
Not = 5,
Like = 6,
Between = 7,
IsNull = 8
}
TEMPESTIVE SRL
Pagina 64 di 66
DbWebPart version 3
Appendice B
Utilizzo di xslt per la generazione di report in pdf
L'xml prodotto internamente dal dataset per la creazione del report dall’estrazione dei dati è così
strutturato:
<NewDataSet>
<Table>
<nomecampo1>valore<nomecampo1>
<nomecampo2>valore<nomecampo2>
<nomecampo3>valore<nomecampo3>
.....
</Table>
<Table>
<nomecampo1>valore<nomecampo1>
<nomecampo2>valore<nomecampo2>
<nomecampo3>valore<nomecampo3>
....
</Table>
....
</NewDataSet>
dove NewDataSet e Table sono nodi fissi, mentre al posto di 'nomecampoX' e 'valore' sono presenti
i nomi reali dei campi e i loro valori.
Di seguito è mostrato un esempio di xslt corretto, dove OrderID e OrderDate sono i campi della
tabella che saranno estratti dal motore di report per ogni record.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:template match="NewDataSet">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<xsl:for-each select="Table">
<fo:block font-family="bankm" font-size="20pt" text-align="right">
<fo:inline font-size="14pt">
<xsl:value-of select="OrderID"/> <xsl:value-of select="OrderDate"/>
</fo:inline>
</fo:block>
</xsl:for-each>
</fo:block>
TEMPESTIVE SRL
Pagina 65 di 66
DbWebPart version 3
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
TEMPESTIVE SRL
Pagina 66 di 66