Преглед изворни кода

改进单元格迭代过程中父格的动态设置功能

master
jacky6024 пре 6 година
родитељ
комит
62c7eb8859
  1. 10
      ureport2-core/src/main/java/com/bstek/ureport/build/cell/down/CellDownDuplicateUnit.java
  2. 4
      ureport2-core/src/main/java/com/bstek/ureport/build/cell/down/CellDownDuplicator.java
  3. 10
      ureport2-core/src/main/java/com/bstek/ureport/build/cell/right/CellRightDuplicateUnit.java
  4. 4
      ureport2-core/src/main/java/com/bstek/ureport/build/cell/right/CellRightDuplicator.java
  5. 8
      ureport2-core/src/main/java/com/bstek/ureport/expression/model/condition/BaseCondition.java

10
ureport2-core/src/main/java/com/bstek/ureport/build/cell/down/CellDownDuplicateUnit.java

@ -41,8 +41,8 @@ public class CellDownDuplicateUnit {
public void duplicate(Cell cell,int index){
downDuplicate.setIndex(index);
for(CellDownDuplicator childDuplicator:downDuplocatorWrapper.getMainCellChildren()){
Cell newCell=childDuplicator.duplicateChildrenCell(downDuplicate, cell, mainCell,false);
processChildrenCells(newCell,childDuplicator.getCell(),downDuplicate,childDuplicator.isNonChild());
Cell newCell=childDuplicator.duplicateChildrenCell(downDuplicate, cell, mainCell,mainCell,cell,false);
processChildrenCells(newCell,childDuplicator.getCell(),cell,downDuplicate,childDuplicator.isNonChild());
childDuplicator.setNonChild(false);
}
for(CellDownDuplicator cellDownDuplicator:downDuplocatorWrapper.getCellDuplicators()){
@ -60,14 +60,14 @@ public class CellDownDuplicateUnit {
downDuplicate.complete();
}
private void processChildrenCells(Cell cell,Cell originalCell,DownDuplicate downDuplicate,boolean parentNonChild){
private void processChildrenCells(Cell cell,Cell originalCell,Cell newMainCell,DownDuplicate downDuplicate,boolean parentNonChild){
List<CellDownDuplicator> childCellDownDuplicators=downDuplocatorWrapper.fetchChildrenDuplicator(originalCell);
if(childCellDownDuplicators==null){
return;
}
for(CellDownDuplicator duplicator:childCellDownDuplicators){
Cell newCell=duplicator.duplicateChildrenCell(downDuplicate, cell, originalCell,parentNonChild);
processChildrenCells(newCell,duplicator.getCell(),downDuplicate,duplicator.isNonChild());
Cell newCell=duplicator.duplicateChildrenCell(downDuplicate, cell, originalCell,mainCell,newMainCell,parentNonChild);
processChildrenCells(newCell,duplicator.getCell(),newMainCell,downDuplicate,duplicator.isNonChild());
duplicator.setNonChild(false);
}
}

4
ureport2-core/src/main/java/com/bstek/ureport/build/cell/down/CellDownDuplicator.java

@ -67,7 +67,7 @@ public class CellDownDuplicator {
return null;
}
public Cell duplicateChildrenCell(DownDuplicate downDuplicate,Cell leftParent,Cell originalCell,boolean parentNonChild){
public Cell duplicateChildrenCell(DownDuplicate downDuplicate,Cell leftParent,Cell originalCell,Cell mainCell,Cell newMainCell,boolean parentNonChild){
Cell newCell=cell.newCell();
Row newRow=downDuplicate.newRow(newCell.getRow(),cellRowNumber);
newRow.getCells().add(newCell);
@ -83,6 +83,8 @@ public class CellDownDuplicator {
}
if(newCell.getTopParentCell()==originalCell){
newCell.setTopParentCell(leftParent);
}else if(newCell.getTopParentCell()==mainCell){
newCell.setTopParentCell(newMainCell);
}
Cell leftParentCell=newCell.getLeftParentCell();
if(leftParentCell!=null){

10
ureport2-core/src/main/java/com/bstek/ureport/build/cell/right/CellRightDuplicateUnit.java

@ -41,8 +41,8 @@ public class CellRightDuplicateUnit {
public void duplicate(Cell cell,int index){
rightDuplicate.setIndex(index);
for(CellRightDuplicator childDuplicator:rightDuplocatorWrapper.getMainCellChildren()){
Cell newCell=childDuplicator.duplicateChildrenCell(rightDuplicate,cell,mainCell,false);
processChildrenCells(newCell,childDuplicator.getCell(),rightDuplicate,context,childDuplicator.isNonChild());
Cell newCell=childDuplicator.duplicateChildrenCell(rightDuplicate,cell,mainCell,mainCell,cell,false);
processChildrenCells(newCell,childDuplicator.getCell(),cell,rightDuplicate,context,childDuplicator.isNonChild());
childDuplicator.setNonChild(false);
}
for(CellRightDuplicator cellRightDuplicator:rightDuplocatorWrapper.getCellDuplicators()){
@ -60,14 +60,14 @@ public class CellRightDuplicateUnit {
rightDuplicate.complete();
}
private void processChildrenCells(Cell cell,Cell originalCell,RightDuplicate rightDuplicate,Context context,boolean parentNonChild){
private void processChildrenCells(Cell cell,Cell originalCell,Cell newMainCell,RightDuplicate rightDuplicate,Context context,boolean parentNonChild){
List<CellRightDuplicator> childCellRightDuplicators=rightDuplocatorWrapper.fetchChildrenDuplicator(originalCell);
if(childCellRightDuplicators==null){
return;
}
for(CellRightDuplicator duplicator:childCellRightDuplicators){
Cell newCell=duplicator.duplicateChildrenCell(rightDuplicate,cell,originalCell,parentNonChild);
processChildrenCells(newCell,duplicator.getCell(),rightDuplicate,context,duplicator.isNonChild());
Cell newCell=duplicator.duplicateChildrenCell(rightDuplicate,cell,originalCell,mainCell,newMainCell,parentNonChild);
processChildrenCells(newCell,duplicator.getCell(),newMainCell,rightDuplicate,context,duplicator.isNonChild());
duplicator.setNonChild(false);
}
}

4
ureport2-core/src/main/java/com/bstek/ureport/build/cell/right/CellRightDuplicator.java

@ -87,7 +87,7 @@ public class CellRightDuplicator {
context.addBlankCell(newBlankCell);
}
public Cell duplicateChildrenCell(RightDuplicate rightDuplicate,Cell topParent,Cell originalCell,boolean parentNonChild){
public Cell duplicateChildrenCell(RightDuplicate rightDuplicate,Cell topParent,Cell originalCell,Cell mainCell,Cell newMainCell,boolean parentNonChild){
Cell newCell=cell.newCell();
Column newCol=rightDuplicate.newColumn(newCell.getColumn(),cellColNumber);
newCol.getCells().add(newCell);
@ -103,6 +103,8 @@ public class CellRightDuplicator {
}
if(newCell.getLeftParentCell()==originalCell){
newCell.setLeftParentCell(topParent);
}else if(newCell.getLeftParentCell()==mainCell){
newCell.setLeftParentCell(newMainCell);
}
Cell leftParentCell=newCell.getLeftParentCell();
if(leftParentCell!=null){

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

@ -81,7 +81,13 @@ public abstract class BaseCondition implements Condition {
List<BindData> bindDataList=bindData.getData();
List<Object> list=new ArrayList<Object>();
for(BindData bd:bindDataList){
list.add(bd.getValue());
Object v=bd.getValue();
list.add(v);
}
if(list.size()==1){
return list.get(0);
}else if(list.size()==0){
return null;
}
return list;
}else if(data instanceof NoneExpressionData){

Loading…
Откажи
Сачувај