[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); 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 // get rows
Stream<JsonObject> json = report.doReportAsJson().skip(offset).limit(limit); Stream<JsonObject> json = report.doReportAsJson().skip(offset).limit(limit);

View File

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

View File

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