ソースを参照

解决设计器属性面板在MAC下拖拽的BUG

master
jacky6024 7年前
コミット
4d6b6488d3
  1. 26
      ureport2-console/src/main/java/com/bstek/ureport/console/BaseServletAction.java
  2. 7
      ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java
  3. 9
      ureport2-console/src/main/java/com/bstek/ureport/console/html/HtmlPreviewServletAction.java
  4. 18
      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. 86
      ureport2-console/src/main/resources/asserts/js/designer.bundle.js
  7. 4
      ureport2-console/src/main/resources/asserts/js/preview.bundle.js
  8. 27
      ureport2-console/src/main/resources/html/html-preview.html
  9. 1
      ureport2-console/src/main/resources/ureport-console-context.xml

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

@ -25,8 +25,6 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import com.bstek.ureport.exception.ReportComputeException;
@ -46,24 +44,20 @@ public abstract class BaseServletAction implements ServletAction {
}
}
@SuppressWarnings("unchecked")
protected Map<String, Object> buildParameters(HttpServletRequest req) {
Map<String,Object> parameters=new HashMap<String,Object>();
Enumeration<String> names=req.getParameterNames();
while(names.hasMoreElements()){
String name=names.nextElement();
String value=req.getParameter(name);
if(StringUtils.isNotBlank(value)){
parameters.put(name, value);
Enumeration<?> enumeration=req.getParameterNames();
while(enumeration.hasMoreElements()){
Object obj=enumeration.nextElement();
if(obj==null){
continue;
}
}
names=req.getAttributeNames();
while(names.hasMoreElements()){
String name=names.nextElement();
Object value=req.getAttribute(name);
if(value!=null){
parameters.put(name, value);
String name=obj.toString();
String value=req.getParameter(name);
if(name==null || value==null || name.startsWith("_")){
continue;
}
parameters.put(name, decode(value));
}
return parameters;
}

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

@ -77,16 +77,17 @@ public class ExportExcelServletAction extends BaseServletAction {
resp.setContentType("application/octet-stream;charset=ISO8859-1");
resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");
Map<String, Object> parameters = buildParameters(req);
String fullName=file+parameters.toString();
OutputStream outputStream=resp.getOutputStream();
if(file.equals(PREVIEW_KEY)){
Report report=CacheUtils.getReport(file);
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
Report report=CacheUtils.getReport(fullName);
if(report==null){
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
if(reportDefinition==null){
throw new ReportDesignException("Report data has expired,can not do export excel.");
}
report=reportBuilder.buildReport(reportDefinition, parameters);
CacheUtils.storeReport(file, report);
CacheUtils.storeReport(fullName, report);
}
if(withPage){
excelProducer.produceWithPaging(report, outputStream);

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

@ -114,7 +114,9 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
if(StringUtils.isBlank(file)){
throw new ReportComputeException("Report file can not be null.");
}
Report report=CacheUtils.getReport(file);
Map<String, Object> parameters = buildParameters(req);
String fullName=file+parameters.toString();
Report report=CacheUtils.getReport(fullName);
if(report==null){
throw new ReportException("Report preview data has expired,can not do load pages for print.");
}
@ -173,6 +175,7 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
Map<String, Object> parameters = buildParameters(req);
HtmlReport htmlReport=null;
String file=req.getParameter("_u");
String fullName=file+parameters.toString();
String pageIndex=req.getParameter("_i");
String reload=req.getParameter("_r");
if(StringUtils.isBlank(file)){
@ -181,7 +184,7 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
if(file.equals(PREVIEW_KEY)){
Report report=null;
if(StringUtils.isNotBlank(pageIndex) && StringUtils.isBlank(reload)){
report=CacheUtils.getReport(file);
report=CacheUtils.getReport(fullName);
}
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
if(report==null){
@ -189,7 +192,7 @@ public class HtmlPreviewServletAction extends RenderPageServletAction {
throw new ReportDesignException("Report data has expired,can not do preview.");
}
report=reportBuilder.buildReport(reportDefinition, parameters);
CacheUtils.storeReport(file, report);
CacheUtils.storeReport(fullName, report);
}
htmlReport=new HtmlReport();
String html=null;

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

@ -81,16 +81,17 @@ public class ExportPdfServletAction extends BaseServletAction{
resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");
}
Map<String, Object> parameters = buildParameters(req);
String fullName=file+parameters.toString();
OutputStream outputStream=resp.getOutputStream();
if(file.equals(PREVIEW_KEY)){
Report report=CacheUtils.getReport(file);
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
Report report=CacheUtils.getReport(fullName);
if(report==null){
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
if(reportDefinition==null){
throw new ReportDesignException("Report data has expired,can not do export pdf.");
}
report=reportBuilder.buildReport(reportDefinition, parameters);
CacheUtils.storeReport(file, report);
CacheUtils.storeReport(fullName, report);
}
pdfProducer.produce(report, outputStream);
}else{
@ -108,25 +109,26 @@ public class ExportPdfServletAction extends BaseServletAction{
}
Report report=null;
Map<String, Object> parameters = buildParameters(req);
String fullName=file+parameters.toString();
if(file.equals(PREVIEW_KEY)){
report=CacheUtils.getReport(file);
report=CacheUtils.getReport(fullName);
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
if(report==null){
if(reportDefinition==null){
throw new ReportDesignException("Report data has expired,can not do export pdf.");
}
report=reportBuilder.buildReport(reportDefinition, parameters);
CacheUtils.storeReport(file, report);
CacheUtils.storeReport(fullName, report);
}
}else{
report=CacheUtils.getReport(file);
report=CacheUtils.getReport(fullName);
if(report==null){
ReportDefinition reportDefinition=reportRender.getReportDefinition(file);
report=reportRender.render(reportDefinition, parameters);
CacheUtils.storeReport(file, report);
CacheUtils.storeReport(fullName, report);
}
}
String paper=req.getParameter("paper");
String paper=req.getParameter("_paper");
ObjectMapper mapper=new ObjectMapper();
Paper newPaper=mapper.readValue(paper, Paper.class);
report.rePaging(newPaper);

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

@ -70,21 +70,22 @@ public class ExportWordServletAction extends BaseServletAction {
resp.setContentType("application/octet-stream;charset=ISO8859-1");
resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");
Map<String, Object> parameters = buildParameters(req);
String fullName=file+parameters.toString();
OutputStream outputStream=resp.getOutputStream();
if(file.equals(PREVIEW_KEY)){
Report report=CacheUtils.getReport(file);
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
Report report=CacheUtils.getReport(fullName);
if(report==null){
ReportDefinition reportDefinition=(ReportDefinition)req.getSession().getAttribute(PREVIEW_KEY);
if(reportDefinition==null){
throw new ReportDesignException("Report data has expired,can not do export word.");
}
report=reportBuilder.buildReport(reportDefinition, parameters);
CacheUtils.storeReport(file, report);
CacheUtils.storeReport(fullName, report);
}
wordProducer.produce(report, outputStream);
}else{
ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream);
exportManager.exportPdf(configure);
exportManager.exportWord(configure);
}
outputStream.flush();
outputStream.close();

86
ureport2-console/src/main/resources/asserts/js/designer.bundle.js

長すぎる行があるためファイル差分は表示されません

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

長すぎる行があるためファイル差分は表示されません

27
ureport2-console/src/main/resources/html/html-preview.html

@ -91,22 +91,21 @@
${content}
</div>
<iframe name="_print_frame" width="0" height="0" frameborder="0" src="about:blank"></iframe>
<iframe name="_print_pdf_frame" width="0" height="0" frameborder="1" src="about:blank"></iframe>
<iframe name="_print_pdf_frame" width="0" height="0" frameborder="0" src="about:blank"></iframe>
<script type="text/javascript">
#if($totalPage>0)
$(document).ready(function(){
$('#pageSelector').change(function(){
#if($hasTools)
window.open('${contextPath}/ureport/preview?_u=${file}&_i='+$(this).val()+'&_t=${_t}','_self');
#else
window.open('${contextPath}/ureport/preview?_u=${file}&_i='+$(this).val(),'_self');
#end
});
$('#pageSelector').val('${pageIndex}');
#if($totalPage>0)
$(document).ready(function(){
$('#pageSelector').change(function(){
#if($hasTools)
window.open('${contextPath}/ureport/preview?_u=${file}&_i='+$(this).val()+'&_t=${_t}','_self');
#else
window.open('${contextPath}/ureport/preview?_u=${file}&_i='+$(this).val(),'_self');
#end
});
#end
window._server="${contextPath}/ureport";
$('#pageSelector').val('${pageIndex}');
});
#end
window._server="${contextPath}/ureport";
</script>
</body>
</html>

1
ureport2-console/src/main/resources/ureport-console-context.xml

@ -27,6 +27,7 @@
<bean id="ureport.exportPdfServletAction" class="com.bstek.ureport.console.pdf.ExportPdfServletAction">
<property name="exportManager" ref="ureport.exportManager"></property>
<property name="reportBuilder" ref="ureport.reportBuilder"></property>
<property name="reportRender" ref="ureport.reportRender"></property>
</bean>
<bean id="ureport.exportExcelServletAction" class="com.bstek.ureport.console.excel.ExportExcelServletAction">

読み込み中…
キャンセル
保存