| Don't generate an empty report [message #1117503] |
Thu, 26 September 2013 10:11  |
Todd Eidson Messages: 2 Registered: September 2013 |
Junior Member |
|
|
I have several Birt Reports that I am trying to set up to run on a cron job that will email pdfs of the reports every morning. Everything is working fine as far as the generation and emailing goes; the only issue I am stuck with is this: if there is nothing to report, a pdf with just the report title is generated and emailed (a blank report, basically). I'd like to stop this report from being generated at all, so i can skip the emailing, if the pdf file does not exist.
I have been all over Google for two days now, and the closest I can find is this: http://www.eclipse.org/forums/index.php/t/458779/ in which someone was trying to solve a similar problem and received a push in the right direction, but not a complete solution.
It appears as if this can be done during the beforerender script... but how? I know I need to:
1.set a persistent global variable in the oncreate if there is indeed data to report.
2.get the persistent global variable in the beforerender script.
3.send the magic don't generate report command.
I'm doing all of generating and emailing from a php script, not Java, so I can't send commands like IEngineTask.cancel() (or can I???)
Yes, I know I can make a row in the report that says "No data to report", but that's not what my users want.
And yes, I could query the database outside of the report to determine if there is valid data to report or not, but i'd prefer not to.
And maybe I could even open and read the pdf, programmatically to see if there is anything there, but that sounds like more of a hassle than it's worth...
So, how do I do this?
Thanks.
|
|
|
| Re: Don't generate an empty report [message #1117825 is a reply to message #1117503] |
Thu, 26 September 2013 17:15   |
|
What are you calling to generate the report? A servlet? Do you control the code used to execute the report? Do you know if it's using separate run and render tasks? You might be able to modify your class to no run the render task if you pass out a variable through the app context or something. Not sure. Never tried it.
Regards,
Michael Williams
Actuate Corporation – The BIRT Company™
BIRT Exchange
Michael's BIRT Blog
|
|
|
| Re: Don't generate an empty report [message #1118549 is a reply to message #1117825] |
Fri, 27 September 2013 10:19  |
Todd Eidson Messages: 2 Registered: September 2013 |
Junior Member |
|
|
Thanks for the reply.
I'm using php to launch a shell command that calls the genReport.sh like this:
./genReport.sh -f PDF -o reportName.pdf -F reportName.rptdesign
I know that that genReport.sh defaults to run and render, but would also allow me to launch the run and render separately. That is an idea that crossed my mind, but I was unsure of how to execute it from there...
I have programmed in Java before (long before) and realize that I could have a lot more flexibility if I were to use Java, which is what I plan to do in the future, but I think it would take me too long to get up to speed to meet the deadline.
|
|
|
Powered by
FUDForum. Page generated in 0.01526 seconds