Browse Source

修复数据集表达式两个以上条件解析不正确的BUG

master
youseries 6 years ago
parent
commit
32af07c1d9
  1. 5
      ureport2-core/src/main/java/com/bstek/ureport/expression/parse/builder/BaseExpressionBuilder.java

5
ureport2-core/src/main/java/com/bstek/ureport/expression/parse/builder/BaseExpressionBuilder.java

@ -73,18 +73,21 @@ public abstract class BaseExpressionBuilder implements ExpressionBuilder{
List<ConditionContext> conditionContextList=conditionsContext.condition(); List<ConditionContext> conditionContextList=conditionsContext.condition();
List<JoinContext> joins=conditionsContext.join(); List<JoinContext> joins=conditionsContext.join();
BaseCondition condition=null; BaseCondition condition=null;
BaseCondition topCondition=null;
int opIndex=0; int opIndex=0;
for(ConditionContext conditionCtx:conditionContextList){ for(ConditionContext conditionCtx:conditionContextList){
if(condition==null){ if(condition==null){
condition=parseCondition(conditionCtx); condition=parseCondition(conditionCtx);
topCondition=condition;
}else{ }else{
BaseCondition nextCondition=parseCondition(conditionCtx); BaseCondition nextCondition=parseCondition(conditionCtx);
condition.setNextCondition(nextCondition); condition.setNextCondition(nextCondition);
condition.setJoin(Join.parse(joins.get(opIndex).getText())); condition.setJoin(Join.parse(joins.get(opIndex).getText()));
opIndex++; opIndex++;
condition=nextCondition;
} }
} }
return condition; return topCondition;
} }
private BaseCondition parseCondition(ConditionContext context){ private BaseCondition parseCondition(ConditionContext context){
if(context instanceof ExprConditionContext){ if(context instanceof ExprConditionContext){

Loading…
Cancel
Save