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
}
}