亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? reportaction.java

?? 基于Sturts+Spring+Hibernate的一個高級銷售管理系統。內容豐富
?? JAVA
字號:
package com.yuanchung.sales.struts.report.action;

import java.awt.Color;
import java.awt.Font;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.category.StandardBarPainter;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.TextAnchor;

import com.yuanchung.sales.service.resport.ReportMgr;
/**
 * 報表Action
 * @author gzq
 *
 */
public class ReportAction extends DispatchAction {
	private static final Log log = LogFactory.getLog(ReportCategoryAction.class);
	private ReportMgr reportMgr;
	/**
	 * 呈現方式枚舉
	 * @author gzq
	 *
	 */
	private enum Type {
		REPORT(1),//報表
		DASHBOARD(2);//儀表板
		
		private final int value;
		
		Type(int value){
			this.value = value;
		}
		/**
		 * 獲得特定枚舉類型的值
		 * @return  枚舉類型的值
		 */
		public int getValue(){
			return this.value;
		}
	}
	
	public void setReportMgr(ReportMgr reportMgr) {
		this.reportMgr = reportMgr;
	}
	/**
	 * 查看新增客戶數報表或儀表板
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward viewNewCreatedCustomer(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String startDate = request.getParameter("startDate");
		String endDate = request.getParameter("endDate");
		String dateCondition = request.getParameter("dateCondition");
		
		String strWidth = request.getParameter("width");
		String strHeight = request.getParameter("height");
		int width = 388;
		int height = 290;
		if(strWidth != null && !"".equals(strWidth)){
			width = Integer.parseInt(strWidth);
		}
		if(strHeight != null && !"".equals(strHeight)){
			height = Integer.parseInt(strHeight);
		}
		
		List lst = reportMgr.getNewCreatedCustomerCount(startDate, endDate);
		int recordsTotal = 0;
		if(lst != null && lst.size() > 0){
			for(Object obj : lst.toArray()){
				Object[] objs = (Object[])obj;
				recordsTotal += Integer.parseInt(objs[1].toString());
			}
		}
		
		String strType = request.getParameter("type");
		int type = 1;
		if(strType != null){
			type = Integer.parseInt(strType);
		}
		
		if(type == Type.REPORT.getValue()){
			request.setAttribute("newCreatedCustomers", lst);
			request.setAttribute("newCreatedCustomerCount", recordsTotal);
			request.setAttribute("dateCondition", dateCondition);
			return mapping.findForward("toReportMain");
		}else if(type == Type.DASHBOARD.getValue()){
			Font font = new Font("黑體", Font.PLAIN, 13);
			DefaultCategoryDataset categoryDS = new DefaultCategoryDataset();
			if(lst != null && lst.size() > 0){
				for(Object obj : lst.toArray()){
					Object[] objs = (Object[])obj;
					categoryDS.addValue(Integer.parseInt(objs[1].toString()),"客戶數量",objs[0].toString());
				}
			}
			JFreeChart jfc = getBarChart(categoryDS, new Color(42,170,255), "新增客戶數", "月份", "客戶數量");
			
			response.setContentType("image/png");
			ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfc, width, height);
			return null;
		}else{
			return null;
		}
	}
	/**
	 * 查看已忽視的客戶數報表或儀表板
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */	
	public ActionForward viewIgnoredCustomer(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String startDate = request.getParameter("startDate");
		String endDate = request.getParameter("endDate");
		String dateCondition = request.getParameter("dateCondition");
		
		String strWidth = request.getParameter("width");
		String strHeight = request.getParameter("height");
		int width = 388;
		int height = 290;
		if(strWidth != null && !"".equals(strWidth)){
			width = Integer.parseInt(strWidth);
		}
		if(strHeight != null && !"".equals(strHeight)){
			height = Integer.parseInt(strHeight);
		}
		
		List lst = reportMgr.getIgnoredCustomerCount(startDate, endDate);
		int recordsTotal = 0;
		if(lst != null && lst.size() > 0){
			for(Object obj : lst.toArray()){
				Object[] objs = (Object[])obj;
				recordsTotal += Integer.parseInt(objs[1].toString());
			}
		}
		
		String strType = request.getParameter("type");
		int type = 1;
		if(strType != null){
			type = Integer.parseInt(strType);
		}
		
		if(type == Type.REPORT.getValue()){
			request.setAttribute("ignoredCustomers", lst);
			request.setAttribute("ignoredCustomerCount", recordsTotal);
			request.setAttribute("dateCondition", dateCondition);
			return mapping.findForward("toViewIgnoredCustomers");
		}else if(type == Type.DASHBOARD.getValue()){
			DefaultCategoryDataset categoryDS = new DefaultCategoryDataset();
			if(lst != null && lst.size() > 0){
				for(Object obj : lst.toArray()){
					Object[] objs = (Object[])obj;
					categoryDS.addValue(Integer.parseInt(objs[1].toString()),"客戶數量",objs[0].toString());
				}
			}
			JFreeChart jfc = getBarChart(categoryDS, Color.orange, "已忽視的客戶數", "上次活動月份", "客戶數量");
			
			response.setContentType("image/png");
			ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfc, width, height);
			return null;
		}else{
			return null;
		}
	}
	/**
	 * 查看最近聯系的客戶數報表或儀表板
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */	
	public ActionForward viewRecentlyContactCustomer(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String startDate = request.getParameter("startDate");
		String endDate = request.getParameter("endDate");
		String dateCondition = request.getParameter("dateCondition");
		
		String strWidth = request.getParameter("width");
		String strHeight = request.getParameter("height");
		int width = 388;
		int height = 290;
		if(strWidth != null && !"".equals(strWidth)){
			width = Integer.parseInt(strWidth);
		}
		if(strHeight != null && !"".equals(strHeight)){
			height = Integer.parseInt(strHeight);
		}
		
		List lst = reportMgr.getRecentlyContactCustomerCount(startDate, endDate);
		int recordsTotal = 0;
		if(lst != null && lst.size() > 0){
			for(Object obj : lst.toArray()){
				Object[] objs = (Object[])obj;
				recordsTotal += Integer.parseInt(objs[1].toString());
			}
		}
		
		String strType = request.getParameter("type");
		int type = 1;
		if(strType != null){
			type = Integer.parseInt(strType);
		}
		
		if(type == Type.REPORT.getValue()){
			request.setAttribute("customers", lst);
			request.setAttribute("customerCount", recordsTotal);
			request.setAttribute("dateCondition", dateCondition);
			return mapping.findForward("toViewRecentlyContactCustomers");
		}else if(type == Type.DASHBOARD.getValue()){
			DefaultCategoryDataset categoryDS = new DefaultCategoryDataset();
			if(lst != null && lst.size() > 0){
				for(Object obj : lst.toArray()){
					Object[] objs = (Object[])obj;
					categoryDS.addValue(Integer.parseInt(objs[1].toString()),"客戶數量",objs[0].toString());
				}
			}
			JFreeChart jfc = getLineChart(categoryDS, Color.yellow, "最近聯系的客戶數", "上次活動月份", "客戶數量");
			
			response.setContentType("image/png");
			ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfc, width, height);
			return null;
		}else{
			return null;
		}
	}
	/**
	 * 獲得柱狀圖
	 * @param ds            柱狀圖數據集
	 * @param barColor      柱子的顏色
	 * @param title         柱狀圖標題
	 * @param xAxisLabel    X軸標簽
	 * @param yAxisLabel    Y軸標簽
	 * @return              柱狀圖實例
	 */
	public JFreeChart getBarChart(CategoryDataset ds, Color barColor, String title, String xAxisLabel, String yAxisLabel){
		Font font = new Font("黑體", Font.PLAIN, 13);
		JFreeChart jfc = ChartFactory.createBarChart(title, xAxisLabel, yAxisLabel, ds, PlotOrientation.VERTICAL, true, true, false);
		jfc.getTitle().setFont(new Font("黑體", Font.PLAIN, 14));
		jfc.getLegend().setItemFont(font);
		CategoryPlot cp = (CategoryPlot)jfc.getPlot();
		cp.getDomainAxis().setLabelFont(font);//x軸標簽的字體
		cp.getDomainAxis().setTickLabelFont(font);//x軸上的刻度的標簽的字體
		BarRenderer br = (BarRenderer)cp.getRenderer();
		br.setBarPainter(new StandardBarPainter());//設置用普通樣式繪制柱子(非高亮)
		br.setSeriesPaint(0, barColor != null ? barColor : Color.orange);//設置柱子的顏色
		br.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//設置柱子的標簽生成器
		br.setBaseItemLabelFont(font);//設置柱子的標簽的字體
		br.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.HALF_ASCENT_CENTER));//設置柱子的標簽的位置
		br.setBaseItemLabelsVisible(true);//顯示柱子的標簽
		br.setShadowVisible(false);//隱藏陰影
		
		NumberAxis na = (NumberAxis)cp.getRangeAxis();
		na.setLabelFont(font);//y軸標簽的字體
		na.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//y軸的數字以整數的形式顯示(人數不允許帶小數點)
		
		return jfc;
	}
	/**
	 * 獲得線圖
	 * @param ds            數據集
	 * @param lineColor      線的顏色
	 * @param title         線圖標題
	 * @param xAxisLabel    X軸標簽
	 * @param yAxisLabel    Y軸標簽
	 * @return              線圖實例
	 */
	public JFreeChart getLineChart(CategoryDataset ds, Color lineColor, String title, String xAxisLabel, String yAxisLabel){
		Font font = new Font("黑體", Font.PLAIN, 13);
		JFreeChart jfc = ChartFactory.createLineChart(title, xAxisLabel, yAxisLabel, ds, PlotOrientation.VERTICAL, true, true, false);
		jfc.getTitle().setFont(new Font("黑體", Font.PLAIN, 14));
		jfc.getLegend().setItemFont(font);
		CategoryPlot cp = (CategoryPlot)jfc.getPlot();
		cp.getDomainAxis().setLabelFont(font);//x軸標簽的字體
		cp.getDomainAxis().setTickLabelFont(font);//x軸上的刻度的標簽的字體

		LineAndShapeRenderer rd = (LineAndShapeRenderer)cp.getRenderer();
		rd.setSeriesPaint(0, lineColor != null ? lineColor : Color.blue);
		rd.setBaseShapesVisible(true);
		rd.setBaseItemLabelsVisible(true);
		rd.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		rd.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE11, TextAnchor.HALF_ASCENT_CENTER));//設置線的節點的標簽的位置
		
		NumberAxis na = (NumberAxis)cp.getRangeAxis();
		na.setLabelFont(font);//y軸標簽的字體
		na.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//y軸的數字以整數的形式顯示(人數不允許帶小數點)
		
		return jfc;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美日韩一级片在线观看| 久久久久久久综合狠狠综合| 樱桃视频在线观看一区| 日本二三区不卡| 午夜欧美大尺度福利影院在线看| 欧美日韩国产综合一区二区 | 国产欧美一区二区精品仙草咪| 黑人精品欧美一区二区蜜桃| 久久精品欧美日韩| 91麻豆免费看片| 亚洲成人午夜影院| 2021久久国产精品不只是精品| 国产东北露脸精品视频| 日韩美女啊v在线免费观看| 欧美日韩中文字幕一区| 麻豆freexxxx性91精品| 中文字幕免费在线观看视频一区| 91免费观看视频在线| 丝袜美腿高跟呻吟高潮一区| 精品捆绑美女sm三区| 北岛玲一区二区三区四区| 亚洲一区二区在线观看视频| 日韩区在线观看| k8久久久一区二区三区 | 精品一区二区三区蜜桃| 国产日产欧美一区| 欧美亚洲高清一区| 懂色av中文一区二区三区| 亚洲一区二区在线播放相泽| 久久精品欧美一区二区三区不卡| 在线观看欧美日本| 国产美女精品在线| 亚洲成在线观看| 欧美国产日韩一二三区| 欧美日韩精品一区二区三区| 国产不卡视频一区| 日韩影院在线观看| 亚洲男人的天堂网| 久久五月婷婷丁香社区| 欧美日韩一级二级三级| 不卡的av电影在线观看| 男人的j进女人的j一区| 一区二区三区蜜桃网| 久久久国产综合精品女国产盗摄| 欧美人与禽zozo性伦| 99视频有精品| 国产伦理精品不卡| 日韩av不卡一区二区| 亚洲尤物在线视频观看| 国产精品国产三级国产a| 精品成人在线观看| 日韩一区二区免费电影| 在线观看成人小视频| voyeur盗摄精品| 成人免费毛片app| 国产精品一区二区在线观看不卡| 天天综合色天天| 亚洲综合图片区| 亚洲特级片在线| 国产精品久久久久久久久久久免费看| 日韩一级免费观看| 制服丝袜国产精品| 欧美群妇大交群中文字幕| 色综合亚洲欧洲| thepron国产精品| 成人动漫一区二区在线| 风间由美一区二区三区在线观看 | 一区二区三区加勒比av| 国产精品的网站| 亚洲国产成人午夜在线一区| 2020国产精品自拍| 久久蜜桃av一区二区天堂 | 国产精品视频yy9299一区| 久久丝袜美腿综合| 久久综合中文字幕| 亚洲精品一区二区三区福利 | 日本午夜精品一区二区三区电影| 亚洲一区影音先锋| 亚洲午夜在线视频| 五月开心婷婷久久| 日本成人在线不卡视频| 久久99热99| 国产精品系列在线观看| 成人综合婷婷国产精品久久| 成人午夜电影网站| 91在线视频在线| 91九色最新地址| 欧美视频在线一区| 欧美男女性生活在线直播观看| 欧美嫩在线观看| 精品久久久久久久一区二区蜜臀| 久久亚洲二区三区| 亚洲女人的天堂| 亚洲成人自拍网| 毛片不卡一区二区| 国产精品1区2区| 91丨porny丨户外露出| 在线观看成人小视频| 欧美一区二区三区公司| 久久亚洲影视婷婷| 亚洲欧美色综合| 日韩中文字幕麻豆| 国产aⅴ综合色| 91国模大尺度私拍在线视频| 在线成人av网站| 久久久久久久久一| 亚洲欧洲综合另类| 日本欧美久久久久免费播放网| 国产真实乱偷精品视频免| www.欧美日韩| 欧美年轻男男videosbes| 久久久99久久| 亚洲v精品v日韩v欧美v专区| 狠狠久久亚洲欧美| 色天天综合久久久久综合片| 51久久夜色精品国产麻豆| 久久综合成人精品亚洲另类欧美 | 欧美一区二区国产| 欧美激情综合在线| 丝袜亚洲另类欧美| 成人久久视频在线观看| 欧美裸体一区二区三区| 国产午夜久久久久| 亚洲a一区二区| av在线不卡电影| 精品久久久久久久久久久久久久久久久| 国产精品三级视频| 奇米888四色在线精品| 99视频精品全部免费在线| 日韩视频中午一区| 亚洲女厕所小便bbb| 国产精品资源站在线| 91精品国产一区二区三区香蕉| 国产精品久久久久久户外露出| 日韩国产欧美在线观看| 色8久久精品久久久久久蜜| 精品成a人在线观看| 五月天精品一区二区三区| 99久久精品国产麻豆演员表| 欧美va在线播放| 五月婷婷久久综合| 91久久香蕉国产日韩欧美9色| 国产三级精品视频| 久久国产精品色婷婷| 欧美丝袜丝nylons| 亚洲精品视频一区| 成人av电影在线网| 国产精品视频线看| 国产福利一区在线| 精品噜噜噜噜久久久久久久久试看| 亚洲一区二区av在线| 96av麻豆蜜桃一区二区| 中文av一区二区| 国产乱码精品一区二区三区五月婷| 欧美一区二区三区啪啪| 亚洲高清久久久| 欧美伊人久久大香线蕉综合69| 亚洲裸体xxx| 99国产精品国产精品久久| 日本一区二区视频在线| 国产综合久久久久久鬼色| 日韩免费观看高清完整版| 午夜精品免费在线观看| 欧美亚洲高清一区| 亚洲高清视频在线| 欧美日韩电影一区| 丝袜美腿高跟呻吟高潮一区| 欧美精品自拍偷拍动漫精品| 亚洲国产一区二区三区青草影视| 色伊人久久综合中文字幕| 最新国产の精品合集bt伙计| 丁香婷婷综合五月| 国产精品日日摸夜夜摸av| 成人精品在线视频观看| 成人欧美一区二区三区视频网页| 成人美女视频在线观看18| 亚洲人123区| 91精品久久久久久久91蜜桃 | 国产一区二区在线观看免费| 精品国产三级电影在线观看| 精品在线免费视频| 国产日韩精品视频一区| 不卡视频一二三四| 亚洲精品一二三区| 欧美丝袜丝交足nylons| 人妖欧美一区二区| 欧美tickling挠脚心丨vk| 国产一区二区福利视频| 国产精品福利一区| 在线看不卡av| 喷白浆一区二区| 国产人成一区二区三区影院| va亚洲va日韩不卡在线观看| 亚洲一区二区三区在线| 欧美一区二区精品在线| 国产成人综合视频| 亚洲影院免费观看| 精品国产乱码久久久久久1区2区| 国产成人午夜精品影院观看视频| 亚洲色图欧洲色图|