2009-07-06 3 views
0

Ich benötige ein Berichtsframework, mit dem ich Berichte mit dynamischer Struktur erstellen kann.Berichte mit dynamischer Struktur referenzieren (kein auf Vorlagen basierender Ansatz)

Im Gegensatz zu Jasper Reports Arbeitsmodus, in dem Sie eine Vorlage für die Darstellung Ihres Berichts erstellen, brauche ich genau das Gegenteil: Ich brauche ein Framework, mit dem ich Berichte mit unterschiedlicher Struktur (Programmatic) erstellen kann. Der Bericht ist eine Tabelle, die zeigt, nach welchen Faktoren ein Ergebnis berechnet wurde. Die Anzahl der Faktoren kann variieren, daher variiert die Anzahl der Spalten in der Tabelle entsprechend.

Ich würde gerne wissen, welche Reporting-Bibliothek im oben beschriebenen Arbeitsmodus verwendet werden kann.

Vielen Dank für Ihre Zeit, Maxim.

Antwort

1

DynamicJasper Ihnen helfen kann, hier ein Beispiel aus tutorial extrahiert:

 FastReportBuilder drb = new FastReportBuilder(); 
    DynamicReport dr = drb.addColumn("State", "state", String.class.getName(),30) 
        .addColumn("Branch", "branch", String.class.getName(),30) 
        .addGroups(2) 
        .setTitle("November 2006 sales report") 
        .setSubtitle("This report was generated at " + new Date()) 
        .setPrintBackgroundOnOddRows(true)      
        .setUseFullPageWidth(true) 
      .build();  

    JRDataSource ds = new JRBeanCollectionDataSource(TestRepositoryProducts.getDummyCollection()); 
    JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), ds); 
    JasperViewer.viewReport(jp); //finally display the report report  
+0

Dies ist eigentlich eine richtige Antwort, aber ich finde BIRT eine Größenordnung besser als Jasper Reports. –

0

Docmosis ist eine Reporting-Engine, die Vorlagen verwendet, Sie können jedoch Spalten bedingungslos löschen, verschiedene Tabellen auswählen oder verschiedene Untervorlagen einschließen. Abhängig davon, wie variabel Ihre Layouts sind, ist es möglicherweise besser, sie über eine Vorlage als über Code zu steuern.