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

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

?? parameterproviderimpl.java

?? The ability to create groups of reports, and grant users access to reports by group. The ability to
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Copyright (C) 2002 Erik Swenson - eswenson@opensourcesoft.net
 * 
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option)
 * any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place - Suite 330, Boston, MA 02111-1307, USA.
 *  
 */

package org.efs.openreports.providers.impl;

import java.math.BigDecimal;
import java.sql.*;
import java.util.*;

import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.interceptor.component.ComponentManager;

import org.apache.log4j.Logger;
import org.efs.openreports.objects.*;
import org.efs.openreports.providers.*;
import org.efs.openreports.providers.persistence.ParameterPersistenceProvider;
import org.efs.openreports.util.*;

import net.sf.jasperreports.engine.design.JRDesignQuery;
import net.sf.jasperreports.engine.util.JRQueryExecuter;

public class ParameterProviderImpl
	implements ParameterProvider, DataSourceProviderAware, DateProviderAware
{
	protected static Logger log =
		Logger.getLogger(ParameterProviderImpl.class.getName());	

	private ParameterPersistenceProvider paramPersistenceProvider;

	private DataSourceProvider dataSourceProvider;
	private DateProvider dateProvider;

	public ParameterProviderImpl() throws ProviderException
	{
		ComponentManager container =
			(ComponentManager) ActionContext.getContext().get(
				"com.opensymphony.xwork.interceptor.component.ComponentManager");

		container.initializeObject(this);

		paramPersistenceProvider = new ParameterPersistenceProvider();

		log.info("Created");
	}	

	public ReportParameterValue[] getParamValues(
		ReportParameter reportParameter,
		Map parameters)
		throws ProviderException
	{
		if (reportParameter.getType().equals(ReportParameter.QUERY_PARAM))
		{
			return getParamValuesFromDataSource(reportParameter, parameters);
		}
		else if (reportParameter.getType().equals(ReportParameter.LIST_PARAM))
		{
			return parseListValues(reportParameter);
		}

		throw new ProviderException(
			reportParameter.getName()
				+ ": param-type "
				+ reportParameter.getType()
				+ " not supported!");
	}

	protected ReportParameterValue[] parseListValues(ReportParameter reportParameter)
		throws ProviderException
	{
		StringTokenizer st =
			new StringTokenizer(reportParameter.getData(), "|");

		ReportParameterValue[] values =
			new ReportParameterValue[st.countTokens()];

		int index = 0;
		while (st.hasMoreTokens())
		{
			try
			{
				if (reportParameter.getClassName().equals("java.lang.Integer"))
				{
					values[index] =
						new ReportParameterValue(
							Integer.valueOf(st.nextToken()));
				}
				else if (
					reportParameter.getClassName().equals("java.lang.Double"))
				{
					values[index] =
						new ReportParameterValue(
							Double.valueOf(st.nextToken()));
				}
				else if (
					reportParameter.getClassName().equals("java.lang.Long"))
				{
					values[index] =
						new ReportParameterValue(Long.valueOf(st.nextToken()));
				}
				else if (
					reportParameter.getClassName().equals(
						"java.math.BigDecimal"))
				{
					values[index] =
						new ReportParameterValue(
							new BigDecimal(st.nextToken()));
				}
				else
				{
					values[index] = new ReportParameterValue(st.nextToken());
				}
			}
			catch (Exception e)
			{
				throw new ProviderException(
					reportParameter.getData()
						+ " contains invalid "
						+ reportParameter.getClassName());
			}

			index++;
		}

		return values;
	}

	protected ReportParameterValue[] getParamValuesFromDataSource(
		ReportParameter param,
		Map parameters)
		throws ProviderException
	{
		Connection conn = null;
		PreparedStatement pStmt = null;
		ResultSet rs = null;

		try
		{
			ReportDataSource dataSource = param.getDataSource();
			conn = dataSourceProvider.getConnection(dataSource.getId());			

			if (parameters == null || parameters.isEmpty())
			{
				pStmt = conn.prepareStatement(param.getData());				
			}
			else
			{
				// Use JasperReports Query logic to parse parameters in chart
				// queries

				JRDesignQuery query = new JRDesignQuery();
				query.setText(param.getData());

				// convert parameters to JRDesignParameters so they can be
				// parsed
				Map jrParameters = ORUtil.buildJRDesignParameters(parameters);

				pStmt =
					JRQueryExecuter.getStatement(
						query,
						jrParameters,
						parameters,
						conn);
			}
			
			rs = pStmt.executeQuery();

			ResultSetMetaData rsMetaData = rs.getMetaData();

			boolean multipleColumns = false;
			if (rsMetaData.getColumnCount() > 1)
				multipleColumns = true;

			Vector v = new Vector();

			while (rs.next())
			{
				ReportParameterValue value = new ReportParameterValue();

				if (param.getClassName().equals("java.lang.String"))
				{
					value.setId(rs.getString(1));
				}
				else if (param.getClassName().equals("java.lang.Double"))
				{
					value.setId(new Double(rs.getDouble(1)));
				}
				else if (param.getClassName().equals("java.lang.Integer"))
				{
					value.setId(new Integer(rs.getInt(1)));
				}
				else if (param.getClassName().equals("java.lang.Long"))
				{
					value.setId(new Long(rs.getLong(1)));
				}
				else if (param.getClassName().equals("java.math.BigDecimal"))
				{
					value.setId(rs.getBigDecimal(1));
				}
				else if (param.getClassName().equals("java.util.Date"))
				{
					value.setId(rs.getDate(1));
				}
				else if (param.getClassName().equals("java.sql.Date"))
				{
					value.setId(rs.getDate(1));
				}
				else if (param.getClassName().equals("java.sql.Timestamp"))
				{
					value.setId(rs.getTimestamp(1));
				}

				if (multipleColumns)
				{
					value.setDescription(rs.getString(2));
				}

				v.add(value);
			}

			rs.close();

			ReportParameterValue[] values = new ReportParameterValue[v.size()];
			v.copyInto(values);

			return values;
		}
		catch (Exception e)
		{
			throw new ProviderException(
				"Error retreiving param values from database: "
					+ e.getMessage());
		}
		finally
		{
			try
			{
				if (pStmt != null)
					pStmt.close();
				if (conn != null)
					conn.close();
			}
			catch (Exception c)
			{
				log.error("Error closing");
			}
		}
	}

	protected void validateParameter(ReportParameter parameter, String value)
		throws ProviderException
	{
		try
		{
			if (parameter.getClassName().equals("java.lang.Double"))
			{
				Double d = new Double(value);
			}
			else if (parameter.getClassName().equals("java.lang.Integer"))
			{
				Integer integer = new Integer(value);
			}
			else if (parameter.getClassName().equals("java.lang.Long"))
			{
				Long l = new Long(value);
			}
			else if (parameter.getClassName().equals("java.math.BigDecimal"))
			{
				BigDecimal bd = new BigDecimal(value);
			}
			else if (
				parameter.getClassName().equals("java.util.Date")
					|| parameter.getClassName().equals("java.sql.Date")
					|| parameter.getClassName().equals("java.sql.Timestamp"))
			{
				try
				{
					dateProvider.parseDate(value);
				}
				catch (Exception e)
				{
					throw new ProviderException(e.getMessage());
				}
			}
		}
		catch (Exception e)
		{
			throw new ProviderException(
				parameter.getDescription() + " Invalid: " + e.getMessage());
		}
	}

	protected Object parseParameter(ReportParameter parameter, String value)
		throws ProviderException
	{
		try
		{
			if (parameter.getClassName().equals("java.lang.String"))
			{
				return value;
			}
			else if (parameter.getClassName().equals("java.lang.Double"))
			{
				return new Double(value);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美一区二区三区| 欧美激情自拍偷拍| 精品国产伦一区二区三区观看体验| 亚洲一区二区三区不卡国产欧美| 欧美国产精品一区二区| 久久美女高清视频| 日韩欧美一二区| 欧美精品乱码久久久久久| 色综合夜色一区| 在线观看亚洲一区| 在线影院国内精品| 欧美酷刑日本凌虐凌虐| 欧美美女直播网站| 日韩欧美激情四射| 亚洲国产高清在线观看视频| 欧美国产精品专区| 亚洲一区二区三区小说| 亚洲一区在线视频| 日韩电影在线免费看| 免费黄网站欧美| 国产精品一二三四| 97se亚洲国产综合自在线| 91精彩视频在线观看| 欧美丰满少妇xxxbbb| 日韩欧美国产小视频| 国产精品免费视频观看| 亚洲午夜一区二区| 国产精品白丝jk白祙喷水网站| av日韩在线网站| 欧美一级黄色大片| 国产精品久99| 日韩va亚洲va欧美va久久| 国产精品资源网站| 欧美系列一区二区| 欧美国产精品一区二区三区| 日日夜夜免费精品| 99综合电影在线视频| 日韩午夜激情免费电影| 亚洲精品美腿丝袜| 国产一区二区伦理| 欧美男同性恋视频网站| 国产精品久久网站| 青青草国产精品亚洲专区无| 99久久精品国产毛片| 亚洲精品一区二区精华| 亚洲国产日韩a在线播放| 韩国女主播一区二区三区| 欧美日韩日日摸| 国产精品美女视频| 久草在线在线精品观看| 欧美综合色免费| 国产精品免费久久| 精品在线播放免费| 4438成人网| 一区二区在线观看av| 国产成人av电影在线观看| 7777精品伊人久久久大香线蕉的 | 日本一区二区三区视频视频| 日欧美一区二区| 91麻豆福利精品推荐| 国产日产欧产精品推荐色| 日韩国产在线观看| 欧美影视一区在线| 亚洲色图欧美偷拍| 成人av动漫在线| 久久久蜜臀国产一区二区| 久久成人久久爱| 欧美一区二区免费视频| 五月天中文字幕一区二区| 91官网在线观看| 亚洲品质自拍视频网站| 一本色道久久综合狠狠躁的推荐 | 99久久亚洲一区二区三区青草| 日韩精品一区二区三区swag | 成人自拍视频在线| 久久影音资源网| 国产一区二区三区久久久| 精品日韩成人av| 国产在线精品一区二区| 久久亚洲春色中文字幕久久久| 麻豆成人综合网| 亚洲精品一区二区三区影院| 国产成人av网站| 亚洲天堂精品视频| 欧美亚洲禁片免费| 午夜精品视频在线观看| 欧美一区二区三区喷汁尤物| 麻豆成人91精品二区三区| 久久婷婷国产综合精品青草| 国产乱码精品一区二区三区忘忧草 | 日韩欧美色电影| 日本aⅴ亚洲精品中文乱码| 欧美电影免费观看高清完整版在线观看 | 亚洲丝袜美腿综合| 在线观看日韩国产| 天天做天天摸天天爽国产一区 | 风间由美性色一区二区三区| 国产精品国模大尺度视频| 色婷婷狠狠综合| 久久99国产精品久久| √…a在线天堂一区| 欧美色手机在线观看| 久久不见久久见免费视频1| 国产精品理论片| 欧美丰满嫩嫩电影| 国产成人一区二区精品非洲| 一区二区三区小说| 久久综合久久99| 色综合天天做天天爱| 韩国欧美一区二区| 一区二区三区精品视频在线| 精品国产一区二区三区久久久蜜月| 成人免费av资源| 日本欧美久久久久免费播放网| 国产日产欧美精品一区二区三区| 欧美最猛黑人xxxxx猛交| 国产精品66部| 调教+趴+乳夹+国产+精品| 中文字幕一区二区三区四区 | 日韩欧美国产午夜精品| 99久久综合国产精品| 奇米精品一区二区三区四区| 中文字幕亚洲在| 欧美tickling挠脚心丨vk| 色噜噜狠狠色综合中国| 国产成人av影院| 欧美aaaaa成人免费观看视频| 国产精品久久久久三级| 欧美一二三四在线| 在线观看不卡视频| av在线不卡免费看| 国产成人精品在线看| 久久精品国产亚洲a| 亚洲成人黄色小说| 亚洲人成网站色在线观看| 欧美极品xxx| 欧美精品一区二区三区很污很色的| 精品视频在线免费看| 一本色道久久加勒比精品| 成av人片一区二区| 成人小视频免费在线观看| 极品少妇一区二区| 精品伊人久久久久7777人| 在线精品国精品国产尤物884a| 久久精品久久精品| 一区二区三区影院| 国产精品国产精品国产专区不蜜 | 一区二区三区免费网站| 中文在线一区二区| 久久免费偷拍视频| 国产日韩欧美激情| 亚洲精品一区二区三区在线观看| 日韩女优电影在线观看| 日韩三级电影网址| 日韩免费电影一区| 水野朝阳av一区二区三区| 综合婷婷亚洲小说| 综合久久国产九一剧情麻豆| 1024成人网| 亚洲免费av高清| 亚洲国产精品久久久男人的天堂| 亚洲国产日韩一级| 麻豆久久久久久久| 国产精品影视在线观看| 国产一区日韩二区欧美三区| 国产精品系列在线观看| 97成人超碰视| 欧美色图免费看| 欧美大度的电影原声| 久久免费视频色| 亚洲欧美成人一区二区三区| 午夜欧美在线一二页| 久久99精品国产麻豆不卡| 国产91对白在线观看九色| 色老头久久综合| 日韩欧美国产精品一区| 久久久精品2019中文字幕之3| 国产精品久久看| 亚洲一区二区三区三| 久久99精品久久久| 99精品久久99久久久久| 欧美日韩国产综合一区二区三区| 日韩一区二区中文字幕| 国产精品视频观看| 性欧美疯狂xxxxbbbb| 国产一区二区三区免费在线观看| 一本大道av一区二区在线播放| 欧美一区午夜精品| 中文字幕中文字幕一区| 水蜜桃久久夜色精品一区的特点| 国产一区美女在线| 欧美午夜一区二区三区| 日本一区二区视频在线| 五月激情六月综合| 成人精品视频.| 日韩三级av在线播放| 亚洲欧美区自拍先锋| 国模一区二区三区白浆| 欧美性色综合网| 国产精品麻豆视频|