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

Data Storytelling: The Future Essential Data Skills

Data storytelling will be a new exciting field in which science and art merge. And data become truly valuable only when they can drive our actions toward changes for better.

Data Storytelling

After your business has started collecting and gathering data from all sources, the next difficult step is to dig into those data and get the potential value of them. Your collected data is like a gold mine hidden deep down beneath the earth. The data analyst is like a gold miner digging into data to find valuable insights. But those insights can only become truly valuable if they can turn into actions or changes in your business. If those insights is not understood or does not look appealing to people, they are nothing more than pieces of metal. Google’s Chief Economist Dr. Hal R.Varian stated, "The ability to take data—to be able to understand it, to process it, to extract value from it, to visualize it, to communicate it—that’s going to be a hugely important skill in the next decades."

As data becomes increasingly ubiquitous, we have witnessed the hot trends of the jobs of data analysis and mining. LinkedIn recently reported that data analysis is consistently one of top 4 wanted skills in job description. But interestingly the last skill of transforming those data insights into actions is in less required although those top data analyst with advanced degrees in mathematics, economics, statistics struggle to communicate their insights to others effectively. Our ultimate goal is the change, we are getting close but still not reaching yet.

The demand of data storytelling skill will increase in the future. With the availability of self-service data tools, more and more people will be able to access the data insight by their own. As a result, more and more insights will be generated like never before. However, unless we enhanced the communication for those insights, we only see lower and lower conversion rate from insight-to-value. If people see those insight not appealing enough, change will never occurs. Data mean nothing!

Data Storytelling is a new term. Hearing the term, people normally think about the data visualization, info-graphics, dashboard, data presentation. Too often, people understand storytelling is just beautiful and clear charts and graphs. The truth is that data storytelling is a structured approach to communicate those insights, it involves combinations of three elements: data, visuals and narrative.

Three elements of storytelling: data, visuals and narrative

When we have data and narrative going along, we are explaining to our audience what is happening and maybe why. When data is coupled with visuals, we are enlightening the understanding of data. Seeing charts and graphs, we have have better feel of the trend. When visuals is applied to narratives, we are engaging our audience to the story. The effect is like we watch a good Hollywood movie. And with the combination of all three elements: data, visuals and narratives, we will explain, enlighten and engage our audiences. And by those actions, we may have the chance to drive our audiences to actions. That’s our ultimate goal.

The importance of data storytelling

Story has been going with us through the history. Our ancestors told us story of heros, our country emergence. Those story are passed from generation to generation and will be continued.

Today modern storytelling may be associated with TED for example and the analysis of the most 500 popular TED talks shows that storytelling made of 65% of their content. So we can see that storytelling is an effective way to convey ideas, thoughts and insights in the way that memorable, persuasive and engaging.

According to study, human decisions are often attached to emotion not logic. How many times we buy a thing because we want it and not because we need it? We buy a new phone to replace the last year model which is still working very well. So things that touch our emotion are the ones lead us to action. The data insights represented in numbers or charts and graphs touch us mostly in the logic layers but story touches us deeper in our emotion layers. That is the reason why story is much more effective in driving our actions by its power of memorability, persuasiveness and engagement.

Memorable: A study by Stanford professor Chip Heath (Made to Stick author) found 63% could remember stories, but only 5% could remember a single statistic. While 2.5 statistics were used on average in the exercise and only 10% of the participants incorporated a story, the stories are what caught people’s attention.

Persuasiveness: In another study, researchers tested two variations of a brochure for the Save the Children charity organization. The story-based version outperformed the info-graphic version by $2.38 to $1.14 in terms of per participant donations. Various statistics on the plight of African children were far less persuasive than the story of Rokia, a seven-year-old from Mali, Africa.

Engagement: Researchers also discovered people enter into a trance-like state, where they drop their intellectual guard and are less critical and skeptical. Rather than nitpicking over the details, the audience wants to see where the story leads them. As mathematician John Allen Paulos observed, “In listening to stories we tend to suspend disbelief in order to be entertained, whereas in evaluating statistics we generally have an opposite inclination to suspend belief in order not to be beguiled.”

Conclusion

Many great insights could be never be a gold if they are not fueled by a convincing story. Data storytelling will be a new exciting field in which science and art merge. And data become truly valuable only when they can drive our actions toward changes for better.

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