Tuesday, 17 January 2012

Pentaho reporting - How to



How to create master report

ResourceManager manager = new ResourceManager();
manager.registerDefaults();
Resource res = manager.createDirectly("res://reportTemplates/"+ templateFileName, MasterReport.class);
MasterReport report = (MasterReport) res.getResource();

How to set Resource bundle

Locale locale = new Locale(client.language, client.country);
DefaultResourceBundleFactory bundle = new DefaultResourceBundleFactory(locale);
report.setResourceBundleFactory(bundle);

public class DefaultResourceBundleFactory implements ResourceBundleFactory {
    private Locale locale;
    public DefaultResourceBundleFactory(Locale locale) {
        this.locale = locale;
    }
    @Override
    public Locale getLocale() {
        return locale;
    }
    @Override
    public ResourceBundle getResourceBundle(String key) {
        return ResourceBundle.getBundle("messages", locale);
    }
    @Override
    public TimeZone getTimeZone() {
        return TimeZone.getDefault();
    }
}

How to set query

import org.pentaho.reporting.engine.classic.core.modules.misc.datafactory.sql.SQLReportDataFactory;

SQLReportDataFactory dataFactory = new SQLReportDataFactory(dbConnection);
dataFactory.setQuery("query", query());
report.setDataFactory(dataFactory);
report.setQuery("query");

How to show date and time the report gets generated

Define a message-field. Type:message. Value: ${report.date, date, dd MM yyyy @ hh:mm}


No comments:

Post a Comment