Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » BIRT » Don't generate an empty report(need to cancel rendering of a blank pdf)
Don't generate an empty report [message #1117503] Thu, 26 September 2013 10:11 Go to next message
Todd Eidson is currently offline 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 Go to previous messageGo to next message
Michael Williams is currently offline Michael Williams
Messages: 1237
Registered: July 2009
Senior Member

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 Go to previous message
Todd Eidson is currently offline 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.
Previous Topic:Is there a BIRT emitter for JSON (or charts that render JSON strings)
Next Topic:text wrapping problem in merged cells
Goto Forum:
  


Current Time: Mon Oct 07 12:33:36 EDT 2013

Powered by FUDForum. Page generated in 0.01526 seconds