2017-02-03 6 views
-1

Я передаю список как параметр Jasper следующим образом.Jasper Report Печать пользовательских объектов в Arraylist

Map<String, Object> model=new HashMap<>(); 
    List<CustomObject> issues=new ArrayList<>(); 
      issues.add(new CustomObject(1,"AIRPORT Services","XYZ","asdfa","asdf","asddf")); 
      issues.add(new CustomObject(1,"AIRPORT Services","XYZ","asdfa","asdf","asddf")); 
      model.put("issues",issues); 
      JasperPrint jasperPrint1 = JasperFillManager.fillReport(report, model, new JREmptyDataSource()); 

Теперь я могу получить issuesList в яшме, но я не могу получить значение внутри CustomObject.

следующих работ и печатают обращение CustomObject итерации с помощью следующей

<textFieldExpression><![CDATA[$P{list}.get($V{ROW_INDEX})]]></textFieldExpression> 

Это бросает исключение, когда я хочу, чтобы получить доступ значения поля внутри пользовательского объекта, такие как

<textFieldExpression><![CDATA[$P{list}.get($V{ROW_INDEX}).getCustomMethod()]]>

Исключения:

Exception obtained is: The method getCustomMethod() is undefined for the type Object value = ((java.util.List)parameter_list.getValue()).get(((java.lang.Integer)variable_ROW_INDEX.getValue())).getCustomMethod(); //$JR_EXPR_ID=0$ 

С помощью Майка Ответ на Print an arraylist content with JasperReports Я повторил свой аррайалист в яшме. Любая помощь высоко ценится.

+0

Я не знаю, яшму, но эта ошибка 'Exception полученный: Метод getCustomMethod() не определено для типа Значение объекта «дает мне впечатление, что объявленный тип экземпляров из списка не является« CustomObject », а просто« Object ». Попробуйте найти способ отбросить их в «CustomObject». – davidxxx

+0

Вы правы Это сработало для меня, когда я печатаю в JRXML как –

+0

Отлично :) Не стесняйтесь писать ответ и принимать его. Это может помочь другим. – davidxxx

ответ

1

Это работает для меня, когда я только что отлитый из Object в CustomObject вроде как следовать

<textFieldExpression><![CDATA[((com.custom.CustomObject)$P{flightIssues}.get($V{ROW_INDEX})).getCustomeMethod()]]></textFieldExpression> 
Смежные вопросы