Hi everyone!
Even though I have quite some time working with birt I'm still quite a newbie about how should I use... Currently I have a java standalone application that runs a set of BIRT reports, some of them have their queries defined in them (lets call them type A), while some of them receive the whole dataset as a report parameter (from now on type

... When I execute one of those reports with a lot of data (either type A or

I get a stackoverflow error because java runs out of memory basically (if I'm not wrong), so instead of trying to allow java to have more memory available when running, I'm trying to see if there is another way to properly do this 'cause I might be doing something wrong here...
First of all I'd like to know if there is a way for me to pass a Java Object to the BIRT report as a parameter and execute it inside BIRT to obtain the dataset I should use, instead of having the dataset twice in memory (one in my java application and the second one in the BIRT report/engine)?. Can I do that in a place other than in the onPrepare section of my scripted dataset?
Also, is there a way to generate a paginated report? For example, can I generate a 150pages pdf report 1 page at a time and then join it somehow later in a disk file? without losing the report's own pagination (as in "page x of 150"?
Last but not least, is there any documentation about BIRT standards or best/recommended practices that I could use in the future?
Thanks in advance for you help

PS: I'm using BIRT 3.7