您现在的位置是:首页 >

成本报表分析的一般程序是什么 Java程序中用JFreeChart制作图形报表

火烧 2021-08-20 11:27:12 1050
Java程序中用JFreeChart制作图形报表    一 需求分析    我家领导认为 在是否嫁给我做老婆的问题上 应该有更加科学的决策模型 如果能够将每天的感情生活量化 且以时间为X轴 生成数据报
成本报表分析的一般程序是什么 Java程序中用JFreeChart制作图形报表

Java程序中用JFreeChart制作图形报表  

   一 需求分析    我家领导认为 在是否嫁给我做老婆的问题上 应该有更加科学的决策模型 如果能够将每天的感情生活量化 且以时间为X轴 生成数据报表 就可以为她的决策提供数据支持 秉著以领导意志为导向的基本原则 开发了本软件 为家庭信息化建设提供新的思路      二 系统概述    本系统的基本功能是 接收用户每天的输入并保存 月/季度/年度末生成数据折线图 周期环比柱状图 由于投入资金有限(不让我往外掏钱就已经很不错了) 所以本软件的 版采用单机应用程序 使用Access数据库 如果市场推广情况良好 不排除推出大型FRP软件(Family Resource Project)的可能 届时将包含KRM(Kin Relation Manage 家族关系管理) HA(House Automatization 家庭自动化)等模块 利用强大的J EE框架 为家庭信息化建设提供完整解决方案     程序生成的目标图片效果如下         三 系统要求     开源工具包jfreechart pre jar和它自己要使用的工具包jmon pre jar    下载地址      女朋友一个     请自行准备 暂不提供下载    下面主要讲述系统是如何从数据库中提取数据 然后生成图形报表的 (终于进入正题了 )    数据表结构      用于封装每个分数的值对象如下     package bromon fiona curve dao;    import java util *;    public class CurveVo  {  private int year;    private int month;    private int day;    private double cent;    private String note;    private String owner;    //get/set方法    …………  }    生成图片的关键代码如下     package bromon fiona curve util;    //一大堆import    public class DrawPic  {  /**  *根据时间查询数据 将所得到的数据封装成TimeSeriesCollection对象  *TimeSeriesCollection是JfreeChart中定义的类的对象  *本方法将被后面的draw方法调用  *@param int 要查询哪一年  *@param int 要查询哪一月  *@return TimeSeriesCollection  */    public TimeSeriesCollection getData(int year int month)  {  //fiona的数据集合 其中存放的是上面定义过的CurveVo值对象  //这些值对象的值来自于数据库 相关代码是最常见的jdbc内容 请自行完成    List dataOfFiona=new ArrayList();    //Bromon的数据集合    List dataOfBromon=new ArrayList();    //构造要返回的对象    TimeSeriesCollection result=new TimeSeriesCollection();    //这两个对象 分别对应一条曲线 构造函数的参数 将显示在图片的下方    TimeSeries fiona=new TimeSeries( fiona );  TimeSeries bromon=new TimeSeries( bromon );  CurveVo cv=null;  //遍历Fiona的数据集 填充fiona对象    for(int i= ;i<dataOfFiona size();i++)  {  cv=(CurveVo)dataOfFiona get(i);  fiona add(new TimeSeriesDataItem(new Day(cv getDay() cv getMonth() cv getYear()) new Double(cv getCent())));    }  result addSeries(fiona);  for(int i= ;i<dataOfBromon size();i++)  {  cv=(CurveVo)dataOfBromon get(i);  bromon add(new TimeSeriesDataItem(new Day(cv getDay() cv getMonth() cv getYear()) new Double(cv getCent())));    }  result addSeries(bromon);  }  //生成图表的方法 图表数据来自上面的getData方法    public String draw(int y int m)  {  String result=null;  String title= Bromon & Fiona的爱情走势图 ;  String subTitle=y+ 年 +m+ 月 ;  String domain= 时间 ;//x轴  String range= 分值 ;//y轴  TimeSeriesCollection data =this getData(y m);  JFreeChart chart =ChartFactory createTimeSeriesChart(title domain range data true true false);  TextTitle subtitle =new TextTitle(subTitle new Font( 宋体 Font BOLD ));  chart addSubtitle(subtitle);  chart setTitle(new TextTitle(title new Font( 宋体 Font ITALIC )));  chart setBackgroundPaint(new GradientPaint( Color white Color white));  c setTime(new Date());  String fileName= c:\pics\ +y+ +m+ jpg ;//保存为位置  try  {  File f=new File( c:\pics );  if(!f exists())  {  f mkdir();  }  ChartUtilities saveChartAsJPEG(new File(fileName) chart );//宽 高   } catch (Exception e)  {  e printStackTrace();  }  result=fileName;  return result;  }    //ok 测试一下    public static void main(String args[])  {  new DrawPic() draw( );  }  }    生成环比柱状图的相关内容 整理后放出     JfreeChart的绘图功能很强大 但是API的编写有些地方让人很不舒服 很多元素要定制不容易 如果有更好的API的话 我很愿意使用 当然 免费是个很重要的前提 lishixinzhi/Article/program/Java/JSP/201311/19686  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码