From 600fc09b39d96d28bced0da789ff750acababc63 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 24 Jun 2021 22:47:09 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/ReportController.cs | 4 +++- server/AyaNova/DataList/DataListFetcher.cs | 19 ++++++++++++++++--- .../DataListSelectedProcessingOptions.cs | 2 +- .../AyaNova/models/DataListSelectedRequest.cs | 1 + 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/server/AyaNova/Controllers/ReportController.cs b/server/AyaNova/Controllers/ReportController.cs index b083e94a..89671315 100644 --- a/server/AyaNova/Controllers/ReportController.cs +++ b/server/AyaNova/Controllers/ReportController.cs @@ -182,7 +182,7 @@ namespace AyaNova.Api.Controllers /// - /// Get data from id list in format used by report designer + /// Get a limited amount of sample data from id list in format used by report designer /// /// Data required for report /// From route path @@ -196,6 +196,8 @@ namespace AyaNova.Api.Controllers if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); + //cap the data returned + selectedRequest.ReportDesignerSample = true; var reportData = await biz.GetReportData(selectedRequest); if (reportData == null) diff --git a/server/AyaNova/DataList/DataListFetcher.cs b/server/AyaNova/DataList/DataListFetcher.cs index 048ec691..a9a6e245 100644 --- a/server/AyaNova/DataList/DataListFetcher.cs +++ b/server/AyaNova/DataList/DataListFetcher.cs @@ -189,9 +189,17 @@ namespace AyaNova.DataList ///////////////////////////////////////////////////////////////// // Get a list of id's of the datalist results for reporting + // (and other uses like job ops, exporting etc) + // called from RehydrateIdList only // - // - internal static async Task GetIdListResponseAsync(AyContext ct, DataListSelectedProcessingOptions dataListSelectionOptions, IDataListProcessing DataList, AuthorizationRoles userRoles, ILogger log, long userId) + internal static async Task GetIdListResponseAsync( + AyContext ct, + DataListSelectedProcessingOptions dataListSelectionOptions, + IDataListProcessing DataList, + AuthorizationRoles userRoles, + ILogger log, + long userId, + bool limitForReportDesigner) { //#BUILD THE QUERY @@ -210,10 +218,15 @@ namespace AyaNova.DataList //ORDER BY CLAUSE - SORT qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, dataListSelectionOptions); + //LIMIT (if report designer) + var qLimit = string.Empty; + if (limitForReportDesigner) + qLimit = "LIMIT 5"; + //PUT IT ALL TOGETHER string qDataQuery = string.Empty; - qDataQuery = $"{qSelect} {qFrom} {qWhere} {qOrderBy} ".Replace(" ", " "); + qDataQuery = $"{qSelect} {qFrom} {qWhere} {qOrderBy} {qLimit} ".Replace(" ", " "); //RETURN OBJECTS var retList = new List(); diff --git a/server/AyaNova/models/DataListSelectedProcessingOptions.cs b/server/AyaNova/models/DataListSelectedProcessingOptions.cs index 35cc5196..7d49c760 100644 --- a/server/AyaNova/models/DataListSelectedProcessingOptions.cs +++ b/server/AyaNova/models/DataListSelectedProcessingOptions.cs @@ -65,7 +65,7 @@ namespace AyaNova.Models DataListSelectedProcessingOptions d = new DataListSelectedProcessingOptions(selectedRequest, DataList, SavedView, SavedFilter, userId, userRoles); - return await AyaNova.DataList.DataListFetcher.GetIdListResponseAsync(ct, d, DataList, userRoles, log, userId); + return await AyaNova.DataList.DataListFetcher.GetIdListResponseAsync(ct, d, DataList, userRoles, log, userId, selectedRequest.ReportDesignerSample); } diff --git a/server/AyaNova/models/DataListSelectedRequest.cs b/server/AyaNova/models/DataListSelectedRequest.cs index 9a7dfcfe..275372d7 100644 --- a/server/AyaNova/models/DataListSelectedRequest.cs +++ b/server/AyaNova/models/DataListSelectedRequest.cs @@ -8,6 +8,7 @@ namespace AyaNova.Models public AyaType AType { get; set; } public long[] SelectedRowIds { get; set; } public bool IncludeWoItemDescendants {get;set;} + public bool ReportDesignerSample {get;set;}//set if for report designer to limit rows returned to a sensible limit } }