import java.text.SimpleDateFormat; import java.util.Date; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRImageRenderer; import net.sf.jasperreports.engine.JRPrintImage; import net.sf.jasperreports.engine.JRPrintLine; import net.sf.jasperreports.engine.JRPrintPage; import net.sf.jasperreports.engine.JRPrintText; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.base.JRBasePrintImage; import net.sf.jasperreports.engine.base.JRBasePrintLine; import net.sf.jasperreports.engine.base.JRBasePrintPage; import net.sf.jasperreports.engine.base.JRBasePrintText; import net.sf.jasperreports.engine.design.JRDesignStyle; import net.sf.jasperreports.engine.type.HorizontalAlignEnum; import net.sf.jasperreports.engine.type.ScaleImageEnum; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; /** * * <p>动态报表的实现<p> * * 创建日期 2013-5-3<br> * @author longgangbai<br> * @version $Revision$ 2013-5-3 * @since 3.0.0 */ public class DynamicJasperReport { /** * */ @SuppressWarnings("deprecation") private static JasperPrint getJasperPrint() throws JRException { // JasperPrint JasperPrint jasperPrint = new JasperPrint(); jasperPrint.setName("NoReport"); jasperPrint.setPageWidth(595); jasperPrint.setPageHeight(842); // Fonts JRDesignStyle normalStyle = new JRDesignStyle(); normalStyle.setName("Sans_Normal"); normalStyle.setDefault(true); normalStyle.setFontName("DejaVu Sans"); normalStyle.setFontSize(8); normalStyle.setPdfFontName("Helvetica"); normalStyle.setPdfEncoding("Cp1252"); normalStyle.setPdfEmbedded(false); jasperPrint.addStyle(normalStyle); JRDesignStyle boldStyle = new JRDesignStyle(); boldStyle.setName("Sans_Bold"); boldStyle.setFontName("DejaVu Sans"); boldStyle.setFontSize(8); boldStyle.setBold(true); boldStyle.setPdfFontName("Helvetica-Bold"); boldStyle.setPdfEncoding("Cp1252"); boldStyle.setPdfEmbedded(false); jasperPrint.addStyle(boldStyle); JRDesignStyle italicStyle = new JRDesignStyle(); italicStyle.setName("Sans_Italic"); italicStyle.setFontName("DejaVu Sans"); italicStyle.setFontSize(8); italicStyle.setItalic(true); italicStyle.setPdfFontName("STSong-Light"); italicStyle.setPdfEncoding("UniGB-UCS2-H"); italicStyle.setPdfEmbedded(true); jasperPrint.addStyle(italicStyle); JRPrintPage page = new JRBasePrintPage(); JRPrintLine line = new JRBasePrintLine(jasperPrint.getDefaultStyleProvider()); line.setX(40); line.setY(50); line.setWidth(515); line.setHeight(0); page.addElement(line); JRPrintImage image = new JRBasePrintImage(jasperPrint.getDefaultStyleProvider()); image.setX(45); image.setY(55); image.setWidth(165); image.setHeight(40); image.setScaleImage(ScaleImageEnum.CLIP); image.setRenderer(JRImageRenderer.getInstance(JRLoader.loadBytesFromResource("jasperreports.png"))); page.addElement(image); JRPrintText text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setX(210); text.setY(55); text.setWidth(345); text.setHeight(30); text.setTextHeight(text.getHeight()); text.setHorizontalAlignment(HorizontalAlignEnum.RIGHT); text.setLineSpacingFactor(1.3133681f); text.setLeadingOffset(-4.955078f); text.setStyle(boldStyle); text.setFontSize(18); text.setText("JasperReports Project Description"); page.addElement(text); text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setX(210); text.setY(85); text.setWidth(325); text.setHeight(15); text.setTextHeight(text.getHeight()); text.setHorizontalAlignment(HorizontalAlignEnum.RIGHT); text.setLineSpacingFactor(1.329241f); text.setLeadingOffset(-4.076172f); text.setStyle(italicStyle); text.setFontSize(12); text.setText((new SimpleDateFormat("yyyy年 MM月 dd日")).format(new Date())); page.addElement(text); text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setX(40); text.setY(150); text.setWidth(515); text.setHeight(200); text.setTextHeight(text.getHeight()); text.setHorizontalAlignment(HorizontalAlignEnum.JUSTIFIED); text.setLineSpacingFactor(1.329241f); text.setLeadingOffset(-4.076172f); text.setStyle(normalStyle); text.setFontSize(14); text.setText("JasperReports is a powerful report-generating tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV or XML files.\n\n" + "It is entirely written in Java and can be used in a variety of Java enabled applications, including J2EE or Web applications, to generate dynamic content.\n\n" + "Its main purpose is to help creating page oriented, ready to print documents in a simple and flexible manner."); page.addElement(text); jasperPrint.addPage(page); return jasperPrint; } public static void main(String[] args) throws JRException { JasperPrint jasperPrint = getJasperPrint(); JasperViewer.viewReport(jasperPrint, false); // JasperViewer view = new JasperViewer(jasperPrint, false); // view.pack(); // view.setVisible(true); } }
相关推荐
在“JasperReport动态报表归并行数据”这个主题中,我们主要讨论如何利用JasperReport来处理和展示动态变化的数据,并实现数据的合并。 1. **动态报表设计**: JasperReport支持XML或Java代码定义报表模板(jrxml...
**JasperReport动态生成报表** JasperReport是一款强大的开源报表工具,主要用于生成各种复杂的静态和动态报表。它基于Java,可以很好地与Java应用程序、Web应用和企业级应用集成,提供丰富的报表设计和灵活的数据...
JasperReport 中交叉报表指南 JasperReport 是一个功能强大且灵活的报表生成工具,它提供了许多功能来帮助开发者生成复杂的报表。在报表生成中,交叉报表是一种常用的报表类型,能够将数据按照行和列进行交叉处理,...
在实际操作中,我们可能需要以下步骤来实现子报表: 1. **设计子报表**:使用报表设计工具创建子报表的JRXML文件,定义其布局和数据绑定。 2. **编译子报表**:将子报表的JRXML文件编译成.jasper文件。 3. **在主...
实现了jasperReport进行报表动态列的实现,使用者只需要利用eclipse将工程文件导入,即可查看运行结果的展示,不需要其他的配置和jar包如果想进行动态展示只需要修改构造参数就可以看到动态的展示
JasperReport通过其内建的脚本语言JasperReports Scriptlet或Java类来实现动态列的逻辑,可以在运行时根据数据源动态调整列的布局和内容。 生成HTML导出是JasperReport的另一项重要特性。它允许用户将报表以网页的...
NULL 博文链接:https://bighappy1983.iteye.com/blog/1850827
在本文中,我们将深入探讨如何使用JasperReport来实现动态表头,这是一个在报表生成过程中非常重要的特性,尤其是在处理如服装行业中需要灵活调整的尺码组数据时。JasperReport是一个开源的报表工具,具有良好的可...
JasperReport还允许在报表设计中直接调用Java代码,从而实现更加复杂的逻辑处理。例如,可以在表达式中调用自定义的Java类或方法来执行特定的操作。 #### 5. 技巧篇 **5.1. 在WEB中显示数据不分页显示** 在某些...
总的来说,SpringBoot与JasperReport的整合使得报表生成变得简单,它提供了灵活的设计工具和丰富的数据绑定能力,可以帮助开发者快速地实现复杂报表的展示需求。通过学习和掌握这一技术,你可以提升企业应用的报表...
本篇文章将详细讲解如何利用JasperReport实现动态表头和多表分页,并通过subreport来达到灵活的布局效果。 首先,让我们了解JasperReport的基础。JasperReport是一款基于Java的报表设计工具,它允许开发者创建复杂...
- **子报表:** 提供子报表功能,允许在一个报表中嵌套另一个报表,实现复杂的数据层次结构展示。 - **多格式输出:** 报表可导出为PDF、HTML、Excel、CSV等多种格式,满足不同应用场景的需求。 - **图表支持:** ...
JasperReport与iReport结合使用,可以方便地实现报表设计和预览。 3. **JavaServer Pages (JSP)**:JSP是Java EE平台的一部分,用于创建动态Web页面。开发者可以在JSP页面中混合HTML、CSS、JavaScript以及Java代码...
JasperReport使用XML格式的报表定义文件(.jrxml),开发者可以通过定义这些文件来创建静态或动态的报表。当这些报表需要展现时,JasperReport引擎会将.jrxml文件编译成.jasper文件,然后通过报表查看器进行展示。...
要实现JasperReport的动态表头,首先需要理解报表设计的基本元素,如文本框、表格、样式和变量。动态表头通常涉及到以下步骤: 1. **设计报表模板**:使用iReport(现在已被Jaspersoft Studio取代)等设计工具,...
XML模板设计完成后,可以通过JasperFillManager加载并解析,然后结合Java代码实现报表的动态生成。 5. **简单调用** 在Java项目中集成JasperReport非常方便。只需通过JasperExportManager或JasperPrintManager类,...
本文主要针对使用Struts2框架结合JasperReport5.0与iReport5.0进行报表开发时可能遇到的问题进行总结。 1. **报表预览问题**: - 数据源为空:确保在iReport中设置正确的数据源,可以是JavaBean、数据库连接或其他...
程序,包括 J2EE,Web 应用程序中生成动态内容,它主要目的是辅助生成面向页面的(page oriented),准备付诸打印的文档。总的而言,JasperReports 主要分成三个部分,包括数据报表 设计、数据填充与数据报表导出。
通过一个名为reportRun.jsp的JSP页面来展示报表,这里的“reportRun.jsp”是服务器端的一个页面,它能够根据传入的参数动态地生成报表,并展示给用户。 手册中还提供了一些具体的操作指南,例如如何在iReport中创建...
此外,通过嵌入JavaScript或其他脚本,可以实现报表的交互功能,如按钮点击事件等。 这个测试项目很可能包含了示例报表的JRXML设计文件、样本数据源文件以及编译后的.jasper文件,便于学习和调试。通过对这些文件的...