QQQ-42 initial implementation of qqq reports (pivots, WIP)

This commit is contained in:
2022-09-14 13:00:19 -05:00
parent a1f5e90106
commit b05c5749b4
37 changed files with 4141 additions and 249 deletions

View File

@ -40,7 +40,7 @@ import com.kingsrook.qqq.backend.core.actions.dashboard.WidgetDataLoader;
import com.kingsrook.qqq.backend.core.actions.metadata.MetaDataAction;
import com.kingsrook.qqq.backend.core.actions.metadata.ProcessMetaDataAction;
import com.kingsrook.qqq.backend.core.actions.metadata.TableMetaDataAction;
import com.kingsrook.qqq.backend.core.actions.reporting.ReportAction;
import com.kingsrook.qqq.backend.core.actions.reporting.ExportAction;
import com.kingsrook.qqq.backend.core.actions.tables.CountAction;
import com.kingsrook.qqq.backend.core.actions.tables.DeleteAction;
import com.kingsrook.qqq.backend.core.actions.tables.InsertAction;
@ -61,8 +61,8 @@ import com.kingsrook.qqq.backend.core.model.actions.metadata.ProcessMetaDataInpu
import com.kingsrook.qqq.backend.core.model.actions.metadata.ProcessMetaDataOutput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.TableMetaDataInput;
import com.kingsrook.qqq.backend.core.model.actions.metadata.TableMetaDataOutput;
import com.kingsrook.qqq.backend.core.model.actions.reporting.ExportInput;
import com.kingsrook.qqq.backend.core.model.actions.reporting.ReportFormat;
import com.kingsrook.qqq.backend.core.model.actions.reporting.ReportInput;
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput;
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput;
import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteInput;
@ -671,7 +671,6 @@ public class QJavalinImplementation
/*******************************************************************************
** Load the data for a widget of a given name.
*******************************************************************************/
@ -692,6 +691,7 @@ public class QJavalinImplementation
}
/*******************************************************************************
**
*******************************************************************************/
@ -756,22 +756,22 @@ public class QJavalinImplementation
/////////////////////////////////////////////
// set up the report action's input object //
/////////////////////////////////////////////
ReportInput reportInput = new ReportInput(qInstance);
setupSession(context, reportInput);
reportInput.setTableName(tableName);
reportInput.setReportFormat(reportFormat);
reportInput.setFilename(filename);
reportInput.setLimit(limit);
ExportInput exportInput = new ExportInput(qInstance);
setupSession(context, exportInput);
exportInput.setTableName(tableName);
exportInput.setReportFormat(reportFormat);
exportInput.setFilename(filename);
exportInput.setLimit(limit);
String fields = stringQueryParam(context, "fields");
if(StringUtils.hasContent(fields))
{
reportInput.setFieldNames(List.of(fields.split(",")));
exportInput.setFieldNames(List.of(fields.split(",")));
}
if(filter != null)
{
reportInput.setQueryFilter(JsonUtils.toObject(filter, QQueryFilter.class));
exportInput.setQueryFilter(JsonUtils.toObject(filter, QQueryFilter.class));
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
@ -782,10 +782,10 @@ public class QJavalinImplementation
PipedOutputStream pipedOutputStream = new PipedOutputStream();
PipedInputStream pipedInputStream = new PipedInputStream();
pipedOutputStream.connect(pipedInputStream);
reportInput.setReportOutputStream(pipedOutputStream);
exportInput.setReportOutputStream(pipedOutputStream);
ReportAction reportAction = new ReportAction();
reportAction.preExecute(reportInput);
ExportAction exportAction = new ExportAction();
exportAction.preExecute(exportInput);
/////////////////////////////////////////////////////////////////////////////////////////////////////
// start the async job. //
@ -795,7 +795,7 @@ public class QJavalinImplementation
{
try
{
reportAction.execute(reportInput);
exportAction.execute(exportInput);
return (true);
}
catch(Exception e)