Released: August 4, 2025 |
Download |
-
A new “Ignore by Default” setting is available for ask-at-runtime filter conditions. If turned on for a filter condition, it will be automatically ignored when prompting for values. This is useful if you want to add a set of pre-defined filter conditions for a report that aren’t normally part of the query, but are still handy if you need to further refine the results.
-
If a report has more than one filter set defined, you are now prompted for which filter set to use when previewing the report.
-
A new Export All Reports button can be used to generate a zip file containing all reports.
-
Scheduled emails sent with the Combine Email Attachments option now support using a Horizon Reports role as a recipient. Any users in that role that have email addresses defined will be considered valid recipients when sending schedules.
-
Excel data only output types now support conditional formats for font and color.
-
Scheduled tasks are more resilient. If a report failure occurs during a schedule run, the schedule will now continue with the remaining reports, rather than halting.
-
When entering email addresses for a scheduled task, you can now use the space and semicolon keys to denote the end of an address in addition to the previously supported comma.
-
Expressions for “Send to database” formulas are no longer processed in any way. This opens up the ability to send native expressions to the database engine that previously might not have been recognized by Horizon Report’s generic SQL Parser.
-
You can now open an advanced layout containing a chart control with a configuration issue so it can be fixed.
-
Crosstab templates now support the GroupFooterSummaryFieldStyle. This can be used to apply specific styling to the subtotal lines that result from having multiple row fields.
-
The primary navigation control in Studio for interacting with the data dictionary has been replaced. The previous control had issues with performance and scrolling that were difficult to fix due to how it worked. The new control has much better performance, and always maintains the correct scroll position even after updating to accomodate new items. The new control also supports navigating with the arrow keys and spacebar on a keyboard, similar to the desktop version of Studio.
-
The context menu for previewing tables in the previous control has been replaced with a preview button.
-
When previewing table contents in Studio, columns with errors are detected automatically and removed from the query so the remaining fields can still be inspected. This means that a single calculated field with a syntax error in the expression will no longer prevent the entire table from being previewed.
-
A new configuration setting, Login Failure Limit, allows you to define the number of failed login attempts are allowed before being restricted for 5 minutes. The default limit is 5 login attempts, and can be disabled by setting to 0.
-
External authentication now supports a reporting_roles claim. If present, any users created as part of a single sign on attempt will have those roles attached.
-
External authentication in a tenant based project can now pass a claim named reporting_tenant in case a claim named tenant is already in use.
-
A new toggle is available in Studio that will globally disable the scheduler. This is handy if you want to test a copy of a live/production reporting project in a lab environment, but don’t want the schedules to be sent with sample data.
-
It’s no longer possible to create a project with a blank name.
-
You can now define multiple data sources even if Allow Multiple Data Sources is disabled for a project. This allows you to use the built in connection string or DSN manager to define data sources for a tenant based project.
-
In Studio, you can now search the data dictionary by version as well as name.
-
Sorting data dictionary items now ignores case and special characters for a more logical ordering.
-
If a report belongs to a tenant, it will now always retrieve data from that tenant’s data source. This means that you can run and edit tenant based reports and test them against a tenant’s data source while logged in with an Administrator account.
-
The configuration section in Studio has a new Email tab where you can define Default email settings to use for the scheduler when a user hasn’t defined custom settings. If you previously used the “Use as default settings for all users” option for this purpose, those settings will get automatically imported to the new location.
-
The report files are once again persisted to a subfolder called “Reports” in the App_Data folder. In the previous 1.3 release, report storage moved from disk based individual files to a database table for improved performance. Reports aren’t automatically imported to the report database from this folder, but they are much easier to back up when stored as individual text files on disk.
-
The default table for a new project is now automatically set to the first table discovered during the scan.
-
The forms for editing databases, tables, fields, and joins now have change detection which disables the Save button until changes are made.
Released: June 14, 2024 |
Download |
-
You can now define named groups of filter conditions called Filter Sets. Changing the active filter set for a report will change the filter conditions used when running the report.
-
Parameters and parameter values for SQL Passthrough reports are now handled like report filter conditions instead of report parameters. This means you can use existing filtering features like ask-at-runtime, expressions, is-one-of lists, and Filter Sets with SQL Passthrough reports.
-
When scheduling a report that has multiple filter sets defined, you can choose the filter set to use for each task in the schedule. This means that you can re-use the same report multiple times in a schedule with different sets of filter criteria for each.
-
Schedules have a new “Combine email attachments” option. If turned on, the scheduler will send the fewest emails possible for that schedule.
-
The template list now shows a preview/sample of the selected template.
-
Added a new crosstab template style, SummaryFieldStyle, that only applies to the last row of each page. This allows you to apply specific styles to the summary row.
-
Change % and Change Amount columns in a crosstab report now support the count summary type.
-
You can now define the vertical and horizontal position of a chart legend, allowing you to place a legend above or below a chart.
-
You can now search the list of schedules by user, name, report name, or email.
-
You can now search the list of formulas
-
Administrators can now search the list of users by name, email, role, or tenant.
-
The manage Reports/Schedules/Tags dialog can now be used to update the report owner for multiple reports.
-
You can now migrate multiple schedules or tags to a new user or delete multiples from the new manage Reports/Schedules/Tags dialog.
-
The tab key will now enter an email address for a schedule recipient when creating a schedule.
-
You can now toggle the Display real table and field names setting from the report wizards and the formula editor. The default setting will still respect the current user’s preference.
-
Horizon Reports has a new application database format that unifies storage for all application data (e.g. reports, templates, schedules, formulas, data sources, security objects).
-
Horizon Reports now uses .NET 8
-
Updating the connection string for a database in Studio no longer requires a restart to take effect.
-
Swapped MySql.Data.MySqlClient provider with MySqlConnector since it works better with MariaDB
-
Defined foreign keys in the database schema for a MySql database will now appear as corresponding relations for the table in Studio.
-
You can now use external authentication (Open ID Connect) with a tenant based project.
-
Externally authenticated users can now use 2-factor authentication.
-
Data sources in the connection string manager are now tested and saved one at a time, rather than all at once.
-
You can now save a connection string, even if a test connection fails.
-
The connection string builder is now available from a few new places.
-
The report writer navigation button in Studio no longer requires a restart.
-
If a project has more than one database, the source database name is displayed in the table caption when creating a relation.
-
If you change any authentication settings for a project, you now get a warning that a restart is required for the changes to take effect.
-
If the authentication settingsfor a project are causing a startup failure or a login problem, you can use the new command line parameter clearauthsettings=true. This allows you to start up the project locally while ignoring the authenticaiton settings to resolve the issue.
-
Sql Server and MySql project connection types also have a default connection string similar to SQLite.
-
The Source Database field should now only appear if tenant support is off. You can also disable the field manually with a new setting.
-
The installation folder now takes up less space and contains fewer files.
Released: September 15, 2023 |
Download |
-
A new export option, Create Tabbed Document, allows you to combine separate group files in to a single spreadsheet. The option is only available when outputting to Excel format.
-
A new Update filter value on run option for filter conditions allows you to update the default value for an ask-at-runtime prompt with the latest value used to run the report.
-
If you turn on ask-at-runtime for an expression based filter, the expression is now evaluated and used as the default value for the value prompt.
-
You can now define parameters in a report template, and the parameters will be added to any report that uses the template. This allows you to create templates that prompt the user for a value, and display or use that value somewhere when running the report.
-
You can now use a cron expression as the trigger for a schedule.
-
You can now enter more text for the title of a report.
-
Tags that aren’t accessible or have been deleted are now removed from a report definition when exporting.
-
When outputting a cross-tab to an Excel pivot table, the columns are now named using the column headings in the report.
-
Improved loading performance and support for large reports in the advanced layout editor.
-
Improved support for executing stored procedures with “EXEC” in a SQL Passthrough report.
-
Is-one-of filter conditions with no values are now automatically ignored when running a report.
-
When a report is deleted, any schedule that used that report is now automatically updated.
-
Horizon Reports will now run in a Linux environment. A docker image is available for this purpose.
-
A new project setting, Disable Slide Toggles, allows you to disable the “slide” style toggle switches and show standard checkboxes instead.
-
You can now show captions beside object names in the database treeview in Studio.
-
A new option in Studio allows you to hide non-reportable tables and fields from view.
-
The same connection string builder in Studio is now available when creating a new project.
-
A new Ignore Schema option when refreshing allows you to ignore the schema value when matching objects. This is useful if you want to refresh against a database type that doesn’t support schemas, but use an existing project with schema names to do so.
-
Administrators can now log in even if there’s a problem with the license file.
-
You can now navigate directly to Setup from Studio.
-
More relevant error information is displayed in the browser when a connection test fails.
-
Loading/busy indicators are now shown when testing joins and connections.
-
A new reload button is available in the license manager. You can use this to force the licenses to be reloaded if you made changes to the license file on disk.
-
The data source name is now used as the database name when creating a project based on a SQLite database.
-
You can now create new database fields (rather than Calculated fields) in Studio. In addition, you can now change the name and data type for existing database fields.
-
Studio will now automatically reload if you delete the project that’s currently open.
-
Added confirmation prompt when deleting a project.
-
You can now use Studio without having a developer license installed.
-
A Project_Data folder is now created automatically if it doesn’t exist when running for the first time.
-
Data protection keys are now persisted and reused when the application restarts.
Released: January 11, 2023 |
Download |
-
Dashboards have been updated with a new modern web dashboard control. Dashboards now allow you to display a number of inter-connected data analysis elements such as grids, charts, maps, gauges, and others; all within an automatically-arranged layout.
-
A new report monitor dialog is available. You can use this tool to monitor active reports. If a report is consuming too many server resources, you can also request that the server try to cancel the report from this screen.
-
When turning on Two Factor Authentication, the generated QR Code now has an issuer defined for apps that require it.
-
The manage reports dialog has new “Updated by” and “Updated on” columns.
-
When creating a new formula, it’s no longer necessary to preview the formula before saving. Instead, a warning is shown if the formula hasn’t been previewed first.
-
Improved performance in the browser when creating formulas in a project with a large data dictionary.
-
You can now include multiple subreports in the header of a report.
-
Added a preview button to dashboard wizard to allow previewing changes before saving.
-
You can now use charts and pivot grids directly in a report with an advanced layout.
-
You can now customize the name of the cookie that Horizon Reports sends to the browser.
-
When refreshing the data dictionary, you can now choose specific tables to refresh from a list.
-
The database tree view will now scroll to the previously selected item after a change.
-
If you launch Horizon Reports with no project created, you are now automatically prompted to create a new project.
-
You can now highlight items in the database tree view by last updated date or keyword search.
-
Added Format presets for different data types.
-
In Studio, you can now right-click on a table and choose View Table Contents to retrieve and view the table.
-
Added a connection string builder to Studio to help creating database connection strings.
-
You can now test relations with a new Test button.
-
The BeforeExportReport plugin method now supports changes to the export options for the report.
-
Moved the default location for hrsettings.json file to Project_Data. This allows setting the file permissions for the application root folder to read-only. Previous installations that have hrsettings.json in the application root will still continue to work normally.
-
Added support for string concat (||) operator when reporting against a data source that requires it (like SQLite).
-
Added new URL for directly exporting a report to file.
Released: July 22, 2022 |
Download |
-
Stonefield Query Enterprise is now called Horizon Reports. The functionality that was previously located in the separate Stonefield Query Studio tool is now part of the web application. As a result, Horizon Reports only has one installer that can be used for both development and production environments.
-
Horizon Reports now uses .NET 6. This means that plugins will need to be recompiled in order to work with this release. Make sure to update the references in your plugin code from Stonefield/Stonefield.Query to HorizonReports.
-
The Horizon Reports API is now available as a Nuget package. When updating plugins, remove old references to Stonefield Query assemblies and add a reference to HorizonReports.Api on nuget instead.
-
Horizon Reports now uses entity framework to store the project and data dictionary settings, and supports SQLite, SQL Server, or MySQL/MariaDB. The first time you launch the new version, you’ll be prompted to enter the connection information for a new database. Afterwards, you can edit the hrsettings.json file to make changes to the connection settings. If there’s already a previous Stonefield Query Enterprise project in place, it will be imported automatically.
-
Horizon Reports now uses the NLog logging package instead of log4net to generate application logs. If you previously used a custom logging provider file with log4net, please contact support for assistance.
-
Creating a log support package now includes archived logs as well.
-
When using the MariaDB ODBC driver, MySQL specific connection settings are now used.
-
You can now bypass external authentication by passing a username and password as URL parameters. You could use this to log in with an Administrator account if necessary.
-
The first time a user logs in, they are now prompted to take a tour of the reports explorer.
-
Added new template objects, “GroupFooterSummaryTypeTemplate” and “SummaryFieldTypeTemplate”. These allow you to display the summary type being performed in a group footer or report footer respectively. See the new “Standard with Summary Type” template for an example of how to use it.
-
Administrators can now restrict acccess to email settings.
-
You can now change the location of point labels for Pie, Bar, and Line charts.
-
You can now add a shadow to chart types that support it.
-
Chart reports now support using a date field as the Category.
-
The advanced report designer can now be used to edit the layout of Charts.
-
You can now set templates for a chart report. The default template for charts is the new basic template called Standard Chart.
-
Cross-tab reports now support templates without a header band.
-
Cross-tab reports now support multiple embedded subreports.
-
Formulas created when inside a report wizard will automatically be added to the report.
-
You can now search formulas using the real name of the formula field (e.x. CALC20220193203922).
-
When working with date values in a filter condition, the entire date is now selected when you move to a date input. This allows you to immediately start typing a new value and it will automatically clear the old value.
-
You now get a warning if you enter an invalid date range for an “is between” filter condition.