0

Dynamic Jasper problem

asked 2010-07-28 01:58:15 +0800

shainaztamboli gravatar image shainaztamboli
120 1 1 3

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

delete flag offensive retag edit

5 Replies

Sort by ยป oldest newest

answered 2010-08-08 15:09:21 +0800

terrytornado gravatar image terrytornado flag of Germany
9393 3 7 16
http://www.oxitec.de/

Push

link publish delete flag offensive edit

answered 2010-08-09 22:19:13 +0800

ashishd gravatar image ashishd flag of Taiwan
1972 6

Hi shainaz,
>>the code is executed successfully
there is an empty catch block in your code. Can you check if some exception is thrown there and if so what does the stack trace tell you about it?

link publish delete flag offensive edit

answered 2010-08-09 23:01:58 +0800

ashishd gravatar image ashishd flag of Taiwan
1972 6

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.

link publish delete flag offensive edit

answered 2010-08-10 01:55:39 +0800

terrytornado gravatar image terrytornado flag of Germany
9393 3 7 16
http://www.oxitec.de/

//set iframe content
PDFreport.setContent(amedia);

Working for me too. Are you sure the PDFreport as iFrame is correctly declared?

link publish delete flag offensive edit

answered 2011-12-08 11:59:05 +0800

mhj gravatar image mhj flag of Brazil
806 1 7

updated 2011-12-08 12:01:16 +0800

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>

add 100% width and heigth because shows very small

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2010-07-28 01:58:15 +0800

Seen: 1,381 times

Last updated: Dec 08 '11

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More