[New] Added possibility to filter missing values as true, instead of false

This commit is contained in:
Robert von Burg 2020-07-28 13:31:42 +02:00
parent 7a86442057
commit c624990290
3 changed files with 8 additions and 4 deletions

View File

@ -281,7 +281,9 @@ public class ReportResource {
report.dateRange(dateRange);
}
filters.keySet().forEach(f -> report.filter(f, filters.getSet(f)));
if (!filters.isEmpty())
filters.keySet().forEach(f -> report.filter(f, filters.getSet(f)));
// get rows
Stream<JsonObject> json = report.doReportAsJson().skip(offset).limit(limit);

View File

@ -408,7 +408,7 @@ public class GenericReport extends ReportPolicy {
if (value instanceof Date)
return ISO8601FormatFactory.getInstance().formatDate((Date) value);
if (value instanceof Parameter)
return ((Parameter) value).getValueAsString();
return ((Parameter<?>) value).getValueAsString();
return value.toString();
}));
}
@ -567,6 +567,8 @@ public class GenericReport extends ReportPolicy {
Object value1 = evaluateColumnValue(refTuple.getFirst(), row, true);
Object value2 = evaluateColumnValue(refTuple.getSecond(), row, true);
if (this.filterMissingValuesAsTrue && (value1 == null || value2 == null))
continue;
if (value1 == null || value2 == null || !filterPolicy.filter(value1, value2))
return false;
@ -670,7 +672,7 @@ public class GenericReport extends ReportPolicy {
else
columnValue = parameter;
} else {
columnValue = lookupParameter(columnDefP, column).orElseGet(StringParameter::new);
columnValue = lookupParameter(columnDefP, column).orElseGet(() -> allowNull ? null : new StringParameter());
}
return columnValue;

View File

@ -56,7 +56,7 @@ public abstract class ReportFilterPolicy extends StrolchPolicy {
} else if (value instanceof Parameter) {
Parameter parameter = (Parameter) value;
Parameter<?> parameter = (Parameter<?>) value;
if (this.right == null) {
StrolchValueType valueType = parameter.getValueType();
if (valueType == StrolchValueType.DATE)