struts2 + ireport
来源:互联网 发布:委内瑞拉中国布局知乎 编辑:程序博客网 时间:2024/06/02 00:49
3:struts2与jfreeChart的整合
package com.aptech.action;
import java.util.*;
import org.jfree.data.*;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPosition;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.*;
import java.awt.Font;
import java.awt.geom.Ellipse2D.Float;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.title.LegendTitle;
import com.opensymphony.xwork2.ActionSupport;
public class JFreeChartAction extends ActionSupport{
public JFreeChart getChart() {
JFreeChart chart = ChartFactory.createBarChart("周报表", "时间", "销售额", getDataset(), PlotOrientation.VERTICAL, true, true, true);
chart.getTitle().setFont(new Font("黑体",Font.BOLD,22));
//body
CategoryPlot plot = (CategoryPlot) chart.getPlot();
//Y轴定义
NumberAxis y = (NumberAxis) plot.getRangeAxis();
y.setLabelFont(new Font("黑体",Font.BOLD,18));
//X轴定义
CategoryAxis x = plot.getDomainAxis();
x.setLabelFont(new Font("宋体",Font.BOLD,18));
x.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
//说明
LegendTitle legend = chart.getLegend();
legend.setItemFont(new Font("黑体",Font.BOLD,14));
return chart;
}
//定义数据集
public DefaultCategoryDataset getDataset(){
DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
long sale =100;
categoryDataset.setValue(sale, "星期一", "1");
categoryDataset.setValue(sale+100, "星期二", "2");
categoryDataset.setValue(sale+200, "星期三", "3");
categoryDataset.setValue(sale+300, "星期四", "4");
categoryDataset.setValue(sale+400, "星期五", "5");
categoryDataset.setValue(sale+500, "星期六", "6");
categoryDataset.setValue(sale+600, "星期日", "7");
return categoryDataset;
}
}
2:ireport的工作原理
title:第一页只显示一次
pageHeader:每个页面出现一次
columnHeader:每个表格出现一次
detail:可以出现n次
columnFooter:每个表格出现一次
pateFooter:每个页面出现一次
summarry:最后一页只显示一次
ireport给定的一报表编辑器,通过编辑器可以定义报表的格式,设置paramer(Map)、list的值
编译后生成一个以jasper结尾二进制文件,通过IReport提供的相关类
加载jasper、paramter(Map)、list 生成一个PDF或Excell文件
将jasper转化为pdf文件:
JRBeanCollectionDataSource:加载list信息
byte[] btes=JasperRuManager.runReportToPdf(jasper文件,parameter,JRBeanCollectionDataSource ds)
如果要通过servlet显示pdf文件
response.setContentType("application/pdf");
将japer转化为excel文件
JRBeanCollectionDataSource:封状集合信息
JasperPrint jasperPrint = JasperFillManager.fillReport(TestExcel.class.getResourceAsStream("reportpdf.jasper"),map,jrDs1);
ByteArrayOutputStream oStream = new ByteArrayOutputStream();
//excel的输出对象
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,oStream);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE); // 删除记录最下面的空行
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);// 删除多余的ColumnHeader
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);// 显示边框
//产生一个xls字节流
exporter.exportReport();
//写出到一个excell文件中
PrintStream ps=new PrintStream(new FileOutputStream("c:/a.xls"));
ps.write(oStream.toByteArray());
解决中文问题
在ireport编辑器对应的lib目录下加入如下类包:
itext-2.0.4.jar
iTextAsian.jar
iTextAsianCmaps.jar
在格式化-->报表字型-->加入一种字体样式
Font Name 宋体
PDF Font Name:STSong-Light
PDF Encodine:H 简体中文
2:struts2与ireport的整合
package com.aptech.action;
import java.util.*;
import net.sf.jasperreports.engine.JasperCompileManager;
import org.apache.struts2.ServletActionContext;
import org.jfree.data.*;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPosition;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.*;
import java.awt.Font;
import java.awt.geom.Ellipse2D.Float;
import java.io.File;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.title.LegendTitle;
import com.aptech.bean.PeopleBean;
import com.opensymphony.xwork2.ActionSupport;
public class JasperAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private List<PeopleBean> myList;
public String execute() throws Exception {
//添加数据
PeopleBean p1=new PeopleBean("长沙", new Integer(9), "李化", "天洒路");
PeopleBean p2=new PeopleBean("长沙", new Integer(22), "王小样", "呆小路564");
PeopleBean p3=new PeopleBean("南昌", new Integer(23), "王奸可", "小顺路");
PeopleBean p4=new PeopleBean("南昌", new Integer(32), "李洒", "顺濉路");
PeopleBean p5=new PeopleBean("武汉", new Integer(39), "张中尖", "天洒路");
PeopleBean p6=new PeopleBean("武汉", new Integer(35), "陈主宁", "天河路564");
myList = new ArrayList<PeopleBean>();
myList.add(p1);
myList.add(p2);
myList.add(p3);
myList.add(p4);
myList.add(p5);
myList.add(p6);
try {
String reportSource;
reportSource = ServletActionContext.getServletContext()
.getRealPath("/jasper/jasper_template.jrxml");
File parent = new File(reportSource).getParentFile();
JasperCompileManager.compileReportToFile(reportSource, new File(
parent, "compiled_jasper_template.jasper")
.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
public List getMyList() {
return myList;
}
}
package com.aptech.action;
import java.util.*;
import org.jfree.data.*;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPosition;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.*;
import java.awt.Font;
import java.awt.geom.Ellipse2D.Float;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.title.LegendTitle;
import com.opensymphony.xwork2.ActionSupport;
public class JFreeChartAction extends ActionSupport{
public JFreeChart getChart() {
JFreeChart chart = ChartFactory.createBarChart("周报表", "时间", "销售额", getDataset(), PlotOrientation.VERTICAL, true, true, true);
chart.getTitle().setFont(new Font("黑体",Font.BOLD,22));
//body
CategoryPlot plot = (CategoryPlot) chart.getPlot();
//Y轴定义
NumberAxis y = (NumberAxis) plot.getRangeAxis();
y.setLabelFont(new Font("黑体",Font.BOLD,18));
//X轴定义
CategoryAxis x = plot.getDomainAxis();
x.setLabelFont(new Font("宋体",Font.BOLD,18));
x.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
//说明
LegendTitle legend = chart.getLegend();
legend.setItemFont(new Font("黑体",Font.BOLD,14));
return chart;
}
//定义数据集
public DefaultCategoryDataset getDataset(){
DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
long sale =100;
categoryDataset.setValue(sale, "星期一", "1");
categoryDataset.setValue(sale+100, "星期二", "2");
categoryDataset.setValue(sale+200, "星期三", "3");
categoryDataset.setValue(sale+300, "星期四", "4");
categoryDataset.setValue(sale+400, "星期五", "5");
categoryDataset.setValue(sale+500, "星期六", "6");
categoryDataset.setValue(sale+600, "星期日", "7");
return categoryDataset;
}
}
2:ireport的工作原理
title:第一页只显示一次
pageHeader:每个页面出现一次
columnHeader:每个表格出现一次
detail:可以出现n次
columnFooter:每个表格出现一次
pateFooter:每个页面出现一次
summarry:最后一页只显示一次
ireport给定的一报表编辑器,通过编辑器可以定义报表的格式,设置paramer(Map)、list的值
编译后生成一个以jasper结尾二进制文件,通过IReport提供的相关类
加载jasper、paramter(Map)、list 生成一个PDF或Excell文件
将jasper转化为pdf文件:
JRBeanCollectionDataSource:加载list信息
byte[] btes=JasperRuManager.runReportToPdf(jasper文件,parameter,JRBeanCollectionDataSource ds)
如果要通过servlet显示pdf文件
response.setContentType("application/pdf");
将japer转化为excel文件
JRBeanCollectionDataSource:封状集合信息
JasperPrint jasperPrint = JasperFillManager.fillReport(TestExcel.class.getResourceAsStream("reportpdf.jasper"),map,jrDs1);
ByteArrayOutputStream oStream = new ByteArrayOutputStream();
//excel的输出对象
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,oStream);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE); // 删除记录最下面的空行
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);// 删除多余的ColumnHeader
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);// 显示边框
//产生一个xls字节流
exporter.exportReport();
//写出到一个excell文件中
PrintStream ps=new PrintStream(new FileOutputStream("c:/a.xls"));
ps.write(oStream.toByteArray());
解决中文问题
在ireport编辑器对应的lib目录下加入如下类包:
itext-2.0.4.jar
iTextAsian.jar
iTextAsianCmaps.jar
在格式化-->报表字型-->加入一种字体样式
Font Name 宋体
PDF Font Name:STSong-Light
PDF Encodine:H 简体中文
2:struts2与ireport的整合
package com.aptech.action;
import java.util.*;
import net.sf.jasperreports.engine.JasperCompileManager;
import org.apache.struts2.ServletActionContext;
import org.jfree.data.*;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPosition;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.*;
import java.awt.Font;
import java.awt.geom.Ellipse2D.Float;
import java.io.File;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.title.LegendTitle;
import com.aptech.bean.PeopleBean;
import com.opensymphony.xwork2.ActionSupport;
public class JasperAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private List<PeopleBean> myList;
public String execute() throws Exception {
//添加数据
PeopleBean p1=new PeopleBean("长沙", new Integer(9), "李化", "天洒路");
PeopleBean p2=new PeopleBean("长沙", new Integer(22), "王小样", "呆小路564");
PeopleBean p3=new PeopleBean("南昌", new Integer(23), "王奸可", "小顺路");
PeopleBean p4=new PeopleBean("南昌", new Integer(32), "李洒", "顺濉路");
PeopleBean p5=new PeopleBean("武汉", new Integer(39), "张中尖", "天洒路");
PeopleBean p6=new PeopleBean("武汉", new Integer(35), "陈主宁", "天河路564");
myList = new ArrayList<PeopleBean>();
myList.add(p1);
myList.add(p2);
myList.add(p3);
myList.add(p4);
myList.add(p5);
myList.add(p6);
try {
String reportSource;
reportSource = ServletActionContext.getServletContext()
.getRealPath("/jasper/jasper_template.jrxml");
File parent = new File(reportSource).getParentFile();
JasperCompileManager.compileReportToFile(reportSource, new File(
parent, "compiled_jasper_template.jasper")
.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
public List getMyList() {
return myList;
}
}
0 0
- struts2 + ireport
- IReport整合Struts2
- struts2+ireport(jasperreport)记录
- MyEclipse iReport JasperReport Struts2
- struts2 ireport jasperReport
- struts2+ireport进行报表开发
- Struts2 与 ireport 集成问题
- ireport+jasperreports报表开发总结一(Struts2)
- struts2+spring3+hibernate3+ireport+防止重复登录
- iReport整合web(Struts2)后台开发
- iReport
- iReport
- iReport
- ireport
- iReport
- ireport
- ireport
- ireport
- 开博前言
- 迷宫问题-深度遍历解法
- 打开window系统telnet功能
- HDU1299 Diophantus of Alexandria
- 九度OJ 1091 棋盘游戏
- struts2 + ireport
- 关于指针_1
- 如何移民哥斯达黎加
- kernel方法和高斯过程
- 判断一年的第几天(利用结构体知识)
- Android系统框架
- Java面向对象——IO流体系
- Linux中IPC机制:管道和FIFO
- ant 软件包 javax.servlet.http 不存在 解决办法