JasperReports: доступ к пользовательскому источнику данных - PullRequest
0 голосов
/ 30 ноября 2011

Я новичок в JasperReports , и мне нужно создать отчет из пользовательского источника данных. Для этого я реализовал интерфейс JRDataSource двумя способами:

public class FacultyStudentsDS implements JRDataSource {

    @Override
    public Object getFieldValue(JRField field) throws JRException {
        ...
    }

    @Override
    public boolean next() throws JRException {
        ...
    }
}

затем я пытаюсь создать PDF документ следующим образом:

pdf = JasperRunManager.runReportToPdf(reportFile.getAbsolutePath(),
new HashMap(), studentsDS);

Моя проблема в том, что я не знаю, как получить доступ к данным, которые я передаю в отчет. Я понятия не имею, что писать в .jrxml файле. Как получить доступ к переменной studentsDS, которую я передаю в отчет, в файле .jrxml ?

1 Ответ

1 голос
/ 30 ноября 2011

У вас должна быть полоса <detail>.Затем в пределах этого диапазона вы можете получить доступ к полям из источника данных, используя что-то вроде следующего:

<textFieldExpression class="java.lang.String"><![CDATA[$F{dataSourceField}]]></textFieldExpression>

В зависимости от ваших потребностей, вам может не потребоваться создавать собственный настраиваемый источник данных.Оборачивая Collection Java-бинов в JRBeanCollectionDataSource, вы можете получить доступ к свойствам Java-бинов в этой коллекции, используя приведенный выше синтаксис $F{.

...