Ver código fonte

完善图表功能

master
jacky6024 7 anos atrás
pai
commit
70ed75f100
  1. 3
      ureport2-core/src/main/java/com/bstek/ureport/build/ReportBuilder.java
  2. 2
      ureport2-core/src/main/java/com/bstek/ureport/build/paging/BasePagination.java
  3. 7
      ureport2-core/src/main/java/com/bstek/ureport/build/paging/FitPagePagination.java
  4. 1
      ureport2-core/src/main/java/com/bstek/ureport/chart/option/Option.java
  5. 4
      ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/AnimationsOption.java
  6. 4
      ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/LayoutOption.java
  7. 4
      ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/LegendOption.java
  8. 4
      ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/TitleOption.java
  9. 5
      ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/TooltipOption.java
  10. 8
      ureport2-core/src/main/java/com/bstek/ureport/dsl/.gitignore
  11. 2
      ureport2-core/src/main/java/com/bstek/ureport/export/builder/down/LeftParentCellCreator.java
  12. 2
      ureport2-core/src/main/java/com/bstek/ureport/export/builder/right/TopParentCellCreator.java
  13. 12
      ureport2-core/src/main/java/com/bstek/ureport/export/word/WordProducer.java
  14. 1
      ureport2-core/src/main/resources/ureport2.xsd

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

@ -260,7 +260,8 @@ public class ReportBuilder extends BasePagination implements ApplicationContextA
height=paper.getWidth()-paper.getBottomMargin()-paper.getTopMargin();
}
int repeatHeaderRowHeight=report.getRepeatHeaderRowHeight(),repeatFooterRowHeight=report.getRepeatFooterRowHeight();
int rowHeight=repeatHeaderRowHeight+repeatFooterRowHeight;
int titleRowHeight=report.getTitleRowsHeight();
int rowHeight=titleRowHeight+repeatHeaderRowHeight+repeatFooterRowHeight;
for(int i=0;i<rowSize;i++){
Row row=rows.get(i);
int rowRealHeight=row.getRealHeight();

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

@ -195,6 +195,8 @@ public abstract class BasePagination {
BindData bindData=dataList.get(0);
cell.setData(bindData.getValue());
cell.setBindData(bindData.getDataList());
cell.doFormat();
cell.doDataWrapCompute(context);
}
}

7
ureport2-core/src/main/java/com/bstek/ureport/build/paging/FitPagePagination.java

@ -21,7 +21,6 @@ import java.util.List;
import com.bstek.ureport.definition.Band;
import com.bstek.ureport.definition.Orientation;
import com.bstek.ureport.definition.Paper;
import com.bstek.ureport.exception.ReportComputeException;
import com.bstek.ureport.model.Report;
import com.bstek.ureport.model.Row;
@ -43,7 +42,8 @@ public class FitPagePagination extends BasePagination implements Pagination {
List<Row> titleRows=report.getTitleRows();
List<Row> summaryRows=report.getSummaryRows();
int repeatHeaderRowHeight=report.getRepeatHeaderRowHeight(),repeatFooterRowHeight=report.getRepeatFooterRowHeight();
int rowHeight=repeatHeaderRowHeight+repeatFooterRowHeight;
int titleRowHeight=report.getTitleRowsHeight();
int rowHeight=titleRowHeight+repeatHeaderRowHeight+repeatFooterRowHeight;
List<Page> pages=new ArrayList<Page>();
List<Row> pageRows=new ArrayList<Row>();
List<Row> pageRepeatHeaders=new ArrayList<Row>();
@ -81,9 +81,6 @@ public class FitPagePagination extends BasePagination implements Pagination {
pageRepeatFooters.remove(index);
pageRepeatFooters.add(index,row);
}
if(index==-1){
throw new ReportComputeException("Invalid row["+band+"] with key "+rowKey+".");
}
}
if(rowRealHeight>1 && band==null){
rowHeight+=rowRealHeight;

1
ureport2-core/src/main/java/com/bstek/ureport/chart/option/Option.java

@ -21,4 +21,5 @@ package com.bstek.ureport.chart.option;
*/
public interface Option {
String buildOptionJson();
String getType();
}

4
ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/AnimationsOption.java

@ -34,6 +34,10 @@ public class AnimationsOption implements Option {
sb.append("}");
return sb.toString();
}
@Override
public String getType() {
return "animation";
}
public int getDuration() {
return duration;
}

4
ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/LayoutOption.java

@ -32,6 +32,10 @@ public class LayoutOption implements Option {
sb.append("}");
return sb.toString();
}
@Override
public String getType() {
return "layout";
}
public Padding getPadding() {
return padding;
}

4
ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/LegendOption.java

@ -38,6 +38,10 @@ public class LegendOption implements Option {
}
return sb.toString();
}
@Override
public String getType() {
return "legend";
}
public boolean isDisplay() {
return display;
}

4
ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/TitleOption.java

@ -46,6 +46,10 @@ public class TitleOption implements Option {
sb.append("}");
return sb.toString();
}
@Override
public String getType() {
return "title";
}
public boolean isDisplay() {
return display;
}

5
ureport2-core/src/main/java/com/bstek/ureport/chart/option/impl/TooltipOption.java

@ -46,6 +46,11 @@ public class TooltipOption implements Option {
return sb.toString();
}
@Override
public String getType() {
return "tooltips";
}
public boolean isEnabled() {
return enabled;
}

8
ureport2-core/src/main/java/com/bstek/ureport/dsl/.gitignore

@ -0,0 +1,8 @@
/ReportLexer.java
/ReportLexer.tokens
/ReportParser.tokens
/ReportParserBaseVisitor.java
/ReportParserLexer.java
/ReportParserLexer.tokens
/ReportParserParser.java
/ReportParserVisitor.java

2
ureport2-core/src/main/java/com/bstek/ureport/export/builder/down/LeftParentCellCreator.java

@ -110,7 +110,7 @@ public class LeftParentCellCreator {
}
}
int rowStart=mainCell.getRowNumber(),rowEnd=BuildUtils.buildRowNumberEnd(mainCell, rowStart);
if((start>=rowStart && start<=rowEnd) || (end>=rowStart && end<=rowEnd)){
if((start>=rowStart && start<=rowEnd) || (end>=rowStart && end<=rowEnd) || (start<=rowStart && end>=rowEnd)){
return false;
}
return true;

2
ureport2-core/src/main/java/com/bstek/ureport/export/builder/right/TopParentCellCreator.java

@ -111,7 +111,7 @@ public class TopParentCellCreator {
}
}
int colStart=mainCell.getColumnNumber(),colEnd=BuildUtils.buildColNumberEnd(mainCell, colStart);
if((start>=colStart && start<=colEnd) || (end>=colStart && end<=colEnd)){
if((start>=colStart && start<=colEnd) || (end>=colStart && end<=colEnd) || (start<=colStart && end>=colEnd)){
return false;
}
return true;

12
ureport2-core/src/main/java/com/bstek/ureport/export/word/WordProducer.java

@ -29,6 +29,7 @@ import javax.imageio.ImageIO;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.BreakType;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
@ -94,8 +95,6 @@ public class WordProducer implements Producer{
pageSize.setW(BigInteger.valueOf(DxaUtils.points2dxa(paper.getWidth())));
pageSize.setH(BigInteger.valueOf(DxaUtils.points2dxa(paper.getHeight())));
}
//buildHeaderFooter(document,sectpr,report);
int columnCount=paper.getColumnCount();
if(paper.isColumnEnabled() && columnCount>0){
CTColumns cols=CTColumns.Factory.newInstance();
@ -114,6 +113,8 @@ public class WordProducer implements Producer{
int tableWidth=buildTablePCTWidth(columns);
List<Page> pages=report.getPages();
Map<Row,Map<Column,Cell>> cellMap=report.getRowColCellMap();
int totalPages=pages.size();
int pageIndex=1;
for(Page page:pages){
List<Row> rows=page.getRows();
XWPFTable table = document.createTable(rows.size(), totalColumn);
@ -143,6 +144,13 @@ public class WordProducer implements Producer{
buildTableCellStyle(table,tableCell,cell,rowNumber,colNumber);
}
}
if(pageIndex<totalPages){
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setFontSize(0);
run.addBreak(BreakType.PAGE);
}
pageIndex++;
}
document.write(outputStream);
}catch(Exception ex){

1
ureport2-core/src/main/resources/ureport2.xsd

@ -123,6 +123,7 @@
<element name="zxing-value" type="tns:zxing-value" minOccurs="0" maxOccurs="1"></element>
<element name="expression-value" type="tns:expression-value" minOccurs="0" maxOccurs="1"></element>
<element name="dataset-value" type="tns:dataset-value" minOccurs="0" maxOccurs="1"></element>
<element name="chart-value" type="tns:chart-value" minOccurs="0" maxOccurs="1"></element>
<element name="cell-style" type="tns:cell-style" minOccurs="0" maxOccurs="1"></element>
<element name="condition-property-item" type="tns:condition-property-item" maxOccurs="1" minOccurs="0"></element>
<element name="link-parameter" type="tns:link-parameter" maxOccurs="unbounded" minOccurs="0"></element>

Carregando…
Cancelar
Salvar