{"id":154,"date":"2014-06-19T22:21:32","date_gmt":"2014-06-19T20:21:32","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=154"},"modified":"2014-06-19T22:21:32","modified_gmt":"2014-06-19T20:21:32","slug":"jasperreports-tutorial-8-paginare-il-report","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/jasperreports-tutorial-8-paginare-il-report\/","title":{"rendered":"JASPERREPORTS TUTORIAL &#8211; 8 &#8211; PAGINARE IL REPORT"},"content":{"rendered":"<p style=\"color: #0d293f;\">Nell&#8217;articolo di oggi vedremo come paginare un report. JasperReports consente di paginare agevolmente un report tramite l&#8217;uso delle variabili:<\/p>\n<ul style=\"color: #143c5d;\">\n<li>PAGE_NUMBER<\/li>\n<li>PAGE_COUNT<\/li>\n<\/ul>\n<div style=\"color: #0d293f;\">La variabile PAGE_NUMBER indica il numero della pagina corrente, mentre la variabile PAGE_COUNT indica il numero totale di pagine presenti. Possiamo cos\u00ec ottenere l&#8217;effetto paginazione inserendo la seguente espressione da inserire nella banda Pi\u00e8 di Pagina<\/div>\n<div style=\"color: #0d293f;\">&#8220;Pagina &#8220;+$V{PAGE_NUMBER}+&#8221; di &#8221; + $V{PAGE_NUMBER}<\/div>\n<div style=\"color: #0d293f;\"><\/div>\n<div style=\"color: #0d293f;\">Questa soluzione fallisce nel momento in cui il report \u00e8 ottenuto come aggregazione di report ottenuti tramite programmazione. Usando una lista di oggetti JasperPrint vedremo la numerazione ripartire pi\u00f9 volte e non essere continua.<\/div>\n<div style=\"color: #0d293f;\"><\/div>\n<div style=\"color: #0d293f;\">Per aggirare il problema possiamo sfruttare il passaggio di parametri e fornire ad ogni report un parametro contenente il totale delle pagine fino al quel momento.<\/div>\n<div style=\"color: #0d293f;\"><\/div>\n<div style=\"color: #0d293f;\">Siccome una porzione di codice vale pi\u00f9 di mille parole ecco un estratto che chiarisce<\/div>\n<div style=\"color: #0d293f;\"><\/div>\n<div style=\"color: #0d293f;\">\n<div>\n<pre class=\"lang:default decode:true \">try {\r\nList&lt;JasperPrint&gt; jasperPrintList = new ArrayList&lt;JasperPrint&gt;();\r\nint totalePagine = 0;\r\nfor (int j = 0; j &lt; 5; j++) {\r\nMap&lt;String, Object&gt; lParametersTmp = new HashMap&lt;String, Object&gt;();\r\nlParametersTmp.put(\"TOTALE_PAGINA_CORRENTE\", totalePagine);\r\nJasperPrint jasperPrintMulti = JasperFillManager.fillReport(j+\"\", lParametersTmp, new JREmptyDataSource());\r\ntotalePagine = totalePagine + jasperPrint.getPages().size();\r\njasperPrintList.add(jasperPrint);\r\n}\r\n} catch (JRException e) {\r\ne.printStackTrace();\r\n}\r\n<\/pre>\n<p>Nel nostro report modifichiamo l&#8217;espressione della banda Pi\u00e8 di Pagina in questo modo<\/p>\n<p>&#8220;Pag. &#8221; + ($P{TOTALE_PAGINA_CORRENTE} + $V{PAGE_NUMBER})<\/p>\n<\/div>\n<\/div>\n<div style=\"color: #0d293f;\">Questa modifica ci consente di numerare le pagina in modo crescente ma non ci permette di ottenere l&#8217;effetto X di Y.<\/div>\n<div style=\"color: #0d293f;\">Se volessimo ottenere l&#8217;effetto X di Y dobbiamo effettuare un doppio ciclo:<\/div>\n<div style=\"color: #0d293f;\">\n<ul style=\"color: #143c5d;\">\n<li>il primo ci permette di ottenere il totale delle pagine<\/li>\n<li>il secondo ciclo ci permette di passare il totale delle pagine e la paginazione corrente come parametri,<\/li>\n<\/ul>\n<\/div>\n<div style=\"color: #0d293f;\">Buona sperimentazione.<\/div>\n<div style=\"color: #0d293f;\">Se hai trovato l&#8217;articolo utile un +1 non dispiace.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;articolo di oggi vedremo come paginare un report. JasperReports consente di paginare agevolmente un report tramite l&#8217;uso delle variabili: PAGE_NUMBER PAGE_COUNT La variabile PAGE_NUMBER indica il numero della pagina corrente, mentre la variabile PAGE_COUNT indica il numero totale di pagine presenti. Possiamo cos\u00ec ottenere l&#8217;effetto paginazione inserendo la seguente espressione da inserire nella banda Pi\u00e8 &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/jasperreports-tutorial-8-paginare-il-report\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">JASPERREPORTS TUTORIAL &#8211; 8 &#8211; PAGINARE IL REPORT<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23],"tags":[24,8],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/154"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=154"}],"version-history":[{"count":1,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/154\/revisions"}],"predecessor-version":[{"id":155,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/154\/revisions\/155"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}