except my ajax.request如何传参?如何回复

Simple Guide To Sub-reports in JasperReports / iReport
Published Mon, 8 Feb 2010 & 65 comments
Reporting tools... why is it so hard??
It seems like it's practically a requirement that all business reporting tools be difficult to learn, use and work with. JasperReports / iReport is no different. Don't get me wrong it's a good solution to a certain kind of problem (and it's free and open source which doesn't hurt), but the iReport UI is (and I'll try to be kind) utilitarian at best.
Anyhow, to do any non-trivial report with iReport, you'll probably need to use sub-reports, which are not very clearly documented as to how the hell they work.
I'll be talking strictly about Java-bean collection data sources for this article, so you will need to translate if you are doing direct SQL queries or something else.
The Java-bean data source is nice because we can utilise our existing domain layer in order to create our report, rather than replicating the same logistics in SQL (or worse - stored procedures) and thereby having two places to update when requirements change.
To easily understand how sub-reports work, we need to understand how JasperReports works in general.
JasperReports are stored in XML files (JRXML) - if you've created any report you'd be familiar with these files. These XML files are translated to Java source code by JasperReports, and then compiled into regular Java CLASS files, which are executable by the Jasper engine. You could say that Jasper compiles the JRXML files into Java, and then Java will compile these into byte code.
When you execute a report you are essentially executing Java code. Keep this in mind when filling out expression fields in your report, and things will start to make more sense.
Generally you use a sub-report in a situation where you have a two or more child lists of data relating to a single parent element. A common use case would be a report with multiple details bands of different types. I say "different types", because if you have nested children that relate to the same data set, then generally you can achieve formatting using groups with breaking on certain fields in the data set. Things get complicated though where you have one big report, which has multiple unrelated data sets inside it.
To avoid getting too meta - here's a concrete example...
This report has a single main detail band (contact details - first and last names) and two sub-detail bands for each contact - addresses and phone numbers.
In Jasper we need to use two sub-reports to implement this. But before we get too far, let's look at how we would create Javabeans to store this data.
The addresses:
package com.visural.
public class AddressBean {
public String getAddress() {
public void setAddress(String address) {
this.address =
public String getType() {
public void setType(String type) {
this.type =
The phone numbers:
package com.visural.
public class PhoneBean {
public String getNumber() {
public void setNumber(String number) {
this.number =
public String getType() {
public void setType(String type) {
this.type =
And the contact (parent) bean:
package com.visural.
import java.util.L
public class ContactBean {
private String firstN
private String lastN
private List&AddressBean&
private List&PhoneBean&
public List&AddressBean& getAddresses() {
public void setAddresses(List&AddressBean& addresses) {
this.addresses =
public String getFirstName() {
return firstN
public void setFirstName(String firstName) {
this.firstName = firstN
public String getLastName() {
return lastN
public void setLastName(String lastName) {
this.lastName = lastN
public List&PhoneBean& getPhones() {
public void setPhones(List&PhoneBean& phones) {
this.phones =
Finally, we need a test data source to use in developing our report. Here's the factory for the report pictured earlier...
package com.visural.
import java.util.A
import java.util.L
public class ContactFactory {
public static List&ContactBean& create() {
ContactBean stub = new ContactBean();
stub.setFirstName("John");
stub.setLastName("Smith");
AddressBean address1 = new AddressBean();
address1.setType("Home");
address1.setAddress("123 Fake St\nFaketown\nFK 12345");
AddressBean address2 = new AddressBean();
address2.setType("Work");
address2.setAddress("321 Bogus St\nFaketown\nFK 12345");
stub.setAddresses(Arrays.asList(address1, address2));
PhoneBean phone1 = new PhoneBean();
phone1.setType("Home");
phone1.setNumber("03 ");
PhoneBean phone2 = new PhoneBean();
phone2.setType("Work");
phone2.setNumber("03 ");
PhoneBean phone3 = new PhoneBean();
phone3.setType("Mobile");
phone3.setNumber("");
stub.setPhones(Arrays.asList(phone1, phone2, phone3));
return Arrays.asList(stub);
The thing to notice here is that we have modelled the Javabeans exactly as we would if they were being used for some other purpose, i.e. we haven't done anything special to make them usable in JasperReports / iReport.
In Jasper we configure a Javabeans data source that is created from a Collection, using our ContactFactory.create() method. We then add fields as follows, and create our report layout:
Note that the field names correspond to the Javabean property names.
Now for the important part. We then need to set the data source on the sub-report's properties:
So we can just use an "data source expression" as our connection for the sub-report, and for the expression we create a data source on the fly using our collection of java beans from our current data source's "addresses" and "phones" fields. "new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(datasource.getPhones())" is the Java code we would write if we were to create a Javabean data source in our regular Java code. JasperReports will replace $F{phones} with "datasource.getPhones()" (or its equivalent) as part of it's JRXML to Java compilation process.
T our sub-reports define fields that match the AddressBean and PhoneBean properties:
With all that in mind, it really is a case of "it's simple when you know how", but be that as it may, I couldn't find a concise description of how to do this in my googling. Hopefully this post will fill that gap. Perhaps everyone is still writing SQL-based reports against a single database? :) I don't know, but using Javabeans is a nice flexible alternative to use SQL-based reports that gives you a lot of options in the long term.
If you're still confused you can download the above code, and the JRXML reports in a .
Also, try one of these books. Jasper & iReport's documentation is pretty thin online, so having a reference book can be handy -
About the Author
Richard Nichols is an Australian software engineer with a passion for making things.
Follow him on
or subscribe by .
You might also enjoy reading -
Discuss / Comment
on Thu, 18 Mar 2010 at 18:42
Thank you thank you THANK YOU!! Most of the model of my application will reside in EJB and this Bean solution to reports is PERFECT for my scienario!
on Fri, 23 Apr 2010 at 12:29
I downloaded your example however you are missing code for compiling the reports and testing them.
Could you provide the test code please?
Thanks, Tina
on Fri, 23 Apr 2010 at 18:42
Hi Tina, I used iReport to compile and test the reports -
on Thu, 11 Nov 2010 at 11:09
Hi rn I m trying ti use you examples, how will you pass the data from java to ireport ?I have something like this but is not working// PDFreportSource = new FileInputStream(&demo.jasper&);OutputStream outputStreamPDF = new FileOutputStream(&Demo.pdf&);JasperRunManager.runReportToPdfStream(reportSource, outputStreamPDF, ?);Thank you in advanceRaul
Richard Nichols
on Fri, 12 Nov 2010 at 01:12
@raulYou need to create a data source to pass as a parameter, e.g.new JRBeanCollectionDataSource(MyBeanFactory.getBeanCollection(parameter));
on Fri, 12 Nov 2010 at 10:31
I LOVE YOU! :D THX
on Tue, 21 Dec 2010 at 04:03
Hi I have sth. like this:FileInputStream reportSource =
reportSource = new FileInputStream(&C:\\Documents and Settings\\mkolodziejski\\Moje dokumenty\\Czynsze\\ReportDemo\\src\\com\\visural\\report\\demo.jasper&);
} catch (FileNotFoundException ex) {
Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
OutputStream outputStreamPDF =
outputStreamPDF = new FileOutputStream(&Demo.pdf&);
} catch (FileNotFoundException ex) {
Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
JasperRunManager.runReportToPdfStream(reportSource, outputStreamPDF, new HashMap(), new JRBeanCollectionDataSource(ContactFactory.create()));
} catch (JRException ex) {
Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
}yet it does not work, it throws NoClassDefFoundErrorAny ideas why?
Richard Nichols
on Wed, 22 Dec 2010 at 00:16
@Mat Sounds like are missing some of the Jasper JARs or dependencies from your project.
on Fri, 7 Jan 2011 at 14:27
I've been stumbling with subreports, reading tutorials, nothing did it for me as simple as this one! Thank you very much, this post is a life saver :D
Sean Overby
on Tue, 11 Jan 2011 at 08:25
Thank you very very very much!
on Tue, 18 Jan 2011 at 17:49
thanks for the article. I tried this approach in the report, and it works. But my application has a collection of BusinessBean in the AddressBean class. i.e. a subreport inside a subreport. I used similar approach to create a subreport inside the address.jrxml. But I keep getting the following error: Any ideas? Thanks so much!!net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : businesses at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:711) at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:329) at public class AddressBean {
private S private L //NEW field}public class BusinessBean { ...}
on Wed, 26 Jan 2011 at 15:13
A clear and concise explanation of how it works and how to do it. Excellent. Just what I was looking for. Thank you very much.
on Thu, 27 Jan 2011 at 09:57
I'm still having the same problem since last time I posted the message here.
I'm able to make the subreport for the list of collection, but I cannot go to the next level (Dist and SpecialAppt Lists in below) and it always has error cannot find the bean.
Am I in the wrong approach? Please advise what's the CORRECT way to design the following Java Bean Hierarchies: Thanks so much, and I really so frustrated and don't know what to do. public class Account implements java.io.Serializable {
private String acctId;
private String acctT
private List apptList = new ArrayList();
//etc...}public class Appt implements Serializable {
private String apptId;
private List distList = new ArrayList();
private List ppsAppList = new ArrayList();
//etc...}public class Dist
{....}public class SpecialAppt { ...}
on Sun, 30 Jan 2011 at 10:55
It has been very useful to read your tutorial, I could make subreports work in 15 minutes. I was quite worried as I realized that I needed subreports (for simple reports I could get away with group break),
as I hadn't managed to make them work, until now. Thank you for your post.
on Wed, 9 Feb 2011 at 07:49
Thank you very very very much!But I have a
problem. the first record missing from my subreport. I gone through the FAQ as suggested in jasper site and i did as they instructed in the topic(Why is the first record missing from my subreport?).i added a new parameter in the master report.And also i chaged the parameters in the subreport as given below: ...
$P{MySubreportDataSource}...And now not a single value is populated in my report.Even the fields in the master report were not populated.thanks, Irina
on Thu, 3 Mar 2011 at 19:04
Thank you! It) You save my llife :D
on Fri, 4 Mar 2011 at 02:58
How to execute the given code without main() and i write main in other class but in compilation/filling report it gives null pointer Exception ........ public static void main(String[] args) {String jasperFile = /home/suryakirany/workspace/Jasper_Reports/jrxml/fridayreport.try {
List ls = ContactFactory.createBeanCollection();
dataSource = new JRBeanCollectionDataSource(ls);
jasperPrint = JasperFillManager.fillReport(jasperFile,
new HashMap(), dataSource);
System.out.println( --------- fill succ);
}catch (Exception e) {
e.printStackTrace();
// mainjava.lang.NullPointerException at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) at com.bms.base.ContactJasperReport.main(ContactJasperReport.java:26)i also checking in debug mode but it is indicating currentBean as NULL
sohow to resolve this error........
Tito Livio Santos Trindade
on Mon, 2 May 2011 at 15:20
Thank you guy!It works well. It was very important to me.My best regards...
on Mon, 16 May 2011 at 14:50
@irinaI was having the same issue when trying to use a table instead of a subreport. I'm using JavaBeans set datasource and was able to fix it by cloning the master datasource:* ((net.sf.jasperreports.engine.data.JRBeanCollectionDataSource)$P{REPORT_DATA_SOURCE}).cloneDataSource()I'll also have to move your table / subreport out of the detail band. I have it on the summary band and it's working fine for me. No missing records.
:-)Hope it helps.
on Thu, 10 Nov 2011 at 06:13
Thanks, Man! You're a wizard! I wonder how your brain came out with this example! It's quite simple but very difficult to think about!Jey
on Thu, 1 Dec 2011 at 00:10
Hi, I have a question. I made the tutorial but using my own clases, but it has an error, it says:Exception in thread &main& net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subtotal})I don't know why. My &subtotal& is like your &phones& It is a field on my report and it is a list and on my java class too.Do you have any idea? Thanks
Joseph Salomon
on Wed, 15 Feb 2012 at 07:31
@M WernerBy cloning the datasource I could pass the collections in the subreport.Thanks!
on Fri, 23 Mar 2012 at 07:18
i am working on struts .Following is my code written in action class:- try
ContactFactory cf = new ContactFactory();
double randm = Math.random();
String strSomeRandomString = String.valueOf(randm);
ArrayList myArray=new ArrayL
//here we will call function that will set bean and lst
l_listDiscription.add(cf.create());
// InvHardDiskBean[] tmp = new InvHardDiskBean[1];
//InvHardDiskBean[] fiArr = (InvHardDiskBean[]) l_listDiscription.toArray(tmp);
JRBeanCollectionDataSource mainBeanArray = new JRBeanCollectionDataSource(l_listDiscription);
l_listDiscription =//
JRBeanArrayDataSource mainBeanArray =//
if (fiArr != null)//
mainBeanArray = new JRBeanArrayDataSource(fiArr);//
JRBeanCollectionDataSource datasource = new JRBeanCollectionDataSource(l_listDiscription);//
JasperReport jasperReport1 =
String contextPath = getServlet().getServletContext().getRealPath(&/&);
File f1 = new File(contextPath + &Reports& + File.separator + &demo.jrxml&);
File f2 = new File(contextPath + &pdfresource& + File.separator + strSomeRandomString + &.pdf&);
File f3 = new File(contextPath + &Reports& + File.separator + &demo.jasper&);
JasperPrint jasperPrint1 =
jasperReport1 = pileReport(f1.getAbsolutePath());
// JasperPrint jasperPrint1 = JasperFillManager.fillReport(jasperReport1,hm,mainBeanArray);
if (f3.exists())
jasperPrint1 = JasperFillManager.fillReport(f3.getAbsolutePath(), null, mainBeanArray);
// jasperPrint1 = JasperFillManager.fillReport(f3.getAbsolutePath(), hm);
System.out.println(&Report not compiling&);
pileReportToFile(f1.getAbsolutePath(), f3.getAbsolutePath());
//jasperReport1 = pileReport(f1.getAbsolutePath());
jasperPrint1 = JasperFillManager.fillReport(f3.getAbsolutePath(), null, mainBeanArray);
//jasperPrint1 = JasperFillManager.fillReport(f3.getAbsolutePath(), hm);
System.out.println(&Report Compile Itself&);
String pdfFilePath = f2.getAbsolutePath();
JasperExportManager.exportReportToPdfFile(jasperPrint1, pdfFilePath);
// JasperExportManager.exportReportToHtmlFile(jasperPrint1,pdfFilePath);
OutputStream out1 = new FileOutputStream(f2.getAbsoluteFile());
JRAbstractExporter exporter = new JRPdfExporter();
Map parameterExport = new HashMap();
parameterExport.put(JRExporterParameter.JASPER_PRINT, jasperPrint1);
parameterExport.put(JRPdfExporterParameter.OUTPUT_STREAM, out1);
exporter.setParameters(parameterExport);
exporter.exportReport();
out1.close();//
System.out.println(&URL..........&+RequestUtils.serverURL(request)+request.getContextPath()+&/pdfresource/PrintInvoiceSILetter&+l_strInvNo+l_strInvDoctype+l_strCompanyCode+&.pdf&);
response.sendRedirect(RequestUtils.serverURL(request) + request.getContextPath() + &/pdfresource/& + strSomeRandomString + &.pdf&);//
JasperReport pileReport(&PrintInvoiceSILetter1.jrxml&);//
JasperPrint jasperPrint1 = JasperFillManager.fillReport(JReport,hm,l_objConnection);//
JasperViewer.viewReport(jasperPrint1, false);
return mapping.findForward(Constants.SUCCESS_FORWARD + &Update&);
}Am not getting the report.Plz help me.
Oscar Pelayo
on Sat, 24 Mar 2012 at 23:33
I'm really grateful, thanks to people like you, others learn.
on Mon, 23 Apr 2012 at 11:59
heythx very much, your post helped me more then all the result i found on google related to this topic - thx for sharing your experiences....best p?de
on Thu, 26 Apr 2012 at 03:28
Thanks Richard !You save my life. Your example works.
on Mon, 30 Apr 2012 at 09:35
Thanks very much Richard, it worksFor the people that cant run this. The main is this way:try {
FileInputStream reportSource =
reportSource = new FileInputStream(&/home/igorov/proyectos/cromotex/ReportDemo/src/com/visural/report/demo.jasper&);
List ls = ContactFactory.create();
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(ls);
JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource,
new HashMap(), dataSource);
String home = System.getProperties().getProperty(&user.home&);
JasperExportManager.exportReportToPdfFile(jasperPrint, home + &/Escritorio/reportePrueba.pdf&);
//Para visualizar el pdf directamente desde java
JasperViewer.viewReport(jasperPrint, false);
System.out.println(&fill succ&);
}And if throw NoClassDefFoundError, then you should download this jars:- commons-logging- commons-collections- commons-digester- commons-beanutils- iText
orangegiraffa
on Thu, 19 Jul 2012 at 06:08
Thank you very much!The tutorial helped me a lot!It solved my problems with nested list elements!Thank you very much again!
on Fri, 3 Aug 2012 at 15:47
Thank you! Very informative and useful!
on Mon, 20 Aug 2012 at 16:53
Thanks you ! as you say, ?it?s simple when you know how?, this post was the light for me !
on Wed, 29 Aug 2012 at 10:36
Thanks very useful!!!!!
on Tue, 11 Sep 2012 at 18:01
Thank you very much!!!Small and easy described guide!!!More from them king in i-net! :)because ?it?s simple when you know how?
on Thu, 13 Sep 2012 at 05:08
Clear and complete, GREAT!Tks Richard!
on Thu, 1 Nov 2012 at 02:46
Hi Thanks for your very useful tutorial.I need to generate pdf using jasper.I need to pass only one list.But some fields in main detail band and some other fields on sub report details band.How can i doPlease give me some suggetions
on Thu, 8 Nov 2012 at 09:48
Hi Richard,Thank you very much for this useful information.Thanks,Punam Purohit
on Fri, 7 Dec 2012 at 02:40
Thanks a lot...It's really helps
on Mon, 28 Jan 2013 at 21:22
Thanks! This was really helpful.
bogusjourney
on Wed, 6 Mar 2013 at 16:41
This helped alot, thanks!
Joseph Karln
on Thu, 4 Apr 2013 at 19:21
The correct main is like this:
File reportFile = new File (&C:\Users\uuu\JaspersoftWorkspace\MyReports\demo.jasper&);
JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(ContactFactory.create());
HashMap mapa = new HashMap();
mapa.put(&SUBREPORT_DIR&, &C:\Users\uuu\JaspersoftWorkspace\MyReports\&);
JasperPrint jasperPrint = JasperFillManager.fillReport(reportFile.getPath(), new HashMap(), beanCollectionDataSource);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, new java.io.File(&C:\Users\uuu\JaspersoftWorkspace\MyReports\demo.pdf&));
exporter.exportReport();
andres caicedo
on Fri, 24 May 2013 at 00:59
thanks for all... the tutorial showed me the light
Roman Kostenko
on Fri, 31 May 2013 at 02:25
I've investigated more than 30th sources and couldn't combine several reports in one.
Thanks a lot for the FULL and DETAILED article!
Celine Patag
on Fri, 7 Jun 2013 at 04:03
I noticed that create() returns a list with only one item in it. Is there a way to do this by
making create return ContactBean directly and not inside a list?
This way I can put my report parameters as fields of ContactBean like firstname and lastname that doesn't repeat. :)
@santiagotapiay
on Fri, 21 Jun 2013 at 11:32
Hey Richard, amazing article, I was about to going insane
trying to understand subreports until I found this awesome article. Thank you so much dude. Greetings from Ecuador (South America). ;)
on Fri, 19 Jul 2013 at 11:29
Thanks a lot ! Very useful et clear, you save my day.
on Thu, 25 Jul 2013 at 02:30
I am new in iReport and i'm using iReport design 5.0.4. I have created 2x separate reports(subreports) and wanted to combine them to pull only 1 report. Created another report as a main and linked both subreports to main. Both subreports each has a parameters created on them. So i have created
same parameters on main as well but when i executed i retrieve a blank report(The document has no pages error message). Where must i change or update to make this work?
Please can someone assist.
Thanks in Advance
on Wed, 28 Aug 2013 at 04:18
I try this solution, i've this error :
java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
Note : my report and subreport are in java language
Ann Savinovskikh
on Tue, 10 Dec 2013 at 01:16
Thank you for your simple tutorial! It's very useful!
on Thu, 6 Feb 2014 at 14:42
Thank you. It's very useful.
I have problems with use list (Databeans) to extract value.
Help me please.
on Tue, 18 Mar 2014 at 10:14
Thanks a lot man to put in a 5 minutes article (to read, not to write) what other didn't manage to explain properly in pages (if not whole books) of documentation. You saved me a loooot of time.
Daniel L??pez
on Thu, 27 Mar 2014 at 08:03
Thank you very much!!!!!!!!! awesome!!!! finally I got subreports working!!!!!!
AntuanSoft
on Tue, 27 May 2014 at 04:10
I??m agree with you to use Beans instead of SQL, its an Anty-patttern to mix your model data (queries) inside you reports, You queries and model dato have to be in your Dao Layer not in your JasperReport.
&using Javabeans is a nice flexible alternative to use SQL-based reports&.
Nice tutorial to understand subreports. Thanks.
Kishor Kumar
on Mon, 2 Jun 2014 at 23:52
Thanks for the content you gave about subreport. I have a problem : I wish to iterate an ArrayList&String& in my subreport, which I am passing to subreport (from parent) as parameter.
Sarat Babu
on Sun, 6 Jul 2014 at 13:01
I have one doubt here, what if bean is extending another one.
How do we get base bean properties.
public class Patient{
private String firstName=&&;
private String lastName=&&;
public class Entity extends Patient{
private int entityid=0;
private String entityName=&&;
How do i get properties of Patient and Entity in report?
Narayan Joshi
on Fri, 25 Jul 2014 at 07:46
The Package does not have any main class?
What is the solution
I would be greatful if you could provide the main class also
Narayan Joshi
on Sun, 27 Jul 2014 at 22:11
none of the above listed main files are working
Richard Nichols
on Sun, 27 Jul 2014 at 22:33
@Narayan Joshi
There is no main class. You attach this JAR file in your iReport classpath.
Narayan Joshi
on Mon, 28 Jul 2014 at 00:33
I am getting the following error while compiling from iReport
Error compiling the report Java source.
java.lang.NoSuchMethodError:??org.codehaus.pilerConfiguration.setUseNewGroovy(Z)V
Narayan Joshi
on Mon, 28 Jul 2014 at 00:42
Now while executing in iReport the following error is generated
Error??filling??print...??Could??not??load??object??from??location??:??E:\NetBeans??Projects\ReportDemo\src\com\visural\report\demo_address.jasper
net.sf.jasperreports.engine.JRException:??Could??not??load??object??from??location??:??E:\NetBeans??Projects\ReportDemo\src\com\visural\report\demo_address.jasper?? ????????at??net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:266)?? ????????at??net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:311)?? ????????at??net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:260)?? ????????at??net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:274)?? ????????at??net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:403)?? ????????at??net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)?? ????????at??net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)?? ????????at??net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)?? ????????at??net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)?? ????????at??net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:791)?? ????????at??net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:714)?? ????????at??net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)?? ????????at??net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)?? ????????at??net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)?? ????????at??it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:910)?? ????????at??java.lang.Thread.run(Unknown??Source)
Fernando Camillo
on Thu, 7 Aug 2014 at 10:37
Thanks man! Your tutorial saved my day!
on Mon, 13 Oct 2014 at 05:37
Can any one provide me the working sample?
on Tue, 14 Oct 2014 at 03:28
How to set the &JavaBeans set Data source& for this project in iReport?
on Fri, 19 Dec 2014 at 04:37
Thank you for your post, very helpful.
on Tue, 13 Jan 2015 at 04:09
Hi, nice article !!
But how can i set the &JavaBeans set Data source&? It's possible also to add an XML file? There's some example of it?
isac Martin
on Mon, 4 May 2015 at 09:40
hi, Thank you for your post
on Tue, 14 Jul 2015 at 08:01
how do you do to display the diffrent list in tow details separated.
Add a comment
Sorry, you need Javascript enabled in order to post.
{{e.error}}
Thanks for your comment!/
Name Required.
Email Valid email address required.
Post Comment Posting message, please wait...
& 2014 Richard Nichols

我要回帖

更多关于 如何得到request 的文章

 

随机推荐