文档章节

使用Dynamicreports快速开发报表--准备环境

lifereader
 lifereader
发布于 2017/02/17 23:41
字数 432
阅读 1081
收藏 1

DynamicReports是一套基于JasperReports的Java报表工具。它可以创建一个动态报表,而且整个过程无需任何界面。你可以在非常短的时间里完成一个报表文档的创建,展示、打印,甚至还能导出成很多通用的文档格式比如PDF、Excel、Word和Html格式;

官网地址:http://www.dynamicreports.org/

  • 1 开发环境准备

项目目录结构如下:

Maven的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.lvuo</groupId>
	<artifactId>lvluo-report</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<dependencies>
		<dependency>
			<groupId>net.sourceforge.dynamicreports</groupId>
			<artifactId>dynamicreports-core</artifactId>
			<version>${dynamicreports.version}</version>
		</dependency>
		<dependency>
			<groupId>net.sourceforge.dynamicreports</groupId>
			<artifactId>dynamicreports-adhoc</artifactId>
			<version>${dynamicreports.version}</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>report</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>${project.build.sourceEncoding}</encoding>
					<source>${java.version}</source>
					<target>${java.version}</target>
					<meminitial>256m</meminitial>
					<maxmem>512m</maxmem>
				</configuration>
			</plugin>
		</plugins>
		<sourceDirectory>src/main/java</sourceDirectory>
		<testSourceDirectory>src/test/java</testSourceDirectory>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.json</include>
					<include>**/*.png</include>
					<include>**/*.ttf</include>
				</includes>
				<filtering>false</filtering>
			</resource>
		</resources>
	</build>
	<properties>
		<java.version>1.8</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<dynamicreports.version>5.0.0</dynamicreports.version>
	</properties>
	<repositories>
		<repository>
			<id>mvnrepository</id>
			<name>mvnrepository</name>
			<url>http://mvnrepository.com</url>
		</repository>
		<repository>
			<id>search</id>
			<name>search maven</name>
			<url>http://search.maven.org/</url>
		</repository>

	</repositories>
</project>

 

  • 2 运行报表

SimpleAdhocReport.java代码来自dr官方实例,稍有简化,直接运行即可。

package net.lvuo.demo;

import java.math.BigDecimal;
import java.util.Date;

import net.sf.dynamicreports.adhoc.AdhocManager;
import net.sf.dynamicreports.adhoc.configuration.AdhocColumn;
import net.sf.dynamicreports.adhoc.configuration.AdhocConfiguration;
import net.sf.dynamicreports.adhoc.configuration.AdhocReport;
import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;
import net.sf.dynamicreports.report.datasource.DRDataSource;
import net.sf.dynamicreports.report.exception.DRException;
import net.sf.jasperreports.engine.JRDataSource;

public class SimpleAdhocReport {

	public SimpleAdhocReport() {
		build();
	}

	private void build() {

		AdhocConfiguration configuration = new AdhocConfiguration();
		AdhocReport report = new AdhocReport();
		configuration.setReport(report);

		AdhocColumn column = new AdhocColumn();
		column.setName("item");
		report.addColumn(column);
		column = new AdhocColumn();
		column.setName("quantity");
		report.addColumn(column);

		try {
			JasperReportBuilder reportBuilder = AdhocManager
					.createReport(configuration.getReport());

			reportBuilder.setDataSource(createDataSource());
			reportBuilder.show();

		} catch (DRException e) {
			e.printStackTrace();
		}

	}

	private JRDataSource createDataSource() {

		DRDataSource dataSource = new DRDataSource("item", "orderdate",
				"quantity", "unitprice");

		for (int i = 0; i < 20; i++) {
			dataSource.add("Book", new Date(), (int) (Math.random() * 10) + 1,
					new BigDecimal(Math.random() * 100 + 1));
		}
		return dataSource;
	}
	public static void main(String[] args) {
		new SimpleAdhocReport();

	}

}

 

© 著作权归作者所有

lifereader
粉丝 1
博文 24
码字总数 11232
作品 0
广州
架构师
私信 提问
DynamicReports 2.2.0 发布,Java报表开发组件

DynamicReports 2.2.0 发布。DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化报表设计工具。 DynamicReports 2.2.0 发布,支持barbecu...

小卒过河
2011/08/16
348
0
DynamicReports 3.2.0 发布,Java 报表开发组件

DynamicReports 3.2.0 发布,此版本添加了设置 report band 是否可以打印的功能;各种 bug 修复。 DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而...

oschina
2014/02/27
1K
0
DynamicReports 2.3.4 发布

DynamicReports 2.3.4 发布,该版本增加了仪表盘的报表形式。 DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化报表设计工具。...

红薯
2012/01/18
403
0
DynamicReports 3.1.2 发布,Java 报表方案

DynamicReports 3.1.2 增加设置子汇总标签的定位和宽度;修复了错误命名空间的问题等。 DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化...

oschina
2013/03/15
1K
0
DynamicReports 3.0.4 发布,Java 报表方案

DynamicReports 3.0.4 支持 xy 块图表,可设置小结和小计显示,一些bug修复和小改进。 DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化...

oschina
2012/11/28
818
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0
Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

本文为Flutter开发环境在macOS下安装全过程: 一、系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不包含 IDE 或其余...

過愙
昨天
6
0
OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
昨天
2.7K
16
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部