Until version 6.2 , NextReports Designer could be checked for new updates using proprietary Install4J process. This allowed the users to see if a new version was available, to download it and to run the installer immediately.
From version 6.2 we want to make the designer to not depend on such proprietary process. Changing this means the designer has to read the last version from an URI and if this version is new compared to the current version, it gives the user a link to the NextReports download page.
Even this is more minimalistic than the existing wizard in previous versions, the benefits will be seen on a long-term NextReports evolution.
Monday, September 30, 2013
Wednesday, August 21, 2013
NextReports Engine: Integration Demo Hints
After you download nextreports-integration-demo from NextReports Site, you can run some sample code to see how to use engine api.
To make it easily for every java developer, from version 6.2, you can define a DemoDefinition class for your database. You can see such class for a Firebird connection, where you define database name, report /chart name, map of parameters and database connection:
To make it easily for every java developer, from version 6.2, you can define a DemoDefinition class for your database. You can see such class for a Firebird connection, where you define database name, report /chart name, map of parameters and database connection:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
public class FirebirdDemoDefinition implements DemoDefinition {
@Override
public String getDatabaseName() {
return "Firebird Test";
}
@Override
public String getReportName() {
return "Projects.report";
}
@Override
public Connection createDemoConnection() throws ClassNotFoundException, SQLException {
Class.forName("org.firebirdsql.jdbc.FBDriver");
String url = "jdbc:firebirdsql:192.168.16.32/3050:employee.fdb";
System.out.println("Connect to '" + url + "'");
return DriverManager.getConnection(url, "SYSDBA", "sysdba");
}
@Override
public Map<String, Object> createDemoParameterValues() {
Map<String, Object> parameterValues = new HashMap<String, Object>();
return parameterValues;
}
@Override
public String getChartName() {
return null;
}
}
You just have to add your definition to DemoDefinitionFactory class and inside DemoUtil class change your NextReports home and your definition:public static final String NEXTREPORTS_HOME = "D:\\Programs\\NextReports 6.2"; public static DemoDefinition def = DemoDefinitionFactory.get(DemoDefinitionFactory.FIREBIRD_DB);This will help to test faster your JDBC driver compliance with NextReports.
Monday, August 05, 2013
NextReports: add your JDBC driver
Starting from version 6.2 NextReports will allow users to add their own JDBC drivers. We are using Vertica JDBC driver here as example. In version 6.2 Vertica driver will be added by default.
Such process can be resumed by following steps :
1. JDBC jar driver is added inside lib folder (designer and server). From 7.0, designer has a jdbc-drivers folder.
2. Driver must be added in driver_templates.xml which can be found :
If you need to register more dialects, you use different suffix indexes.
Such process can be resumed by following steps :
1. JDBC jar driver is added inside lib folder (designer and server). From 7.0, designer has a jdbc-drivers folder.
2. Driver must be added in driver_templates.xml which can be found :
- inside designer in installation folder in \lib\nextreports-designer-6.1.jar
- inside server in installation folder in \webapps\nextserver\WEB-INF\classes
3. You need to create a Dialect class for that type of driver. This dialect does a mapping between database types and java sql types and has some utilities methods.Vertica com.vertica.jdbc.Driver jdbc:vertica://<server>:<port>/<database> 5433
import java.sql.Types;
import ro.nextreports.engine.util.ProcUtil;
public class VerticaDialect extends AbstractDialect {
public VerticaDialect() {
super();
registerColumnType("binary", Types.BLOB);
registerColumnType("varbinary", Types.BLOB);
registerColumnType("bytea", Types.BLOB);
registerColumnType("raw", Types.BLOB);
registerColumnType("boolean", Types.BOOLEAN);
registerColumnType("char", Types.CHAR);
registerColumnType("varchar", Types.VARCHAR);
registerColumnType("date", Types.DATE);
registerColumnType("timestamp", Types.TIMESTAMP);
registerColumnType("timestamp with timezone", Types.TIMESTAMP);
registerColumnType("datetime", Types.TIMESTAMP);
registerColumnType("smalldatetime", Types.TIMESTAMP);
registerColumnType("double precision", Types.DOUBLE);
registerColumnType("float", Types.FLOAT);
registerColumnType("float8", Types.FLOAT);
registerColumnType("real", Types.DOUBLE);
registerColumnType("bigint", Types.BIGINT);
registerColumnType("smallint", Types.SMALLINT);
registerColumnType("integer", Types.INTEGER);
registerColumnType("int", Types.INTEGER);
registerColumnType("tinyint", Types.INTEGER);
registerColumnType("int8", Types.INTEGER);
registerColumnType("decimal", Types.INTEGER);
registerColumnType("numeric", Types.NUMERIC);
registerColumnType("number", Types.NUMERIC);
registerColumnType("money", Types.NUMERIC);
registerColumnType("time", Types.TIME);
registerColumnType("time with timezone", Types.TIME);
registerColumnType("interval", Types.TIME);
}
public String getCurrentDate() throws DialectException {
return "current_date";
}
public String getCurrentTimestamp() throws DialectException {
return "current_timestamp";
}
public String getCurrentTime() throws DialectException {
return "current_time";
}
public String getCurrentDateSelect() {
return "select current_date";
}
public String getRecycleBinTablePrefix() {
return null;
}
public String getCursorSqlTypeName() {
return ProcUtil.REF_CURSOR;
}
public int getCursorSqlType() {
return Types.OTHER;
}
public String getSqlChecker() {
return "select 1";
}
}
-Dnext.dialect.database_1="Vertica Database" -Dnext.dialect.class_1="mypackage.VerticaDialect"First parameter must be the name taken from DataBaseMetaData.getDatabaseProductName().
If you need to register more dialects, you use different suffix indexes.
Wednesday, July 17, 2013
NextReports Sight: an Android client for NextReports Server (Part Three)
NextReports Sight can show your widgets one by one by choosing them from a list after a dashboard was previously selected. If "Expand info" setting is selected user will see inside any action some information:
For flash charts and drill widgets, users can click to see the value or to go to the next chart or table in the drill chain.
Widgets will auto-size if phone orientation is changed between PORTRAIT and LANDSCAPE.
Previous Parts
Part One
Part Two
- logged user inside dashboards list panel
- selected dashboard inside widgets list panel
- widget title inside widget view panel
For flash charts and drill widgets, users can click to see the value or to go to the next chart or table in the drill chain.
Widgets will auto-size if phone orientation is changed between PORTRAIT and LANDSCAPE.
Previous Parts
Part One
Part Two
Monday, July 15, 2013
NextReports Sight: an Android client for NextReports Server (Part Two)
After NextReports Sight server settings are configured, user can connect to it using his server credentials. The following must be ok:
By clicking a dashboard, user will see the list of all widgets inside dashboard. This list does not contain collapsed widgets. Type of widget can be identified by the left icon between table, alarm, chart, indicator, drill and pivot.
Previous Parts
Part One
- phone must be able to connect to internet
- NextReports Server must be up and running
- credentials must be correct
By clicking a dashboard, user will see the list of all widgets inside dashboard. This list does not contain collapsed widgets. Type of widget can be identified by the left icon between table, alarm, chart, indicator, drill and pivot.
Previous Parts
Part One
Wednesday, July 10, 2013
NextReports Sight: an Android client for NextReports Server (Part One)
NextReports Server has a lot of functionality, but most important are dashboards, reporting, monitor and scheduling. Taking the first feature, dashboards, it can be very useful to look at your personal data using a mobile phone. To make it possible, without zooming on the web page inside your browser, a new client application for Android systems was created. This is called NextReports Sight and is a new member inside NextReports Suite applications.
NextReports Sight first version is able to communicate with a NextReports Server in order to bring your widgets to an Android gadget in a more viewable and enjoyable form. When you start the application a login is shown.
User must define inside application settings how to connect to NextReports Server through some server properties like protocol, domain and port. From Menu, users can select Settings and then a new panel is shown.
By default the demo version of NextReports Server is configured. Also inside settings there are two other properties: first will enable sounds inside the application, second will show by default some information expanded or not.
Because we need to communicate with a server, the api used by the Android client must have a version equal or less than the server version. Required server version can be seen using About action.
NextReports Sight first version is able to communicate with a NextReports Server in order to bring your widgets to an Android gadget in a more viewable and enjoyable form. When you start the application a login is shown.
User must define inside application settings how to connect to NextReports Server through some server properties like protocol, domain and port. From Menu, users can select Settings and then a new panel is shown.
By default the demo version of NextReports Server is configured. Also inside settings there are two other properties: first will enable sounds inside the application, second will show by default some information expanded or not.
Because we need to communicate with a server, the api used by the Android client must have a version equal or less than the server version. Required server version can be seen using About action.
Tuesday, June 25, 2013
NextReports: WebService Authentication
NextReports Server offers a web service api to be used by different client applications. To be able to use any web service, users have to login with their credentials, otherwise no calls can be made to the api.
NextReports Server uses Jersey for REST web service implementation and Spring Security for authentication and authorization. To make authentication possible, Jersey integrates with Spring through a special servlet defined inside web.xml:
NextReports Server uses Jersey for REST web service implementation and Spring Security for authentication and authorization. To make authentication possible, Jersey integrates with Spring through a special servlet defined inside web.xml:
All web service calls are mapped to a special url pattern /api/* so to apply security a filter-mapping is added in web.xml:jersey.springServlet com.sun.jersey.spi.spring.container.servlet.SpringServlet com.sun.jersey.config.property.packages com.asf.nextserver.api 1 jersey.springServlet /api/*
Web Service client has a method to authenticate the user:
spring.securityBasicAuthorizationFilter
/api/*
public boolean isAuthorized() throws WebServiceExceptionBy default, Jersey has a big timeout value after a requests returns if no connection to the server is possible. All client applications need a smaller timeout, so a new method was added for this:
public boolean isAuthorized(int timeout) throws WebServiceExceptionwhere timeout is a value in milliseconds.
Monday, June 17, 2013
NextReports: Multiple Report
In general users want to insert a report inside another report to simulate a master-detail relation. To NextReports this means to insert a report inside the detail band of the master report, communication being done through a simple convention: the sub-report must have a parameter with the same name as a column from the master query.
This natural way (vertically data scaling) translates to generate a sub-report for every result from our query.You can read more about it here.
There are some situations when users want to scale their data horizontally and not vertically as in a master-detail form. Your query can become from too complicated to nearly impossible in achieving such thing. To make it easily possible, NextReports 6.1 introduced a new type of element inside report layout: Multiple Report.
Multiple Report element (FOR) contains a report with a special property: "multiple report sql" (FOR-SQL). The report must have a parameter with the same name as the column from FOR-SQL.
At run time, this FOR element is replaced with a number of report elements. This number is the number of values returned by the FOR-SQL. A value from FOR-SQL will be passed to corresponding report's parameter.
To make it more clear, lets look at a simple example. We have a simple database with scores from EURO 2012 tournament. These scores are grouped on stages like Group First Game, Group Second Game, Group Third Game and so on until the Final. Inside database there are also kept the scores entered by some users. Any user guessed the result exactly, guessed just the prognostic 1/X/2 or did not guess anything and was rewarded with 3 points, 1 point, 0 points respectively. We want a report to show all the results as they happened and all the results entered by users with the rewarded points. We also want for every user to compute the total number of rewarded points per stage and per entire tournament along with some other statistics.
To make an idea of what we want to accomplish I will start with showing you the results. You can see in the first image every stage with the games, scores, users scores and users rewarded points:
In the second image (the end of report) you can see the statistics for the entire tournament:
This kind of report is a typical candidate for a "Multiple Report" usage. What we can observe by looking at the previous images is that report can be divided between to elements:
So we need to create two reports. First one has just a grouping by stage (to show games and scores) and the labels for statistics section:
Second report has the same number of visible rows with the same fonts and padding for every corresponding row from the first report (We used some detail rows D1-D4 just to compute some expressions for statistics section, these expressions are hidden, and the detail rows D1-D4 are also hidden):
Second report also has a user parameter allowing us to run it for every user.
After that we can create a new report with the following layout (just two cells where we insert the previous reports):
We can see that the second report was added as a "Multiple Report" (FOR element). When we click the FOR element we can see it's properties with the new "multiple report sql". This query will return us the names of the users who entered scores for the tournament:
When you notice that you need a "Multiple Report" for your design, it is always easier (especially if you have a lot of rows) to create at first a single report which will show everything just for a single entity (user in our case). Then you should cut it in two reports (left and right parts) and create the new report as showing before. In this way you are sure that all rows from the split parts have the same fonts and padding, so when you run the master report there will be no vertical shifts.
This natural way (vertically data scaling) translates to generate a sub-report for every result from our query.You can read more about it here.
There are some situations when users want to scale their data horizontally and not vertically as in a master-detail form. Your query can become from too complicated to nearly impossible in achieving such thing. To make it easily possible, NextReports 6.1 introduced a new type of element inside report layout: Multiple Report.
Multiple Report element (FOR) contains a report with a special property: "multiple report sql" (FOR-SQL). The report must have a parameter with the same name as the column from FOR-SQL.
At run time, this FOR element is replaced with a number of report elements. This number is the number of values returned by the FOR-SQL. A value from FOR-SQL will be passed to corresponding report's parameter.
To make it more clear, lets look at a simple example. We have a simple database with scores from EURO 2012 tournament. These scores are grouped on stages like Group First Game, Group Second Game, Group Third Game and so on until the Final. Inside database there are also kept the scores entered by some users. Any user guessed the result exactly, guessed just the prognostic 1/X/2 or did not guess anything and was rewarded with 3 points, 1 point, 0 points respectively. We want a report to show all the results as they happened and all the results entered by users with the rewarded points. We also want for every user to compute the total number of rewarded points per stage and per entire tournament along with some other statistics.
To make an idea of what we want to accomplish I will start with showing you the results. You can see in the first image every stage with the games, scores, users scores and users rewarded points:
In the second image (the end of report) you can see the statistics for the entire tournament:
This kind of report is a typical candidate for a "Multiple Report" usage. What we can observe by looking at the previous images is that report can be divided between to elements:
- a stage element which shows the games from a stage and the scores
- a repetitive user element which shows the scores entered by user and the rewarded points
So we need to create two reports. First one has just a grouping by stage (to show games and scores) and the labels for statistics section:
Second report has the same number of visible rows with the same fonts and padding for every corresponding row from the first report (We used some detail rows D1-D4 just to compute some expressions for statistics section, these expressions are hidden, and the detail rows D1-D4 are also hidden):
Second report also has a user parameter allowing us to run it for every user.
After that we can create a new report with the following layout (just two cells where we insert the previous reports):
We can see that the second report was added as a "Multiple Report" (FOR element). When we click the FOR element we can see it's properties with the new "multiple report sql". This query will return us the names of the users who entered scores for the tournament:
When you notice that you need a "Multiple Report" for your design, it is always easier (especially if you have a lot of rows) to create at first a single report which will show everything just for a single entity (user in our case). Then you should cut it in two reports (left and right parts) and create the new report as showing before. In this way you are sure that all rows from the split parts have the same fonts and padding, so when you run the master report there will be no vertical shifts.
Tuesday, June 11, 2013
NextReports Designer: Favorites Menu
In NextReports 6.1 a new Favorites Menu can be found. Favorites are for NextReports what are Bookmarks for a browser. Practically, when a favorite is clicked, NextReports automatically connects to entity (report or chart) data source and the entity is loaded inside designer.
Any report or chart has a new action called "Add to favorites":
This action does just an addition to a list of entities which is stored in user home location. All favorites will be seen from Favorites Menu:
At the end of these links a "Remove favorites" action allows to manage favorites list.
Any report or chart has a new action called "Add to favorites":
This action does just an addition to a list of entities which is stored in user home location. All favorites will be seen from Favorites Menu:
At the end of these links a "Remove favorites" action allows to manage favorites list.
Tuesday, May 14, 2013
NextReports Server: Data Migration
NextReports Server 6.1 will bring a new feature: data migration. Practically, a new section, visible only by administrators, is added.
From this section, administrator can export or import data. For data export we must select some entities like data sources, reports, charts and dashboards. The result will be a migration.xml file. There is no need to know which entities are used (referenced) by selected entities. All referenced entities will be automatically exported. Take a look at the following image:
We see that dashboard contains widgets. Widget contains a report or a chart. Report / Chart contains a data source and optionally links through drill-down to other reports or charts. So, by exporting a single dashboard, all entities that are involved will be exported too.
Any migration file can be used by an import process. When import is launched, a backup zip file of the entire repository is done. Any imported entity which has an id found inside repository will be updated. If id is not found, a new entity is created, taking care of name collision.
Migration process must not interfere with repository modification. Because of that, NextReports Server will show a maintenance page when export or import is running:
From this section, administrator can export or import data. For data export we must select some entities like data sources, reports, charts and dashboards. The result will be a migration.xml file. There is no need to know which entities are used (referenced) by selected entities. All referenced entities will be automatically exported. Take a look at the following image:
We see that dashboard contains widgets. Widget contains a report or a chart. Report / Chart contains a data source and optionally links through drill-down to other reports or charts. So, by exporting a single dashboard, all entities that are involved will be exported too.
Any migration file can be used by an import process. When import is launched, a backup zip file of the entire repository is done. Any imported entity which has an id found inside repository will be updated. If id is not found, a new entity is created, taking care of name collision.
Migration process must not interfere with repository modification. Because of that, NextReports Server will show a maintenance page when export or import is running:
Thursday, May 09, 2013
Use NextReports for Information
When people think about reports they see almost every time analysis documents which aggregate their needed data in various formats. But reports can be anything else like simple information sheets. You can use data just to find answers to any domain you are interested in.
For example using a simple csv file with countries data we can find out needed information from a specific country like country code, phone code, capital, internet country code, currency and so on.
Query is done very easy with drag-and-drop designer's features. A Country parameter will allow to select information just for it:
A simple report will show us what information we are interested in:
Run it for desired countries and you are done.
This is just an example, but you can think at any csv data you can obtain live from the web (forecast, financial data). A simple (scheduled) process to get your csv file from web to a local storage is needed if you want up-to-date data. By comparing to saving to a regular database, such process does not need any programming!
For example using a simple csv file with countries data we can find out needed information from a specific country like country code, phone code, capital, internet country code, currency and so on.
Query is done very easy with drag-and-drop designer's features. A Country parameter will allow to select information just for it:
A simple report will show us what information we are interested in:
Run it for desired countries and you are done.
This is just an example, but you can think at any csv data you can obtain live from the web (forecast, financial data). A simple (scheduled) process to get your csv file from web to a local storage is needed if you want up-to-date data. By comparing to saving to a regular database, such process does not need any programming!
Monday, April 22, 2013
NextReports Server: Settings per User
NextReports Server dashboards can contain any number and type of widgets like charts, tables, alarms, indicators, pivots. Any widget has a number of settings:
Starting with 6.1 version a change will be done in the way these settings are kept.
If a user has write permission to a dashboard (dashboard was created by user or dashboard was shared to user with write permission) then these settings are stored globally and by changing them the global values are affected.
If a user has just read permission to a dashboard, user can still change the settings (in previous versions was not possible). In this case, the values for settings are kept just for the specific user. In this way it is possible for every user to have different settings for the same widget without altering the global values.
- internal settings like refresh time, timeout, type (for charts)
- parameters values
Starting with 6.1 version a change will be done in the way these settings are kept.
If a user has write permission to a dashboard (dashboard was created by user or dashboard was shared to user with write permission) then these settings are stored globally and by changing them the global values are affected.
If a user has just read permission to a dashboard, user can still change the settings (in previous versions was not possible). In this case, the values for settings are kept just for the specific user. In this way it is possible for every user to have different settings for the same widget without altering the global values.
Monday, April 01, 2013
NextReports Server: Create your color theme
Starting from 6.1 version users can add their color theme to NextReports Server.
Color theme file must be named like theme-<color> .properties and must be added where the existing themes reside: webapps/nextserver/WEB-INF/classes/com/asf/nextserver/web/themes
All i18n files must contain a new property called: Settings.personalize.theme.theme-<color>= <name of theme>
These color themes just change some foregrounds and backgrounds to make NextReports Server having the same chromatic as you desire.
There are also two images that are taken into account.
First is the actions image
which is used in popups to decorate the actions menu and which you can define in theme files:
actions-image=actions-col-arrow-green.gif
Second image is the Ok
image used inside table columns when everything is as should be. This is not defined inside theme files. You just make sure that an image with name tick_<name of theme> .png exists inside images folder, otherwise the default is used.
Color theme file must be named like theme-<color>
All i18n files must contain a new property called: Settings.personalize.theme.theme-<color>
These color themes just change some foregrounds and backgrounds to make NextReports Server having the same chromatic as you desire.
There are also two images that are taken into account.
First is the actions image
which is used in popups to decorate the actions menu and which you can define in theme files:actions-image=actions-col-arrow-green.gif
Second image is the Ok
image used inside table columns when everything is as should be. This is not defined inside theme files. You just make sure that an image with name tick_<name of theme>Tuesday, March 26, 2013
NextReports: Get data from text files
NextReports 6.1 will allow to create a data source for CSV files. Using a CSV JDBC driver , users will be able to create reports and charts simply by providing data inside a csv file. Data source url contains the directory path where csv files are found:
There are some special properties which can be edited using driver properties:
You are not restricted to csv files, you can use any text file in which data is separated through a special separator. Csv file may contain the columns names on the first row, but generally those names should be specified in driver properties. Here user can also define the types for columns choosing between Int, String, Double, Boolean and Date.
Lets say, as a simple example, we have a simple csv file like the following with balance accounts for some persons:
1,mike,100
2,john,215
3,stevens,175
4,ann,89
5,dean,300
6,,
When we connect to the CSV data source we will see the csv files from that folder as tables and we can use them to create a report just like with any database data. The only restriction is that a query must be done on a single csv file. We cannot make joins between such tables.
We could make a simple report to compute the sum of balances:
We can also see that empty fields are correctly interpreted depending on the defined types:
There are some special properties which can be edited using driver properties:
You are not restricted to csv files, you can use any text file in which data is separated through a special separator. Csv file may contain the columns names on the first row, but generally those names should be specified in driver properties. Here user can also define the types for columns choosing between Int, String, Double, Boolean and Date.
Lets say, as a simple example, we have a simple csv file like the following with balance accounts for some persons:
1,mike,100
2,john,215
3,stevens,175
4,ann,89
5,dean,300
6,,
When we connect to the CSV data source we will see the csv files from that folder as tables and we can use them to create a report just like with any database data. The only restriction is that a query must be done on a single csv file. We cannot make joins between such tables.
We could make a simple report to compute the sum of balances:
We can also see that empty fields are correctly interpreted depending on the defined types:
Tuesday, March 05, 2013
NextReports Server: Alerts
NextReports Server introduces a new feature in version 6.0: Alerts.
The idea behind is that a user can be notified by email if a condition is evaluated as true. How can be this achieved inside NextReports Server? Very simple.
User has to schedule an alarm or an indicator report (those reports that offer a single value at a moment in time). Instead of adding alarm or report to a dashboard and periodically look at it to see if something wrong may occur, user will schedule them in the same way as a regular report. The only difference is in the way how the result is distributed.
A new destination type called alert must be selected. Alert is typically an email destination but without a "sending type". There is no link to the generated report, so the mail will contain just a simple message defined by user. Instead, a condition must be entered which compares the current value with one or two thresholds.
In case an alarm is scheduled, the mail message will automatically contain, at the end, the alarm's message.
The idea behind is that a user can be notified by email if a condition is evaluated as true. How can be this achieved inside NextReports Server? Very simple.
User has to schedule an alarm or an indicator report (those reports that offer a single value at a moment in time). Instead of adding alarm or report to a dashboard and periodically look at it to see if something wrong may occur, user will schedule them in the same way as a regular report. The only difference is in the way how the result is distributed.
A new destination type called alert must be selected. Alert is typically an email destination but without a "sending type". There is no link to the generated report, so the mail will contain just a simple message defined by user. Instead, a condition must be entered which compares the current value with one or two thresholds.
In case an alarm is scheduled, the mail message will automatically contain, at the end, the alarm's message.
Monday, February 25, 2013
NextReports: Indicators
NextReports 6.0 will introduce a new type of report called Indicator. An indicator can be used if you want to follow a single value inside a predefined [min, max] interval. It has a title, a small optional description, an optional measure unit and a specific color.
As table and alarm, indicator will have a report layout defined by convention. To create such report you will have to complete two header rows and one detail row:
You have to select indicator type for this report, so when you publish it to server it will be available for usage inside a dashboard.
Graphical representation inside server will look like the following:
In this image we can notice:
Title : Balance
Description : monthly
Measure unit : £
Min value : -1000
Max value : 1000
Actual value : -184
Min, max and actual values are all followed by measure unit.
To easily create an indicator, you can use the Wizard tool. First you must tell wizard that you want to create an indicator:
After some steps like data source selection and query / columns selection, you will be asked to select just one column to be used by indicator:
Last step is used to set all indicator properties:
NextReports Server will allow to add indicator as a new type of widget to be seen inside dashboards:
Indicator was implemented as a HTML5 component with a color filling animation. In case your browser is old and cannot understand HTML5, indicator representation will fallback to a simple image drawn with Java2D.
As table and alarm, indicator will have a report layout defined by convention. To create such report you will have to complete two header rows and one detail row:
- first header row has three cells : title, description and unit, last two being optional
- second header row also has three cells: min value, max value and a boolean used to show or not to show these values
- detail row has only one cell, a column or an expression, which will offer the needed value. This cell's foreground color will be used as indicator's color
You have to select indicator type for this report, so when you publish it to server it will be available for usage inside a dashboard.
Graphical representation inside server will look like the following:
In this image we can notice:
Title : Balance
Description : monthly
Measure unit : £
Min value : -1000
Max value : 1000
Actual value : -184
Min, max and actual values are all followed by measure unit.
To easily create an indicator, you can use the Wizard tool. First you must tell wizard that you want to create an indicator:
After some steps like data source selection and query / columns selection, you will be asked to select just one column to be used by indicator:
Last step is used to set all indicator properties:
NextReports Server will allow to add indicator as a new type of widget to be seen inside dashboards:
Indicator was implemented as a HTML5 component with a color filling animation. In case your browser is old and cannot understand HTML5, indicator representation will fallback to a simple image drawn with Java2D.
Friday, February 22, 2013
NextReports: Internationalization made by user
With version 6.0 that also brings internationalization to NextReports Server, users can add other internationalization files to automatically have the possibility of changing to their needed language.
You need to know language and country codes. The list for all locale codes can be found here. For example lets say you want to add Spanish internationalization.
1) For NextReports Server, you can find i18n files in installation folder:
<install_directory>\webapps\nextserver\WEB-INF\classes\ ro\nextreports\server\web
You should add here your i18n file. For Spanish you should create
NextServerApplication_es_ES.properties
All i18n files must contain a new property:
Settings.personalize.language.es_ES= <language_name>
2) For NextReports Designer, the files can be found inside a jar file. In <install_directory>/lib inside nextreports-designer-6.0.jar there is a i18n folder. Using a zip utility like 7Zip you can add your new file here.
For Spanish you should create
next-ui_es_ES.properties
All i18n files must contain a new property:
language.es_ES= <language_name>
Although, if you want to see your national flag in Language menu bar, you should have a 16x16 pixels image which you will put in the same jar in images folder. You should edit images.properties file from jar and add a new entry:
flag-es_ES=<image_name>.png
If you create such i18n file and want to share, please send it to us at next_support@asf.ro and we will add it to main distribution to be used by other users.
You need to know language and country codes. The list for all locale codes can be found here. For example lets say you want to add Spanish internationalization.
1) For NextReports Server, you can find i18n files in installation folder:
You should add here your i18n file. For Spanish you should create
NextServerApplication_es_ES.properties
All i18n files must contain a new property:
Settings.personalize.language.es_ES=
2) For NextReports Designer, the files can be found inside a jar file. In <install_directory>
For Spanish you should create
next-ui_es_ES.properties
All i18n files must contain a new property:
language.es_ES=
Although, if you want to see your national flag in Language menu bar, you should have a 16x16 pixels image which you will put in the same jar in images folder. You should edit images.properties file from jar and add a new entry:
flag-es_ES=<image_name>
If you create such i18n file and want to share, please send it to us at next_support@asf.ro and we will add it to main distribution to be used by other users.
Monday, February 18, 2013
NextReports Server: Forgot Password
NextReports Server 6.0 login will bring a new feature to offer assistance to users who forgot their passwords. Inside login page a "Forgot Password" link can be seen.
When user clicks this link, he will be redirected to a new page to fill user name:
After user enters his name and clicks send, NextReports Server will send an email to that user with a reset password link. To make this possible, NextReports Server must have all necessary email settings and the user must have associated a correct email address.
By clicking the link received by email, user will be redirected to a change password page:
This link will be active only for 4 hours. After the time elapsed, user won't be able to change his password.
When user clicks this link, he will be redirected to a new page to fill user name:
After user enters his name and clicks send, NextReports Server will send an email to that user with a reset password link. To make this possible, NextReports Server must have all necessary email settings and the user must have associated a correct email address.
By clicking the link received by email, user will be redirected to a change password page:
This link will be active only for 4 hours. After the time elapsed, user won't be able to change his password.
Wednesday, February 06, 2013
NextReports Server Internationalization
NextReports Server 6.0 will allow to change your language between English, French and Romanian. This is done through settings panel:
Now, when you change your logo, theme and language, the refresh is automatically done.
Technically, in Wicket 1.5, this is done using RenderPageRequestHandler:
Now, when you change your logo, theme and language, the refresh is automatically done.
Technically, in Wicket 1.5, this is done using RenderPageRequestHandler:
getRequestCycle().scheduleRequestHandlerAfterCurrent(
new RenderPageRequestHandler(new PageProvider(getPage()))
);
Tuesday, February 05, 2013
NextReports : Create tables & alarms through wizard
NextReports has a Wizard tool to be used for creating reports and charts in a simple and rapid way. Starting with upcoming 6.0 version, users will be also able to select report type.
For table there is no big difference than a default report. You select your columns and a template and the layout is almost identical with that of a new standard report. There is no header row with a title and no footer row.
For alarm, wizard is very useful because it will automatically create the needed layout (two cells, first with formatting conditions for color, second with an expression to show a custom message). This layout was explained in an earlier post.
Behind an alarm is a query that returns a single value for a selected database column. Wizard will follow the same first steps like: data source selection, query & column selection. After that, a special step will allow users to define the alarm:
Alarm conditions (formatting condition) are used to set the background color of alarm. These conditions must have disjunctive intervals (a value must be contained in just one interval).
For every created interval inside alarm conditions, user has to create a message. The alarm's actual value can be used inside the message through a tag like $C_ <column_name> .
There are two big advantages to use the wizard instead of creating an alarm by hand:
For table there is no big difference than a default report. You select your columns and a template and the layout is almost identical with that of a new standard report. There is no header row with a title and no footer row.
For alarm, wizard is very useful because it will automatically create the needed layout (two cells, first with formatting conditions for color, second with an expression to show a custom message). This layout was explained in an earlier post.
Behind an alarm is a query that returns a single value for a selected database column. Wizard will follow the same first steps like: data source selection, query & column selection. After that, a special step will allow users to define the alarm:
Alarm conditions (formatting condition) are used to set the background color of alarm. These conditions must have disjunctive intervals (a value must be contained in just one interval).
For every created interval inside alarm conditions, user has to create a message. The alarm's actual value can be used inside the message through a tag like $C_
There are two big advantages to use the wizard instead of creating an alarm by hand:
- you do not have to know the convention how the alarm's layout must look
- you do not have to know how to write the expression for alarm's messages
Subscribe to:
Posts (Atom)















































