From 41877a7055eb65a5f3d07e166c3ad345152670d0 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 12 Jan 2023 08:38:09 -0600 Subject: [PATCH] Update to not setup a join context for non-table data sources --- .../core/actions/reporting/GenerateReportAction.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/reporting/GenerateReportAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/reporting/GenerateReportAction.java index e05b18c6..b14e2ae3 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/reporting/GenerateReportAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/reporting/GenerateReportAction.java @@ -224,7 +224,11 @@ public class GenerateReportAction exportInput.setIncludeHeaderRow(reportView.getIncludeHeaderRow()); exportInput.setReportOutputStream(reportInput.getReportOutputStream()); - JoinsContext joinsContext = new JoinsContext(exportInput.getInstance(), dataSource.getSourceTable(), dataSource.getQueryJoins()); + JoinsContext joinsContext = null; + if(StringUtils.hasContent(dataSource.getSourceTable())) + { + joinsContext = new JoinsContext(exportInput.getInstance(), dataSource.getSourceTable(), dataSource.getQueryJoins()); + } List fields = new ArrayList<>(); for(QReportField column : reportView.getColumns()) @@ -236,10 +240,10 @@ public class GenerateReportAction else { String effectiveFieldName = Objects.requireNonNullElse(column.getSourceFieldName(), column.getName()); - JoinsContext.FieldAndTableNameOrAlias fieldAndTableNameOrAlias = joinsContext.getFieldAndTableNameOrAlias(effectiveFieldName); - if(fieldAndTableNameOrAlias.field() == null) + JoinsContext.FieldAndTableNameOrAlias fieldAndTableNameOrAlias = joinsContext == null ? null : joinsContext.getFieldAndTableNameOrAlias(effectiveFieldName); + if(fieldAndTableNameOrAlias == null || fieldAndTableNameOrAlias.field() == null) { - throw new QReportingException("Could not find field named [" + effectiveFieldName + "] on table [" + table.getName() + "]"); + throw new QReportingException("Could not find field named [" + effectiveFieldName + "] in dataSource [" + dataSource.getName() + "]"); } QFieldMetaData field = fieldAndTableNameOrAlias.field().clone();