java 生成报表

来源:互联网 发布:怎么关闭mac打开的图标 编辑:程序博客网 时间:2024/04/29 16:37
package com.scinvest.web.controller.statsys;import java.awt.Font;import java.awt.RenderingHints;import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.apache.shiro.authz.annotation.RequiresPermissions;import org.jfree.data.time.Month;import org.jfree.data.time.TimeSeriesCollection;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.StandardChartTheme;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.time.TimeSeries;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.scinvest.web.controller.BaseController;@Controller@RequestMapping("/statsys/westlestatsys")public class WestleStatsysController extends BaseController{/** * 查询 * @param model * @return */@RequestMapping(value="",method= RequestMethod.GET)   @RequiresPermissions("westle:view")   public String view(Model model){model.addAttribute("idprefix","westle_sts_view");return "statsys/westle_sts_view";}@RequestMapping(value="view",method= RequestMethod.GET)public void jfreechart(Model model,HttpServletResponse response,String viewmethod) throws IOException{ response.setContentType("image/jpeg");JFreeChart chart = null;  //设置标题字体//创建主题样式  StandardChartTheme standardChartTheme = new StandardChartTheme("CN");  //设置标题字体  standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));  //设置图例的字体 standardChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));  //设置轴向的字体  standardChartTheme.setLargeFont(new Font("宋体", Font.PLAIN, 15));  //应用主题样式  ChartFactory.setChartTheme(standardChartTheme); if(viewmethod.equals("3") || viewmethod.equals("")){//定义数据DefaultPieDataset pd=new DefaultPieDataset();pd.setValue("大专",100);pd.setValue("本科",50);pd.setValue("硕士",10);pd.setValue("博士",2);//生成好报表chart=ChartFactory.createPieChart("公司雇员学历统计表",pd,true,true,false);}else if(viewmethod.equals("4")){TimeSeries java=new TimeSeries("java编程",Month.class);java.add(new Month(8,2006),3000);java.add(new Month(9,2006),3500);java.add(new Month(10,2006),5000);java.add(new Month(11,2006),4000);TimeSeries net=new TimeSeries("net编程",Month.class);net.add(new Month(8,2006),4000);net.add(new Month(9,2006),3500);net.add(new Month(10,2006),3000);net.add(new Month(11,2006),4000);TimeSeriesCollection dataset=new TimeSeriesCollection();dataset.addSeries(java);dataset.addSeries(net);chart=ChartFactory.createTimeSeriesChart("编程语言排行","语言","数量",dataset, true,false,false);}else if(viewmethod.equals("1") || viewmethod.equals("2")){DefaultCategoryDataset pd=new DefaultCategoryDataset();pd.addValue(100,"bb","大专");pd.addValue(50,"cc","大专");pd.addValue(100,"dd","大专");pd.addValue(50,"ee","大专");pd.addValue(10,"bb","硕士");pd.addValue(2,"cc","硕士");pd.addValue(10,"dd","硕士");pd.addValue(2,"ee","硕士");if(viewmethod.equals("1")){chart=ChartFactory.createBarChart("公司雇员学历统计表",//2D"学历","人数",pd,PlotOrientation.VERTICAL,false,false,false);}else{chart=ChartFactory.createBarChart3D("公司雇员学历统计表",//3D"学历","人数",pd,PlotOrientation.VERTICAL,false,false,false);}CategoryPlot polt=(CategoryPlot)chart.getPlot();//得到横轴CategoryAxis heng=(CategoryAxis)polt.getDomainAxis();//得到纵轴NumberAxis number=(NumberAxis)polt.getRangeAxis();}//设置字体的清晰度chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);//输出数据ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,400,300);}}<div><select name="vtype" id="sel" onchange="fun()">    <option value="1" >2D柱线图</option>    <option value="2" >3D柱线图</option>    <option value="3" selected>饼图</option>    <option value="4" >折现图</option>    </select></div><div><img src="${rootPath}/statsys/westlestatsys/view?viewmethod" id="captcha_img" width=500 height=300 border=0 usemap="#${filename}"></div>


HTML:<script type="text/javascript">function fun(){var method=$('#sel').val();$('#captcha_img').attr('src','${rootPath}/statsys/westlestatsys/view?viewmethod='+method);}</script>