Le funzionalità messe a disposizione sono organizzate all’interno di menù omogenei di I° livello:
Strumento per la personalizzazione vera e propria del software ovvero definisce i temi che si vuole trattare in questa particolare installazione, i dati che verranno gestiti, i progetti che s’intende amministrare, organizzando il tutto in una minuziosa archiviazione. I dati così divisi e le applicazioni che vi operano sono i componenti principali su cui agiscono le autorizzazioni concesse ai gruppi di utenti.
Ogni maschera di gestione contiene sempre le seguenti funzioni.
Delete elimina nel database il record che identifica l’oggetto in esame
Save Salva nel database le informazioni presenti sulla maschera
Create inserisce nel database il record che identifica l’oggetto in esame
* campo obbligatorio
X elimina il record corrispondente
+ aggiunge il record corrispondente
Le maschere hanno la funzione drag-and-drop che consente di effettuare diverse semplicemente cliccando su un elemento e trascinarlo nella posizione desiderata.
Questa maschera consente di visualizzare l’elenco di tutti i progetti configurati. È possibile personalizzare l’immagine associata al progetto, e che compare nell’home page dell’applicazione, facendo il doppio click e sostituendola con un’altra.
Tramite tale maschera viene impostato il layout del progetto: è possibile scegliere tra GeoManager (accesso ai dati tramite interfaccia alfanumerica) e GeoExplorer (accesso ai dati tramite interfaccia mappa).
Tramite tale maschera si assegnano i gruppi di utenti che hanno il permesso di visualizzare determinati ambiti.
Per Progetto si intende un raggruppamento di Temi la cui gestione può essere effettuata attraverso una o più applicazioni. Un progetto è caratterizzato quindi da un nome, da una descrizione, da un elenco di temi e da un elenco di applicazioni. Se il progetto prevede la mappa è possibile specificare il nome e il tipo di file da caricare. L’ordine con cui vengono inseriti i temi i le applicazioni determina l’ordinamento in fase di visualizzazione.
Per poter configurare un progetto si deve quindi:
Inserimento nuovo progetto
Modifica/Eliminazione progetto
Tramite apposita funzione aprire la maschera di dettaglio del progetto da modificare/eliminare
* Per la modifica:
* Per l’eliminazione:
Associazione progetto-tema
Per aggiungere ulteriori temi al progetto:
Per completare la configurazione del tema, o le singole classi, vanno inserite anche nel Layout del progetto stesso come sotto indicato.
Eliminazione associazione progetto-tema
Per eliminare un tema dal progetto:
Configurazione del layout del progetto Tale funzione serve per configurare i vari menù tramite i quali è possibile navigare i dati del progetto:
Associazione dei permessi al progetto
Tale funzione serve per assegnare i permessi dei gruppi di utenti per ogni ambito associato al progetto.
Tramite la spunta su Open del singolo ambito si dà al relativo gruppo di utenti di accedere all'applicazione.
Geoweb è integrato con Jasper Report, quindi le report, che hanno diverse finalità e modalità di utilizzo, sono realizzate utilizzando iReport. Le reportistiche possono essere prodotte in formati come pdf, xls, rtf.
Le report sono di divise nelle seguenti tipologie:
Sono le report di lista o di dettaglio che vengono agganciate alla classe, e che seguono eventuali filtri applicati alla classe stessa al momento in cui viene chiamata la report. Queste report hanno il vincolo di poter includere solo i campi presenti negli attributi definiti nella classe. Tale vincolo può essere aggirato, vedere il paragrafo dedicato.
Reports di Comando o Report HTML
Si tratta di pagine HTML realizzate sempre con Jasper Report, che permettono attraverso la configurazione di HyperLink, di fare chiamate a Geoweb, come aperture di liste o dettagli, attivazione di altre report, lancio di azioni e cosi via. In tale modo si possono bypassare i casi d'uso applicativi imposti dal framework, e creare delle interfacce utente specializzate e accattivanti.
Sono Report Generiche, richiamabili dalla scheda gwReportsSheet o in altre modalità (Report di Comando). Servono ad estrarre i dati senza alcun vincolo. In queste Report possono essere definiti dei parametri che vengono richieste lato client all'utente che esegue la report stessa
Opzione 'Quando non ci sono dati Stampa' : é importante impostare questa opzione per tutte le report, in maniera tale che non diano errori se la report viene chiamata e non ci sono dati da stampare. L'impostazione corretta è 'Tutte le sezioni senza Dettaglio'
Di seguito sono illustrati gli standard di riferimento per predisporre, con iReport delle report HTML che possono essere utilizzate come pannelli Comandi di Geoweb.
Tali report sono richiamabili come tipo Scheda e da queste, attraverso l’utilizzo di Hyperlink, potranno essere lanciate altre report - sia di classe, che di cruscotto, che di comando - azioni, schede, ecc.
Layout standard report in formato HTML
Dimensioni minime della pagina
Larghezza = 700
Altezza = 100
Numero minimo di bande previste 3, di seguito le caratteristiche delle bande
Titolo – h banda = 50
Testata di colonna – h banda = 30
Dettaglio – h banda = 20
Esempio di struttura di report con Titolo – Testata di colonna - Dettaglio
La banda dovrà contenere il titolo della report e opzionalmente il logo del cliente / prodotto ed un eventuale grafico.
Il titolo della report dovrà essere inserito utilizzando l’oggetto testo statico di jreport e dovrà avere le seguenti caratteristiche:
Font = Arial
Dimensione = 14
Grassetto = Si
Colore in primo piano = 2,72,133 (scala rgb)
Colore di sfondo = Nessuno
Allineamento orizzontale = Centro
Allineamento verticale = Medio
Larghezza dell’elemento = Pari alla larghezza della banda
Per quanto riguarda l’eventuale logo si riporta una breve descrizione di quanto necessita:
Sinistra = 10 (distanza dal margine sx della banda)
Altezza = 5 (distanza dal margine basso della banda)
Larghezza= 40
Altezza = 40
Espressione immagine = new java.io.ByteArrayInputStream((byte[]) $P{logo})
Scala immagine = Mantieni proporzioni
Per quanto concerne la presenza di un eventuale grafico la configurazione dello stesso varierà da report a report.
Nel caso di presenza di un grafico bisognerà aumentare le dimensioni della pagina della report (altezza complessiva) in modo da poter aumentare la dimensione della banda.
Esempio di struttura della banda Titolo
Oggetto Immagine per Logo
Oggetto testo statico
Contiene le etichette dei campi che vengono richiamati nella report.
Le etichette dovranno essere inserite utilizzando l’oggetto testo statico di jreport e dovranno avere le seguenti caratteristiche:
Font = SansSerif (ininfluente nel caso in cui l’ output del font rimanga quello di default)
Dimensione = 10
Grassetto = Si
Colore in primo piano = 255,255,255 (scala rgb)
Colore di sfondo = 2,72,133 (scala rgb)
Opaco = Si
Allineamento orizzontale = Centro
Allineamento verticale = Medio
Altezza elemento = Pari all'altezza della banda
Esempio di struttura banda Titolo di colonna
Per creare i collegamenti ipertestuali all'interno di un report occorre:
In Geoweb è presente un foglio di stile .css nel quale è definito tale stile, che provoca uno 'scurimento' del controllo al passaggio del mouse.
Dalla versione 4.6.11.30 (issue #1251)
Dato che in 4.6 lo stile hover dei button è differente da quello delle row delle grid, sono state aggiunti contestualmente i selettori css (integrabili nelle report):
Il set di regole di queste class css, se necessario, saranno tenute allineate di volta in volta nel framework. E' bene nelle report avere hook point differenti almeno per bottoni e righe
3. Scegliere il tipo di Hyperlink target tra i seguenti:
4. Nel collegamento a discesa Hyperlink Type, scegliere se il tipo di collegamento è: None , Reference, LocalAnchor, LocalPage, RemoteAnchor, RemotePage o ReportExecution.
Per le nostre casistiche basta selezionare il tipo di hyperlink target = Self e il tipo di hyperlink type = Reference.
Definiti questi 2 parametri bisogna inserire nel box Hyperlink le varie istruzioni java riportate di seguito.
NB. Tutte le istruzioni java devono essere riportate su un’unica riga, non devono in alcun modo andare a capo altrimenti ireport non lo riconosce come istruzione javascript.
n questo caso occorre definire all'interno del file jrxml della report un oggetto che abbia il collegamento.
Riporto di seguito i passaggi eseguiti:
Inserimento di immagine all'interno della report html
Selezionare l’immagine inserita, tasto destro del mouse e selezionare Collegamento
Selezionato il comando collegamento si aprirà la maschera di definizione dello stesso
Impostare Hyperlink target = Self
Hyperlink type = Reference
Nell’ Hyperlink Reference Expression occorre riportare la seguente stringa:
“javascript:openGwClassDetailFloatingPane('newItem', 'ClassName');”
L’unico parametro che deve essere modificato è il parametro ClassName che rappresenta il nome della classe in cui verrà inserito un nuovo record
Nell'esempio riportato di fianco ho aggiunto la possibilità di inserire un nuovo elemento nella classe ril_cabina.
Aprire la report con ireport;
Selezionare il valore che deve avere un Hyperlink
Tasto destro del mouse e selezionare Collegamento
Impostare Hyperlink target = Blank
Hyperlink type = Reference
Nell’ Hyperlink Reference Expression occorre riportare la seguente stringa:
“javascript:openGwClassDetailFloatingPane(‘itemId’,’className’);”
itemID = Inserire la chiave primaria della classe
ClassName = Inserire il nome della classe a cui si fa riferimento per apertura della scheda di dettaglio
Nell’ esempio riportato ho creato un hyperlink che, selezionando un campo definito apre la scheda di dettaglio in base alla chiave primaria del campo stesso e relativa classe.
Esempio: “javascript:openGwClassDetailFloatingPane(” + $F{OGC_FID} +“, 'ril_cabina');”
Aprire la report con ireport;
Selezionare il valore che deve avere un Hyperlink
Tasto destro del mouse e selezionare Collegamento
Selezionato il comando collegamento si aprirà la maschera di definizione dello stesso
Impostare Hyperlink target = Self
Hyperlink type = Reference
Nell’ Hyperlink Reference Expression occorre riportare la seguente stringa:
“javascript:var avoidReturn = openGwClassDetailTab('”+$F{nome_campo}+“','nome_classe',{ forceReplaceTab: true });”
$F{nome_campo} = Inserire la chiave primaria della classe
Nome_classe = Inserire il nome della classe a cui si fa riferimento per apertura della scheda di dettaglio
L’aggiunta di var avoidReturn serve per aggirare problemi legati ad alcuni browser tipo Internet Explorer e Mozilla Firefox nella visualizzazione di alcuni tab legati alla report html
Dopo aver selezionato il campo che dovrà avere il collegamento (sempre all'interno della report in jreport) definire lo stesso inserendo la seguente stringa:
“javascript:var tabWidgetType = 'gwClassList'; var className = 'Ril_Pod'; var tabName = className; var tabWidgetId =tabWidgetType+'_'+tabName+'_tab'; var tabWidgetTitle = 'Elenco POD fornitura Centralizzata'; var parametersMap = {className: className,staticFilters: { condition: 'AND', columnName: 'tipo_fornitura', operator: '=', filterType: 'STRING', value: ['Centralizzata'] } };openTab(tabWidgetId, tabWidgetType, tabWidgetTitle, parametersMap);”
Bisogna definire le seguenti variabili:
className: nome della classe di riferimento sulla quale si vuole aprire la lista filtrata
tabWidgetTitle: Titolo dell’elenco filtrato
parameterMap: in questa variabile si deve definire la condizione del filtro che si vuole applicare e quindi
columnName: nome della colonna sulla quale si effettua il filtro;
operator
filterType: stringa, numero ecc. ecc., dipende dal tipo di campo che si filtra;
value: valore della colonna per il quale si effettua il filtro.
Dopo aver selezionato il campo che dovrà avere il collegamento (sempre all’interno della report in jreport) definire lo stesso inserendo la seguente stringa:
“javascript:var tabWidgetType = 'gwHtmlReport'; var reportUrl='Cruscotto/Conteggi_POD_Cabine.jasper'; var tabName = className; var tabWidgetId = tabWidgetType+'_'+tabName+'_tab'; var tabWidgetTitle = 'titolo scheda'; var parametersMap = {reportUrl:reportUrl};openTab(tabWidgetId, tabWidgetType, tabWidgetTitle, parametersMap);”
Definire la seguente variabile:
reportUrl: inserire il percorso dove risiede la report che si vuole aprire
Dopo aver selezionato il campo che dovrà avere il collegamento (sempre all’interno della report in jreport) definire lo stesso inserendo la seguente stringa:
“javascript:var tabWidgetType = 'gwReport'; var className = 'Ril_Pod';var reportUrl='Cruscotto/Conteggi_POD_Cabine.jasper'; var tabName = className; var tabWidgetId = tabWidgetType+'_'+tabName+'_tab'; var tabWidgetTitle = 'titolo scheda'; var parametersMap = {className:className,reportUrl:reportUrl}; openTab(tabWidgetId, tabWidgetType, tabWidgetTitle, parametersMap);”
Definire le seguenti variabili:
className: inserire il nome della classe
reportUrl: inserire il percorso dove risiede la report che si vuole aprire.
“javascript:var reportName='RepVerFolderMain.pdf'; var itemId =” + $F{ID_FOLDER}+ “; var className = 'v_ver_folder';var reportUrl='VER_Report/RepVerFolderMain.jasper'; var attachment = true; var reportParameters = {className:className,attachment:attachment}; openGwReport(reportUrl,reportName,reportParameters,className,attachment);”
In questo caso occorre definire all'interno del file jrxml della report un oggetto che abbia il collegamento.
Riporto di seguito i passaggi eseguiti:
Inserimento di immagine all'interno della report html
Selezionare l’immagine inserita, tasto destro del mouse e selezionare Collegamento
Selezionato il comando collegamento si aprirà la maschera di definizione dello stesso
Impostare Hyperlink target = Self
Hyperlink type = Reference
Nell’ Hyperlink Reference Expression occorre riportare la seguente stringa:
“javascript:var gwMapName = 'nome della mappa da aprire';var mapId = gwMapName;var mapUri = project_gwid+'/mapLayout/'+gwMapName+'.html';var mapLabel = 'Mappa cruscotto';openMapTab(mapId, mapUri, mapLabel);”
I parametri che devono essere impostati:
gwMapName = nome della mappa che si intende aprire, la mappa deve essere stata definita negli strumenti di amministrazione di Geoweb.
mapLabel = etichetta che deve essere visualizzata in apertura del tab
In questo caso occorre definire all’interno del file jrxml della report un oggetto che abbia il collegamento.
Riporto di seguito i passaggi eseguiti:
Inserimento di immagine all’interno della report html
Selezionare l’immagine inserita, tasto destro del mouse e selezionare Collegamento
Selezionato il comando collegamento si aprirà la maschera di definizione dello stesso
Impostare Hyperlink target = Self
Hyperlink type = Reference
Nell’ Hyperlink Reference Expression occorre riportare la seguente stringa:
“javascript:var gwMapName = 'nome_mappa_in_geoweb';var planId = 1234;var mapId = gwMapName+'_'+planId ;var mapUri = project_gwid+'/mapLayout/'+gwMapName+'/'+planId+'.html';var mapLabel = 'Titolo scheda planimetria';openMapTab(mapId, mapUri, mapLabel);”
I parametri che devono essere impostati:
gwMapName = nome della mappa che contiene la planimetria che si intende aprire, la mappa deve essere stata definita negli strumenti di amministrazione di Geoweb.
planID = chiave primaria della planimetria che si intende aprire
mapLabel = etichetta che deve essere visualizzata in apertura del tab
Di seguito i passaggi per poter inserire un’immagine di tipo svg all'interno di una report con i report.
Nell'esempio sopra riportato sono stati creati files di immagini di tipo svg che hanno come nome il codice di un singolo elemento presente in tabella, in questo modo ad ogni codice cabina viene visualizzato il relativo file di immagine.
Nell’ Hyperlink Reference Expression occorre riportare la seguente stringa:
“javascript:var parameterQueryList = {filters: [{condition: 'OR',columnName: 'cod_resource_ou_zone',filterType: 'STRING',operator: '=',value: ['”+$F{cod_resource_ou_zone}+“']}]}; groovyActionList('inserisciJORTurnoSettimana_2',parameterQueryList,{gwClassName:},function(map){openGwClassDetailTab(
+map.result, 'jor_workshift_week', { forceReplaceTab: true });});”
Dove i parametri sono i seguenti:
parameterQueryList: parametri che vengono passati al groovy.
All'interno del groovy è possibile riferirsi a tali parametri con la sintassi seguente:
log.debug(“item:”+items[0].cod_resource_ou_zone);
groovyActionList: parametri di chiamata del groovy:
nome del groovy;
lista parametri (sopra definita);
mappa con il nome della classe nella quale è definita la action?;
funzione GW che deve essere eseguita, a cui viene passato il valore restituito dal groovy; Nell’esempio viene aperto il form della classe 'jor_workshift_week', posizionato sul record ottenuto dal Groovy (PK_TURNO);
La report di class di tipo “Analisi Excel” è una tipologia di Reportistica di Geoweb, che scrive i dati in un Documento Excel (.xlsx) costruito a mò di template con una serie di regole Il Documento conterrà dei fogli di lavoro di sintesi (Tabelle Pivot, Grafici) basati sul foglio dati 'riempito' da Geoweb.
Regole di definizione del Documento Excel
Esecuzione della Report
2. Come report lanciata da un cruscotto o da un pannello di lancio in HTML (es. reportHTML)
Il menù di I° livello Gestione Mappe rende disponibili le funzionalità per:
Strumenti per la personalizzazione delle mappe del progetto che compongono il singolo progetto.
Da tale maschera è possibile creare nuovi mappe o modificare le impostazioni di quelli già configurate.
Tutte le procedure che seguono hanno come passi iniziali i seguenti:
Visualizzare l’Albero di Gestione delle mappe attraverso la dicitura Maps Management e selezionare la mappa:
Per mappe di base si intendono le basi cartografiche che fanno da sfondo ed inquadramento del progetto.
Visualizzare l’Albero di Gestione delle mappe attraverso la dicitura Maps Management e selezionare la mappa:
Inserire una nuova Base Map e definire i parametri necessari:
{layers:'OI.ORTOIMMAGINICOLORE.2012',srs:'EPSG:3857'}
In questo paragrafo viene descritto come configurare un layer di mapguide affinché possa supportare un meccanismo automatico di GeoWeb di creazione del layer ad ogni configurazione di una nuova famiglia o gerarchia.
Es. mapguide.library.path=Library:GWMODULES
- Controllare negli attributi della classe che lo widget CLASSIFICATION abbia ben configurato il percorso della Mappa per il parametro <mapPath>
Es. Library:GWMODULES/maps/floorPlan.MapDefinition
Una volta seguite tutte le istruzioni, nel progetto sul client, ad ogni nuova definizione di Famiglia verrà creato il corrispondente layer con il simbolino scelto in quel momento.
NB. È necessario aggiornare la mappa (F5) per vedere il layer subito dopo la creazione della famiglia.
Strumenti per la personalizzazione e creazione degli ambiti del progetto.
Con Ambito si intende la possibilità di suddividere i dati in un numero n di sottoinsiemi indicati con il termine di valori di ambito. È quindi possibile ad esempio definire una categoria di ambito ‘Comune’ per suddividere i dati della base dati in base al comune. In questo caso potrebbero essere definiti tanti valori di ambito quanti sono i differenti comuni presenti nella base di dati. Sarà necessario individuare in ogni tabella della base dati un campo che indica il comune di appartenenza e indicare come valori di ambito i possibili valori che può assumere. Potrebbe accadere che questo campo non abbia lo stesso nome per tutte le tabelle, per questo è necessario specificare per ciascuna tabella quale è il nome di questo campo. In conclusione per ciascuna categoria di ambito deve essere indicato la lista di valori di ambito e l’associazione classe (tabella) – colonna per tutte le classi su cui si vuole applicare l’ambito.
Da tale maschera è possibile creare nuovi ambiti o modificare le impostazioni di quelli già configurati.
Tutte le procedure che seguono hanno come passi iniziali i seguenti:
Visualizzare l’Albero di Gestione degli ambiti attraverso la dicitura Scopes Management e selezionare l’ambito: