The KoolReport Blog

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

Our Story

KoolReport started as our internal project to standardize our report construction and growing to a strong framework for reporting. The strengths of KoolReport are its light-weight, speed, features extensibility and ability to integrate seamlessly into other PHP Frameworks.

We have put the first line of code in Jan 2017. Previously we have made thousand of reports for our customers. We saw the repeated tasks and common issues in making reports. That leads us to the thought of making a framework so that we could save time on repeated tasks and eliminate common issues.

Moreover, by having a standard framework for reports of all projects, we are able to manage code easier than before. Previously, each project followed different code patterns which make the took-over developer difficult to understand, fix code and develop further. But now, all reporting project follows the same pattern of code, the hand-over task become lesser and the documentation tasks are easier.

Take off

The KoolReport was first created solely for purpose of internal usage but we published it on GitHub and announced to KoolPHP users. Since then, we were very happy that KoolReport received very good feedbacks from thousand developers all over the world. Those are our great momentum to develop KoolReport further, adding more and more useful packages around it.

Until this time, we must say that KoolReport has become one of the top reporting framework or reporting tools. You may try to search google for “php report”, “php reporting tools” or “php reporting framework”, you may see us on top. That makes us very proud!

The concept of KoolReport is very simple, data is pulled from various data-sources, piped through series of processes then later saved to data store ready to be visualized. In the first phase, data connection, we provide PDODataSource as the main connectors to most common databases such as MySQL, SQL Server, Oracle etc. In the second phase. data processing, we provided over 30+ type of processes which you can use to transform your data. In the last phase, data visualization, Google Charts was chosen as our built-in charts library because of its power and the abundant of charts type.

KoolReport remains free and open-sources forever under MIT license which virtually does not bind you with any obligation when use KoolReport. You can download it, tweak it, use it, deliver it freely.

Around KoolReport core, we built a number of extended packages to extend its capability. A half of them are free for you use to just register and download. Some of them come with a tiny price, you consider the license purchasing as your donation to keep project going. We want KoolReport to go far so we need your help to fund the development and support.

KoolReport Pro

There is a special version of KoolReport called KoolReport Pro. This is an advanced version of KoolReport in which we combined KoolReport with all available extensions into single build. The compatibility between the core and extensions are guaranteed. We provide Developer License and Enterprise License for KoolReport Pro. Developer License is for individual who use KoolReport Pro to create reports for personal usage or for clients. Enterprise License is for company which allows any developers within company can use KoolReport. Both of licenses comes with Priority Support and Free Upgrade privilege. Within a year, you will get support from our software engineer and data specialist to utilize the power of KoolReport Pro. And with the Free Upgrade privilege, you are free to download the latest library update with new features and new packages. Check out our KoolReport Pro if you are interested.

Get Started

To get started with KoolReport, please go ahead to our website koolreport.com and download the latest version of KoolReport. You may download, unzip and copy KoolReport folder into your web app or your can use Composer to install library. It is convenient in both ways.

We provide number of examples for you to start with. You may find the source code of all examples in the KoolReport & Examples version that you downloaded.

Remember to join our forum. There you can find all most all answers for your questions. If not, just simply create a new topic with your question, our support team will point you to the right direction. Or if you feel more convenient with Facebook, we have a group on Facebook that you can join and start discussing. Here is the group: KoolReport - The PHP Reporting Framework. Join us!

Resources

  1. Our website - Where all things begin.
  2. Forum - You may find all Q&A in here
  3. Examples & Demo - Over 100+ examples to demonstrate how KoolReport works
  4. Documentation - Documentation & API
  5. Blogs - This will keep you update of KoolReport releases, new packages, promotion & more.
  6. Github - You may clone or fork our project to play with it.
  7. Twitter - If you use Twitter, follow us to keep updated.
  8. Facebook Page - If you use Facebook, follow us to keep updated.
  9. Facebook Group - Keep update faster and interact with other members

Thank you very much and if you have any question, please let us know.

<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

What is business analytics?

Business analytics is a method of diving in organization's data, using statistical analysis to explore the hidden information in the data. The ultimate goal of business analytics is to enhance the view of business and to support decision making process.

Business analytics

In those recent years, the term data-driven business has been emerged to indicate those companies treat their data as an assets and utilize it as the important competitive advantages. Sale and marketing, customer relation management are frontier areas that those companies aiming at. The business are transforming with data-back decision making. It is the trend, unavoidable trends that those who do not utilize will be left behind.

There are three (3) types of business analytics:

Descriptive analytics (Business Intelligence)

Descriptive analytics is normally used to track the performance of a business. It answers the question of how good is the state of business within specific timeframe. It answer the question of

  1. What happens in business?
  2. Who involved?
  3. When?
  4. Size of effects?

There are boom of tools for this kind of descriptive analytics that we can name some such as Microsoft Power BI, Tableau and Qlik. Those tools will help organization to get insight view of current state of business, setting up the business alert through threshold, real-time report and so on. The tools are even made easier so that people with little knowledge of data science can access and use. There are no need of data analyst, although better to have, to use the tools.

Predictive analytics

If descriptive analytics is the basic of business analytics, the predictive analytics is advanced one. It use the data to sketch out the trends and predict the future outcomes. This is difficult area and normally required data expert in an organization. The work involves so much in building predictive model which can be simple as linear regression or complex as neural network AI.

Prescriptive analytics

This is the highest level of business analytics in which the past business performance will be used to create recommendations to handle similar situations in the future. It can help to answer questions of

  1. Why did it happens?
  2. Will it happens again?
  3. What will happens if we change X?
  4. What else data tell us what we never thought to ask?

Do not confuse this with predictive analytics since predictive analytics may show us the trends, the possible outcomes but it does not tell us why. On the other hands, the prescriptive does. Predictive analytics know what will happens but prescriptive analytics know why it happens. It can simulate the situation when some variables change. This advance will provide the management level in an organization the ability to browse through the options and know what will happen. Furthermore, it can tell us things we are not aware of. It kills the business risk of being unaware of unknown problems.

Business Analytics is wide area and the it will change business profoundly. The recent technology such as big data, cloud computing, deep learning makes us to get close to business analytics ever.

Some questions related to KoolReport

Where is KoolReport now in this big picture?

KoolReport now is early stage of business analytics. Specifically, it is in the state of descriptive analytics (business intelligence), the lowest level. It helps to unite data from different sources, process and summarize it then visualize it in meaningful way. It is suitable for creating report (KPI. metrics), online dashboard (the summarization of current state of business), OLAP(pivot, cube, slice, drilling report).

It is like a baby need to learn crawling before he/she can walk. We believe that doing well in this stage will be a foundation for us to move to the next.

Where KoolReport is heading to?

Of course, we want to move up step by step to the latest level of business analytics.

Why are you confident?

KoolReport is built as open-source framework for reporting. Why? Because it will be open to any contribution of third party. Everyone can build extended packages to process data. The hidden power of KoolReport is lying in its lego structure in which extended package can be used in plug and play manner. KoolReport hopes to be the hub to connect business who need data processing solution and third party who can provide it. In general, we aim at creating a market for it. And by this way, KoolReport will have chance to move up step by step from lowest level of business analytics to the highest one.

KoolReport v1.72.8

GREAT NEWS! We have released KoolReport 1.72.8 with some important enhancements: Table Pagination, DataStore Aggregation, new Filter's Operators and more.

Table Pagination

We have added the pagination feature to koolphp\Table. To enable this feature, we only need to add "paging" settings to the Table:

Table::create(array(
    "paging"=>array(
        "pageSize"=>10,
    )
))

You may view example here.

DataStore Aggregation

We have added 4 new methods to DataStore: min(), max(), avg() and sum(). So in the case you want to get total of an specific column you may do:

$totalSaleAmount = $this->dataStore("sales")->sum("amount");

Filter's Operators

The Filter process now has "in" and "notIn" operators. The "in" works like the IN operators in SQL which accept only rows with column value within an array:

->pipe(new Filter(array(
    array("firstName","in",array("Peter","Karl","David")),
)))

Bug fixes

We have fixed small bug in get() method of DataStore. In the previous version, the method returned wrong row. Issue has been fixed now.

KoolReport Pro

KoolReport Pro 1.5.0 has been released with latest core and extended packages. The packages updated in this version are Export 2.5.0, Inputs 2.7.0 and Pivot 2.2.0.

Reminder: Today is the last day of our promotion 30% OFF for KoolReport Pro. If you are interested in KoolReport Pro licenses, please purchase now before getting too late. Don't miss it!

<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!