alestar Posted January 26, 2016 Share Posted January 26, 2016 Hi,I am trying to add a data source to a "part" of a Report Book. Or I should say passing the information to the fields on that "part" of the ReportBook( or why not, the Main Report). I have come to realize that this is not exactly how things were done with MainReport and Subreport(s). This is a new concept of jasper 6.2.0, so is not exactly the old known subreport and traditional way of doing things(or is it? Do not know..., please if you don't main, explain that too, thanks).I have read a lot of examples out there ( see one here), of how to pass data source through jasper parameters and then, utilize those parameters referenced in <dataSourceExpression>, but it does not seem to be the same way when working with "parts" of a Report Book.I can provide more information, but essentially what I need is to pass that data source to the part, that refer to my other report (or subreport if you will) named Content.jrxml, so the other report can print/render the right information of those fields. This report contains fields and no information is passing to those fields there went I print the Report Book to pdf. those fields are showing as null.However I am able to pass parameters successfully is just with passing the fields values and the data source in general, which I have a problemDoes anyone have done or deal with this before or knows of a good example/tutorial that could point me to the solution?Please help me, I don't know what else to do :(Thanks in advance! Link to comment Share on other sites More sharing options...
sadakar Posted January 28, 2016 Share Posted January 28, 2016 Hi,Recently, I worked out a real time solution on table of contents, book marks with the help of exsiting example which is 17th one in out of the box report examples.Try looking into it. I was able to pass parameters from book to parts(JRXMLS) and parts to sub reports(JRXMLS). Link to comment Share on other sites More sharing options...
Solution alestar Posted March 4, 2016 Author Solution Share Posted March 4, 2016 Sorry, it took me a long time to post back.I find a solution after Theodor (Jasper API main author give me some insights) and here is it! So, for the Jasper Report engine to handle multiple data sources passed to the report, you have to take into account 2 essential things:First, for every data source that you want to pass to the Report, you will need to create a new instance. Jasper engine consumes each data source iterating over all the elements in it. When it gets to the next page, there won't be any data, fields or information to read from and fill up the fields on that particular page. Therefore, information won't show up (null) or "blank", depending on the report template configuration. Last, make sure you pass a new JREmptyDataSource() when filling the report and pass the data sources instance as parameters, and later as sub-parameters for each individual page. Like this: jasperPrint = JasperFillManager.fillReport(jasperReport, jasperParameter,new JREmptyDataSource() );[/code]That way main report, or the wrapping report (the book), does not use any data source of the pages instances (if it does not need it, of course) and each page will get a data source, through the parameters.Ultimately, on runtime, it the page of the book can consume individually each data source without affecting each other. Let me know if this makes any sense? Thanks Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now