2014-09-25 38 views
2

如何添加JavaScriptJasperReports的報告?如何在JasperReports的報告中插入JavaScript

我添加了一個靜態文本字段和由標記HTML和插入的文本爲<script></script>

但出口

<band height="79" splitType="Stretch"> 
    <staticText> 
     <reportElement mode="Opaque" x="0" y="0" width="555" height="79" backcolor="#EEEEEE"/> 
     <textElement markup="html"/> 
     <text><![CDATA[<script type="text/javascript">window.alert('hello');</script>]]></text> 
    </staticText> 
</band> 

當我失去了一些不顯示的JavaScript屬性設置?我找不到一個具體的文件解釋如何在報告中嵌入JavaScript代碼。請提供任何文檔的鏈接(如果可用)

回答

1

我不認爲您在HTML標記中添加javascript的方式將在導出的HTML中呈現爲腳本。但我知道另一種方式。請參見下面的代碼片斷:

StringBuffer sbuf = new StringBuffer(); 
net.sf.jasperreports.engine.export.JRHtmlExporter exporter = new net.sf.jasperreports.engine.export.JRHtmlExporter(); 

exporter.setParameter(net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_STRING_BUFFER, sbuf); 
. 
. 
. 
exporter.exportReport(); 

sbuf.append("<script type=\"text/javascript\">window.alert('hello');</script>"); 

String content = sbuf.toString(); 

參數OUTPUT_STRING_BUFFER發送導出的輸出到的StringBuffer(SBUF在這種情況下)。然後,您可以將您的腳本附加到此導出的HTML中,並最終使用以下JSP打印內容

<html> 
    <head> 
     <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> 
     <meta http-equiv='Content-Disposition' content='inline'> 
    </head> 
    <body> 
     <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" style="background-color:white"> 
      <tr> 
       <td width="100%" valign="middle" align="center"> 
        <%=content%> 
       </td> 
    </body> 
</html> 
相關問題