Путь к классу JasperReports - PullRequest
       4

Путь к классу JasperReports

1 голос
/ 19 октября 2011

Я хочу включить файл .jrxml в мой проект NetBeans swing. Я использую NetBeans 7.0.1 . Я создал пакет внутри исходного пакета с именем «rep» и создал простой .jrxml файл с именем «rp.jrxml». Я установил плагин iReport в NetBeans . Когда я устанавливаю внешний файл .jrxml , он отображается («D: /MyReports/firstreport.jrxml»), но когда я устанавливал путь к пакету NetBeans , он не отображался. Вот мой код

try {
       String reportSource="/rep/rp.jrxml";  //and also "rep/rp.jrxml" is used.no result.            
        Map<String, Object> params = new HashMap<String, Object>();
        JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
        JasperViewer.viewReport(jasperPrint, false);
    } catch (Exception e) {e.printStackTrace();
    }

Тогда дается следующая ошибка;

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: rep\rp.jrxml (The system cannot find the path specified)

Как мне хранить jrxml файлы в моем проекте NetBeans и использовать jrxml файлы внутри проекта?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Этот код работает для меня:

public class TestJasper {

    public static void main(String[] args) {
        try {
            String reportSource = "resources/report1.jrxml";
            Map<String, Object> params = new HashMap<String, Object>();
            JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
            JasperViewer.viewReport(jasperPrint, false);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

Структура моего проекта:

build
    classes
        TestJasper.class
dist 
nbproject
resources
    report1.jrxml 
src
    TestJasper.java 

ОБНОВЛЕНО: Для решения проблемы net.sf.jasperreports.engine.JRException: No report compiler set for language : null вы можете попробовать установить язык отчетов groovy и добавить библиотеку groovy-all-jdk14 в classpath.Вы можете получить отличную библиотеку здесь .

Пример заголовка отчета с языком, установленным на groovy:

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" 
... 
language="groovy" 
...>
0 голосов
/ 20 октября 2011

Здесь решение. Лучше указать абсолютный путь в самом файле jar. Также при запуске jar лучше использовать файл * .jasper вместо .jrxml, это может привести к скорости генерации файла.отчет, а также. Затем .jasper может быть отправлен в JasperFillManager в качестве входного потока.Вот и все.

...