Package io.jmix.reports.yarg.reporting
Interface DataExtractor
- All Known Implementing Classes:
DataExtractorImpl,JmixDataExtractor
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
This class should load data using ReportQuery objects, convert data onto BandData object and build BandData object tree (link children and parent bands)
The default implementation is DataExtractorImpl
!Attention! Please make sure if you really need to change this behaviour against default implementation cause it might crash report generation logic
-
Method Summary
Modifier and TypeMethodDescriptionvoiddefault voidextractData(Report report, Map<String, Object> params, BandData rootBand, Set<String> excludedBandNames) Same asextractData(Report, Map, BandData), but bands whose names are inexcludedBandNamesare not extracted (their data is supplied by other means, e.g.default boolean
-
Method Details
-
extractData
-
extractData
default void extractData(Report report, Map<String, Object> params, BandData rootBand, Set<String> excludedBandNames) Same asextractData(Report, Map, BandData), but bands whose names are inexcludedBandNamesare not extracted (their data is supplied by other means, e.g. a streaming cursor). Their names are still registered as first-level definitions.The default implementation supports only an empty exclusion set and throws otherwise: silently extracting an excluded band would load the streaming band's whole dataset into memory and run its query twice. Implementations that should work with streaming reports must override this method (see
DataExtractorImpl). -
getPutEmptyRowIfNoDataSelected
default boolean getPutEmptyRowIfNoDataSelected()
-