Part III: Develop Web Report Applications using JasperReport as a report control

xiaoxiao2021-03-06  88

The article will involve three aspects:

Part 1: Use the IREPORT to make a detailed process (in the Windows environment)

Part II: Develop fat client report applications using JasperReport as a report control

Part III: Develop Web Report Applications using JasperReport as a report control

1 Overview

How to implement a WEB report has a lot of options, custom CSS HTML or XSLT XML or other controls, especially controls that support charts, such as JFreechart. As a way of implementation of Web reports, it is recommended that you use JasperReport as a report control, first, two sections have introduced the production report and develop fat client report applications. In fact, there are many articles to refer to the third part of the third part. The content is not only this article I wrote.

2, data connection is established

Refer to http://blog.9cbs.net/jemlee2002/Archive/2004/09/28/JJem.aspx, here is detailed to introduce the connection process of the database.

3, copy the necessary JAR file to the web-INF / lib directory for web applications

Each web application will have a web-inf directory, but lib is not necessarily, if you don't create it, there are 3 JAR library files required by this article:

JasperReports-0.5.3.jar: The API required when executing JasperReports

ITextasian.jar: Asian character set support

ITEXT-1.02B.jar: Other character set support

If your report is full English or does not need to support the Asian character set, then ITextasian.jar can not.

4. Create a repotrs directory and import .jasper files

Create a repotrs directory in the root directory in the web application, in fact, this is a suggestion, there is no need to do this, you can create N directories or hierarchical directories based on your business needs.

Copy the .jasper file to the repotrs directory, such as the businessrpt.jasper file in the example.

5, example program

Test.jsp file content:

<% @ Page session = "false"%>

<% @ page import = "DORI.JASPER.EENGINE. *"%>

<% @ Page Import = "javax.naming. *"%>

<% @ Page Import = "java.sql. *"%>

<% @ Page Import = "javax.sql. *"%>

<% @ Page Import = "java.util. *"%>

<% @ Page Import = "java.io. *"%>

</ title></p> <p><%</p> <p>DataSource DS = NULL;</p> <p>Try {</p> <p>InitialContext CTX = New InitialContext ();</p> <p>DS = (DataSource) CTX.lookup ("Java: Comp / Env / JDBC / MySQL");</p> <p>Connection conn = ds.getConnection (); // Load JASPER file</p> <p>File business_rpt = new file (Application.getRealPath ("/ Reports / Businessrpt.jasper"));</p> <p>// Configure parameters, you can refer to the second part: use JasperReport as a report control to develop fat client report applications "</p> <p>// http://blog.9cbs.net/jemleE2002/Archive/2004/108/jjem3.aspx</p> <p>// Projectname is the name of Ireport's variable $ p {projectname},</p> <p>/ / Refer to 5.6 of the first part and use parameters</p> <p>// PRONAME is the value obtained from the interface.</p> <p>Map parameters = new hashmap ();</p> <p>Parameters.put ("ProjectName", Proname;</p> <p>// JasperRunManager is an output control management class, which refers to some content</p> <p>Jasperrunmanager.RunReportTohtmlfile (Business_rpt.getPath (), Parameters, Conn;</p> <p>// If the creation report is successful, turn to the report, in fact, the report can be set in the frame, which enables more meaningful report format.</p> <p>Response.sendRedirect ("/ reports / businessrpt.html");</p> <p>} catch (exception ex) {</p> <p>Out.print ("Exception Exceptions, information is:" ex.getMessage ());</p> <p>EX.PrintStackTrace ();</p> <p>}</p> <p>%></p> <p></ hEAD></p> <p><body></p> <p></ body></p> <p></ html></p> <p>6, about Jasperrunmanager</p> <p>JasperRunManager has a lot of static methods, controlled the format, such as PDF or HTML, is recommended to browse some methods of JasperRunManager, which helps the development report output.</p> <p>7, output content</p> <p>The output format in the example is in an HTML file format, so the web server can directly explain and display, the effect is good.</p> <p>8, summary</p> <p>Finally, I will finish the content of the 3 parts. I can take a break here, just like a master: "Rest, rest ...".</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-107852.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="107852" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.040</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'wl8YKYJ6GOdPvrjVz_2FNL5P_2BJlsIsWQ3yTf7hDsS05tbtRTwLiTM7gBZwSptxWAaGQttNv_2FocnmMdJQH_2BR57zIw_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>