iReport + Java ( ALGUEM ME AJUDA POR FAVOR ) Desespero total

1 - Galera estou com uma dúvida Cruel, quero criar um método ou uma classe, que quando o usuário seleciona uma informação em uma ComboBox, eu preciso pegar a chave primaria dessa informação e mandar gerar um PDF. Já pesquisei na net e não consegui ter alguma ideia de como começar essa classe ou método.

2 - EU já criei no iReport um formulário PDF, sendo que não consigo configurar ele para receber um parâmetro na query Ex: (select * from sa where = $P{param}) estou usando o iReport 4.5.0.

Segue o código, sei que tem muito código java no jsp, mais foi dessa forma que eu consegui hehe.

Tela .

<%@ page import=" br.com.sein.dao.AnalysisDAO, br.com.sein.bean.PrintAnalysisBean " %>
<%@ page import="java.util.*, java.sql.SQLException" %>
<%@ page import="java.sql.*" %>   
<%@ page import="org.postgresql.Driver" %> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>CETEM - Centro Tecnologico Mineral</title>
</head>
<body>
	<%    
		String url = "jdbc:postgresql://172.16.0.160:5432/sca"; //Informe a porta de conexão. Assim você garante todas as informações de conexão.  
		String username = "postgres";    
		String password = "";    
		Class.forName("org.postgresql.Driver");//Não precisa chamar o método newInstance, basta assim como coloquei.  
		Connection conn = DriverManager.getConnection( url, username, password );  
	 %>  
	<br />
	
	
	<table align="center">
	
		<tr>
		
			<td align="center"><a style="color:#FFD700"> Sistema para Controle de Análises Minerais</a></td>
			
		</tr>
	
		<tr align="center">
		
			<td><a style="color:black">Obs: No caso de TRAVAMENTO durante o processamento pressione a tecla 'SHIFT' <br />
					simultaneamente com o botão 'ATUALIZAR'</a>
                    
                   02/09/2012 2:33 PM 
					
			</td>
		</tr>
					
	</table>
	
		<br />
		
		<table  align="center"  style="background-color:#27408B;">
			<tr>
			<td align="center"><h4><a style="color:#FFD700">Boletins / Impressão de Boletins de Análise</a></h4>
	
			<input type="submit" value="Gerar Relatório" name="bottonSca"  style="font-size: 05 pt; font-family: arial" onClick="this.form.action='AnalysisPDF.jsp'"/>
		</td>
		
			</tr>
			
			<tr>
			
				<td><h5><a style="color:white;"><b>Boletins:</b> (Data de Geração, Código do Boletim, Código da SA, Sigla do Projeto e Nome do Cliente) *</a></h5>
				
			<select name="ImprimirAnalise">
			
			<%
			 
					AnalysisDAO dao = new AnalysisDAO();
		
					List<PrintAnalysisBean> bean = dao.getComboBox();
					for(PrintAnalysisBean analysisBean: bean){
			
			 %>
				
					<option value="boletim">
						
						<%
						
						out.print(analysisBean.getDateGeneration().getTime() + "  :  " + 
								  analysisBean.getCodeBulletin() + "  : " +
								  analysisBean.getCodeSa() + " :  " +
								   analysisBean.getAcronym() + " : " + 
								  analysisBean.getNameClient());
						
						
						 %>
					
					</option>
					
				<%
				
						}
				
				 %>
		
				</select>
				</td>
				
			</tr>
			
		</table>
		
	</body>
</html>	
			

SE PRECISA COLOCAR MAIS ALGUMA COISA EU COLOCO.

Nome do relatorio é Sca-version6

PRECISO TERMINAR ISSO HOJE, ALGUEM ME AJUDA POR FAVOR

Segue um exemplo de como fiz para gerar um relatório do jeito que você quer:


		int usuario = Integer.parseInt(request.getParameter("cdUsuario"));

		String forum = request.getParameter("foruns");
				
		Date dataInicial = RequestHelper.getDateParameter(request,"dtInicial", Data.getFirstDayOfActualMonth());
		Date dataFinal = RequestHelper.getDateParameter(request, "dtFinal",	Data.getLastDayOfActualMonth());
		
		int ordem = RequestHelper.getIntegerParameter(request, "orderBy", 1);
		
		List<Esforco> esforcos = Esforco.listarEsforcoUsuarioSemLimite(usuario, forum, dataInicial, dataFinal, ordem);
		
		try {
			
			ServletOutputStream servletOutuputStream  = response.getOutputStream();

			String caminho = "./relatorios/RelatorioDeHoras.jasper";
		
			InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream(caminho);  
		
			JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(esforcos);
		
			HashMap parameterMap = new HashMap();
		
			JasperRunManager.runReportToPdfStream(reportStream, servletOutuputStream, parameterMap, dataSource);
		
			response.setContentType("application/pdf");
		
			servletOutuputStream.flush();
		
			servletOutuputStream.close();
		
		} catch(JRException e) { 
			
			StringWriter stringWriter = new  StringWriter();
			
			PrintWriter printWriter = new PrintWriter(stringWriter);
			
			e.printStackTrace(printWriter); 
			
			response.setContentType("text/plain"); 
			
			response.getOutputStream().print(stringWriter.toString());
			
		} catch(Exception e) {
			
			e.printStackTrace();  
			
		}

O método listarEsforcoUsuarioSemLimite na minha classe é static

Aa Vlw vou tentar aqui, Obrigado !!!