@Component(value="report_ReportsWizard")
public class ReportsWizard
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected DataSetFactory |
dataSetFactory |
protected static java.lang.String |
DEFAULT_LIST_OF_ENTITIES_ALIAS |
protected static java.lang.String |
DEFAULT_SINGLE_ENTITY_ALIAS |
protected javax.inject.Provider<EntityTreeModelBuilder> |
entityTreeModelBuilderApiProvider |
protected io.jmix.core.ExtendedEntities |
extendedEntities |
protected io.jmix.core.FetchPlans |
fetchPlans |
protected io.jmix.core.Messages |
messages |
protected io.jmix.core.Metadata |
metadata |
protected io.jmix.core.MetadataTools |
metadataTools |
protected ReportsPersistence |
reportsPersistence |
protected ReportsProperties |
reportsProperties |
protected ReportsSerialization |
reportsSerialization |
protected ReportsUtils |
reportsUtils |
static java.lang.String |
ROOT_BAND_DEFINITION_NAME |
protected TemplateGenerator |
templateGenerator |
Constructor and Description |
---|
ReportsWizard() |
Modifier and Type | Method and Description |
---|---|
EntityTree |
buildEntityTree(io.jmix.core.metamodel.model.MetaClass metaClass) |
protected java.util.Set<BandDefinition> |
createBands(Report report,
BandDefinition rootReportBandDefinition,
ReportData reportData,
ReportInputParameter mainParameter) |
protected BandDefinition |
createDataBand(Report report,
BandDefinition rootBandDefinition,
java.lang.String name,
int bandDefPos) |
protected void |
createDefaultFormats(Report report,
ReportData reportData,
ReportRegion reportRegion) |
protected ReportTemplate |
createDefaultTemplate(Report report,
ReportData reportData) |
protected void |
createEntityDataSet(ReportData reportData,
ReportRegion reportRegion,
BandDefinition dataBand,
ReportInputParameter mainParameter,
io.jmix.core.FetchPlan parameterFetchPlan) |
io.jmix.core.FetchPlan |
createFetchPlanByReportRegions(EntityTreeNode entityTreeRootNode,
java.util.List<ReportRegion> reportRegions) |
protected BandDefinition |
createHeaderBand(Report report,
BandDefinition rootReportBandDefinition,
int bandDefPos,
ReportRegion reportRegion) |
protected void |
createJpqlDataSet(ReportData reportData,
ReportRegion reportRegion,
BandDefinition dataBand) |
protected ReportInputParameter |
createMainInputParameter(Report report,
ReportData reportData) |
protected ReportInputParameter |
createParameter(Report report,
int position) |
protected ReportInputParameter |
createParameters(ReportData reportData,
Report report) |
protected Report |
createReport(ReportData reportData,
boolean isTmp) |
ReportRegion |
createReportRegionByFetchPlan(EntityTree entityTree,
boolean isTabulated,
io.jmix.core.FetchPlan fetchPlan,
java.lang.String collectionPropertyName)
Create report region using fetch plan and whole entity model as entityTree param
For creating tabulated report region for collection of entity (when used # in alias of dataset) fetch plan and
parameters must to be non-nul values because otherwise necessary ReportRegion.regionPropertiesRootNode field value
will be null.
|
protected BandDefinition |
createRootBand(Report report) |
protected io.jmix.core.FetchPlanBuilder |
ensureParentFetchPlansExist(EntityTreeNode entityTreeNode,
java.util.Map<EntityTreeNode,io.jmix.core.FetchPlanBuilder> fetchPlansForNodes)
Search for fetch plan for parent node
If does not exists - createDataSet it and add property to parent of parent fetch plan
|
byte[] |
generateTemplate(ReportData reportData,
TemplateFileType templateFileType) |
protected java.util.List<java.lang.String> |
getEffectiveEntities(java.util.List<java.lang.String> entitiesList) |
protected io.jmix.core.metamodel.model.MetaClass |
getOriginalMetaClass(io.jmix.core.metamodel.model.MetaClass metaClass) |
protected java.util.List<java.lang.String> |
getWizardBlackListedEntities() |
protected java.util.List<java.lang.String> |
getWizardBlackListedProperties() |
protected java.util.List<java.lang.String> |
getWizardPropertiesExcludedBlackList() |
protected java.util.List<java.lang.String> |
getWizardWhiteListedEntities() |
boolean |
isEntityAllowedForReportWizard(io.jmix.core.metamodel.model.MetaClass effectiveMetaClass) |
boolean |
isPropertyAllowedForReportWizard(io.jmix.core.metamodel.model.MetaClass metaClass,
io.jmix.core.metamodel.model.MetaProperty metaProperty) |
protected void |
iterateFetchPlanAndCreatePropertiesForRegion(boolean scalarOnly,
io.jmix.core.FetchPlan parentFetchPlan,
java.util.Map<java.lang.String,EntityTreeNode> allNodesAndHierarchicalPathsMap,
java.util.List<RegionProperty> regionProperties,
java.lang.String pathFromParentFetchPlan,
long propertyOrderNum) |
protected void |
nodesToMap(EntityTreeNode node,
java.util.Map<java.lang.String,EntityTreeNode> allNodesAndHierarchicalPathsMap) |
Report |
toReport(ReportData reportData,
boolean temporary) |
public static final java.lang.String ROOT_BAND_DEFINITION_NAME
protected static final java.lang.String DEFAULT_SINGLE_ENTITY_ALIAS
protected static final java.lang.String DEFAULT_LIST_OF_ENTITIES_ALIAS
@Autowired protected io.jmix.core.Metadata metadata
@Autowired protected ReportsPersistence reportsPersistence
@Autowired protected ReportsUtils reportsUtils
@Autowired protected ReportsSerialization reportsSerialization
@Autowired protected ReportsProperties reportsProperties
@Autowired protected io.jmix.core.ExtendedEntities extendedEntities
@Autowired protected DataSetFactory dataSetFactory
@Autowired protected io.jmix.core.Messages messages
@Autowired protected io.jmix.core.MetadataTools metadataTools
@Autowired protected TemplateGenerator templateGenerator
@Autowired protected javax.inject.Provider<EntityTreeModelBuilder> entityTreeModelBuilderApiProvider
@Autowired protected io.jmix.core.FetchPlans fetchPlans
public Report toReport(ReportData reportData, boolean temporary)
protected java.util.Set<BandDefinition> createBands(Report report, BandDefinition rootReportBandDefinition, ReportData reportData, ReportInputParameter mainParameter)
@Nullable protected ReportInputParameter createParameters(ReportData reportData, Report report)
protected Report createReport(ReportData reportData, boolean isTmp)
protected void createJpqlDataSet(ReportData reportData, ReportRegion reportRegion, BandDefinition dataBand)
protected void createEntityDataSet(ReportData reportData, ReportRegion reportRegion, BandDefinition dataBand, ReportInputParameter mainParameter, io.jmix.core.FetchPlan parameterFetchPlan)
protected BandDefinition createRootBand(Report report)
protected ReportInputParameter createMainInputParameter(Report report, ReportData reportData)
protected ReportInputParameter createParameter(Report report, int position)
protected ReportTemplate createDefaultTemplate(Report report, ReportData reportData)
protected BandDefinition createDataBand(Report report, BandDefinition rootBandDefinition, java.lang.String name, int bandDefPos)
protected void createDefaultFormats(Report report, ReportData reportData, ReportRegion reportRegion)
protected BandDefinition createHeaderBand(Report report, BandDefinition rootReportBandDefinition, int bandDefPos, ReportRegion reportRegion)
public io.jmix.core.FetchPlan createFetchPlanByReportRegions(EntityTreeNode entityTreeRootNode, java.util.List<ReportRegion> reportRegions)
public ReportRegion createReportRegionByFetchPlan(EntityTree entityTree, boolean isTabulated, @Nullable io.jmix.core.FetchPlan fetchPlan, @Nullable java.lang.String collectionPropertyName)
entityTree
- the whole entity tree modelisTabulated
- determine which region will be createdfetchPlan
- by that fetch plan the region will be createdcollectionPropertyName
- must to be non-null for a tabulated region@Nullable protected io.jmix.core.FetchPlanBuilder ensureParentFetchPlansExist(EntityTreeNode entityTreeNode, java.util.Map<EntityTreeNode,io.jmix.core.FetchPlanBuilder> fetchPlansForNodes)
entityTreeNode
- entity tree nodefetchPlansForNodes
- fetch plans for previous nodesprotected void iterateFetchPlanAndCreatePropertiesForRegion(boolean scalarOnly, io.jmix.core.FetchPlan parentFetchPlan, java.util.Map<java.lang.String,EntityTreeNode> allNodesAndHierarchicalPathsMap, java.util.List<RegionProperty> regionProperties, @Nullable java.lang.String pathFromParentFetchPlan, long propertyOrderNum)
protected void nodesToMap(EntityTreeNode node, java.util.Map<java.lang.String,EntityTreeNode> allNodesAndHierarchicalPathsMap)
public boolean isEntityAllowedForReportWizard(io.jmix.core.metamodel.model.MetaClass effectiveMetaClass)
public boolean isPropertyAllowedForReportWizard(io.jmix.core.metamodel.model.MetaClass metaClass, io.jmix.core.metamodel.model.MetaProperty metaProperty)
public byte[] generateTemplate(ReportData reportData, TemplateFileType templateFileType) throws TemplateGenerationException
TemplateGenerationException
public EntityTree buildEntityTree(io.jmix.core.metamodel.model.MetaClass metaClass)
protected java.util.List<java.lang.String> getWizardBlackListedEntities()
protected java.util.List<java.lang.String> getWizardWhiteListedEntities()
protected java.util.List<java.lang.String> getEffectiveEntities(java.util.List<java.lang.String> entitiesList)
protected java.util.List<java.lang.String> getWizardBlackListedProperties()
protected java.util.List<java.lang.String> getWizardPropertiesExcludedBlackList()
protected io.jmix.core.metamodel.model.MetaClass getOriginalMetaClass(io.jmix.core.metamodel.model.MetaClass metaClass)