динамическая передача значения в API JASPER для генерации отчета - PullRequest
0 голосов
/ 10 августа 2011

Я создаю отчет, используя отчеты Jasper. Внутри файла JRXML в queryString формируется запрос

 SELECT * FROM Address WHERE city = $P{customerId}

Теперь внутри моего сервлета, пожалуйста, скажите мне, как я могу передать это значение динамически ??

int custid  = Integer.parseInt(request.getParameter("customerId")) ;

Map parameters = new HashMap();

parameters.put("customerId", custid);

Пожалуйста, скажите мне, это правильный способ передачи данных?

1 Ответ

0 голосов
/ 17 августа 2011

Вы можете реализовать свой собственный источник данных (должен быть net.sf.jasperreports.engine.JRDataSource реализация интерфейса).

После заполнения (подготовки) источника данных его следует передать в JasperFillManager.fillReport (java.lang.String sourceFileName, java.util.Map параметры, JRDataSource jrDataSource) метод.

Образец:

    JRMapArrayDataSource dataSource = new JRMapArrayDataSource(data);
    JasperPrint jasperPrint = JasperFillManager.fillReport(sourceFileName, paramsMap, dataSource);
...