⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chartservlet.java

📁 国外的一套开源CRM
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			response.setContentType("image/jpeg");
		        
			barChart.exportJPG( response.getOutputStream(), 1.0f);
			response.getOutputStream().flush();
		  } catch( Throwable throwable ) { throwable.printStackTrace();
		  }
	  }

	  if(request.getParameter("report").equals("leadsForQuarter")){
		double data[] = new double[3];
		Calendar cal = Calendar.getInstance();

		int month = cal.get(Calendar.MONTH) + 1;
		int year = cal.get(Calendar.YEAR);
		int quarterNumbers[] = CalendarUtil.getQuarterMonthNumbers(month, fyStartMonth);

		ArrayList list = new ArrayList();
		list.add(new EntityExpr("leadOwnerId", EntityOperator.EQUALS, userInfo.getPartyId()));
		list.add(new EntityExpr("statusId", EntityOperator.EQUALS, "50"));
		list.add(new EntityExpr("convertedDate", EntityOperator.LESS_THAN_EQUAL_TO, new java.sql.Date( CalendarUtil.getMaximumQuarterDate(cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR), fyStartMonth).getTime())));
		list.add(new EntityExpr("convertedDate", EntityOperator.GREATER_THAN_EQUAL_TO, new java.sql.Date( CalendarUtil.getMinimumQuarterDate(cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR), fyStartMonth).getTime())));

		ArrayList order = new ArrayList();
		order.add("convertedDate");

		java.util.List dealList = delegator.findByAnd("Lead", list, order);
		GenericValue leadValues[] = (GenericValue[])dealList.toArray(new GenericValue[0]);
		GenericValue leadValue = null;

		String months[] = CalendarUtil.getQuarterMonthNames(cal.get(Calendar.MONTH) + 1, fyStartMonth);
		for(int iz=0;iz<months.length;iz++){
		  xAxisLabels.add((String)months[iz]);
		}
		xAxisTitle = "Month";
		yAxisTitle = "Leads";

		legendLabels.add("Leads for Quarter");

		for(int iz=0;iz<leadValues.length;iz++) {
		  leadValue = leadValues[iz];
		  Calendar calendar = Calendar.getInstance();
		  calendar.setTime(leadValue.getTimestamp("convertedDate"));

		  if((calendar.get(Calendar.MONTH)+1)==quarterNumbers[0] && calendar.get(Calendar.YEAR)==year){
			  data[0] = data[0] + 1;
		  }
		  if((calendar.get(Calendar.MONTH)+1)==quarterNumbers[1] && calendar.get(Calendar.YEAR)==year){
			  data[1] = data[1] + 1;
		  }
		  if((calendar.get(Calendar.MONTH)+1)==quarterNumbers[2] && calendar.get(Calendar.YEAR)==year){
			  data[2] = data[2] + 1;
		  }
		}

		axisProperties.setYAxisUseDollarSigns(false);
		axisProperties.setYAxisRoundValuesToNearest(0);
//		  axisProperties.setXAxisVerticalScaleFlag(true);

		try {
			BarChart barChart = new BarChart(
				new SingleDataSet(
				data,
				(String[])legendLabels.toArray(new String[0]),
				(String[])xAxisLabels.toArray(new String[0]),
				paints,
				xAxisTitle,
				yAxisTitle ),
			false, properties, axisProperties, width, height );

			response.reset();
			response.setContentType("image/jpeg");
			barChart.exportJPG( response.getOutputStream(), 1.0f);
			response.getOutputStream().flush();
		  } catch( Throwable throwable ) { throwable.printStackTrace();
		  }
	  }

	  if(request.getParameter("report").equals("forecastedForQuarter")){
		double data[] = new double[3];
		Calendar cal = Calendar.getInstance();

		int month = cal.get(Calendar.MONTH) + 1;
		int year = cal.get(Calendar.YEAR);
		int quarterNumbers[] = CalendarUtil.getQuarterMonthNumbers(month, fyStartMonth);

		ArrayList list = new ArrayList();
		list.add(new EntityExpr("ownerId", EntityOperator.EQUALS, userInfo.getPartyId()));
		list.add(new EntityExpr("projectedCloseDate", EntityOperator.LESS_THAN_EQUAL_TO, new java.sql.Date( CalendarUtil.getMaximumQuarterDate(cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR), fyStartMonth).getTime())));
		list.add(new EntityExpr("projectedCloseDate", EntityOperator.GREATER_THAN_EQUAL_TO, new java.sql.Date( CalendarUtil.getMinimumQuarterDate(cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR), fyStartMonth).getTime())));

		ArrayList order = new ArrayList();
		order.add("projectedCloseDate");

		java.util.List dealList = delegator.findByAnd("Deal", list, order);
		GenericValue dealValues[] = (GenericValue[])dealList.toArray(new GenericValue[0]);
		GenericValue dealValue = null;

		String months[] = CalendarUtil.getQuarterMonthNames(cal.get(Calendar.MONTH) + 1, fyStartMonth);
		for(int iz=0;iz<months.length;iz++){
		  xAxisLabels.add((String)months[iz]);
		}

		xAxisTitle = "month";
		yAxisTitle = "sales";

		legendLabels.add("Forecasted Sales for Quarter");

		for(int iz=0;iz<dealValues.length;iz++) {
		  dealValue = dealValues[iz];
		  Calendar calendar = Calendar.getInstance();
		  calendar.setTime(dealValue.getDate("projectedCloseDate"));

		  if((calendar.get(Calendar.MONTH)+1)==quarterNumbers[0] && calendar.get(Calendar.YEAR)==year){
			  data[0] = data[0] + dealValue.getDouble("amount").doubleValue();
		  }
		  if((calendar.get(Calendar.MONTH)+1)==quarterNumbers[1] && calendar.get(Calendar.YEAR)==year){
			  data[1] = data[1] + dealValue.getDouble("amount").doubleValue();
		  }
		  if((calendar.get(Calendar.MONTH)+1)==quarterNumbers[2] && calendar.get(Calendar.YEAR)==year){
			  data[2] = data[2] + dealValue.getDouble("amount").doubleValue();
		  }
		}

		  try {
			BarChart barChart = new BarChart(
				new SingleDataSet(
				data,
				(String[])legendLabels.toArray(new String[0]),
				(String[])xAxisLabels.toArray(new String[0]),
				paints,
				xAxisTitle,
				yAxisTitle ),
			false, properties, axisProperties, width, height );

			response.reset();
			response.setContentType("image/jpeg");
			barChart.exportJPG( response.getOutputStream(), 1.0f);
			response.getOutputStream().flush();
		  } catch( Throwable throwable ) { Debug.logError("error creating bar chart", module);throwable.printStackTrace();
		  }
	  }

	} catch ( Exception e2 ) { Debug.logError("error creating chart", module); }

    if (Debug.timingOn()) timer.timerString("[" + rname + "] Done rendering page, Servlet Finished", module);                
    }
    
    /**
     * @see javax.servlet.Servlet#destroy()
     */
    public void destroy() {
        super.destroy();                
    }    
    
    protected RequestHandler getRequestHandler() {
        RequestHandler rh = (RequestHandler) getServletContext().getAttribute("_REQUEST_HANDLER_");
        if (rh == null) {
            rh = new RequestHandler();
            rh.init(getServletContext());
            getServletContext().setAttribute("_REQUEST_HANDLER_", rh);
        }
        return rh;
    }

	public void generateChart( HttpServletRequest req, HttpServletResponse res, BarChartProperties properties, AxisProperties axisProperties, int width, int height, SingleDataSet singleDataSet) throws ServletException, IOException {
	  try {
		BarChart barChart = new BarChart( singleDataSet, false, properties, axisProperties, width, height );
		BufferedImage bi = barChart.getBufferedImage();
		Graphics2D graphics = barChart.getGraphics2D();
	   // graphics.scale(0.75, 0.75d);
		//graphics.
		barChart.exportJPG( res.getOutputStream(), 1.0f);
		res.getOutputStream().flush();
	  } catch( Throwable throwable ) { throwable.printStackTrace(); Debug.logError("error in generateChart", module);
	  }
	}    

    protected void logRequestInfo(HttpServletRequest request) {
        ServletContext servletContext = this.getServletContext();
        HttpSession session = request.getSession();
              
        Debug.logVerbose("--- Start Request Headers: ---", module);
        Enumeration headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String headerName = (String) headerNames.nextElement();
            Debug.logVerbose(headerName + ":" + request.getHeader(headerName), module);
        }
        Debug.logVerbose("--- End Request Headers: ---", module);        
       
        Debug.logVerbose("--- Start Request Parameters: ---", module);
        Enumeration paramNames = request.getParameterNames();
        while (paramNames.hasMoreElements()) {
            String paramName = (String) paramNames.nextElement();
            Debug.logVerbose(paramName + ":" + request.getParameter(paramName), module);
        }
        Debug.logVerbose("--- End Request Parameters: ---", module);
                
        Debug.logVerbose("--- Start Request Attributes: ---", module);
        Enumeration reqNames = request.getAttributeNames();
        while (reqNames != null && reqNames.hasMoreElements()) {
            String attName = (String) reqNames.nextElement();
            Debug.logVerbose(attName + ":" + request.getAttribute(attName), module);
        }
        Debug.logVerbose("--- End Request Attributes ---", module);

        Debug.logVerbose("--- Start Session Attributes: ---", module);
        Enumeration sesNames = null;
        try {
            sesNames = session.getAttributeNames();                
        } catch (IllegalStateException e) {
            Debug.logVerbose("Cannot get session attributes : " + e.getMessage(), module);
        }        
        while (sesNames != null && sesNames.hasMoreElements()) {
            String attName = (String) sesNames.nextElement();
            Debug.logVerbose(attName + ":" + session.getAttribute(attName), module);
        }
        Debug.logVerbose("--- End Session Attributes ---", module);
        
        Enumeration appNames = servletContext.getAttributeNames();
        Debug.logVerbose("--- Start ServletContext Attributes: ---", module);
        while (appNames != null && appNames.hasMoreElements()) {
            String attName = (String) appNames.nextElement();
            Debug.logVerbose(attName + ":" + servletContext.getAttribute(attName), module);
        }
        Debug.logVerbose("--- End ServletContext Attributes ---", module);             
    }    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -