[New] Added possibility to filter missing values as true, instead of false
This commit is contained in:
parent
7a86442057
commit
c624990290
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue