Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wygenerować raport zgodnie z danymi wprowadzonymi przez użytkownika w interfejsie użytkownika netbean?

Przede wszystkim nie określiłeś rodzaju aplikacji, którą chcesz stworzyć, więc moja odpowiedź jest nieco ogólna. Nie wspomniałeś też, czy udało Ci się już zbudować swój pierwszy raport (to znaczy bez wprowadzania jakichkolwiek danych od użytkownika). Poniżej przedstawiam część potrzebną do wygenerowania raportu 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();
}

}

Ten kod powinien być zintegrowany z Twoją aplikacją. Część, o którą prosisz, to:

Map parameters = new HashMap();

Wystarczy umieścić w tej mapie dane wprowadzone przez użytkownika. Przykład, jeśli masz stronę JSF, możesz wziąć wartość jej komponentu interfejsu użytkownika i zapisać na tej mapie

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

W powyższym kodzie zobaczysz, że ta mapa jest przekazywana do raportu:

JasperFillManager.fillReport(jasperReport, parameters, ds);

Jedyne, co pozostaje, to edycja zapytania raportu w iReport. Najpierw utwórz parametr o dokładnie takiej samej nazwie, jak ta wstawiona do mapy (w tym przykładzie „type_code”. Uwaga, wielkość liter jest rozróżniana). Po drugie, powinieneś użyć klauzuli WHERE, w której filtrujesz kolumnę typu na podstawie tego parametru, patrz poniżej:A oto kilka samouczków:1 i 2

Mam nadzieję, że to pomoże!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaawansowane łączenie MySQL. Przyspieszenie zapytania

  2. Odmowa dostępu do MYSQL dla użytkownika „root”@„localhost”

  3. Używanie `rand()` z `having`

  4. BŁĄD 1698 (28000):Odmowa dostępu dla użytkownika „root”@„localhost”

  5. mysqldump na zdalnym serwerze