Van egy jó kis reportgeneráló csomag java-hoz: a jfreereport.
Tudok is készíteni reportokat, ha megírom az XML file-t hozzá.
Van továbbá egy Report Designer a pentaho-tól, ezzel könnyen lehet jelentéseket készíteni, csak az a baj, hogy az ezzel generált xml egy extended formátum, amit sehogy se jövök rá, hogyan kezeljem. Ha csak beolvasom, a program az mondja, hogy ismeretlen tag pl. a
Pedig a jfreereport dokumentációjában van is utalás erre, a demok tartalmaznak ilyen típusú xml file-okat, de ha (nertbeans-el) lefordítom az egyik demót, akkor megint csak nem működik. A problémára nem találtam
megoldást a neten. Egészen biztos, hogy vmi nagyon egyszerű dolgot nem teszek meg, csak nem tudom, mit.
Please Help!
- 1276 megtekintés
Hozzászólások
szerintem azt felejted el, h el kene mar felejteni a javat meg az xml-t vegre es valami epelmejubb eszkozokhoz kene folyamodni >;p
- A hozzászóláshoz be kell jelentkezni
Nyitott vagyok a javaslataidra: adatbázis-interfész készítése, reportgenerálás, platformfüggetlen lefordított program stb...
Mit javasolsz?
--
Viszlát, és kösz a halakat!
- A hozzászóláshoz be kell jelentkezni
ExtReportHandler
The extended report handler is used by the Parser to process the SAX events
for the “extended” report definition format (see section ??).
This handler examines the opening tags and delegates control to other handlers:
Tag:______________Handler:
report-config______ReportConfigHandler
report-definition___ReportDescriptionHandler
- A hozzászóláshoz be kell jelentkezni
Ki tudnád fejteni ezt egy kicsit bővebben?
Az valószínű, hogy verzió probléma lesz, mert a Pentaho ReportGenerator xml-file olyan csomagra hivatkozik, ami nincs a jfreereport 0.8.7-ben.
Egyenlőre eddig jutottam :-(
--
Viszlát, és kösz a halakat!
- A hozzászóláshoz be kell jelentkezni
Megoldva.
Ami hiányzott, az a pentaho-reporting-engine-classic-0.8.9.5
A classpath -hoz hozzá kell adni ezt a jar file-t és a csomagban levő lib könyvtárban szereplő jar file-okat.
A report-designerrel elkészített xml-file-t a saját csomagba kell tenni, és akkor a kód:
package javarep3;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
import org.jfree.report.JFreeReport;
import org.jfree.report.JFreeReportBoot;
import org.jfree.report.modules.gui.base.PreviewFrame;
import org.jfree.report.modules.parser.base.ReportGenerator;
import org.jfree.resourceloader.Resource;
import org.jfree.resourceloader.ResourceException;
import org.jfree.resourceloader.ResourceManager;
import org.jfree.util.ObjectUtilities;
/**
*
* @author miko
*/
public class Main {
public static DefaultTableModel dtm = new DefaultTableModel();
private static JFreeReport parseReport() {
try {
URL in = ObjectUtilities.getResourceRelative("ezjo.xml", Main.class);
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
Resource res = manager.createDirectly(in, JFreeReport.class);
return (JFreeReport) res.getResource();
} catch (ResourceException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
return null;
} catch (MalformedURLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
public static void main (final String[] args)
{
JFreeReportBoot.getInstance().start();
dtm.addColumn("C1_type");
dtm.addColumn("C2_type");
Vector row = new Vector();
row.addElement("hello1");
row.addElement("hello2");
dtm.addRow(row);
final JFreeReport report = parseReport();
report.setData(dtm);
final PreviewFrame frame = new PreviewFrame(report);
frame.pack();
frame.setVisible(true);
}
}
--
Viszlát, és kösz a halakat!
- A hozzászóláshoz be kell jelentkezni
Ügyes vagy! Gratula!
- A hozzászóláshoz be kell jelentkezni