public class Report {
/**ä½ç¨ï¼æ¥è¡¨æ ·å¼çæ举,该类çgetvalueæ¹æ³è¿å对åºå¼ã<br>
* Columns_2DVerï¼2Dæ±ç¶åç´æ¥è¡¨ã<br>
* Columns_3DVerï¼3Dæ±ç¶åç´æ¥è¡¨ã<br>
* Columns_2DHorï¼2Dæ±ç¶æ°´å¹³æ¥è¡¨ã<br>
* Columns_3DHorï¼3Dæ±ç¶æ°´å¹³æ¥è¡¨ã
* */
public enum ReportType{
Columns_2DVer("Z2DV"),
Columns_3DVer("Z3DV"),
Columns_2DHor("Z2DH"),
Columns_3DHor("Z3DH"),
LineReport_2D("Line2D"),
LineReport_3D("Line3D"),
PieReport_2D("Pie2D"),
PieReport_3D("Pie3D");
private ReportType(String a){
this.str=a;
}
private String str;
public String getvalue(){
return this.str;
}
}
/**ä½ç¨ï¼ä½ä¸ºå建æ¥è¡¨æ¶çåæ°ã<br>
* æå1ï¼æ¥è¡¨çæ é¢ã<br>
* æå2ï¼æ¥è¡¨ç横åæ æ é¢ã<br>
* æå3ï¼æ¥è¡¨ç纵åæ æ é¢ã<br>
* æå4ï¼JSP页é¢çrequest对象ã<br>
* æå5ï¼æ¥è¡¨æä¿åçæ件åã<br>
* æå6ï¼æ¥è¡¨çé¿åº¦ã<br>
* æå7ï¼æ¥è¡¨ç宽度ã<br>
* æå8ï¼æ¥è¡¨çèæ¯é¢è²ï¼é»è®¤ä¸ºç½è²ã<br>
* æå9ï¼æ¥è¡¨ç½æ ¼ä¸ç«çº¿çé¢è²ï¼é»è®¤ä¸ºé»è²ã<br>
* æå10ï¼æ¥è¡¨ç½æ ¼ä¸æ¨ªçº¿çé¢è²ï¼é»è®¤ä¸ºé»è²ã<br>
* æå11ï¼æ¥è¡¨æ¨ªè½´å
容çæ°ç»ã<br>
* æå12ï¼æ¥è¡¨çºµè½´å
容çlistæ°ç»ã<br>
* æå13ï¼æ示信æ¯ãå¦æåå
¥å¤ä¸ªæ示信æ¯ï¼æ¥è¡¨å°±åæå¤æ±ç¶ã<br>
* æå14ï¼æ¥è¡¨ç模å¼ã详è§reportTypeæ举类<br>
* æå15ï¼é¥¼ç¶å¾ä¸ç¨çæ°å¼æ°ç»ãæ°ç»çåå¿
é¡»çäº1.<br>
* 注æ1ï¼è¦å¨JSP页é¢å¼å
¥è¯¥ç±»åæè½ä½¿ç¨,横纵轴æ°ç»çé¿åº¦å¿
é¡»ä¸è´ã<br>
* 注æ2ï¼å¦æå¨æ示信æ¯æ°ç»ä¸åå
¥äºå¤ä¸ªæ示信æ¯ï¼é£ä¹æ¥è¡¨çºµè½´å
容ç
* listä¸å°±å¿
é¡»åæ¾å
¥åå®æ°éä¸è´çintæ°ç»ãå¦åä¼åºéã
* */
public class ReportClass{
public String ReportTitle;
public String xTitle;
public String yTitle;
public HttpServletRequest request;
public String filename;
public int width;
public int height;
public Color BackgroundColor=Color.WHITE;
public Color ylineColor=Color.BLACK;
public Color xlineColor=Color.BLACK;
public String[] xValues;
public ArrayList<int[]> yValue=new ArrayList<int[]>();
public String[] helpstr;
public String reportType;
public double[] PieValue;
}
/**ä½ç¨ï¼å建ä¸ä¸ªæå®ç±»ååæ°æ®çå¾è¡¨ã<br>
* åæ°1ï¼ReportClassç±»åï¼åæåå
·ä½ä½ç¨åè§ReportClass说æ<br>
* è¿åå¼ï¼Stringç±»åï¼å¨JSP页é¢å¯ä»¥ç´æ¥out.printlnæ¾ç¤ºå¾å½¢ã<br>
* 注æ1ï¼ReportClassç±»åä¸ï¼å¿
须设置çæå主è¦æï¼<br>
* 1ãReportTitle 2ãrequest 3ãfilename 4ãwidth 5ãheight 6ãreportType<br>
* 注æ2ï¼å¦æè¦çæ饼ç¶å¾ï¼è¿éè¦è®¾ç½®ï¼<br>
* 1ãxValues 2ãPieValue è¿ä¸¤ä¸ªæ°ç»çé¿åº¦å¿
é¡»ä¸è´<br>
* 注æ3ï¼å¦æè¦çææ±ç¶å¾ææ线å¾ï¼è¿éè¦è®¾ç½®ï¼<br>
* 1ãxValues 2ãyValue 3ãhelpstr<br>
* yvalueæ°ç»æ»åå¿
é¡»çäº1.å³100%.<br>
* å¦æè¦çæå¤æ±ç¶ææ线å¾ï¼åéè¦è®¾ç½®helpstré¿åº¦ã<br>
* yvalueå表çé¿åº¦å¿
é¡»åhelpstræ°ç»é¿åº¦ä¸è´ã<br>
* yvalueä¸çæåæ°ç»çé¿åº¦å¿
é¡»åxvalueæ°ç»é¿åº¦ä¸è´ã
* */
public String CreateReport(ReportClass rc){
String s="sf";
String str="";
JFreeChart jc=null;
Font titlefont=new Font("å®ä½",Font.BOLD,20);
Font tickfont=new Font("å®ä½",0,15);
Font labelfont=new Font("å®ä½",Font.BOLD,15);
DefaultCategoryDataset ds=null;
DefaultPieDataset pds=null;
if (rc.ReportTitle!=null){
if (rc.reportType.indexOf("Pie")!=-1){//饼ç¶å¾
pds=new DefaultPieDataset();
double[] ob=rc.PieValue;
for (int i=0;i<ob.length;i++){
pds.setValue(rc.xValues[i], ob[i]);
}
if (rc.ReportTitle!=null){
if (rc.reportType.equals("Pie2D")){
jc=ChartFactory.createPieChart(rc.ReportTitle,pds,true, true, false);
}
else if (rc.reportType.equals("Pie3D")){
jc=ChartFactory.createPieChart3D(rc.ReportTitle,pds,true, true, false);
}
jc.getTitle().setFont(titlefont);
jc.getLegend().setItemFont(labelfont);
jc.setBackgroundPaint(rc.BackgroundColor);//æ»èæ¯è²
jc.setBorderPaint(rc.BackgroundColor);
PiePlot plot=(PiePlot)jc.getPlot();
plot.setBackgroundPaint(rc.BackgroundColor);
plot.setLabelFont(new Font("å®ä½",0,15));
}
}
else { //æ±ç¶ææ线å¾
ds=new DefaultCategoryDataset();
for (int i=0;i<rc.helpstr.length;i++){
int[] ob=rc.yValue.get(i);
for (int j=0;j<ob.length;j++){
ds.addValue(ob[j], rc.helpstr[i], rc.xValues[j]);
}
}
if (rc.reportType.indexOf("Z2D")!=-1){
PlotOrientation po=null;
if (rc.reportType.indexOf("V")!=-1){
po=PlotOrientation.VERTICAL;
}
else if (rc.reportType.indexOf("H")!=-1){
po=PlotOrientation.HORIZONTAL;
}
jc=ChartFactory.createBarChart(rc.ReportTitle, rc.xTitle, rc.yTitle,
ds, po, true, true, false);
}
else if (rc.reportType.indexOf("Z3D")!=-1){
PlotOrientation po=null;
if (rc.reportType.indexOf("V")!=-1){
po=PlotOrientation.VERTICAL;
}
else if (rc.reportType.indexOf("H")!=-1){
po=PlotOrientation.HORIZONTAL;
}
jc=ChartFactory.createBarChart3D(rc.ReportTitle, rc.xTitle, rc.yTitle,
ds, po, true, true, false);
}
else if (rc.reportType.equals("Line2D")){
PlotOrientation po=PlotOrientation.VERTICAL;
jc=ChartFactory.createLineChart(rc.ReportTitle, rc.xTitle, rc.yTitle,
ds, po, true, true, false);
}
else if (rc.reportType.equals("Line3D")){
PlotOrientation po=PlotOrientation.VERTICAL;
jc=ChartFactory.createLineChart3D(rc.ReportTitle, rc.xTitle, rc.yTitle,
ds, po, true, true, false);
}
jc.getTitle().setFont(titlefont);
jc.getLegend().setItemFont(labelfont);
jc.setBackgroundPaint(rc.BackgroundColor);//æ»èæ¯è²
CategoryPlot cp=jc.getCategoryPlot();
cp.setBackgroundPaint(rc.BackgroundColor);//å¾å½¢æ¡æ¶èæ¯è²
cp.setDomainGridlinePaint(rc.ylineColor);//å¾å½¢èæ¯ç½æ ¼ä¸ç«çº¿çé¢è²
cp.setDomainGridlinesVisible(true);
cp.setRangeGridlinePaint(rc.xlineColor);//å¾å½¢èæ¯ç½æ ¼ä¸æ¨ªçº¿çé¢è²
cp.getDomainAxis().setTickLabelFont(tickfont);
cp.getDomainAxis().setLabelFont(labelfont);
cp.getRangeAxis().setTickLabelFont(tickfont);
cp.getRangeAxis().setLabelFont(labelfont);
}
try {
File ff=new File(rc.request.getRealPath("/")+"file");
if (!ff.exists()){
ff.mkdir();
}
File file=new File(rc.request.getRealPath("/")+"file/"+rc.filename);
if (!file.exists()){
file.createNewFile();
}
ChartUtilities.saveChartAsJPEG(file, jc, rc.width, rc.height);
str="<img src='"+file.getPath()+"'>";
return str;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
else {
return null;
}
}} 以ååçä¸ä¸ªæ¥è¡¨çéæï¼å¯ä»¥çæä»»ä½å½¢å¼çæ¥è¡¨ï¼è¦å¼å
¥JFreeChar.ä½ å¯ä»¥æ
¢æ
¢ç 究ä¸...
温馨提示:答案为网友推荐,仅供参考