sql >> Base de Datos >  >> RDS >> Mysql

Cómo generar un ireport según la entrada del usuario en netbean gui

En primer lugar, no especificó el tipo de aplicación que desea crear, por lo que estoy siendo un poco general en mi respuesta. Además, no mencionó si ya logró crear su primer informe (es decir, sin tomar ninguna entrada del usuario). Entonces, a continuación, muestro la parte necesaria para generar un JasperReport:

public void generateReport(ActionEvent actionEvent) throws FileNotFoundException {

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(PopulateBean.createBeanCollection());
Map parameters = new HashMap();
 
try {
    InputStream is = new FileInputStream(new File("Source path to template.jrxml"));
    OutputStream os=new FileOutputStream(new File("Resulting report.pdf"));
     
    JasperDesign jasperDesign = JRXmlLoader.load(is);
    JasperReport jasperReport =
        JasperCompileManager.compileReport(jasperDesign);

    JasperPrint jasperPrint =
        JasperFillManager.fillReport(jasperReport, parameters, ds);

    JasperExportManager.exportReportToPdfStream(jasperPrint, os);
} catch (JRException e) {
      e.printStackTrace();
}

Este código debe estar integrado en su aplicación. La parte que está solicitando es:

Map parameters = new HashMap();

Solo tiene que poner la entrada insertada por el usuario en este mapa. Ejemplo, si tiene una página JSF, puede tomar el valor de su componente de interfaz de usuario y almacenarlo en este mapa

parameters.put("type_code", getTypeCodeUIComponent().getValue());

Verá en el código anterior que este mapa se pasa al informe:

JasperFillManager.fillReport(jasperReport, parameters, ds);

Lo único que queda es editar su consulta de informe, en iReport. Primero, crea un parámetro con exactamente el mismo nombre que el insertado en el mapa (en este ejemplo, "type_code". Tenga en cuenta que distingue entre mayúsculas y minúsculas). En segundo lugar, debe usar una cláusula WHERE donde filtre la columna de tipo en función de este parámetro, consulte a continuación:Y aquí tienes algunos tutoriales:1 y 2

¡Espero que esto ayude!