ReportServer 3.1.0 is now available

We are pleased to announce that the 3.1.0 version of ReportServer is now available for download. In the following some important features in this version:

JXLS2 Support

ReportServer 3.1.0 supports JXLS2 reports and templates together with the legacy JXLS1. This means that you can decide which version you want to use. You can even use both versions together. This flexibility should help you with your JXLS migration: you can leave all your existing reports in the legacy JXLS1 version, while you create new reports with the JXLS2 version.

As you can see in the following screenshot, ReportServer 3.1.0 uses by default JXLS2. You can use JXLS1 by ticking the option “Use Legacy JXLS 1”.

The same holds for JXLS1 and JXLS2 templates, as you can see in the following screenshot:

Amazon Redshift Support

Amazon Redshift is a fast, fully managed data warehouse that makes it simple and cost-effective to analyze all your data. It allows you to run complex analytic queries against petabytes of structured data.

ReportServer supports Amazon Redshift by its official JDBC driver As stated in the JDBC documentation, you have to obtain your JDBC URL from your AWS. An example URL is

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev

Google BigQuery Support

Google BigQuery is a serverless, highly-scalable, and cost-effective cloud data warehouse with an in-memory BI Engine and machine learning built in.

ReportServer 3.1.0 supports Google BigQuery datasources by the official Simba JDBC driver. Your URL should look similar to this:

jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=MyBigQueryProject;OAuthType=0;OAuthServiceAcctEmail=bqtest1@data-driver- testing.iam.gserviceaccount.com;OAuthPvtKeyPath=/SecureFiles/ServiceKeyFile.json;

Teradata Support

Teradata is a fully scalable relational database management system produced by Teradata Corp. It is widely used to manage large data warehousing operations.

ReportServer 3.1.0 supports Teradata datasources by the official Teradata JDBC driver. Your URL should look similar to this:

jdbc:teradata://IP/DATABASE=myDatabase

Library Upgrades

The following libraries are upgraded in ReportServer 3.1.0:

Apache POI
upgraded to 4.1.0
JXLS2
upgraded to 2.6.0
BIRT
upgraded to 4.8.0
Jasper
upgraded to 6.9.0
UserAgentUtils
upgraded to 1.21

Exporting Parameters

The parameter export of dynamic lists was largely improved in ReportServer 3.1.0. For this, you can now set the following report properties:

  • output_parameters
  • output_include_hidden_parameters
  • output_complete_configuration

Please note that these report properties are only available in Enterprise Edition.

If only “output_parameters” is true, then only the “real” parameters are being printed out, without separators, text, headers, etc.. If “output_complete_configuration” is set, EVERYTHING will be printed out. This includes user information, report information, report metadata, global variables, separators, headers, parameters, etc. With other words, everything that you can possibly include in the query.

Both “output_parameters” and “output_complete_configuration” take “output_include_hidden_parameters” into account. “output_include_hidden_parameters” controls whether hidden parameters are being exported (defaults to false).

For the following, “output_parameters” was set to true. In the first screenshot, you can see the Excel Export result. A new sheet “Parameters” is created and a list of parameters with their respective values is printed out:

For the HTML and PDF exports, this must be further configured in etc/dynamiclists/htmlexport.cf and pdfexport.cf, respectively, by using the variable ${parameterMapSimple}. As an example, refer to the following screenshot (pdfexport.cf):

You can see the result in the following screenshot. The parameters are printed in the specified position together with the dynamic list data in the exported PDF. The analogous configuration can be made for the HTML export.

For a list of all changes please refer to the release notes. The upgrade guide is available in the documentation area.

Happy reporting!

ReportServer 3.1.0 BETA release

Dear ReportServer users,

we are happy to release the BETA Version of ReportServer 3.1.0. You can download it from here:  http://www2.datenwerke.net/rsupdate/RS3 … ver-ee.zip

We made numerous improvements / changes. The complete list can be found here: https://reportserver.net/releasenotes/RS3.1.0.html

The most important changes that are relevant for testing are:

– RS-3576    New Feature     – Upgrade to POI 4.1.0Upgrade to POI 4.1.0 -> Test if the Excel Export of your Reports works fine
– RS-3579    New Feature     – Support JXLS2 reports -> Test if your JXLS 1 reports / templates for the dynamic list work fine
– RS-3588    New Feature     – Upgrade to BIRT 4.8.0 -> Test if your BIRT reports work fine.
– RS-3592    New Feature –  Upgrade to Jasper 6.9.0 -> Test if your JASPER reports work fine.
– Improvement    Combine offset and order queries in MySQL / MsSQL / PostgreSQL / Oracle dynamic list reports -> Test your dynamic lists

Please let us know if you have any problems with the BETA version, especially if some report was working in 3.0.8 but is not working correctly in 3.1.0-BETA. Of course, as this is a BETA version, it should not be installed in production environments. Always backup your data completely before installing the BETA release.

For testing, just unzip it into the webapps directory of your Tomcat installation. As always, you need to set the persistence.properties file and run the corresponding DDLs. As always, please restart your tomcat and delete your browser’s cache including temp files.

If you are upgrading from a previous installation, you first need ReportServer 3.0.8 correctly installed. Then, just run manually the following SQL script:
After running the script, please restart your tomcat and delete your browser’s cache including temp files.

MySQL 5:

ALTER TABLE RS_JXLS_REPORT ADD jxls_one BIT(1);
ALTER TABLE RS_JXLS_REPORT_A ADD jxls_one BIT(1);

UPDATE RS_JXLS_REPORT SET jxls_one = 1;

ALTER TABLE RS_JXLS_REPORT MODIFY jxls_one BIT(1) NOT NULL;

INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('updated', date_format(now(), '%Y-%m-%d %T'));
INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('script', 'RS3.0-14-MySQL5_UPDATE');
INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('schemaversion', 'RS3.0-14');

Oracle:

ALTER TABLE RS_JXLS_REPORT ADD jxls_one number(1,0);
ALTER TABLE RS_JXLS_REPORT_A ADD jxls_one number(1,0);

UPDATE RS_JXLS_REPORT SET jxls_one = 1;

ALTER TABLE RS_JXLS_REPORT MODIFY jxls_one number(1,0) NOT NULL;

INSERT INTO RS_SCHEMAINFO(ENTITY_ID, KEY_FIELD, value) VALUES((select max(i.ENTITY_ID)+1 ENTITY_ID from (select ENTITY_ID from RS_SCHEMAINFO union select 1 ENTITY_ID from dual)i), 'updated', to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO RS_SCHEMAINFO(ENTITY_ID, KEY_FIELD, value) VALUES((select max(i.ENTITY_ID)+1 ENTITY_ID from (select ENTITY_ID from RS_SCHEMAINFO union select 1 ENTITY_ID from dual)i), 'script', 'RS3.0-14-Oracle_UPDATE');
INSERT INTO RS_SCHEMAINFO(ENTITY_ID, KEY_FIELD, value) VALUES((select max(i.ENTITY_ID)+1 ENTITY_ID from (select ENTITY_ID from RS_SCHEMAINFO union select 1 ENTITY_ID from dual)i), 'schemaversion', 'RS3.0-14');

PostgreSQL:

ALTER TABLE RS_JXLS_REPORT ADD COLUMN jxls_one boolean;
ALTER TABLE RS_JXLS_REPORT_A ADD COLUMN jxls_one boolean;

UPDATE RS_JXLS_REPORT SET jxls_one = true;

ALTER TABLE RS_JXLS_REPORT ALTER COLUMN jxls_one SET NOT NULL;

INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('updated', to_char(now(), 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('script', 'RS3.0-14-PostgreSQL_UPDATE');
INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('schemaversion', 'RS3.0-14');

SQL Server:

ALTER TABLE RS_JXLS_REPORT ADD jxls_one bit;
ALTER TABLE RS_JXLS_REPORT_A ADD jxls_one bit;

UPDATE RS_JXLS_REPORT SET jxls_one = 1;

ALTER TABLE RS_JXLS_REPORT ALTER COLUMN jxls_one bit not null;

INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('updated', format(getdate(), 'yyyy-MM-dd HH:mm:ss'));
INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('script', 'RS3.0-14-SQLServer_UPDATE');
INSERT INTO RS_SCHEMAINFO(KEY_FIELD, value) VALUES('schemaversion', 'RS3.0-14');

We will be happy to get numerous feedback on the BETA version. For this purpose, we created this forum thread: https://forum.reportserver.net/viewtopic.php?id=1541

Best regards,

Your ReportServer Team

Teradata Support

ReportServer 3.1.0 will support Teradata databases!

Teradata is a fully scalable relational database management system produced by Teradata Corp. It is widely used to manage large data warehousing operations.

Of course, pivot reports for dynamic lists will support Teradata datasources because of the JDBC mechanisms of ReportServer!

Your ReportServer Team

JXLS2 Support

More good news!

The next ReportServer version 3.1.0 will support JXLS2 reports and templates along with the legacy JXLS1.

Jxls is a small Java library to make generation of Excel reports easy. Jxls uses a special markup in Excel templates to define output formatting and data layout.

Stay tuned!

Your ReportServer Team

Amazon Redshift

More good news! ReportServer 3.1.0 will support Amazon Redshift datasources!

Amazon Redshift is a fast, fully managed data warehouse that makes it simple and cost-effective to analyze all your data. It allows you to run complex analytic queries against petabytes of structured data.

Further, your beloved pivot reports for dynamic lists will support Amazon Redshift datasources because of the JDBC mechanisms of ReportServer!

Happy Reporting!

Your ReportServer Team

Google BigQuery

Exciting news ! ReportServer 3.1.0 will include support for Google BigQuery datasources!

Google BigQuery is a serverless, highly-scalable, and cost-effective cloud data warehouse with an in-memory BI Engine and machine learning built in.

Even your beloved pivot reports for dynamic lists will support BigQuery datasources, since these use the existing JDBC mechanisms of ReportServer!

Keep tuned and happy reporting!

Your ReportServer Team

ReportServer 3.0.8 is now available

We announce that the 3.0.8 version of ReportServer is now available for download!

Among others, the following new features are important:

Exporting Parameters

With ReportServer 3.0.8, report parameters can be exported together with the dynamic list reports. For this purpose, a new report property has been introduced: “output_parameters” ( true / false ). By setting this report property to “true”, the parameters will be automatically included in the Excel Export as shown in the following example:

Parameter configuration:

Excel Export:

For HTML and PDF export, this must be further configured in etc/dynamiclists/htmlexport.cf and pdfexport.cf, respectively, by using the new variable ${parameterMapSimple}. As an example, refer to the following screenshots:

Clearing Mondrian Data Cache

The Mondrian data cache can now be easily cleared with a new button in the datasource configuration dialog.

Default Parameters

We now made it much easier to include default parameters / global parameters / metadata parameters in the respective query window.

For a list of all changes please refer to the Release Notes. The upgrade guide is available in the documentation area.

Happy reporting!

 

ReportServer 3.0.7 is now available

We announce that the 3.0.7 version of ReportServer is now available for download!

Among others, the following new features are important:

Pivot-Report Export Schema to Mondrian

It was never so easy to create Mondrian schemas! Pivot reports can be now exported into Mondrian 3 and 4 formats with just a click. In such a way, these reports can help you for an easy and quick report design and analysis of your data, being at the same time flexible enough to be used in any other tool supporting Mondrian 3 or 4 formats. This of course includes ReportServer (Mondrian 4): you can create a Mondrian report using your exported schema without any further modification!

Pivot-Report MDX Editor and Query

MDX queries can be now directly edited and executed in pivot reports. This allows a maximum flexibility in fetching the exact data you need.

Mondrian Upgrade

The Mondrian library was upgraded from version 4.3.0.1 to 4.7.0.0-12.

For a list of all changes please refer to the Release Notes. The upgrade guide is available in the documentation area.

Happy reporting!

Adding a Color Picker as a Report Parameter

In this post, we would like to show you an example of how to add a javascript color picker as a report parameter, which can be then used as any other parameter in your SQL queries. This is the basis for further scripts we are posting here soon, so stay tuned!

We create a script parameter (https://reportserver.net/en/guides/admin/chapters/parameter-script/), since a script parameter allows you to write custom HTML and javascript.

For this purpose, download the latest jscolor javascript file from here: http://jscolor.com/. At the time of writing, the latest version was 2.0.5. Copy the downloaded jscolor.js file into this location: Fileserver Root/lib/jscolor/jscolor.js. Check in the ”Properties” tab the URL of this file in your installation. It should be something similar to: http://localhost:8080/reportserver/reportserver/fileServerAccess?id=2189950.

Now you can create the script which will be the basis of your script parameter. We name this script PalettePicker.groovy:

#html
<html>
  <head>
    <script type="text/javascript" src="http://localhost:8080/reportserver/reportserver/fileServerAccess?id=2189950"></script>
    <script type="text/javascript">
	var callback;

	function initParameter(param, cb){
		callback = cb;
		//alert("The current value is: " + param.defaultValue);
		document.getElementById("mycolor").value = param.defaultValue;
		document.getElementById("mycolor").style.backgroundColor = '#' + param.defaultValue;
		setValue(param.defaultValue);
	}

	function setValue(value){
		//alert("Updating the value to: " + value);
		callback(value);
	}

    </script>
  </head>
  <body>
    <input id="mycolor" class="jscolor" onchange="setValue(this.value);">
  </body>
</html>
As you can see in the script, you install a color picker and use the default value for setting the initial value and background color of the input field. The URL mentioned previously must be adapted to your configuration:
<script type="text/javascript" src="http://localhost:8080/reportserver/reportserver/fileServerAccess?id=2189950"></script>
Finally, you can create the script parameter in your report and set the script field to point to your PalettePicker.groovy script in your parameter’s ”Specific Properties” dialog. Set your parameter’s default value to e.g.: ”FF0000” (without apostrophes). You can now use the color picker’s value in your query as:
SELECT * FROM myTable where myField = ${mycolor}

Note that your parameter’s name must be set to ”mycolor” for using this query.

This approach works for virtually all javascript libraries. Script arguments are a powerful tool for extending ReportServer parameters to user-defined functionality.

Many thanks to Karolina Boboli for sending us this and allowing us to publish the script.

ReportServer needs your support

Dear ReportServer users,

the ReportServer team in InfoFabrik GmbH needs your support!
We would like to invite you to participate in The BI Survey 19, the world’s largest annual survey of business intelligence (BI) users.

BARC’s annual survey gathers input from thousands of organizations to analyze their buying decisions, implementation cycles and the benefits they achieve from using BI software.

As a participant, you will:

  • Receive a summary of the survey results when they are published
  • Be entered into a draw to win one of ten $50 Amazon vouchers
  • Ensure that your experiences are included in the final analyses

The BI Survey 19 should take about 15 minutes to complete and is for us and the ReportServer Community a great opportunity to increase the visibility of ReportServer. As a result, we will be able to incorporate your experiences and needs into the ReportServer development in a more significant manner in a near future.

The survey is available in the following link:
https://www.efs-survey.com/uc/BARC_GmbH/f42f/?a=69

Thank you in advance for your participation!

Your ReportServer Team