sql >> Database teknologi >  >> RDS >> Mysql

Sådan genereres en ireport ifølge brugerinput i netbean gui

Først og fremmest har du ikke angivet, hvilken type applikation du vil oprette, så jeg er lidt generel i mit svar. Du nævnte heller ikke, om du allerede har formået at opbygge din første rapport (jeg mener, uden at tage noget brugerinput). Så nedenfor viser jeg den nødvendige del til at generere en 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();
}

}

Denne kode skal integreres i din applikation. Den del du beder om er:

Map parameters = new HashMap();

Du skal blot indsætte det input, brugeren har indsat i dette kort. Eksempel, hvis du har en JSF-side, kan du tage værdien af ​​dens UI-komponent og gemme på dette kort

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

Du kan se på koden ovenfor, at dette kort overføres til rapporten:

JasperFillManager.fillReport(jasperReport, parameters, ds);

Det eneste, der er tilbage, er at redigere din rapportforespørgsel i iReport. Først opretter du en parameter med nøjagtig samme navn som den, der er indsat i kortet (i dette eksempel "type_code". Bemærk, der skelnes mellem store og små bogstaver). For det andet bør du bruge en WHERE-sætning, hvor du filtrerer typekolonnen baseret på denne parameter, se nedenfor:Og her er nogle tutorials:1 og 2

Håber disse hjælper!




  1. Hvordan tilføjer man dato- og tidsstempel til en INSERT via PHP med mySQL?

  2. Gemmer Oracle efterfølgende nuller for nummerdatatypen?

  3. Mysql fuldtekstsøgning med match og mod

  4. Er der en måde at overføre DB-brugeradgangskoden til kommandolinjeværktøjet mysqladmin?