{"id":147,"date":"2006-11-25T23:57:00","date_gmt":"2006-11-25T22:57:00","guid":{"rendered":"https:\/\/bob-team.de\/wordpress\/?p=147"},"modified":"2006-11-27T14:36:08","modified_gmt":"2006-11-27T13:36:08","slug":"jasperreports-und-ireport-designer","status":"publish","type":"post","link":"https:\/\/bob-team.de\/wordpress\/2006\/11\/25\/jasperreports-und-ireport-designer\/","title":{"rendered":"JasperReports und iReport Designer"},"content":{"rendered":"<p><img decoding=\"async\" id=\"image148\" src=\"https:\/\/bob-team.de\/wordpress\/wp-content\/uploads\/2006\/11\/jasperreport.png\" alt=\"Screenshot iReport\" align=\"left\" hspace=\"10\" \/>Das Projekt <em>TrafficAnalysis<\/em> wurde um eine Report-Funktion erweitert, die das Ergebnis der Berechnung automatisch in eine Html- oder PDF-Datei wandelt. Das Zielformat und die Gestaltung des Ergebnisses sollten vom Projekt unabh\u00e4ngig festgelegt werden k\u00f6nnen. Zum Einsatz kam <a href=\"http:\/\/jasperforge.org\/sf\/projects\/jasperreports\"><em>JasperReports<\/em><\/a> und <a href=\"http:\/\/jasperforge.org\/sf\/projects\/ireport\"><em>iReport Designer<\/em><\/a> (ein freies und leistungsf\u00e4higes Werkzeug zur Definition der Reports). Die <em>JasperReports<\/em>-Bibliotheken beinhalten einen umfangreichen XML-Dialekt zur Beschreibungen von Berichten (mit einfachen Berechnungen und Bedingungen). Es stehen fertige Klassen zur Verf\u00fcgung mit denen die Vorlagen mit Daten bef\u00fcllt werden k\u00f6nnen (SQL, CSV usw.). Es werden viele popul\u00e4re Formate f\u00fcr die Ausgabe unterst\u00fctzt (z.B. PDF, Text und HTML).<\/p>\n<h3>Installation<\/h3>\n<p>Die Suche nach den ben\u00f6tigten Bibliotheken gestaltete sich ungew\u00f6hlich schwierig, da eine Menge Projekte eingebunden werden und diese in verschiedenen Abh\u00e4ngigkeiten zu finden sind. F\u00fcr die Integration in die eigenen Projekte hat sich der Weg \u00fcber den <em>iReport Designer<\/em> bew\u00e4hrt, dessen Einrichtung &#8211; dank des Installers &#8211; denkbar einfach ist. Die folgenden Jar-Archive liegen alle im <em>lib<\/em> Verzeichnis unterhalb des <em>iReport<\/em>-Programmverzeichnisses.<\/p>\n<blockquote><p>\n   jasperreports-1.2.8.jar<br \/>\n   commons-digester-1.7.jar<br \/>\n   commons-collections-2.1.jar<br \/>\n   commons-beanutils-1.5.jar<br \/>\n   commons-logging-1.0.2.jar<br \/>\n   commons-javaflow-20060411.jar<br \/>\n   itext-1.3.1.jar<br \/>\n   poi-2.0-final-20040126.jar<br \/>\n   jdt-compiler-3.1.1.jar<br \/>\n   jfreechart-1.0.0.jar<br \/>\n   jcommon-1.0.0.jar\n<\/p><\/blockquote>\n<p>Je nach Anforderung m\u00fcssen noch weitere Archve eingebunden werden. So liegt dem iReport auch eine Bibliothek bei, welche die Verarbeitung von <em>Microsoft Excel<\/em> Dateien erm\u00f6glicht.<\/p>\n<h3>Grundlagen<\/h3>\n<p>Ein Report ist die tabellarische und grafische Darstellung einer Datenmenge. Jedem Report liegt eine Defiition zu Grunde. Diese wird bei der Vorbereitung mit den ermittelten Daten gef\u00fcllt und in das eigentliche Ergebnis (z.B. eine PDF-Datei) \u00fcberf\u00fchrt.<\/p>\n<p><img decoding=\"async\" id=\"image149\" src=\"https:\/\/bob-team.de\/wordpress\/wp-content\/uploads\/2006\/11\/jasperablauf.png\" alt=\"Ablauf JasperReports\" \/><\/p>\n<p>In unserem Beispiel (Code Ausschnitt) \u00fcbersetzen wir die (mit iReport) erstellte Definition, legen eine HashMap mit Parametern an und lassen eine DataSource auf die zuvor erzeugte CSV-Datei zeigen. In der letzten Zeile wird alles zusammen gebracht und in ein PDF-File geschrieben.<\/p>\n<p>[code lang=&#8220;java&#8220;]JasperReport jasperReport;<br \/>\nJasperPrint jasperPrint;<\/p>\n<p>String d = &#8222;c:\\\\temp\\\\report.jrxml&#8220;;<br \/>\njasperReport = JasperCompileManager.compileReport(d);<\/p>\n<p>\/\/ Parameter<\/p>\n<p>HashMap<String,Object> map = new HashMap<String,Object>();<\/p>\n<p>map.put(&#8222;TA_REPORT_TITLE&#8220;, title);<br \/>\nmap.put(&#8222;TA_MAX_ROWS&#8220;, new Integer(maxRows));<\/p>\n<p>\/\/ Daten<\/p>\n<p>JRCsvDataSource dataSource = new JRCsvDataSource(<br \/>\n      new FileReader(&#8222;c:\\\\temp\\\\report.csv&#8220;));<\/p>\n<p>dataSource.setColumnNames(<br \/>\n      new String[]{&#8222;datum&#8220;,&#8220;ip&#8220;,&#8220;rich&#8220;,&#8220;proto&#8220;,&#8220;port&#8220;,&#8220;ges&#8220;,&#8220;emp&#8220;});<br \/>\ndataSource.setFieldDelimiter(&#8218;;&#8216;);<br \/>\ndataSource.setDateFormat(new SimpleDateFormat(&#8222;yyyy-MM-dd&#8220;));<br \/>\ndataSource.setUseFirstRowAsHeader(true);<\/p>\n<p>\/\/ Report<\/p>\n<p>jasperPrint = JasperFillManager.fillReport(jasperReport, map, dataSource);<\/p>\n<p>String p = &#8222;c:\\\\temp\\\\report.pdf&#8220;;<br \/>\nJasperExportManager.exportReportToPdfFile(jasperPrint, p);[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Projekt TrafficAnalysis wurde um eine Report-Funktion erweitert, die das Ergebnis der Berechnung automatisch in eine Html- oder PDF-Datei wandelt. Das Zielformat und die Gestaltung des Ergebnisses sollten vom Projekt unabh\u00e4ngig festgelegt werden k\u00f6nnen. Zum Einsatz kam JasperReports und iReport Designer (ein freies und leistungsf\u00e4higes Werkzeug zur Definition der Reports). Die JasperReports-Bibliotheken beinhalten einen umfangreichen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,6],"tags":[],"class_list":["post-147","post","type-post","status-publish","format-standard","hentry","category-java","category-software","entry"],"_links":{"self":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/comments?post=147"}],"version-history":[{"count":0,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/147\/revisions"}],"wp:attachment":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/media?parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/categories?post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/tags?post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}