chrisb34 / yii2-report-grid
用于生成总计报告的 Yii-Framework gridview 小部件
dev-master
2018-11-28 15:46 UTC
Requires
- yiisoft/yii2: *
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