浏览代码

修复条件属性中添加多条件情况下,条件构建不正确及条件左右值为null时计算不正确的BUG

master
jacky6024 7 年前
父节点
当前提交
3bc56cbec2
  1. 3
      ureport2-core/src/main/java/com/bstek/ureport/build/ReportBuilder.java
  2. 3
      ureport2-core/src/main/java/com/bstek/ureport/expression/model/condition/BaseCondition.java
  3. 2
      ureport2-core/src/main/java/com/bstek/ureport/parser/impl/ConditionParameterItemParser.java

3
ureport2-core/src/main/java/com/bstek/ureport/build/ReportBuilder.java

@ -227,6 +227,9 @@ public class ReportBuilder extends BasePagination implements ApplicationContextA
for(int i=start;i>-1;i--){
Row currentRow=rows.get(i);
Map<Column, Cell> prevColMap=rowMap.get(currentRow);
if(prevColMap==null){
continue;
}
if(prevColMap.containsKey(column)){
currentCell=prevColMap.get(column);
break;

3
ureport2-core/src/main/java/com/bstek/ureport/expression/model/condition/BaseCondition.java

@ -47,9 +47,6 @@ public abstract class BaseCondition implements Condition {
public final boolean filter(Cell cell,Cell currentCell,Object obj,Context context) {
Object left=computeLeft(cell,currentCell,obj,context);
Object right=computeRight(cell,currentCell,obj,context);
if(left==null || right==null){
return false;
}
boolean result=ExpressionUtils.conditionEval(op, left, right);
if(join!=null && nextCondition!=null){
if(result){

2
ureport2-core/src/main/java/com/bstek/ureport/parser/impl/ConditionParameterItemParser.java

@ -82,6 +82,8 @@ public class ConditionParameterItemParser implements Parser<ConditionPropertyIte
prevCondition=condition;
}else{
prevCondition.setNextCondition(condition);
prevCondition.setJoin(condition.getJoin());
prevCondition=condition;
}
continue;
}

正在加载...
取消
保存