{"id":3825,"date":"2018-01-08T14:35:57","date_gmt":"2018-01-08T14:35:57","guid":{"rendered":"https:\/\/twproject.com\/support\/?page_id=3825"},"modified":"2025-10-07T14:14:40","modified_gmt":"2025-10-07T14:14:40","slug":"scrivi-il-tuo-report","status":"publish","type":"page","link":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/","title":{"rendered":"Scrivi il tuo report"},"content":{"rendered":"<p>In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports.<\/p>\n<p>I dati del tuo progetti sono raccolti e gestiti con cura da Twproject e questo rappresenta uno degli aspetti pi\u00f9 preziosi nell&#8217;adozione di Twproject<br \/>\nCome puoi estrarre i tuoi dati e presentarli ai tuoi utenti? In realt\u00e0 Twproject ha varie pagine con funzionalit\u00e0 di filtro dinamico che estraggono dati significativi, ma fino alla versione 5.5 mancava un sistema di report personalizzabile.<br \/>\nIn questa versione abbiamo integrato\u00a0<a href=\"http:\/\/community.jaspersoft.com\/\">Jasper Reports<\/a>, uno dei pi\u00f9 potenti motori di report. Jasper reports aggiunge la possibilit\u00e0 di creare il tuo report in pochi minuti usando un editor grafico.<br \/>\nI report sono integrati con la flessibile struttura di sicurezza di Twproject in un modo facile e pratico, senza obbligare gli utenti a scrivere query e regole complesse.<\/p>\n<p><a href=\"http:\/\/community.jaspersoft.com\/\"><br \/>\nJasperReports<\/a> \u00e8 uno strumento di reporting di\u00a0<a href=\"http:\/\/www.jaspersoft.com\/\">JasperSoft<\/a> (acquisita recentemente da Tibco) largamente usato dalla comunit\u00e0 java orientata alle imprese.<\/p>\n<p>I report possono essere disegnati facilmente con\u00a0<a href=\"http:\/\/community.jaspersoft.com\/project\/ireport-designer\" target=\"_blank\" rel=\"noopener\">iReport Designer<\/a>, che \u00e8 facile, potente, gratuito e open-source, oppure con\u00a0<a href=\"http:\/\/community.jaspersoft.com\/project\/jaspersoft-studio\">Jaspersoft Studio<\/a>.<\/p>\n<p>Jasper Studio \u00e8 il prodotto principale ed \u00e8 basato su Eclipse. iReport \u00e8 pi\u00f9 facile da configurare, ma sfortunatamente verr\u00e0 abbandonato presto. Se gi\u00e0 conosci l&#8217;interfaccia Eclipse, usa Jasper Studio, altrimenti usa iReport. In realt\u00e0 i passi per la configurazione sono molto simili.<\/p>\n<p>Per i nostri scopi iReport funziona perfettamente.<\/p>\n<h3>Driver e classpath<\/h3>\n<p>Una volta che iReport\u00a0 \u00e8 installato il primo passo \u00e8 quello di aggiungere le librerie del database all&#8217;editor.<\/p>\n<p>1)\u00a0 Clicca su tools-&gt;options e poi sul tab \u201cclasspath\u201d.<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png\" alt=\"image\" width=\"774\" height=\"410\" border=\"0\" \/><\/a><\/p>\n<p>I driver del Database sono inclusi nella distribuzione di Twproject, puoi trovarli qui<span style=\"line-height: 1.5;\">:<\/span><\/p>\n<ul>\n<li><strong>SQL server<\/strong>: [twproject root]\\WEB-INF\\lib\\jtds-1.2.5.jar<\/li>\n<li><strong>My SQL<\/strong>: [twproject root]\\WEB-INF\\lib\\mysql-connector-java-5.1.6-bin.jar<\/li>\n<li><strong>Oracle<\/strong>: [twproject root]\\WEB-INF\\lib\\ojdbc5.jar<\/li>\n<li><strong>PostgreSQL<\/strong>: [twproject root]\\WEB-INF\\lib\\postgresql-9.0-801.jdbc3.jar<\/li>\n<li><strong>HSQLDB<\/strong>: [twproject root]\\WEB-INF\\lib\\hsqldb.jar<\/li>\n<\/ul>\n<p>Clicca sul bottone \u201cAdd jar\u201d e selziona il driver per il database che stai usando.<\/p>\n<p>Quindi dovresti aggiungere anche le classi di Twproject, nel caso dovessimo usare qulache funzione di formattazione.<\/p>\n<p>Clicca su \u201cAdd Folder\u201d e seleziona la cartella [twproject root]\\WEB-INF\\lib\\classes<\/p>\n<p>Una volta fatto siamo pronti per connettere il database di Twproject<\/p>\n<p>1) clicca su \u201cStep 1: Create database connection\u201d<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb1.png\" alt=\"image\" width=\"171\" height=\"208\" border=\"0\" \/><\/a><\/p>\n<p>3) scegli Database JDBC Connection<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb2.png\" alt=\"image\" width=\"466\" height=\"391\" border=\"0\" \/><\/a><\/p>\n<p>4) scrivi il nome della connessione, \u201cTW5 test\u201d per esempio<\/p>\n<p>5) seleziona il driver del database giusto:<\/p>\n<p>inserisci i dati di connessione al server, nome del database, utente e password:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb3.png\" alt=\"image\" width=\"467\" height=\"394\" border=\"0\" \/><\/a><\/p>\n<p>6) fai un test della connessione<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image4.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb4.png\" alt=\"image\" width=\"461\" height=\"384\" border=\"0\" \/><\/a><\/p>\n<p>Se la connessione \u00e8 corretta, possiamo procedere scrivendo il nostro primo report.<\/p>\n<h3>Crea il tuo primo report<\/h3>\n<p>Clica su \u201cStep 2 : create a new report\u201c<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb5.png\" alt=\"image\" width=\"168\" height=\"198\" border=\"0\" \/><\/a><\/p>\n<p>Il wizard del report si aprir\u00e0 in pop-up. Ci sono vari template:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image6.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb6.png\" alt=\"image\" width=\"756\" height=\"564\" border=\"0\" \/><\/a><\/p>\n<p>Seleziona quello che ti piace di pi\u00f9 e clicca su \u201cLaunch Report Wizard\u201d.<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image12.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb12.png\" alt=\"image\" width=\"620\" height=\"457\" border=\"0\" \/><\/a><\/p>\n<p>Inserisci il nome del report e la location con attenzione: il nome del report e la location sono informazioni cruciali per l&#8217;integrazione tra Twproject e iReport. Leggi la sezione dedicata\u00a0<a href=\"#repandperm\">sotto<\/a>.<\/p>\n<p>Clicca \u201cNext\u201d<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image10.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb10.png\" alt=\"image\" width=\"621\" height=\"456\" border=\"0\" \/><\/a><\/p>\n<p>seleziona la tua fonte di dati appena creata \u201cTW5 test\u201d;ora \u00e8 il momento di pensare alla query.<\/p>\n<p>In questo esempio vorremmo riportare il tempo che ogni risorsa impiega sui loro progetti.<\/p>\n<p>Per scrivere una query, \u00e8 obbligatorio conoscere la struttura dati di Twproject. Anche se i nomi delle tabelle sono abbastanza immediati, suggerisco di dare unosguardo a questa sezione:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/import-export\/struttura-del-database\/\">https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/import-export\/struttura-del-database\/<\/a><\/p>\n<p>Se sei un mago di SQL puoi scrivere la tua query direttamente, ma se preferisci qualcosa di pi\u00f9\u00a0 \u201cvisuale\u201d clicca sul bottone \u201cDesign query\u201d:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image11.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb11.png\" alt=\"image\" width=\"1029\" height=\"665\" border=\"0\" \/><\/a><\/p>\n<p>Trascina le tabelle di cui hai bisogno per la query.<\/p>\n<p>Nel nostro caso le ore lavorative sono nella tabella twk_worklog. I record di worklog sono sempre collegati a un&#8217;assegnazione. Le assegnazioni creano relazioni tra risorse e progetto ponderate con un ruolo. Quindi dobbiamo aggiugere \u201ctwk_assignment\u201d, \u201ctsk_task\u201d, \u201ctwk_resource\u201d e \u201colpl_role\u201d. Lo strumento di modifica della query user\u00e0 le sql foreign keys per creare i joins.<\/p>\n<p>Salva la query e clicca su \u201cnext\u201d.<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image13.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb13.png\" alt=\"image\" width=\"627\" height=\"456\" border=\"0\" \/><\/a><\/p>\n<p>Puoi selezionare i campi che vuoi vedere nel tuo report. Nel nostro caso li aggiungeremo manualmente. Clicca su \u201cnext\u201d<\/p>\n<p>Qui definirai alcuni gruppi, ma questo non \u00e8 obbligatorio, puoi aggiungerli anche dopo.<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image14.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb14.png\" alt=\"image\" width=\"625\" height=\"439\" border=\"0\" \/><\/a><\/p>\n<p>Clicca su \u201cnext\u201d e poi su \u201cfinish\u201d.<\/p>\n<p>Il tuo \u201cschema\u201d del report \u00e8 quasi pronto:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image15.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb15.png\" alt=\"image\" width=\"1168\" height=\"815\" border=\"0\" \/><\/a><\/p>\n<p>Si noti che un report ha molte sezioni come \u201cTitolo\u201d, \u201cpage header,\u201d intestazione di due gruppi, dettagli, e un footer.<\/p>\n<p>Se clicchi su \u201cpreview\u201d vedrai qualcosa di bruttino come questo:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image16.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb16.png\" alt=\"image\" width=\"619\" height=\"230\" border=\"0\" \/><\/a><\/p>\n<p>Torna sul designer e fai qualche modifica:<\/p>\n<p>Cambia il titolo, usa il nome del progetto e della risorsa invece dell&#8217;id<\/p>\n<p>Trascina la data di inserimento del worklog, azione e tempo speso dall&#8217;area \u201cfields\u201d sul nostro report nella sezione \u201cdetails\u201d:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image17.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb17.png\" alt=\"image\" width=\"914\" height=\"349\" border=\"0\" \/><\/a><\/p>\n<p>Con queste semplici modifiche apparir\u00e0 cos\u00ec:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image18.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb18.png\" alt=\"image\" width=\"808\" height=\"298\" border=\"0\" \/><\/a><\/p>\n<p>Un po&#8217; meglio, ma:<\/p>\n<ol>\n<li>le date sono in un formato strano: per sistemarle, fai tasto destro sul campo e clicca su \u201cfield pattern\u201d. Scegli \u201cDate\u201d e poi il formato<\/li>\n<li>ci sono dei \u201cnull\u201d nel caso non sia stata inserita la descrizione: seleziona il campo e dal box propriet\u00e0 seleziona \u201cBlank when null\u201d<\/li>\n<li>il tempo impiegato \u00e8 in millisecondi:\u00a0 in questo caso devi usare quello usato nella funzione utility di Twproject. Fai tasto destro sul campo e scegli \u201cEdit expression\u201d poi scrivi:<br \/>\norg.jblooming.utilities.DateUtilities.getMillisInHoursMinutes($F{twk_worklog_duration}). Questa funzione trasformer\u00e0 millisecondi in a Ore:Minuti<\/li>\n<\/ol>\n<p>Adesso siamo cos\u00ec:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image19.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb19.png\" alt=\"image\" width=\"807\" height=\"164\" border=\"0\" \/><\/a><\/p>\n<p>Ora potresti volere somme parziali dei gruppi in header\/footers. Questo pu\u00f2 essere fatto introducendo le variabili.<\/p>\n<p>In questo caso avremo bisogno di una variabile per sommare worklog su un gruppo di progetto , vedi \u201dsumGroup1\u201d:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image20.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb20.png\" alt=\"image\" width=\"456\" height=\"222\" border=\"0\" \/><\/a><\/p>\n<p>Trascina la variabile appena creata su \u201cgroup footer 1\u201d e formatta il risultato usando la funzione \u201cgetMillisInHoursMinutes\u201d come sopra:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image21.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb21.png\" alt=\"image\" width=\"772\" height=\"193\" border=\"0\" \/><\/a><\/p>\n<p>Puoi giocare con il designer per ottimizzare il tuo report. Quando sei pronto salvalo!<\/p>\n<h3>Integrazione tra i<a name=\"repandperm\"><\/a>Report e Twproject<\/h3>\n<p>Una volta ottenuto il tuo report puoi lanciarlo dentro iReport, direttamente al database, ma se vuoi integrarlo in Twproject nel modo giusto (e.g.: rispettando la sicurezza) devi conoscere alcuni dettagli in pi\u00f9.<\/p>\n<p>Il report appena creato \u00e8 gi\u00e0 disponibile nel tuo Twproject (se lo hai creato nel posto giusto con un nome univoco\u00a0<img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-style: none;\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/wlEmoticon-smile.png\" alt=\"Smile\" \/>).<\/p>\n<p>Per vedere i report installati vai su Admin \u2013&gt; Customizations \u2013&gt; Forms, plugins and reports.<\/p>\n<p>Nella sezione \u201cAdditional iReports\u201d dovrebbe essere elencato il tuo report. Se non \u00e8 cos\u00ec clicca sul bottone \u201creload plugins\u201d (se ancora non appare c&#8217;\u00e8 un problema sul report, vedi i log).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2355\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/screen977.jpg\" alt=\"screen977\" width=\"1180\" height=\"310\" \/><\/p>\n<p>Dovresti gi\u00e0 avere un widget speciale (\u201cReport list\u201d su wp_genericReports.jsp file) installato nel tuo Twproject. Aggiungilo al tuo cruscotto se vuoi accedere al tuo report direttamente da Twproject.<br \/>\nVedi\u00a0<a href=\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/cruscotto\/\">https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/cruscotto\/<\/a>\u00a0per creare una nuova portlet\/widget<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image23.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb23.png\" alt=\"image\" width=\"242\" height=\"85\" border=\"0\" \/><\/a><\/p>\n<p>Il widget contiene gi\u00e0 i tuoi report se sei amministratore altrimenti sar\u00e0 vuoto fino a che non assegnerai i giusti permessi come descritto di seguito.<\/p>\n<p><span style=\"line-height: 1.5;\">Ma chi pu\u00f2 eseguire questi report? Come vengono protetti i report in Twproject?<\/span><\/p>\n<p>I nomi dei report sono usati per generare un permesso che \u00e8 necessario selezionare per concedere l&#8217;accesso a un report, questo \u00e8 il kotivo per cui i nomi devono essere significativi e univoci.<\/p>\n<p>Ogni report estende l&#8217;implementazione standard basata sui ruoli di Twproject aggiungendo un permesso speciale, one for each report. Questi permessi possono essere assegnati a un ruolo esattamente come quelli standard, sa a livello globale che di progetto.<\/p>\n<p>Ecco l&#8217;editor del ruolo esteso con i permessi del report:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2357\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/screen978.jpg\" alt=\"screen978\" width=\"1194\" height=\"161\" \/><\/p>\n<p align=\"right\">Per una discussione approfondita sulla sicurezza di Twproject vedi: <a title=\"https:\/\/twproject.com\/support\/introduction-security\/\" href=\"https:\/\/twproject.com\/support\/it\/usare-twproject\/sicurezza\/\" target=\"_blank\" rel=\"noopener\">https:\/\/twproject.com\/support\/it\/usare-twproject\/sicurezza\/<\/a><\/p>\n<p>Una volta aggiunto un permesso del report a un ruolo, questo report sar\u00e0 visibile agli utenti con quel ruolo.<\/p>\n<p>Detto questo, per integrare JasperReports con Twproject dobbiamo occuparci di sicurezza e visibilit\u00e0 dei dati.<\/p>\n<p>Accedendo al database direttamente dal motore di report pu\u00f2 essere accettabile per alcuni report di \u201calto livello\u201d, ma come sai, il modello di sicurezza di Twproject \u00e8 molto flessibile, permettendo di vedere solo un set consentito di dati per ogni utente. Come pu\u00f2 essere possibile creare un report che rispetti il modello di sicurezza di Twproject senza scrivere query complesse?<\/p>\n<h3>Report location e sicurezza<\/h3>\n<p>Abbiamo lavorato duro per risolvere questo problema e abbiamo trovato una soluzione facile e pratica.<\/p>\n<p>Prima di tutto dividiamo i report in \u201cglobali\u201d e \u201centit\u00e8 correlata\u201d.<\/p>\n<p>I report globali sono i pi\u00f9 flessibili e facili da costruire (come quello appena creato); possono usare tutti i tipi di dati di Twproject: progetto , worklog, risorse o ToDo, senza restrizioni.<\/p>\n<p>I report globali testeranno la sicurezza solo a livello di ruoli globali: nel peggiore dei casi chi pu\u00f2 accedere al report pu\u00f2 leggere i suoi dati (e.g progetti e costi), anche se non ha accesso ai \u201cprogetti\u201d da cui provengono i dati.<br \/>\nSe il tuo report mostra dati sensibili, concedi l&#8217;accesso con attenzione.<\/p>\n<p>Come dovresti sapere\u00a0<img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-style: none;\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/wlEmoticon-smile.png\" alt=\"Smile\" \/>\u00a0, la sicurezza di Twproject usa a livello alto il concetto di \u201carea di sicurezza\u201d (vedi qui per dettagli: <a title=\"https:\/\/twproject.com\/support\/areas\/\" href=\"https:\/\/twproject.com\/support\/it\/usare-twproject\/sicurezza\/aree\/\">https:\/\/twproject.com\/support\/it\/usare-twproject\/sicurezza\/aree\/<\/a>). Avere il permesso di vedere \u201creport x\u201d sull&#8217;\u201carea 1\u201d non significa che tu possa vedere lo stesso report sull&#8217;\u201carea 2\u201d. Per risolvere questo problema, Twproject passa al report la lista delle aree su cui hai i permessi. Puoi usare questa lista per filtrare i dati del report da mostrare, per esempio, solo project\/resources\/ToDos\/worklog da \u201carea 1\u201d e non da \u201carea 2\u201d. Spiegheremo come usare questo parametro di seguito.<\/p>\n<p>I report a entit\u00e0 correlate, invece, sono correlati a un&#8217;entit\u00e0 principale di Twproject come progetti, risorsa, ToDo e l&#8217;accesso \u00e8 testato oggetto per oggetto, singolarmente.<\/p>\n<p>Twproject non pu\u00f2 ispezionare il report e sapere se \u00e8 \u201cglobale\u201d, relativo a progetti, a ToDos e cos\u00ec via; devi istruire Twproject circa i contenuti del report mettendoli in una cartella strutturata come di seguito:<\/p>\n<p><a href=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image9.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"image\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb9.png\" alt=\"image\" width=\"591\" height=\"121\" border=\"0\" \/><\/a><\/p>\n<p>dove \u201cACME\u201d \u00e8 il nome della tua azienda.<\/p>\n<p>Quindi i report sulla root \u201creport\u201d sono considerati \u201cglobali\u201d mentre quelli nelle cartelle \u201cToDo \u201d, \u201crisorse\u201d, \u201cprogetto\u201d o \u201cworklog\u201d sono considerati relativi alle entit\u00e0 di Twproject.<\/p>\n<p>I report delle entit\u00e0 sono mostrati nelle pagine di lista dell&#8217;entit\u00e0 stessa come la lista dei progetto, la lista delle risorse, analisi worklog e cos\u00ec via..<\/p>\n<p>I report relativi alle entit\u00e0 saranno accessbili usando il menu stampa su ogni sezione (progetto, risorse, ToDo, worklog):<\/p>\n<p>I report delle entit\u00e0 riceveranno da Twproject <strong>la lista di id delle entit\u00e0 correntemente visibili sulla pagina<\/strong> compatibilimente con i permessi.<\/p>\n<p>Un esempio chiarificatore: se oggi sei coinvolto su due progetti, uno come \u201cproject manager\u201d e un altro come \u201cworker\u201d, la lista dei progetto mostrer\u00e0 entrambi i progetti.<\/p>\n<p>Considera che di default, com PM, puoi vedere i costi di progetto, ma come qoerker non puoi. Se hai creato un report per l&#8217;analisi dei costi, darai l&#8217;accesso a questo report solo al PM.<\/p>\n<p>Costruendo il set di id per il report, Twproject controller\u00e0 entit\u00e0 per entit\u00e0 se hai i permessi per vederlo, e in questo caso, i progetti dove sei assegnato come worker rimarranno fuori.<\/p>\n<p>Quindi il report sar\u00e0 applicato alle entit\u00e0 che rispondono al filtro (progetto di oggi) e ai vincoli di sicurezza.<\/p>\n<p>La lista delle entit\u00e0 consentite sar\u00e0 passata al tuo report, ma adesso devi usarli!<\/p>\n<p>I report riceveranno i seguenti parametri:<\/p>\n<ul>\n<li>global reports: AREA_IDS<\/li>\n<li>project reports: TASK_IDS e TASK_DESCENDANTS<\/li>\n<li>resource reports: RESOURCE_IDS e RESOURCE_DESCENDANTS<\/li>\n<li>ToDo reports: ISSUE_IDS<\/li>\n<li>worklog reports: WORKLOG_IDS<\/li>\n<\/ul>\n<p>Usa questi parametri nel tuo report come di seguito.<\/p>\n<p>Per un report globale devi aggiungere alla query qualcosa come<\/p>\n<blockquote><p><strong><span style=\"font-family: 'Courier New';\">$X{ IN ,twk_task.area,AREA_IDS}<\/span>\u00a0<\/strong><\/p><\/blockquote>\n<p>eventualmente in \u201cAND\u201d con altre clausole.<\/p>\n<p>Per report di entit\u00e0 correlate aggiungi qualcosa come:<\/p>\n<blockquote><p><strong><span style=\"font-family: 'Courier New';\">$X{ IN ,twk_worklog.id,WORKLOG_IDS}<\/span><\/strong><\/p>\n<p>o<\/p>\n<p><strong><span style=\"font-family: 'Courier New';\">$X{ IN ,twk_task.id,TASK_IDS}<\/span><\/strong><\/p><\/blockquote>\n<p>Twproject fornisce vari report da usare come base di partenza. (Se copi un report esistente ricorda che devi cambiare sia il nome del file che la propriet\u00e0 &#8220;nome del report&#8221; in iReport)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da Twproject e questo rappresenta uno degli aspetti pi\u00f9 preziosi nell&#8217;adozione di Twproject Come puoi estrarre i tuoi dati e presentarli ai tuoi utenti? In realt\u00e0 Twproject ha varie pagine con [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3796,"menu_order":50,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-3825","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Scrivi il tuo report | Twproject support<\/title>\n<meta name=\"description\" content=\"In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scrivi il tuo report | Twproject support\" \/>\n<meta property=\"og:description\" content=\"In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da\" \/>\n<meta property=\"og:url\" content=\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/\" \/>\n<meta property=\"og:site_name\" content=\"Twproject support\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/twproject\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-07T14:14:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"14 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/\",\"url\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/\",\"name\":\"Scrivi il tuo report | Twproject support\",\"isPartOf\":{\"@id\":\"https:\/\/twproject.com\/support\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png\",\"datePublished\":\"2018-01-08T14:35:57+00:00\",\"dateModified\":\"2025-10-07T14:14:40+00:00\",\"description\":\"In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da\",\"breadcrumb\":{\"@id\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#primaryimage\",\"url\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png\",\"contentUrl\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/twproject.com\/support\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Utilizzo avanzato\",\"item\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Personalizzazione\",\"item\":\"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Scrivi il tuo report\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/twproject.com\/support\/#website\",\"url\":\"https:\/\/twproject.com\/support\/\",\"name\":\"Twproject support\",\"description\":\"Twproject documentation online\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/twproject.com\/support\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Scrivi il tuo report | Twproject support","description":"In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/","og_locale":"it_IT","og_type":"article","og_title":"Scrivi il tuo report | Twproject support","og_description":"In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da","og_url":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/","og_site_name":"Twproject support","article_publisher":"https:\/\/www.facebook.com\/twproject","article_modified_time":"2025-10-07T14:14:40+00:00","og_image":[{"url":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png","type":"","width":"","height":""}],"twitter_misc":{"Tempo di lettura stimato":"14 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/","url":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/","name":"Scrivi il tuo report | Twproject support","isPartOf":{"@id":"https:\/\/twproject.com\/support\/#website"},"primaryImageOfPage":{"@id":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#primaryimage"},"image":{"@id":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#primaryimage"},"thumbnailUrl":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png","datePublished":"2018-01-08T14:35:57+00:00","dateModified":"2025-10-07T14:14:40+00:00","description":"In questa sezione descriveremo come creare nuovi report di Twproject usando Jasper Reports. I dati del tuo progetti sono raccolti e gestiti con cura da","breadcrumb":{"@id":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#primaryimage","url":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png","contentUrl":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/06\/image_thumb.png"},{"@type":"BreadcrumbList","@id":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/scrivi-il-tuo-report\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/twproject.com\/support\/it\/"},{"@type":"ListItem","position":2,"name":"Utilizzo avanzato","item":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/"},{"@type":"ListItem","position":3,"name":"Personalizzazione","item":"https:\/\/twproject.com\/support\/it\/utilizzo-avanzato\/personalizzazione\/"},{"@type":"ListItem","position":4,"name":"Scrivi il tuo report"}]},{"@type":"WebSite","@id":"https:\/\/twproject.com\/support\/#website","url":"https:\/\/twproject.com\/support\/","name":"Twproject support","description":"Twproject documentation online","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/twproject.com\/support\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"}]}},"_links":{"self":[{"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/pages\/3825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/comments?post=3825"}],"version-history":[{"count":0,"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/pages\/3825\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/pages\/3796"}],"wp:attachment":[{"href":"https:\/\/twproject.com\/support\/it\/wp-json\/wp\/v2\/media?parent=3825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}