Sfoglia il codice sorgente

修复因添加新功能导致分页相关函数不起作用的BUG

master
youseries 6 anni fa
parent
commit
12c05fdf36
  1. 10
      ureport2-core/src/main/java/com/bstek/ureport/build/Context.java
  2. 2
      ureport2-core/src/main/java/com/bstek/ureport/build/paging/BasePagination.java
  3. 4
      ureport2-core/src/main/java/com/bstek/ureport/expression/function/page/PageRowsFunction.java
  4. 8
      ureport2-core/src/main/java/com/bstek/ureport/expression/model/expr/set/CellExpression.java

10
ureport2-core/src/main/java/com/bstek/ureport/build/Context.java

@ -48,7 +48,7 @@ public class Context {
private int pageIndex;
private int totalPages;
private boolean doPaging;
private List<Row> currentPageRows;
private Map<Integer,List<Row>> currentPageRowsMap=new HashMap<Integer,List<Row>>();
private Map<String,Dataset> datasetMap;
private ApplicationContext applicationContext;
private ReportBuilder reportBuilder;
@ -289,11 +289,11 @@ public class Context {
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public void setCurrentPageRows(List<Row> currentPageRows) {
this.currentPageRows = currentPageRows;
public void setCurrentPageRows(int pageIndex,List<Row> currentPageRows) {
currentPageRowsMap.put(pageIndex, currentPageRows);
}
public List<Row> getCurrentPageRows() {
return currentPageRows;
public List<Row> getCurrentPageRows(int pageIndex) {
return currentPageRowsMap.get(pageIndex);
}
public void addExistPageFunctionCells(Cell cell) {

2
ureport2-core/src/main/java/com/bstek/ureport/build/paging/BasePagination.java

@ -49,7 +49,7 @@ public abstract class BasePagination {
List<Column> columns=report.getColumns();
Context context=report.getContext();
context.setPageIndex(pageIndex);
context.setCurrentPageRows(rows);
context.setCurrentPageRows(pageIndex,rows);
Map<Row, Map<Column, Cell>> rowColCellsMap=report.getRowColCellMap();
List<Row> reportRows=report.getRows();
for(int i=0;i<rows.size();i++){

4
ureport2-core/src/main/java/com/bstek/ureport/expression/function/page/PageRowsFunction.java

@ -29,7 +29,9 @@ public class PageRowsFunction extends PageFunction {
@Override
public Object execute(List<ExpressionData<?>> dataList, Context context,Cell currentCell) {
return context.getCurrentPageRows().size();
int pageIndex=currentCell.getRow().getPageIndex();
if(pageIndex==0)pageIndex=1;
return context.getCurrentPageRows(pageIndex).size();
}
@Override

8
ureport2-core/src/main/java/com/bstek/ureport/expression/model/expr/set/CellExpression.java

@ -60,7 +60,9 @@ public class CellExpression extends BaseExpression {
}
public ExpressionData<?> computePageCells(Cell cell,Cell currentCell,Context context) {
List<Row> pageRows=context.getCurrentPageRows();
int pageIndex=cell.getRow().getPageIndex();
if(pageIndex==0)pageIndex=1;
List<Row> pageRows=context.getCurrentPageRows(pageIndex);
List<Object> list=new ArrayList<Object>();
Map<Row, Map<Column, Cell>> cellMap=context.getReport().getRowColCellMap();
List<Column> columns=context.getReport().getColumns();
@ -81,7 +83,9 @@ public class CellExpression extends BaseExpression {
}
protected List<Cell> fetchPageCells(Cell cell,Cell currentCell,Context context){
List<Row> pageRows=context.getCurrentPageRows();
int pageIndex=cell.getRow().getPageIndex();
if(pageIndex==0)pageIndex=1;
List<Row> pageRows=context.getCurrentPageRows(pageIndex);
Map<Row, Map<Column, Cell>> cellMap=context.getReport().getRowColCellMap();
List<Column> columns=context.getReport().getColumns();
List<Cell> list=new ArrayList<Cell>();

Caricamento…
Annulla
Salva