Данные кросс-таблицы пусты при использовании источника данных Java Bean? - PullRequest
1 голос
/ 03 октября 2019

У меня проблема в отчетах jasper с использованием Java Bean Data Source с использованием выражения источника данных в кросс-таблице как $P{REPORT_CONNECTION}

Я могу успешно заполнить данные в подробном разделе,

но когда я пытаюсь использовать данные bean в кросс-таблице;кросс-таблица пуста при предварительном просмотре.

Кто-нибудь, кто знает, что делать с этой конкретной настройкой?

enter image description here

enter image description here

enter image description here

1 Ответ

1 голос
/ 03 октября 2019

$P{REPORT_CONNECTION} - это соединение с базой данных JDBC, поскольку вы используете "источник данных Java Bean", вам не следует передавать соединение с базой данных, а вместо этого JRDatasource.

Передача источника данных в кросс-таблицусделано путем указания dataSourceExpression

<crosstabDataset>
    <dataset>
        <datasetRun subDataset="Dataset1" uuid="bcc868c0-ea35-4a17-b570-2d51dbe93e8d">
            <dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
        </datasetRun>
    </dataset>
</crosstabDataset>

Однако

Если вы хотите использовать текущий источник данных основного отчета (как указано выше), вы можете просто не указывать никакихнабор данных или соединение, это будет автоматически использовать основной источник данных, и нет необходимости определять под-набор данных.

, но ,

Вы должны быть осторожны, JRDatasource "потребляется", когда он заполняется, следовательно, если вы уже использовали его один раз (полоса детализации присутствует в jrxml), он потребляется. Чтобы лучше это понять, см., Например, Как использовать один и тот же JRBeanCollectionDataSource для нескольких вложенных отчетов?

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