-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hello all,
I need to generate PDF report using Daynamic jasper. For that I have write following code:
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="new page title" border="normal">
<borderlayout height="100%">
<north maxsize="24" size="24" border="0" onCreate="doReport()">
</north>
<center border="none" flex="true">
<iframe id="PDFreport" />
</center>
</borderlayout>
<zscript><![CDATA[
import ar.com.fdvs.dj.domain.DynamicReport;
import ar.com.fdvs.dj.domain.builders.FastReportBuilder;
import ar.com.fdvs.dj.core.DynamicJasperHelper;
import ar.com.fdvs.dj.core.layout.ClassicLayoutManager;
import java.io.*;
import org.zkoss.util.media.AMedia;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public void doReport()
{
try
{
FastReportBuilder drb = new FastReportBuilder();
DynamicReport dr;
InputStream mediais;
AMedia amedia;
drb.addColumn("FirstName", "firstName", String.class.getName(),30);
drb.addColumn("LastName", "lastName", String.class.getName(),30);
drb.addColumn("MiddleName", "middleName", String.class.getName(),30);
drb.addColumn("SocialNumber", "socialNumber", String.class.getName(),30);
drb.setTitle("Test of Dynamic Columns Jasper Report");
drb.setPrintBackgroundOnOddRows(true);
drb.setUseFullPageWidth(true);
dr = drb.build();
List data = new ArrayList();
Map map1 = new HashMap();
map1.put("firstName","Shainaz");
map1.put("lastName","Tamboli");
map1.put("middleName","Tajudin");
map1.put("socialNumber","9700000000");
data.add(map1);
System.out.println("Data:"+data);
JRDataSource ds = new JRBeanCollectionDataSource(data);
System.out.println("Ds:"+ds);
JasperReport report = DynamicJasperHelper.generateJasperReport(dr, new ClassicLayoutManager(), new HashMap());
byte[] buf = JasperRunManager.runReportToPdf(report, new HashMap(), ds);
//prepare the AMedia for iframe
mediais = (InputStream) new ByteArrayInputStream(buf);
amedia = new AMedia("AlarmHistoryReport.pdf", "pdf", "application/pdf", mediais);
//set iframe content
PDFreport.setContent(amedia);
}catch(Exception e)
{
}
}
]]></zscript>
</window>
</zk>
the code is executed successfully. But pdf report is not generated ?
why?
please help me to solve this problem.
Regards,
Shainaz
Push
Hi shainaz,
I just tried your code and it did generate a pdf report for me. So I guess it must be some enviroment problem at your end. make sure you have all the DynamicJasper dependancy libraries on server classpath.
//set iframe content PDFreport.setContent(amedia);
Working for me too. Are you sure the PDFreport as iFrame is correctly declared?
for testing, i did that's way and worked fine
<?page title="new page title" contentType="text/html;charset=UTF-8"?> <zk xmlns="http://www.zkoss.org/2005/zul"> <window title="new page title" border="normal" apply="${testeController}"> <iframe id="PDFreport" width="100%" height="100%"></iframe> <!--borderlayout height="100%"> <north maxsize="24" size="24" border="0"> </north> <center border="none" flex="true"> </center> </borderlayout--> </window> </zk>
Asked: 2010-07-28 01:58:15 +0800
Seen: 1,381 times
Last updated: Dec 08 '11