The KoolReport Blog

Announcements, discussions, and more for KoolReport and its extended packages.

Awesome KoolReport v3.25.3

We are very glad to let you know that we have released new version 3.25.3 of KoolReport. This version is our continuous effort to ensure the product quality and improvement. The update is completely backward compatible so you feel free to upgrade without worrying about your current works. Upgrade Now.

Enhancements

We have made a number of enhancements to the core. The first one is conversion of code base to comply with PSR Code Standard. This standard is accepted and adopted by wide range of developers all the world because it will help code look cleaner, easier to read and avoid potential code mistakes. Furthermore, by following this standard, our code base could be parsed by intellisense extensions in modern IDEs like Visual Studio Code or PHPStorm.

We have continued to improve the most used widget, Table. In previous version, we have new feature Row Grouping. In this version, we add more flexibility to Table's grouping template and style. We also add new sorting property to let you sort data on the table.

Google has updated the its charting library so we have update our Google Charts in KoolReport as well. If you use old version of KoolReport, it will not be possible to load multiple type of charts (coming from different chart packages). We have spent days to analyze the issues and make it work. If you have this issue, please upgrade to the newest version.

Bug fixes

We have fixed a big issue in Widget when we define data source by function. We also fixed the error related to grouping feature of Table when there is no data. We fixed the data duplication in KoolReport's run() methods. There are some other minor fixes as well that we could not list all here.

New package

The CloudExport is a new added package. The CloudExport will be a service hub to connect to online service provider to export your report to PDF, JPG, PNG or other formats. The package is totally free and available to download. The first cloud service that we implemented is ChromeHeadless.io. CloudExport will be alternative solution for Export package if you find difficulty to install PhantomJs or if you want to off-load the export function to cloud service and save your server's resources for other crucial tasks.

KoolReport Pro

KoolReport Pro 3.25.3 is also released together with new core. This release contains some new package releases: DataGrid 2.5.0, Excel 5.0.0, Inputs 4.5.0, Instant 3.5.0, DrillDown 3.0.0 and Pivot 4.3.0.

As you may aware, KoolReport Pro is yearly subscription based product. To add more flexibility in term of license, we added the Perpetual Usage badge which can be purchased together with KoolReport Pro license. This badge allows you to use KoolReport Pro forever even after subscription is expired. However it does not cover the Priority Support and Free Upgrade privilege.

In addition, we provide the Perpetual Usage, Support and Upgrade badge. If you purchased this badge together with your license, you will own the life-time usage for KoolReport Pro plus you will be entitled Life-Time Priority Support and Life-Time Upgrade privilege.

Summary

The KoolReport 3.25.3 is a must-upgraded version as it contains important enhancements and bug fixes. The update is backward compatible and you can upgrade without any changes to your current reports.

Upgrade Now

Enjoy!!

<3 koolreport team

KoolReport 3.0.0

LET PARTY to celebrate this amazing 3.0.0 version of KoolReport. There are many more improvements in this version than any versions released before. One of the greatest enhancements is the ability to add theme to your report and work seamlessly with other PHP Frameworks.

Let party to Welcome to KoolReport 3.0.0

Stunning & stunning

We are often reminded that "Don't judge a book by its cover". Why's so? Is this because we tend to look at cover first to decide whether to read a book. In other words, the book with beautiful cover naturally catches our attention and more likely they will be read by us, won't it. The same with data report. Reading a data report will be less painful and more joyful if the report looks clean and beautiful. Koolreport may not help you to create interesting content (since it may depends on your creativity) but it surely will help you to create a beautiful one so that when look at it, people want to discover your report's content.

In this version, we would like to introduce the report theming capability. A theme when applied to your report will change the way widget rendering its contents together with color and even behaviors. As a result, your report will look very much better and will impress the viewers. You will love it, your boss will love it and your clients will love it.

We have released two basic themes Bootstrap 3 and Bootstrap 4 however more themes will come in near future. FYI, The reports in our new demos site uses theme called Amazing which will be available soon!

class MyReport extends \koolreport\KoolReport
{
    use \koolreport\amazing\Theme;
}

Seamless integration

We understand that nowadays barely is an PHP application built without a framework. From the beginning, we designed KoolReport to work inside any PHP Frameworks like Laravel, CodeIgniter or Symfony. In this version, the integration of KoolReport into other frameworks goes to new level in which you may even use KoolReport's widgets inside those frameworks without initiating a report.

For example, you may create ColumnChart in Laravel's view file simply like this:

<?php ColumnChart::create(array(
    "dataSource" => DB::table('orders')
                    ->select('department', DB::raw('SUM(price) as total_sales'))
                    ->groupBy('department')
                    ->havingRaw('SUM(price) > ?', [2500])
                    ->get()
));?>

Do you see that ColumnChart widget is able to receive Collection of Laravel Framework and use it as its data source. Also, the widget does not need any further settings to be rendered on Laravel's environment. KoolReport's widgets are able to work in CodeIgniter and other framework in the same ways. More information!

Release Notes

There are much more to say about this release but we only are able to highlight the most interesting parts here. If you are interested on more details, please read our KoolReport Version 3.0.0 Release Notes.

New Examples and Documentation

We have created a new look for our Examples and Demos. Not only new look is implemented but also 70+ more examples have been added for you to get started with.

Together with new examples, we have also upgraded our Documentation as well. We have been working very hard to write every details of the framework so that you can understand it deeper and use it better.

Download Now

Enjoy & Have A Great Day!

<3 koolreport team

A Must Upgraded KoolReport 2.78.0

LET PARTY to celebrate the new version of KoolReport 2.78.0. We are very proud because we thought everything was just perfect in the previous version but still this new one comes with a lot of improvements. We have been working hard to find every enhancement point even tiny. So here come the new version, all are backward compatible so you need not to worry. Please upgrade!

The core

In this version, we have reviewed all datasource classes once more time to assure they are totally safe from any security threats. Furthermore, we have improved datasources for MySQL, Postgre, SQLSRV and Oracle to reduce their response time and memory usage by enabling the connection sharing. It means that, if you have multiple queries to the same database, connection will be shared between them thus reducing the unneccessary of re-connecting time. This technique has been implemented for PdoDataSource but have not done for others.

We have improved the src($name) function as well. Previously, this method requires us to specify the name of datasource. However we found that 80% of the cases, we have only ONE datasource. So we thought that it would be nicer to just write src() without any parameter, KoolReport will automatically get the first datasource to use. A tiny improvement but it can free our mind and reduce the typo of datasource name which resulted in error.

We have also enhanced the SubReport feature. In the previous version, we use HTML comment tags to mark subreport section but we found that some web servers remove the HTML comment tags for the purpose of optimization which will cause big issue for SubReport so we change to use HTML element. As a result, SubReport now works perfectly.

In previous version of KoolReport, we may need to remove the resources folder when upgrade to new version. It is quite troublesome and easy to forget. In this version, we use KoolReport's version and widget's version as a factor to generate widget's url. It helps us to reduce the unneccessary work when upgrade library, KoolReport will make sure all generated resources files stay updated.

Another great improvement in this version is the ability to write Javascript function inside Widget creation. We have created an advanced jsonEncode() function which able to detect javascript string and later turn them into javascript function at client-side. As a result, we can write PHP and Javascript in an unified block of widget creation. Furthermore, this feature will unleash features of many widgets with heavy client-side code. Please check our case of DataGrid usage in this forum post to understand better this enhancement.

Last, we have improved the event of Google Chart and Table. Now in those events like rowClick or itemSelect, we will receive selectedRow with associate data beside the array one. For example, you can access the row id by selectedRow[0] or by selectedRow['id']. This will add convenience to get data cell value for further processing.

Above are highlights, you may view the full release note.

Packages

Together with the new core, we have release below new package version:

  1. DataGrid 1.5.0: Adding formatValue for footer and enable data-search and and data-order feature.
  2. Pivot 4.1.0: Add count percentage and sum percentage to pivot process
  3. Cube 2.1.0: New SuperCube widget
  4. Excel 3.0.0: Change to advanced PHPOffice/PHPSpeadsheet library and discard the deprecated PHPExcel library.
  5. ChartJS 1.2.0: Return associative array on event
  6. SparkLines 1.20: Add ability to write js in widget creation.
  7. Inputs 3.5.0: Add ability to write js in widget creation.
  8. Morris Chart 2.0.0: Use advanced jsonEncode() function.
  9. DrillDown 2.0.0: Ability to work with Table and ChartJS.

Beside the new version of above packages, we have add two brand new packages

  1. Codeigniter 1.0.0
  2. Laravel 1.0.0

Those two packages are free and born to make KoolReport work seamlessly in CodeIgniter and Laravel environment. In the future, we will add more packages like those two to support KoolReport working in other PHP Frameworks like Symfony, Yii2 and etc.

KoolReport Pro

And not to forget, we released KoolReport Pro 2.78.0 containing all above released packages. If you own KoolReport Pro, you may upgrade now.

Wrap-up

Have thought that the previous version was perfect, we are proved to be wrong by this new releases with a lot of enhancements. Listening to users is the key point and we will continue to do so. We thank you so much for all of your suggestions, bug reports, your case of usages that you shared with us. That's priceless! Thank you!

If you have any questions or comments, please post on this forum topic.

Enjoy!

<3 koolreport team

KoolReport 2.43.0

We are very happy to let you know that KoolReport 2.43.0 has been released. We continue to make KoolReport the great reporting framework.

Core updates

It seems KoolReport core is quite stable now. Only a small change in this version compared to the previous one is the improvement for Google Chart when dealing with numeric column in string form. We were reported by one of our customers a mysterious error that broke his chart. Further investigation leaded us to the root cause. One of his column is supposed to be numeric type but stored in string form so Google Chart ran into trouble. In this version, if a column is specified type as number, we will enforce the rule by converting the value of that column to number.

Package updates

Beside the new version of core, we released new package version for QueryBuilder, DataGrid, Pivot and Excel.

QueryBuilder 1.4.0 has been fixed the WHERE statement when dealing with boolean type. In addition, we fixed the issue of wrong quoting name of table and column. Now the table.columnName will be generated correctly as 'table'.'columnName' in SQL statement.

DataGrid 1.2.0 contains improvement for cssClass property to add custom css classes for th, tr, td, tf. We also add the formatValue property to allow us to custom the display of column value.

Pivot 4.0.0 has biggest improvement for css. Now we can customize look n feel by overwriting its default css classes. Beside that, we added new command expand() at client-side to expand any level we want.

Excel 1.2.0 has been added new properties sheetName and sheetIndex in ExcelDataSource to let us specify exactly what sheet of excel we want to load. This will help us to avoid problem of Memory Limit Exceeded if we have large Excel file.

KoolReport Pro

Together with above releases of new core and extended packages, we released KoolReport Pro 2.43.0 containing all recent updates. If you own KoolReport Pro license, you may update now.

<3 koolreport team

KoolReport 2.42.0

We have released new version KoolReport 2.42.0 with some minor fixes. You may download and upgrade now!

PHP 5.4 Compatibility

In the last release KoolReport 2.41.3, we have used the class constant ::class to get the full class name of a class. However this feature is available in PHP >= 5.5. Those who uses PHP 5.4 will get errors.

With the promise to support PHP >= 5.4, we have replaced those class constants with strings containing real class names. This will help to solve the issues.

We would like to thank bysystem to let us know this issue.

PdoDataSource

We have fixed an issue of PdoDataSource with PostGreSQL when we try to set charset. Thanks Daniel Amamoo-Otchere for telling us this issue.

Summary

The new version 2.42.0 contains some minor fixes for KoolReport. For your information, we also release KoolReport Pro 2.42.0 containing above updates and new release of QueryBuilder 1.2.0.

Thank you very much!

<3 koolreport team


KoolReport helps to analyze your data and ultimately turn them into visual reports or dynamic dashboards.

"KoolReport helps me very much in creating data report for my corporate! Keep up your good work!"

Alain Melsens

"The first use of your product. I was impressed by its easiness and powerfulness. This product is a great product and amazing."

Dr. Lew Choy Onn

"Fantastic framework for reporting!"

Greg Schneider
Get KoolReport Now, It's FREE!