Как перебрать коллекцию, которая находится в объекте, переданном в качестве параметра в отчете яшмы? - PullRequest
1 голос
/ 26 апреля 2010

У меня есть объект A, который имеет в качестве переменной экземпляра коллекцию объектов Bs. Пример:

public class A{
    String name;
    List<B> myList;

    ...

    public List<B> getMyList(){
       return myList;
    }

    ...
}

Я хочу, чтобы экземпляр A был only источником информации, которую получает отчет о яшме. В настоящее время я делаю что-то вроде:

   A myObjectA = new A(...);
   InputStream reportFile = MyPage.this.getClass().getResourceAsStream("test.jrxml");
   HashMap<String, Object> parameters = new HashMap<String, Object>();
   parameters.put("objectA", myObjectA);
   ...
   JasperReport report = JasperCompileManager.compileReport(reportFile);
   JasperPrint print = JasperFillManager.fillReport(report, parameters,  new JRBeanCollectionDataSource(myObjectA.getMyList()));
   return JasperExportManager.exportReportToPdf(print);

тем самым передавая два источника информации :

  1. объект A как конкретный параметр и
  2. коллекция объекта B, находящегося в A в качестве источника данных бина

Я хочу передать один источник информации только: objectA; и оставьте источник данных как JREmptyDataSource (). Можно ли перебирать myList в отчете? Даже если есть пустой источник данных?

В более общем плане: Как мне перебрать Bs в A, передавая только A?

Спасибо!

1 Ответ

0 голосов
/ 26 апреля 2010

Может быть, было бы более целесообразно реализовать свой собственный JRDataSource - тот, который перебирает Bs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...