Como agregar parámetros para visualizar reportes con Jasperreports

Darkangel
23 de Marzo del 2008
¡Hola a todos!

Estoy realizando un proyecto mensual en el que debo mostrar un reporte, para esto cuento con una base de datos con los siguientes datos:
BDD: ejemplo
Tabla: agenda
Datos: nombre (varchar)
edad (int)

La tabla agenda contiene los siguientes registros:
“Ana", 22
"Juan", 29
"Pedro", 19
"Carlos", 25
"Luis", 29
"David", 39
"Jesus", 51
"Matias", 23

Cuando hago referencia a un nombre me muestra perfectamente el nombre que deseo mostrar en el reporte con la instruccion:
parameters.put("nombre","Juan" );
sinembargo cuando deseo realizar un reporte en donde se muestren dos o mas personas sólo me realiza el reporte del último en ser asignado a la variable parameters.
Ojalá haya alguien en este foro que me ayude a resolver este problema se los agradecería bastante, aqui dejo el codigo que estoy usando para esta práctica, he intentado agregar los valores a un cadena de Strings separada por comas (,) y posteriormente agregarlos a un array de String para mostarlos todos, pero de todos modos sólo me imprime el último valor, chequen el código y muestren el error que tengo, estoy usando "Jasperreports" con la herramienta "ireport".

package pruebasReporte;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperCompileManager;

public class ReporteJasper
{
static Connection conn = null;

public static void main(String[] args)
{
// Se carga el driver JDBC
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e) {
System.out.println("MySQL JDBC Driver not found.");
System.exit(1);
}
// Se conecta con la Base de Datos
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost/ejemplo","root", "");
}
catch (SQLException e)
{
System.out.println("Error de conexión: " + e.getMessage());
System.exit(4);
}

try {
/// Cadena de los datos que deseo mostrar en el reporte
String str = new String("Pedro,Ana,Matias");
Map parameters = new HashMap();
// Guardo cada nombre en una arreglo de String
String[] datos = str.split(",");

for(int i=0; i<datos.length; i++)
{
//System.out.println(datos[i]);
parameters.put("nombre", datos[i]);
}
JasperPrint jasperPrint = JasperFillManager.fillReport("Reporte.jasper", parameters, conn);
//Se exporta a PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "Reporte.pdf");
// Visualizar el reporte en el Jasperviwer
JasperViewer.viewReport(jasperPrint, false);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}