koolphp/koolreport

一个开源的PHP报告框架,旨在简化并加速报告的交付。

3.25.4 2019-02-15 07:54 UTC

README

自2019年6月起,我们继续在新的仓库 https://github.com/koolreport/core 上支持 KoolReport。要安装最新版本的 KoolReport,请使用

composer require koolreport/core

非常感谢!

KoolReport

KoolReport 是一个直观且灵活的开源 PHP 报告框架,旨在更快更简单地交付报告。它允许您完全控制数据处理以及数据可视化。它运行速度快,简单易用,并且可以通过多种方式扩展。

View examples

特性

  1. 支持各种数据源,包括关系型数据库 MySQL、SQL Server、Oracle 或 NoSQL(如 MongoDB、CSV 或 Excel 文件)。
  2. 支持各种数据处理:数据转换、连接、分组、筛选等。
  3. 通过小部件图表和表格实现出色的可视化。
  4. 扩展包可在 KoolReport 扩展包 中找到

变更日志

入门

您可以克隆我们的项目或直接从 KoolReport 下载 进行下载。

如果您使用 composer,可以运行以下命令来安装最新版本

$ composer require koolphp/koolreport

包含内容

koolreport/
├── packages/
├── src/
│   ├── clients/
│   ├── core/
│   ├── datasources/
│   ├── processes/
│   └── widgets/
├── tests/
└── autoload.php

系统要求

  1. PHP 5.4 或更高版本

安装

koolreport 文件夹复制到您的项目中,然后即可运行。您可以开始创建报告。

创建您的第一个报告

创建两个文件 SalesByCustomer.phpSalesByCustomer.view.php

/
├── koolreport/
├── SalesByCustomer.php
├── SalesByCustomer.view.php
└── index.php

index.php

<?php
// index.php: Just a bootstrap file
require_once "SalesByCustomer.php";

$salesByCustomer = new SalesByCustomer;
$salesByCustomer->run()->render();

SalesByCustomer.php

<?php
require_once "../koolreport/autoload.php";

//Specify some data processes that will be used to process
use \koolreport\processes\Group;
use \koolreport\processes\Sort;
use \koolreport\processes\Limit;

//Define the class
class SalesByCustomer extends \koolreport\KoolReport
{    
    protected function settings()
    {
        //Define the "sales" data source which is the orders.csv 
        return array(
            "dataSources"=>array(
                "sales"=>array(
                    "class"=>'\koolreport\datasources\CSVDataSource',
                    "filePath"=>"orders.csv",
                ),        
            )
        );
    }
  
    protected function setup()
    {
        //Select the data source then pipe data through various process
        //until it reach the end which is the dataStore named "sales_by_customer".
        $this->src('sales')
        ->pipe(new Group(array(
            "by"=>"customerName",
            "sum"=>"dollar_sales"
        )))
        ->pipe(new Sort(array(
            "dollar_sales"=>"desc"
        )))
        ->pipe(new Limit(array(10)))
        ->pipe($this->dataStore('sales_by_customer'));
    }
}

SalesByCustomer.view.php

<?php 
    use \koolreport\widgets\koolphp\Table;
    use \koolreport\widgets\google\BarChart;
?>

<div class="report-content">
    <div class="text-center">
        <h1>Sales By Customer</h1>
        <p class="lead">This report shows top 10 sales by customer</p>
    </div>

    <?php
    BarChart::create(array(
        "dataStore"=>$this->dataStore('sales_by_customer'),
        "width"=>"100%",
        "height"=>"500px",
        "columns"=>array(
            "customerName"=>array(
                "label"=>"Customer"
            ),
            "dollar_sales"=>array(
                "type"=>"number",
                "label"=>"Amount",
                "prefix"=>"$",
                "emphasis"=>true
            )
        ),
        "options"=>array(
            "title"=>"Sales By Customer",
        )
    ));
    ?>
    <?php
    Table::create(array(
        "dataStore"=>$this->dataStore('sales_by_customer'),
            "columns"=>array(
                "customerName"=>array(
                    "label"=>"Customer"
                ),
                "dollar_sales"=>array(
                    "type"=>"number",
                    "label"=>"Amount",
                    "prefix"=>"$",
                )
            ),
        "cssClass"=>array(
            "table"=>"table table-hover table-bordered"
        )
    ));
    ?>
</div>

您可以下载源代码 sale_report.zip。此报告的结果可以在 此处预览

更多示例

  1. 产品与季度对比
  2. 导出到 PDF
  3. 钻取报告
  4. 数据透视表

..以及所有示例

许可证

KoolReport 遵循 MIT 许可协议。

扩展包

  • Laravel:让 KoolReport 在 Laravel PHP 框架中无缝运行 [免费]
  • CodeIgniter:让 KoolReport 在 CodeIgniter 框架中无缝运行[免费]
  • MongoDB:从 MongoDB 构建报告[免费]
  • CleanData:解决您的数据缺失问题[免费]
  • QueryBuilder:为您的报告构建快速且无错误的 SQL 查询[免费]
  • Instant:无需设置完整报告即可立即创建小部件[免费]
  • Cache:最大限度地提高您报告的速度和响应速度[免费]
  • Statistics:为您的数据提供各种统计指标[免费]
  • Bootstrap3:使用 Bootstrap 3 创建美观的报告[免费]
  • Bootstrap4:使用 Bootstrap 4 创建现代报告[免费]
  • CloudExport:使用云服务将报告导出为 PDF、JPG、PNG 等格式[免费]
  • Excel:将数据导入和导出到 Excel[$29]
  • Cube:将您的数据转换为二维交叉表[$19]
  • Pivot:构建多维透视表[$49]
  • Export:将报告导出为 PDF、JPG、PNG 等格式[$29]
  • Morris Chart:在您的报告中使用 morris 图表[$9]
  • Inputs:构建动态报告的最简单方法[$29]
  • BarCode:生成条形码和二维码[$9]
  • Sparklines:创建小型图表[$9]
  • DataGrid:以表格格式显示数据,搜索、排序、分组数据等[$19]
  • DrillDown:轻松构建出色的钻取、钻透报告[$29]
  • ChartJS:为您的报告提供最美丽、功能最强大的图表库之一[$29]

KoolReport Pro

KoolReport Pro 是 KoolReport 最先进的版本。它包括最新的 KoolReport 版本以及 KoolPHP Inc. 提供的所有可用的高级包。开发者许可证价格为 $129,企业许可证价格为 $349。这些许可证包含以下优势

  1. 包括所有 当前包和未来包
  2. 可在 无限服务器或项目 上部署。
  3. 当您将 KoolReport Pro 与您的商业产品一起交付时,将获得 皇家免费(无需额外付费)。
  4. 提供 1 年订阅,以获得免费升级、修复错误和新发布的包,无论价格如何。
  5. 1年论坛优先支持。您的帖子将标有星号,并得到我们的专家最快响应。
  6. 企业许可允许组织中的无限数量的开发者
  7. 下一次订阅享受50%的折扣

如果您对这个特别版本有进一步的疑问,请访问我们的论坛或给我们发送邮件至support@koolreport.com。我们会尽快回复您。

一些想法

KoolReport是我们多年来为客户制作报告的经验总结。我们希望它能帮助您以更少的努力创建强大的报告。我们非常喜爱KoolReport,希望它能充满活力。我们也希望您也是如此。

充满活力意味着源代码会持续进化,添加更多功能,并且一切都将得到专业的支持。

请将您购买扩展包或订阅视为您的捐赠。作为交换,我们想给您发送礼物,这些礼物是扩展或支持服务。通过这种方式,我们共同为KoolReport的生存做出贡献。

我们的愿景

“如果你想走得快,就一个人走。如果你想走得远,就一起走” - 非洲谚语

多年来,我们通过软件开发了解了上述声明。我们选择开源作为KoolReport的软件模式,因为我们理解

  1. 一个人,我们永远无法跟上所有时刻变化的需求
  2. 一个人,我们永远没有足够的人力来提供良好的服务。

这就是为什么我们设计KoolReport既简单又可扩展。简单易用,易于扩展以适应变化。我们希望将其发展成为一个坚实的框架,由提供各种数据源、数据处理、可视化小部件和报告模板的包市场支持,用户可以立即找到解决方案。

KoolReport希望成为连接需要报告解决方案的人和能提供它的人的基础或生态系统。所有的人都受邀加入我们的市场,提供优质解决方案。我们相信人们愿意为优质的解决方案付费。我们很高兴分享市场和利润。

愿景很宏大,我们迈出了第一步。加入我们吧!

待办事项列表

以下是我们要做的事情

  1. 进化KoolReport的结构和功能
  2. 建立市场来推动
    1. 连接到各种数据源
    2. 数据处理重点:数据清洗、数据分析、数据挖掘技术
    3. 更多用于数据可视化的控件
  3. 为非技术用户构建GUI
  4. 构建处理大数据的生态系统

作者

  1. KoolPHP Inc - PHP组件的供应商