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

📄 orutil.java

📁 The ability to create groups of reports, and grant users access to reports by group. The ability to
💻 JAVA
字号:
/*
 * Copyright (C) 2004 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.util;

import java.util.*;

import org.efs.openreports.ORException;
import org.efs.openreports.objects.ReportParameter;
import org.efs.openreports.objects.ReportParameterMap;
import org.efs.openreports.providers.ParameterProvider;

import net.sf.jasperreports.engine.design.JRDesignParameter;

public class ORUtil
{
	public static Map buildJRDesignParameters(Map parameters)
	{
		// convert parameters to JRDesignParameters so they can be parsed
		HashMap jrParameters = new HashMap();

		Iterator iterator = parameters.keySet().iterator();
		while (iterator.hasNext())
		{
			String key = (String) iterator.next();
			Object value = parameters.get(key);
			
			if (value != null)
			{
				JRDesignParameter jrParameter = new JRDesignParameter();
				jrParameter.setName(key);
				jrParameter.setValueClass(value.getClass());
				
				jrParameters.put(jrParameter.getName(), jrParameter);
			}			
		}

		return jrParameters;
	}
	
	public static Map buildQueryParameterMap(String queryString, ParameterProvider parameterProvider) throws ORException
	{
		String name = queryString.substring(queryString.indexOf("{") + 1, queryString.indexOf("}"));
		
		ReportParameter queryParameter = parameterProvider.getReportParameter(name);						
		if (queryParameter == null)
		{			
			throw new ORException(LocalStrings.getString(LocalStrings.ERROR_PARAMETER_NOTFOUND) + ": " + name);			
		}		
		
		ReportParameterMap rpMap = new ReportParameterMap();
		rpMap.setReportParameter(queryParameter);
		
		ArrayList queryParameters = new ArrayList();
		queryParameters.add(rpMap);		
		
		Map parameterMap = new HashMap();
		if (queryParameter.getData().toUpperCase().indexOf("$P") > -1)
		{
			parameterMap = buildQueryParameterMap(queryParameter.getData(), parameterProvider);
		}
		
		parameterProvider.loadReportParameterValues(queryParameters, parameterMap);					
		
		String testValue = queryParameter.getValues()[0].getId().toString();
		if (queryParameter.isMultipleSelect())
		{
			testValue = "'" + testValue + "'";
		}
		
		Map map = new HashMap();
		map.put(queryParameter.getName(), testValue);
		
		return map;
	}

}

⌨️ 快捷键说明

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