亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
狠狠色狠狠色综合系列| 亚洲电影在线播放| 亚洲精品你懂的| 日本中文字幕一区二区视频| 麻豆一区二区99久久久久| 成人中文字幕合集| 在线观看视频91| 欧美精品一区二区三区在线| 1区2区3区欧美| 欧美aⅴ一区二区三区视频| 国产不卡视频在线观看| 欧美日韩一区二区三区高清| 久久综合色一综合色88| 亚洲美女淫视频| 极品少妇一区二区三区精品视频| 北岛玲一区二区三区四区| 3d动漫精品啪啪一区二区竹菊| 久久久综合激的五月天| 伊人色综合久久天天| 精品一区二区三区免费视频| 色综合欧美在线| 26uuu亚洲| 亚洲影院免费观看| 国产成人综合在线观看| 欧美午夜精品一区二区三区| 国产蜜臀97一区二区三区| 视频一区欧美日韩| 色中色一区二区| 国产亚洲女人久久久久毛片| 视频一区二区三区中文字幕| 99久久综合精品| 久久免费午夜影院| 免费观看91视频大全| 91久久线看在观草草青青| 国产午夜精品久久久久久久| 青青草原综合久久大伊人精品| av成人动漫在线观看| 欧美变态tickle挠乳网站| 亚洲成人tv网| 色偷偷88欧美精品久久久| 国产精品丝袜久久久久久app| 免费观看一级特黄欧美大片| 欧美系列亚洲系列| 亚洲精品中文在线| 9久草视频在线视频精品| 2欧美一区二区三区在线观看视频| 五月婷婷综合网| 日本伦理一区二区| 亚洲视频一二区| av福利精品导航| 国产精品乱码妇女bbbb| 国产成人综合亚洲91猫咪| 精品免费国产一区二区三区四区| 亚洲成人高清在线| 欧美丝袜丝nylons| 樱桃视频在线观看一区| 99久久久久久99| 国产精品国产馆在线真实露脸| 加勒比av一区二区| 精品av综合导航| 久久69国产一区二区蜜臀| 欧美日韩高清一区二区| 亚洲午夜av在线| 欧美午夜影院一区| 亚洲国产sm捆绑调教视频| 91成人网在线| 亚洲va韩国va欧美va精品| 欧美午夜视频网站| 午夜电影久久久| 欧美一区二区大片| 麻豆精品一二三| 欧美电影精品一区二区| 九九九久久久精品| 久久久亚洲国产美女国产盗摄| 韩国三级电影一区二区| 久久久精品中文字幕麻豆发布| 国产精品一色哟哟哟| 久久精品人人做人人爽97| 风间由美一区二区av101| 国产精品看片你懂得| 91免费观看视频| 亚洲综合免费观看高清在线观看| 欧美亚洲国产bt| 日本欧美在线观看| 久久亚洲欧美国产精品乐播| 国产一区中文字幕| 国产精品不卡视频| 一本到高清视频免费精品| 夜夜操天天操亚洲| 欧美片在线播放| 久久成人精品无人区| 久久精品夜色噜噜亚洲a∨| www..com久久爱| 亚洲精品成人精品456| 欧美午夜理伦三级在线观看| 日韩av午夜在线观看| 亚洲精品在线三区| 99久久精品一区| 亚洲成av人综合在线观看| 日韩美一区二区三区| 国产成人精品亚洲日本在线桃色 | 日韩av电影免费观看高清完整版 | 亚洲免费观看高清在线观看| 91麻豆.com| 日韩经典中文字幕一区| 久久久91精品国产一区二区精品| 99久久er热在这里只有精品66| 亚洲国产综合在线| 精品伦理精品一区| www.久久久久久久久| 天堂蜜桃91精品| 2024国产精品| 91看片淫黄大片一级| 男人操女人的视频在线观看欧美| 久久久777精品电影网影网 | 亚洲成人动漫精品| 久久嫩草精品久久久精品| 色婷婷综合久久久久中文一区二区| 免费视频一区二区| 国产精品久久久久婷婷二区次| 欧洲色大大久久| 国产一区二区三区在线观看精品| 亚洲男人天堂av| 精品免费国产二区三区| 91国产福利在线| 国产一区二区三区在线观看免费| 亚洲乱码精品一二三四区日韩在线| 337p亚洲精品色噜噜| 成人av在线资源网站| 日韩经典中文字幕一区| 中文字幕一区二区三区在线播放| 9191国产精品| 91一区二区三区在线观看| 精品一区二区三区免费观看 | 欧美精品日韩一本| 不卡视频一二三| 麻豆91小视频| 亚洲福利一区二区| 1024成人网| 久久天天做天天爱综合色| 欧美少妇bbb| 97精品久久久久中文字幕| 国产在线一区二区综合免费视频| 亚洲午夜精品网| 亚洲少妇屁股交4| 久久久三级国产网站| 日韩一区二区三区电影在线观看| 91蝌蚪国产九色| 成人午夜碰碰视频| 国产精品综合一区二区| 日韩av一区二区三区四区| 亚洲黄色小视频| 亚洲少妇最新在线视频| 欧美激情在线观看视频免费| 欧美变态凌虐bdsm| 91精品国产乱码久久蜜臀| 色婷婷激情久久| 91女人视频在线观看| 国产精品中文有码| 久久精品国产精品亚洲红杏| 三级成人在线视频| 亚洲成人免费视频| 亚洲国产视频a| 一区二区三区美女| 亚洲女女做受ⅹxx高潮| 亚洲欧洲av在线| 国产精品美女视频| 欧美激情在线免费观看| 久久久九九九九| 国产欧美一二三区| 久久久亚洲国产美女国产盗摄| 欧美r级电影在线观看| 日韩欧美专区在线| 日韩欧美在线不卡| 日韩免费观看高清完整版在线观看| 欧美高清激情brazzers| 欧美日韩夫妻久久| 91精品黄色片免费大全| 日韩一区和二区| 欧美成人性战久久| 精品精品欲导航| 亚洲精品在线一区二区| 久久精品网站免费观看| 欧美极品美女视频| 中文字幕亚洲在| 亚洲免费观看高清完整版在线观看| 亚洲欧美色图小说| 亚洲午夜精品网| 日韩精品三区四区| 蜜桃一区二区三区四区| 国产在线视频不卡二| 国产精品99久久久久久似苏梦涵| 成人午夜视频福利| 色999日韩国产欧美一区二区| 欧美丝袜自拍制服另类| 欧美一级国产精品| 久久女同精品一区二区| 国产精品美女久久久久久久久| 亚洲欧洲日产国码二区| 一区二区久久久久久|