Jasperreports+TIBCO Jaspersoft Studio 6.6.0 实现折线图

折线图的效果如下:

需要的数据库表数据如下:

如何能够实现上面的折线图展示? 具体步骤如下:

利用TIBCO Jaspersoft Studio工具进行设计折线图的相关内容:效果图如下:

Demo01.jrxml 内容:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Demo01" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="1801ff61-41f7-4cc0-96ef-1bb9ff3a2eba">
	<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
	<property name="com.jaspersoft.studio.data.defaultdataadapter" value="msql"/>
	<queryString language="SQL">
		<![CDATA[select * from t_account]]>
	</queryString>
	<field name="id" class="java.lang.Integer">
		<property name="com.jaspersoft.studio.field.label" value="id"/>
		<property name="com.jaspersoft.studio.field.tree.path" value="t_account"/>
	</field>
	<field name="balance" class="java.lang.Float">
		<property name="com.jaspersoft.studio.field.label" value="balance"/>
		<property name="com.jaspersoft.studio.field.tree.path" value="t_account"/>
	</field>
	<field name="username" class="java.lang.String">
		<property name="com.jaspersoft.studio.field.label" value="username"/>
		<property name="com.jaspersoft.studio.field.tree.path" value="t_account"/>
	</field>
	<background>
		<band splitType="Stretch"/>
	</background>
	<detail>
		<band height="333" splitType="Stretch">
			<lineChart>
				<chart evaluationTime="Report">
					<reportElement x="151" y="123" width="200" height="200" uuid="3c11aa6d-1cfd-4016-b8e7-30926323e0bb"/>
					<chartTitle/>
					<chartSubtitle/>
					<chartLegend/>
				</chart>
				<categoryDataset>
					<categorySeries>
						<seriesExpression><![CDATA["折线图"]]></seriesExpression>
						<categoryExpression><![CDATA[$F{username}]]></categoryExpression>
						<valueExpression><![CDATA[$F{balance}]]></valueExpression>
					</categorySeries>
				</categoryDataset>
				<linePlot>
					<plot/>
					<categoryAxisFormat>
						<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
					</categoryAxisFormat>
					<valueAxisFormat>
						<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
					</valueAxisFormat>
				</linePlot>
			</lineChart>
		</band>
	</detail>
</jasperReport>

JasperServletChart.java

package com.accord.servlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.accord.dao.Jdbc;
import com.accord.demo.Account;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperRunManager;

public class JasperServletChart extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public JasperServletChart() {
        super();
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	doPost(request, response);
	}

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	ServletContext context = this.getServletConfig().getServletContext(); 	
		try {
			//JasperCompileManager.compileReportToFile("E:/report/DbReport.jrxml");
			JasperCompileManager.compileReportToFile(context.getRealPath("/jasper/Demo01.jrxml"));
		} catch (JRException e1) {
			e1.printStackTrace();
		}//编译jrxml文件,生成jasper文件

		File reportFile = new File(context.getRealPath("/jasper/Demo01.jasper"));
		if (!reportFile.exists())
			throw new JRRuntimeException("FileWebappReport.jasper "
					+ "not found. The report design must be compiledfirst.");
		String jasperPath = context.getRealPath("/jasper/Demo01.jasper");
		
		FileInputStream isRef = null;
		ServletOutputStream sosRef = null;
		try {
			isRef = new FileInputStream(reportFile);
			sosRef = response.getOutputStream();
			
			JasperRunManager.runReportToPdfStream(isRef, sosRef, null, Jdbc.getConnection());
			//JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JREmptyDataSource());
			response.setContentType("application/pdf");
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			sosRef.flush();
			sosRef.close();
		}
	}

}

Jdbc.java

package com.accord.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Jdbc {
	public static String driver="com.mysql.jdbc.Driver";  
    public static String url="jdbc:mysql://localhost:3306/db_bank";  
    public static String user="root";  
    public static String pwd="123456";  
    public static Connection conn= getConnection();  
    public static Statement statement= getStatement();  
  
    public static Connection getConnection(){  
        if(conn==null){  
            try{  
                 Class.forName(driver);  
                 conn=DriverManager.getConnection(url,user,pwd);  
            }catch(Exception e){  
                e.printStackTrace();  
            }  
        }  
        return conn;  
    }  
    private static Statement getStatement(){  
        if(statement==null){  
            try{  
                statement=conn.createStatement();  
            }catch(Exception e){  
                e.printStackTrace();  
            }  
        }  
        return statement;  
    }  
    public static ResultSet getResultSet(String sql){  
        ResultSet rs=null;  
        try{  
            rs=statement.executeQuery(sql);  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
        return rs;  
    }  
    
    public static void closeAll(ResultSet rs,Statement st,Connection cn){  
        try{  
            if(rs!=null){  
                rs.close();  
            }  
            if(st!=null){  
                st.close();  
            }  
            if(cn!=null){  
                cn.close();  
            }  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
    }  

}

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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>JasperReports</groupId>
  <artifactId>JasperReports02</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>JasperReports02 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>  
	    <groupId>net.sf.jasperreports</groupId>  
	    <artifactId>jasperreports</artifactId>  
	    <version>5.6.0</version>  
	</dependency> 
	
	
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.30</version>
	</dependency>
	
	<!-- 解决中文乱码 -->
	<dependency> 
	    <groupId>com.lowagie</groupId>
	    <artifactId>itextasian</artifactId>
	    <version>1.5.2</version>
	</dependency>
	
	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>servlet-api</artifactId>
	    <version>2.5</version>
	</dependency>
    
  </dependencies>
  <build>
    <finalName>JasperReports02</finalName>
  </build>
</project>

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
  	<servlet-name>JasperServlet</servlet-name>
  	<display-name>JasperServlet</display-name>
  	<description></description>
  	<servlet-class>com.accord.servlet.JasperServlet</servlet-class>
  </servlet>
  <servlet>
  	<servlet-name>JasperServletDb</servlet-name>
  	<display-name>JasperServletDb</display-name>
  	<description></description>
  	<servlet-class>com.accord.servlet.JasperServletDb</servlet-class>
  </servlet>
  <servlet>
  	<servlet-name>JasperServletJavaBean</servlet-name>
  	<display-name>JasperServletJavaBean</display-name>
  	<description></description>
  	<servlet-class>com.accord.servlet.JasperServletJavaBean</servlet-class>
  </servlet>
  <servlet>
  	<servlet-name>JasperServletJavaBeanGroup</servlet-name>
  	<display-name>JasperServletJavaBeanGroup</display-name>
  	<description></description>
  	<servlet-class>com.accord.servlet.JasperServletJavaBeanGroup</servlet-class>
  </servlet>
  <servlet>
  	<servlet-name>JasperServletTable</servlet-name>
  	<display-name>JasperServletTable</display-name>
  	<description></description>
  	<servlet-class>com.accord.servlet.JasperServletTable</servlet-class>
  </servlet>
  <servlet>
  	<servlet-name>JasperServletChart</servlet-name>
  	<display-name>JasperServletChart</display-name>
  	<description></description>
  	<servlet-class>com.accord.servlet.JasperServletChart</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>JasperServlet</servlet-name>
  	<url-pattern>/JasperServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>JasperServletDb</servlet-name>
  	<url-pattern>/JasperServletDb</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>JasperServletJavaBean</servlet-name>
  	<url-pattern>/JasperServletJavaBean</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>JasperServletJavaBeanGroup</servlet-name>
  	<url-pattern>/JasperServletJavaBeanGroup</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>JasperServletTable</servlet-name>
  	<url-pattern>/JasperServletTable</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>JasperServletChart</servlet-name>
  	<url-pattern>/JasperServletChart</url-pattern>
  </servlet-mapping>
</web-app>

猜你喜欢

转载自blog.csdn.net/u013456370/article/details/81531332