Pentaho Reporting 3.7-RC1: Now with Drill-Linking

Finally, after a long long time, we are once more close to release a new version of the Pentaho Reporting tools.

There are a couple of new things in this release, so lets start with the obvious one:


The Drill-Linking extensions give you a user-friendly way to define URLs that point to other reports or XActions and to parametrize those URLs properly. Earlier versions were not really fun to use in that respect. You had to memorize the long and ugly and complex URL of the XAction or Report and then you had to conjure up some formula magic to fill in your parameters. And for that, you need to remember all the quazillion various parameters that target report declared. And everything was fine as long as you did not attempt to pass multi-selection parameters, which open up a totally new hell of URL computation. And remember to URL-encode your parameters or you are in trouble as well. Arghh!

These days, this task is a lot easier. Open up the hyperlink editor by selecting your element and hitting “Format->Hyperlink..”. Select what kind of link you want to produce. Enter the target file name or target base URL. Add the parameters by hitting the green plus. Fill in all the parameter names and values. Done.

For XActions and PRPTs, hit the large blue “network” icon to refresh the parameter view and you will see all your declared parameters coming in. (Note: For GA, this will change to auto-populate, as manual work is soooo 1980!)

RC1-Caveat: Make sure you enter a correct formula in the parameter values. Just entering “hello” will result in a error, static strings must be quoted. For GA (and in the CI-builds) this is fixed already and the ordinary Excel semantic of editing cells and formulas applies: = starts a formula, ‘ starts a text and everything else will be automatically checked for its type.

Charts and images can finally have a image map to provide tooltips and links on hot areas of the generated image.

Tame your parameter and your BI-Server’s report viewer

The BI-Server viewer has become a lot smarter these days and you can now exercise tight control over the auto-submit checkbox (is it there, and what is its value), the available export types and much more.

In the next blog posting I will demonstrate how to limit the output types that are shown to the user to just a few ones.

For date parameter you are now able to specify the time-zone it should use. This removes a lot of ambiguity on what date or time you are actually specifying when selecting a date.

The post-processing and available values for your parameter are now also cleanly defined and thus make sure that every parameter uses the selected values of the preceding parameters for its work.

All power to the Charts

The new post-processing expression on the charts finally unlocks the full power of JFreeChart for the reporting engine. With that expression you gain raw access to the JFreeChart object. Sure, this is raw access, and thus not for everyone. Granny wont be willing to go down there, but all the consultants who need to “get a job done(tm)” will appreciate its power.

A chart without a series name will finally auto-generate one. This simple change removes one of the major stumbling blocks for new users and makes sure you get to your results faster.

Index and Table-Of-Contents

The index and table-of-contents feature that I prototyped some time ago got a good and hard trashing and hardening by Gunter Rombauts and thus finally carries the seal of “approved for daily use”. (Note: Some of the fixes are only in the CI version.)

New formula functions

  • MULTIVALUEQUERY: Queries a array of values from a datasource
  • SINGLEVALUEQUERY: Queries a single of value from a datasource
  • MPARAMETERTEXT: produces a HTTP/HTML multi-selection parameter prompt
  • PARAMETERTEXT: produces a HTTP/HTML single-selection parameter prompt
  • QUOTETEXT: encodes any text as XML, JavaScript, HTML or formula string
  • DATETIMEVALUE: casts/converts a value into a timestamp
  • ARRAYLEFT, ARRAYRIGHT, ARRAYCONCATENATE, ARRAYMERGE: Simplifies the use of arrays and multiselection parameters
  • WEEKDAY, YESTERDAY: convenience functions to make working with dates easier
  • DRILLDOWN: Create a drill-down URL. Yes, thats the same stuff you could define in the UI.

Bugs, squashed, fried and on a delicious dish

I personally fried a large amount of bugs in this release. Those buggers got on my nerves and that is not healthy at all. Several layouter bugs have hit the grave so that subreports in conjunction with the keep-together feature behave sane now.

So what are you waiting for?

Go and grab your fresh copy of Pentaho Reporting from Sourceforge or a smokin’ fresh build from our Hudson-CI system.

This entry was posted in Release on by .

About Thomas

After working as all-hands guy and lead developer on Pentaho Reporting for over an decade, I have learned a thing or two about report generation, layouting and general BI practices. I have witnessed the remarkable growth of Pentaho Reporting from a small niche product to a enterprise class Business Intelligence product. This blog documents my own perspective on Pentaho Reporting's development process and our our steps towards upcoming releases.

2 thoughts on “Pentaho Reporting 3.7-RC1: Now with Drill-Linking

  1. VivianO

    Hello Thomas, The DATETIMEVALUE function casts a timestamp into a value. The DATEDIF function returns the difference between two dates in months, days or years.Please, I need a function that returns the value of the difference between two dates in seconds, hours and minutes. I use pentaho report designer 3.8.0 and I’m kinda new to it.

  2. Thomas Morgner

    You can get the difference as date via

    =DATETIMEVALUE([date2] – [date1])

    However, the built in date-formats we have do only format times in relation to dates. So hours printed stop at 24 and would form a day then.

    Other than that you could use the fact that Excel dates in OpenFormula are using a simple model, where days are the integer part of the number and hours and seconds are the fractional part.

    So to get the hours, use

    =([date2] – [date1]) / 24

    To get minutes use

    =([date2] – [date1]) / (24*60)

    and so on.

    Please also note that such questions *should* be asked in the forum at
    instead. Your chances of getting questions answered are a lot better there.

Comments are closed.