Multiple reports in BIRT


i remember asking for this a couple of years ago, but are there plans to allow multiple birt reports per workflow.

there are quite regularly needs to generate different reports on the same data set depending who the audience/customer/meeting is.

at the moment I am having to have multiple copies of the same workflow and data just so I can have different reports. This isn't ideal from a sharing workflow point of view, nor is it in terms of being consistent with data as some workflows may have more up to date data, etc.

please can a feature be added to generate as many reports per workflow as desired.



Are there any plans to allow multiple birt reports per workflow?


Hi Simon,

I've asked about this one before as well!  While you are waiting for a more informed answer, my understanding is that - yes - there are plans to allow eg individual metanodes to control report generation (I hope I am remembering at least some of that correctly...)

However, one immediate solution that may be of use to you is the ability to control the visibility of individual components, or entire tables, etc, in BIRT by referring to the value of a workflow variable.  This can certainly be used to effectively setup completely different reports, but all within the same workflow report template.


Kind regards


Thanks very much James,

That will be useful for now until something more user friendly is implemented.

I'm just investigating this now, found the Visibility tab in BIRT, now just trying to work out how to use the Expressions box with a global variable, hmmm...

Using the Report 010003_Chemical Report Example from the KNIME Public Workflow Server, if I highlight the PieChart and in Visibility section use the expression;

params["k-medoids count"].value=10

Then I would expect the piechart to disappear from the output if I select 10 k-medoids from the popup, however, no matter what value I enter, the piechart remains hidden in all cases. I'll have to have a play with this some more. 



Hi Simon,

A sripting "gotcha" (but one we've all fallen foul of!).  You need to use the equality operator == instead.




Brilliant James,

That certainly did the trick, and I'll now be able to get my custom reports doing this. I can't pretend to understand why a == is needed, if only I understood scripting!


Great news!

I'm sure you will take to scripting as quickly and enthusiastically as you have taken to KNIME, and BIRT!!  Think of == as asking a question about a value, whereas = sets a value:


a = 10    (we are setting the value here)

a == 10   (and here we are asking a question)

       eg    if(a == 10) {do something;}


...and in our case we do do something, because it does!




And beware in the java snippets, where sometimes you need the 'equals' function for a n object e.g. myString.equals("some stuff")

All to do with identity and equality, apparently, but beyond the fact it works, I lost it there too!