Преглед на файлове

优化报表文件导出默认文件名配置

master
jacky6024 преди 6 години
родител
ревизия
f5e8e3efb7
  1. 22
      ureport2-console/src/main/java/com/bstek/ureport/console/BaseServletAction.java
  2. 9
      ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java
  3. 6
      ureport2-console/src/main/java/com/bstek/ureport/console/html/HtmlPreviewServletAction.java
  4. 9
      ureport2-console/src/main/java/com/bstek/ureport/console/pdf/ExportPdfServletAction.java
  5. 9
      ureport2-console/src/main/java/com/bstek/ureport/console/word/ExportWordServletAction.java
  6. 2
      ureport2-console/src/main/resources/ureport-asserts/js/preview.bundle.js
  7. 11
      ureport2-core/src/main/java/com/bstek/ureport/export/html/HtmlReport.java
  8. 15
      ureport2-js/src/preview.js

22
ureport2-console/src/main/java/com/bstek/ureport/console/BaseServletAction.java

@ -25,6 +25,8 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import com.bstek.ureport.exception.ReportComputeException;
@ -91,4 +93,24 @@ public abstract class BaseServletAction implements ServletAction {
}
return null;
}
protected String buildDownloadFileName(String reportFileName,String fileName,String extName){
if(StringUtils.isNotBlank(fileName)){
fileName=decode(fileName);
if(!fileName.toLowerCase().endsWith(extName)){
fileName=fileName+extName;
}
return fileName;
}else{
int pos=reportFileName.indexOf(":");
if(pos>0){
reportFileName=reportFileName.substring(pos+1,reportFileName.length());
}
pos=reportFileName.toLowerCase().indexOf(".ureport.xml");
if(pos>0){
reportFileName=reportFileName.substring(0,pos);
}
return "ureport-"+reportFileName+extName;
}
}
}

9
ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java

@ -71,14 +71,7 @@ public class ExportExcelServletAction extends BaseServletAction {
throw new ReportComputeException("Report file can not be null.");
}
String fileName=req.getParameter("_n");
if(StringUtils.isNotBlank(fileName)){
fileName=decode(fileName);
if(!fileName.toLowerCase().endsWith(".xlsx")){
fileName=fileName+".xlsx";
}
}else{
fileName="ureport.xlsx";
}
fileName=buildDownloadFileName(file, fileName, ".xlsx");
resp.setContentType("application/octet-stream;charset=ISO8859-1");
fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1");
resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");

6
ureport2-console/src/main/java/com/bstek/ureport/console/html/HtmlPreviewServletAction.java

@ -275,7 +275,7 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
}
if(file.equals(PREVIEW_KEY)){
Report report=null;
if(StringUtils.isNotBlank(pageIndex) && StringUtils.isBlank(reload)){
if(StringUtils.isNotBlank(pageIndex) && !pageIndex.equals("0") && StringUtils.isBlank(reload)){
report=CacheUtils.getReport(fullName);
}
ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY);
@ -288,7 +288,7 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
}
htmlReport=new HtmlReport();
String html=null;
if(StringUtils.isNotBlank(pageIndex)){
if(StringUtils.isNotBlank(pageIndex) && !pageIndex.equals("0")){
Context context=report.getContext();
int index=Integer.valueOf(pageIndex);
SinglePageData pageData=PageBuilder.buildSinglePageData(index, report);
@ -315,7 +315,7 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
htmlReport.setReportAlign(report.getPaper().getHtmlReportAlign().name());
htmlReport.setHtmlIntervalRefreshValue(report.getPaper().getHtmlIntervalRefreshValue());
}else{
if(StringUtils.isNotBlank(pageIndex)){
if(StringUtils.isNotBlank(pageIndex) && !pageIndex.equals("0")){
int index=Integer.valueOf(pageIndex);
htmlReport=exportManager.exportHtml(file,req.getContextPath(),parameters,index);
}else{

9
ureport2-console/src/main/java/com/bstek/ureport/console/pdf/ExportPdfServletAction.java

@ -70,14 +70,7 @@ public class ExportPdfServletAction extends BaseServletAction{
throw new ReportComputeException("Report file can not be null.");
}
String fileName=req.getParameter("_n");
if(StringUtils.isNotBlank(fileName)){
fileName=decode(fileName);
if(!fileName.toLowerCase().endsWith(".pdf")){
fileName=fileName+".pdf";
}
}else{
fileName="ureport.pdf";
}
fileName=buildDownloadFileName(file, fileName, ".pdf");
fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1");
if(forPrint){
resp.setContentType("application/pdf");

9
ureport2-console/src/main/java/com/bstek/ureport/console/word/ExportWordServletAction.java

@ -64,14 +64,7 @@ public class ExportWordServletAction extends BaseServletAction {
throw new ReportComputeException("Report file can not be null.");
}
String fileName=req.getParameter("_n");
if(StringUtils.isNotBlank(fileName)){
fileName=decode(fileName);
if(!fileName.toLowerCase().endsWith(".docx")){
fileName=fileName+".docx";
}
}else{
fileName="ureport.docx";
}
fileName=buildDownloadFileName(file, fileName, ".docx");
fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1");
resp.setContentType("application/octet-stream;charset=ISO8859-1");
resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");

2
ureport2-console/src/main/resources/ureport-asserts/js/preview.bundle.js

File diff suppressed because one or more lines are too long

11
ureport2-core/src/main/java/com/bstek/ureport/export/html/HtmlReport.java

@ -65,10 +65,13 @@ public class HtmlReport {
}
public int getTotalPageWithCol() {
int totalPageWithCol=totalPage / column;
int m=totalPage % column;
if(m>0){
totalPageWithCol++;
int totalPageWithCol=totalPage;
if(column>0){
totalPageWithCol=totalPage / column;
int m=totalPage % column;
if(m>0){
totalPageWithCol++;
}
}
return totalPageWithCol;
}

15
ureport2-js/src/preview.js

@ -179,6 +179,9 @@ window.buildPaging=function(pageIndex,totalPage){
if(totalPage===0){
return;
}
if(!pageIndex){
return;
}
if(!window._currentPageIndex){
window._currentPageIndex=pageIndex;
}
@ -234,10 +237,12 @@ function _refreshData(second){
let url=window._server+`/preview/loadData${params}`;
const totalPage=window._totalPage;
if(totalPage>0){
if(window._currentPageIndex>totalPage){
window._currentPageIndex=1;
if(window._currentPageIndex){
if(window._currentPageIndex>totalPage){
window._currentPageIndex=1;
}
url+="&_i="+window._currentPageIndex+"";
}
url+="&_i="+window._currentPageIndex+"";
$("#pageSelector").val(window._currentPageIndex);
}
$.ajax({
@ -250,7 +255,9 @@ function _refreshData(second){
tableContainer.append(report.content);
_buildChartDatas(report.chartDatas);
buildPaging(window._currentPageIndex,window._totalPage);
window._currentPageIndex++;
if(window._currentPageIndex){
window._currentPageIndex++;
}
setTimeout(function(){
_refreshData(second);
},second);

Зареждане…
Отказ
Запис