Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como gerar um relatório de acordo com a entrada do usuário no netbean gui


Em primeiro lugar, você não especificou o tipo de aplicativo que deseja criar, então estou sendo um pouco geral na minha resposta. Além disso, você não mencionou se já conseguiu criar seu primeiro relatório (quer dizer, sem receber nenhuma entrada do usuário). Então, abaixo estou mostrando a parte necessária para gerar um 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();
}

}

Esse código deve ser integrado ao seu aplicativo. A parte que você está pedindo é:
Map parameters = new HashMap();

Você só precisa colocar a entrada inserida pelo usuário neste mapa. Exemplo, se você tiver uma página JSF, poderá pegar o valor de seu componente de interface do usuário e armazenar neste mapa
parameters.put("type_code", getTypeCodeUIComponent().getValue());

Você verá no código acima que este mapa é passado para o relatório:
JasperFillManager.fillReport(jasperReport, parameters, ds);

A única coisa que resta é editar sua consulta de relatório, no iReport. Primeiro você cria um parâmetro com exatamente o mesmo nome que o inserido no mapa (neste exemplo "type_code". Observe que diferencia maiúsculas de minúsculas). Segundo, você deve usar uma cláusula WHERE onde você filtra a coluna tipo com base neste parâmetro, veja abaixo:E aqui estão alguns tutoriais:1 e 2

Espero que essas ajudas!