chrisb34/

yii2-report-grid

用于生成总计报告的 Yii-Framework gridview 小部件

安装: 288

依赖者: 0

建议者: 0

安全: 0

星标: 5

关注者: 2

分支: 0

开放问题: 2

类型:yii2-extension

dev-master 2018-11-28 15:46 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:14:29 UTC


README

这是一个支持总计和子总计的 Yii-Framework 报告扩展。它还支持导出为 CSV 格式。你可以根据需要设置任意数量的子总计层级。你还可以将子总计或总计延迟显示在网格的底部(页脚)。

警告

这是一个开发项目,不应在生产系统中使用。

安装

安装此扩展的首选方式是通过 composer

你可以运行

php composer.phar require --prefer-dist chrisb34/yii2-reportgrid "*"

或者在你的 composer.json 文件的 require 部分添加以下内容:

"chrisb34/yii2-reportgrid": "*"

使用方法

这是一个强大的报告网格扩展。与其他总计网格相比,所有的总计和子总计都是在网格小部件内部完成的。这意味着你可以使用闭包函数来设置子总计和总计,因此可以引用其他模型属性或关系。

一旦安装了该扩展,就可以像使用普通网格一样使用它,只需添加一些额外的选项。

echo ReportGrid::widget([
        'dataProvider' => $dataProvider,
        'controlBreak' => true,
        'totalRowOptions' => ['class'=>'total-row'],
        'exportCSV' => true, 
        'afterRow' => function() {},
        'totalRowOptions'
        'totalsHeader => true|false 
        'columns' => [        
           'attribute_name' => [
               'name' => optional: array key name
               'subTotal' => true/false/closure,
               'hAlign' => true
           ],
           'attribute_name' => [
               'name' => optional: array key name,
               // cause a break at break_level on this attribute
               'subTotalOn' => (int) break_level,
               'subTotal' => [
                   // note break level on closure
                   // useful for headings on break levels
                   // eg: function($model, $key, $index, $widget, $break) { if ($break==0) return 'Report Totals' ; 
                   //                                                       elseif ($break==1) return 'Break 1 Totals'; .... }
                   'value' => string|attribute name|closure ~ function($model, $key, $index, $widget, $break) {}
                   'breakValue' => string|attribute name|closure ~ function($model, $key, $index, $widget, $break) {}
                   'showOnBreak => (int) break level,
                   'hideOnBreak => (int) break level,
                   'format' =>
                   'totalMethod' => ReportColumn::TOTAL_BREAKDOWN,
                   'totalOn' => string|attribute name|closure ~ function($model, $key, $index, $widget, $break) { return $model->attribute;  },     
               ]
           ],
       ]
      ...
    ]);

您可以在以下链接查看工作演示: http://yii2.percipero.com