NextReports 9 changed the UI by adopting bootstrap and less css preprocessor. This means the old way of adding a new theme is now obsolete.
To make a new theme for NextReports Server you will have to know the following:
- there is a themes folder with 3 defined folders from start : green, red, blue
- you must create a new theme folder which is similar with red or blue theme folder (the entire structure)
- inside images folder you must put your logo image for the specific theme
- inside less folder you have style.less identical with that from red or blue
- the color changes are taken inside variable.less file
Here you can look for all colors, but the important ones are:
// Theme Colors
@main-color: #FF5722;
@main-light-color: #FFDDD3;
@main-lightest-color: #FFEFE9;
@main-lightest-bg-color: #faf8f7;
@main-dark-color: #DF4C1E;
@main-darkest-color: #A03715;
@secondary-color: #4D433F;
@secondary-light-color: #E6D9D5;
@secondary-dark-color: #332C2A;
@body-color: #edecec;
You can use an editor like brackets . The advantage is that you need to compile less files to obtain the final style.css. And 'brackets' editor can be set to compile a less file when you 'save' it (LESS Autocompile extension), which is very handy. You practically modify variable.less file and save / compile it. Then you save / compile style.less which will generate your style.css file.
All i18n files must contain a new property called: Settings.personalize.theme.<color>=<name of theme>
Monday, February 01, 2016
Thursday, January 21, 2016
NextReports Server: See your refresh time
Any widget inside a NextReports Server dashboard can have a refresh time. By default this is zero and no refresh is done. If it is set to a bigger value, then after the specified number of seconds the widget is auto refreshed.
Sometimes, if a dashboard has many widgets, you may want to find which of them have a refresh > 0. From version 9.0 this will be easily possible because widget's header will contain the actual refresh time if any:
The time is nicely show in hours, minutes and seconds (if any):
Sometimes, if a dashboard has many widgets, you may want to find which of them have a refresh > 0. From version 9.0 this will be easily possible because widget's header will contain the actual refresh time if any:
The time is nicely show in hours, minutes and seconds (if any):
Wednesday, January 20, 2016
NextReports 9: A New Header Menu
Before NextReports 9 a Tab Menu was used to show all the features. Because this was not scalable and increasing number of tabs made the application UI looked a bit ugly when a tab or more were falling to next row, NextReports 9 will use a new header menu which will contain all the sections.
By default more space can be used by server UI because there are no tabs anymore:
When user clicks the menu button from top left, the menu will slide from left to right showing available sections:
Actions from top right like 'Change password' and 'Log out' where grouped to a top right actions menu:
By default more space can be used by server UI because there are no tabs anymore:
When user clicks the menu button from top left, the menu will slide from left to right showing available sections:
Actions from top right like 'Change password' and 'Log out' where grouped to a top right actions menu:
Tuesday, December 22, 2015
Santa is working hard ...
NextReports Server will have a new user interface and Santa is working very hard to it.
The new UI uses Bootstrap and brings many improvements in how the entire layout is created and shown to users.
The themes were redesigned and now they are applied also to the Login page:
The tabs were replaced with a vertical menu offering now more space and allowing for scalability (number of tabs was big enough to go to second row and creating an ugly effect). You can take a look at some screenshots:
Because changing the UI was a big step it wasn't time to release a new version of NextReports this year. So, instead of an awaited 8.3, a new version 9.0 will be released in January.
Merry Christmas and A Happy New Year to all NextReports users!
The new UI uses Bootstrap and brings many improvements in how the entire layout is created and shown to users.
The themes were redesigned and now they are applied also to the Login page:
The tabs were replaced with a vertical menu offering now more space and allowing for scalability (number of tabs was big enough to go to second row and creating an ugly effect). You can take a look at some screenshots:
Because changing the UI was a big step it wasn't time to release a new version of NextReports this year. So, instead of an awaited 8.3, a new version 9.0 will be released in January.
Merry Christmas and A Happy New Year to all NextReports users!
Thursday, November 26, 2015
NextReports Server: More Settings
NextReports 8.3 will add a lot of new settings for users.
Inside Application Settings a new "Distribution" set is found. This groups all email settings and two new:
"General" section will have new properties like:
Data Source definition will contain two new properties for connections pool:
Any table widget will have a new property called : "Enable filters".
If this is checked, then a row with filters will be seen:
These are just a few properties that will increase the level of configuration inside NextReports Server.
Inside Application Settings a new "Distribution" set is found. This groups all email settings and two new:
- Distributor Date Pattern
- Distributor Time Pattern
"General" section will have new properties like:
- Polling interval (s) : number of seconds after a poll is done (to show messages to users)
- Upload Size (MB) : maximum size of a file that can be upload to server (in previous version it was 1MB and it was not configurable)
Data Source definition will contain two new properties for connections pool:
- Increment connections number (if pool is full a number of new connections will be created inside it)
- Idle connection time (time a connection can stay inside pool if it is idle)
Any table widget will have a new property called : "Enable filters".
If this is checked, then a row with filters will be seen:
These are just a few properties that will increase the level of configuration inside NextReports Server.
Thursday, October 29, 2015
NextReports: line spacing
From version 8.3 a new cell property will be available: line spacing.
This property is in percents and its default value is 100. This property has meaning if wrap text is set to true and only for PDF, HTML and DOCX exporters.
A simple header with default line spacing looks like:
If we increase the line spacing to 140, it will look like:
This property is in percents and its default value is 100. This property has meaning if wrap text is set to true and only for PDF, HTML and DOCX exporters.
A simple header with default line spacing looks like:
If we increase the line spacing to 140, it will look like:
Monday, October 26, 2015
NextReports: Report with Empty Data
When NextReports generates a report, in case there is no data, the generation process stops without creating any file.
From version 8.3 we will extend this with a new feature. Users will be able to configure how the generation process must behave regarding empty data. On any report, a new property called "show empty data" will be available. By default it is set to false, meaning no file will be created in case of empty data.
But if we set it to true, then the report will be generated showing everything is available in all bands except detail band. "Timesheet" demo report from designer will show like this:
In addition, users can create some layout in detail band for cases with empty data. For example, in our "Timesheet" report we add a new detail row with cell "No Data Found in Query!".
To make this row be hidden in case there is data, we must select for this cell a "hide when expression" property. A new variable called EMPTY_DATA will help us to achieve this.
Now, when we generate the "Timesheet" report and there is no data, the result will look like:
From version 8.3 we will extend this with a new feature. Users will be able to configure how the generation process must behave regarding empty data. On any report, a new property called "show empty data" will be available. By default it is set to false, meaning no file will be created in case of empty data.
But if we set it to true, then the report will be generated showing everything is available in all bands except detail band. "Timesheet" demo report from designer will show like this:
In addition, users can create some layout in detail band for cases with empty data. For example, in our "Timesheet" report we add a new detail row with cell "No Data Found in Query!".
To make this row be hidden in case there is data, we must select for this cell a "hide when expression" property. A new variable called EMPTY_DATA will help us to achieve this.
Now, when we generate the "Timesheet" report and there is no data, the result will look like:
Tuesday, September 29, 2015
Deploy NextReports Server on WebLogic 12c
First, you should create a nextreports-server.war folder and unarchive the war file here.
Inside nextreports-server.war/WEB-INFyou should add weblogic.xml file:
Next, we have to register reports folder as a web context. We create a reports.war folder as a sibling to nextreports-server.war, and inside it we have a WEB-INF folder with two files:
web.xml
References:
Publish static context to WebLogic
Inside nextreports-server.war/WEB-INFyou should add weblogic.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.1/weblogic-web-app.xsd">
<wls:weblogic-version>12c</wls:weblogic-version>
<wls:jsp-descriptor>
<wls:debug>true</wls:debug>
</wls:jsp-descriptor>
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.joda.time.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
Here we specified we want another joda library than that used by weblogic.Next, we have to register reports folder as a web context. We create a reports.war folder as a sibling to nextreports-server.war, and inside it we have a WEB-INF folder with two files:
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> </web-app>and weblogic.xml where we specified local path to our reports folder:
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-web-jar.dtd">
<weblogic-web-app>
<container-descriptor>
<index-directory-enabled>true</index-directory-enabled>
</container-descriptor>
<virtual-directory-mapping>
<local-path>/appsvr/reports</local-path>
<url-pattern>*</url-pattern>
</virtual-directory-mapping>
<context-root>/reports</context-root>
</weblogic-web-app>
After your server starts, you should accordingly modify your server settings like base url, reports url , mail server and so on.References:
Publish static context to WebLogic
Tuesday, August 18, 2015
NextCharts: Bar Charts with Negative Values
NextCharts has now support for bar charts with negative values. A new chart type called nbar was introduced. From NextReports 8.2 version this feature will be part of designer and server.
A simple bar chart with negative and positive values will show all values over X axis if chart type is bar:
If we just change the type from bar to nbar, X axis will be considered at 0, so positive values will be shown over it and negative values will be shown under it:
In case all values for nbar are positive, then it will be no difference between bar with startingFromZero=true and a nbar chart.
In case all values for nbar are negative, then the chart will have all its values under X axis:
nbar chart can support as styles glass (as above) or normal:
A simple bar chart with negative and positive values will show all values over X axis if chart type is bar:
If we just change the type from bar to nbar, X axis will be considered at 0, so positive values will be shown over it and negative values will be shown under it:
In case all values for nbar are positive, then it will be no difference between bar with startingFromZero=true and a nbar chart.
In case all values for nbar are negative, then the chart will have all its values under X axis:
nbar chart can support as styles glass (as above) or normal:
Wednesday, August 05, 2015
NextCharts: Highlight selection
From version 1.5, in addition to tooltip message, NextCharts allows to highlight selected element through a changed color. This version of library will be used by NextReports Server 8.2
There are different situations which were taken into account. For simple 2D charts like line, area, bar, pie, bubble, selected element (like bar, arc, circle) will have another color, lighter or darker depending on the brightness of the current color. For 3D charts like dome, cylinder, parallelepiped, selected element will be the 'visible' part of it and it needs some more drawing adjustments to show (after fill) all the lines and arcs that are supposed to be on top.
Let's see some examples of highlighting.
Bar highlighting:
Stackedbar highlighting:
Line highlighting:
Pie highlighting:
Cylinder highlighting with different area selection between top and other elements:
There are different situations which were taken into account. For simple 2D charts like line, area, bar, pie, bubble, selected element (like bar, arc, circle) will have another color, lighter or darker depending on the brightness of the current color. For 3D charts like dome, cylinder, parallelepiped, selected element will be the 'visible' part of it and it needs some more drawing adjustments to show (after fill) all the lines and arcs that are supposed to be on top.
Let's see some examples of highlighting.
Bar highlighting:
Stackedbar highlighting:
Line highlighting:
Pie highlighting:
Cylinder highlighting with different area selection between top and other elements:
Tuesday, July 14, 2015
NextReports: Grid Style for Charts
NextReports charts can have a grid shown for x, y values. Till version 8.2, this grid can only be a full-line of a specific color. From version 8.2 this grid can also have style like line, dashed line or dotted line. This style is specified for both X and Y grid lines:
By default, simple line style is used:
The other two styles are dashed line:
and dotted line:
This feature is available on all modern browsers and it is supported from Firefox 27+, IE 11+.
By default, simple line style is used:
The other two styles are dashed line:
and dotted line:
This feature is available on all modern browsers and it is supported from Firefox 27+, IE 11+.
Monday, June 22, 2015
Adjust your SQL queries to see data series
Many users have data in a specific table format with a 'type' column and want to show inside a chart series for every value of 'type'.
Lets take a simple example of a DAY table (where NAME column is our 'type') :
We want to show DATE on x axis and series for MORNING, NOON, EVENING on y axis. To make this happen NextReports must obtain a query result like:
Then it is very easy to add DATE on x axis and MORNING_V, NOON_V, EVENING_V on y axis as column series.
This transformation can be easily obtained using sub-queries. For example, on our table we will use following sql:
Lets take a simple example of a DAY table (where NAME column is our 'type') :
NAME VALUE CREATION_DATE ----------------------------------------------------------------- MORNING 90 2015-06-12 NOON 210 2015-06-12 EVENING 60 2015-06-12 MORNING 85 2015-06-13 NOON 240 2015-06-13 EVENING 50 2015-06-13 MORNING 92 2015-06-14 NOON 235 2015-06-14 EVENING 55 2015-06-14
We want to show DATE on x axis and series for MORNING, NOON, EVENING on y axis. To make this happen NextReports must obtain a query result like:
CREATION_DATE MORNING_V NOON_V EVENING_V ------------------------------------------------------------------------------------------------- 2015-06-12 90 210 60 2015-06-13 85 240 50 2015-06-14 92 235 55
Then it is very easy to add DATE on x axis and MORNING_V, NOON_V, EVENING_V on y axis as column series.
This transformation can be easily obtained using sub-queries. For example, on our table we will use following sql:
SELECT DISTINCT a1.CREATIONDATE, (select VALUE from DAY a2 where a2.name='MORNING' and a2.CREATIONDATE=a1.CREATIONDATE) as MORNING_V, (select VALUE from DAY a2 where a2.name='NOON' and a2.CREATIONDATE=a1.CREATIONDATE) as NOON_V, (select VALUE from DAY a2 where a2.name='EVENING' and a2.CREATIONDATE=a1.CREATIONDATE) as EVENING_V FROM DAY a1
Thursday, June 04, 2015
NextReports Server: JNDI Data Source
Starting with version 8.1, NextReports Server (war) can use JNDI protocol to connect to such data sources defined inside some web server.
A new type (JNDI) was added and users will just need to specify the JNDI name:
A new type (JNDI) was added and users will just need to specify the JNDI name:
Tuesday, May 26, 2015
NextReports: Batch Mode
From version 8.1 users can run/schedule a report in batch mode. What does this mean?
If a report has a single-selection parameter with a source and if this parameter is selected as a "batch parameter" then running it in batch mode will generate a report for every value of that batch parameter.
To make this right there are two conditions that must be met:
As an example, we use a report that shows the Timesheet for an employee on all projects he is assigned to. There are two parameters : Employee and Work code (work, meeting, administration, travel) so we can see the Timesheet for that employee for a specific list of work codes.
Here we see that the parameter we want to use in batch (Employee) is not set as dynamic, but the other parameter (Code) which is a child of Employee parameter is set as dynamic.
Batch Mode is practically a new step in run/schedule wizard process:

"Employee" parameter was set as a batch parameter. This simple selection means the report will be generated for all "Employee" values.
Second field, called Batch Data Query, is a simple sql select that gives an email address for every Employee. First column in query must be the same as that used in source for Employee parameter, which is defined as:
select distinct employeeid, firstname || ' ' || name as fullName from employee
Second column in query is the email column.
Batch Data Query is needed only if we need to send every generated report to it's actual employee.
Mail Destination Step in this case is allowed to not define a To property, because it is dynamically set at run time:
But we can also select a To property if we also want to send all generated reports to a static email address. In mail step, we can see that besides existing template values until version 8.1 (like ${date}, ${time}, ${name}) we can use parameter values as $P{Employee} or $P{Code}. This allows to have a mail message customized for every employee.
If a report has a single-selection parameter with a source and if this parameter is selected as a "batch parameter" then running it in batch mode will generate a report for every value of that batch parameter.
To make this right there are two conditions that must be met:
- Batch parameter must not be set as dynamic
- All chained parameters that are children of batch parameter must be set as dynamic.
As an example, we use a report that shows the Timesheet for an employee on all projects he is assigned to. There are two parameters : Employee and Work code (work, meeting, administration, travel) so we can see the Timesheet for that employee for a specific list of work codes.
Here we see that the parameter we want to use in batch (Employee) is not set as dynamic, but the other parameter (Code) which is a child of Employee parameter is set as dynamic.
Batch Mode is practically a new step in run/schedule wizard process:

"Employee" parameter was set as a batch parameter. This simple selection means the report will be generated for all "Employee" values.
Second field, called Batch Data Query, is a simple sql select that gives an email address for every Employee. First column in query must be the same as that used in source for Employee parameter, which is defined as:
select distinct employeeid, firstname || ' ' || name as fullName from employee
Second column in query is the email column.
Batch Data Query is needed only if we need to send every generated report to it's actual employee.
Mail Destination Step in this case is allowed to not define a To property, because it is dynamically set at run time:
But we can also select a To property if we also want to send all generated reports to a static email address. In mail step, we can see that besides existing template values until version 8.1 (like ${date}, ${time}, ${name}) we can use parameter values as $P{Employee} or $P{Code}. This allows to have a mail message customized for every employee.
Thursday, May 21, 2015
NextReports Server: Connection Logging
Starting from NextReports 8.1 connection creation is written to log for debug purposes. By default all connections are written to connections.log found inside <server_install_folder>/logs folder. Default log level type is INFO
Inside<server_install_folder>/webapps/nextreports-server/WEB-INF/classes/log4j.properties user can change log level from INFO to DEBUG, to see information from the pool when a connection is created/used:
Users will be able to see on DEBUG level how many connections are in pool (min and max values), how many connection are active, idle or busy.
In case you experience some connections problems (like timeouts) and you are sure your database is up and running, you should put this log's level on DEBUG and start accumulating data to reproduce the problem again.
Inside
log4j.logger.ro.nextreports.server.util.ConnectionUtil=INFO, CONNECTION_FILE log4j.additivity.ro.nextreports.server.util.ConnectionUtil=false
Users will be able to see on DEBUG level how many connections are in pool (min and max values), how many connection are active, idle or busy.
In case you experience some connections problems (like timeouts) and you are sure your database is up and running, you should put this log's level on DEBUG and start accumulating data to reproduce the problem again.
Tuesday, May 19, 2015
NextReports: Analysis versus Table Widgets
Even if a table widget inside a dashboard seems to be similar to an analysis table, there are many differences between them.
"Analysis" is a special object with following major differences than a widget table:
"Analysis" is a special object with following major differences than a widget table:
- Analysis shows raw data (no patterns are used) and that makes the possibility to easily have sortable columns
- Analysis can have a list of sortable columns (sort by column1, then column 2, ….)
- Analysis persists sortable columns
- Analysis has a lot of other features like selection, grouping, filtering, pagination, freeze.
- Analysis uses local data brought here by an ETL process
- Table Widget has behind a report with a layout
- Table widget may contain formatted data (if patterns are used like for dates, numbers,..)
- The report behind a table widget may contain different type of values on same column (because report's layout can have more than one detail band).
- Table Widget may have a style (foreground and background colors)
- Table widgets will have a header with sorting columns.
- Sorting is added only to those table widgets that contain only one detail band (the actual database columns). On all others table widgets sorting has no sense.
- Sorting on table widgets is not persisted, so if you will leave dashboard and return or if you do a refresh the sorting will disappear. But if you sort, you are able (before refresh) to Save to Excel with the used sorting.
Thursday, May 14, 2015
NextReports: yAxis with 'starting from zero' property
From NextReport 8.1, Next Charts library will add a new property on yAxis called 'starting from zero'.
The minimum value on yAxis is computed so that all y values be some 'nice' numbers. This minimum value can be sometimes negative, sometimes 0 and sometimes positive. In case of positive numbers users may desire to start yAxis from zero if computed minimum value is bigger than zero.
Let's take following chart, for example, with values 44, 32, 34, 31. Computed min value is 30.
If users want to see the chart starting from zero, this is easily done by selecting 'starting from zero' property:
In this case computed min value is considered zero and the chart will look accordingly:
In case of negative values, this property has no effect.
The minimum value on yAxis is computed so that all y values be some 'nice' numbers. This minimum value can be sometimes negative, sometimes 0 and sometimes positive. In case of positive numbers users may desire to start yAxis from zero if computed minimum value is bigger than zero.
Let's take following chart, for example, with values 44, 32, 34, 31. Computed min value is 30.
If users want to see the chart starting from zero, this is easily done by selecting 'starting from zero' property:
In this case computed min value is considered zero and the chart will look accordingly:
In case of negative values, this property has no effect.
Subscribe to:
Posts (Atom)















































