如何在表格末行实现汇总整列数据的功能

能否为表格手动添加一行,然后在其中实现整列汇总的功能
已邀请:

dolphinphp

赞同来自: gisa16

目前没有直接能添加汇总的功能,不过也可以实现,有两种方法
 
1.利用setExtraHtml()方法,把汇总数据组合好html,然后插入到表格的上方或者下方
http://doc.dolphinphp.com/256411
 
2.往数据中添加新行。
// 查询数据
$data_list = User::where($map)->paginate();

// 另外定一个数组,数组元素跟表格显示的字段名相同,比如表格需要显示的字段有id,username,money等等
// 也就是将你要统计的数据先统计好,写入到一个数组
$tota = [
'id' => '统计',
'username' => '合计',
'money' => 1000
];

// 将数组放入到$data_list中
$data_list->unshift($total); // 在数据开头插入一个元素


关于数据集的其他用法,可以参考
https://www.kancloud.cn/manual/thinkphp5/150164 

 

tane

赞同来自: 龙猫

用JS呀。。 setExtraJs
    $js = <<<EOF
<script type="text/javascript">
$(function(){
$('.table-builder').append('<tr><td style="text-align:center;">合计</td><td></td><td></td><td></td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>');
$('.table-builder tr:not(:last)').each(function(){
var i=1;
$(this).find('td').each(function () {
if(i>=5){
var sumcount=parseInt($('.table-builder tr:last td:nth-child('+i+')').html());
var tdint=0;
if($(this).children().is('a')){
tdint=parseInt($(this).find('a').html());
}else{
tdint=parseInt($(this).html());
}
$('.table-builder tr:last td:nth-child('+i+')').html(sumcount+tdint);
}
i++;
});
});
});
</script>
EOF;

// 使用ZBuilder快速创建数据表格
return ZBuilder::make('table')
->addTopSelect('groupID', '全部分组', $list_type) //添加顶部下拉筛选
->addFilter('groupID',$list_type) // 添加筛选
->hideCheckbox() //隐藏第一列多选框
->addColumns([ // 批量添加数据列
['id', 'ID'],
['memberCode', '编号', 'text'],
['memberName', '名称', 'text'],
['fzid', '分类', 'select', $list_type],
['ps0', '票数0', 'number'],
['ps1', '票数1', 'number'],
['ps2', '票数2', 'number'],
['ps3', '票数3', 'number'],
['ps4', '票数4', 'number'],
['ps5', '票数5', 'number'],
['ps6', '票数6', 'number'],
['ps7', '票数7', 'number'],
['liuyan', '留言', 'text'],
['piaoshu', '总票数', 'text'],
])
->setTableName('vote') // 设置数据表名
->setRowList($data_list) // 设置表格数据
->setExtraJs($js)
->noPages() // 设置不分页
->fetch(); // 渲染模板

 

dongzhi

赞同来自:

这种办法在分页的时候就会有问题

dongzhi

赞同来自:

另外,我还想问一下,如果新增订单,订单头和订单明细如何实现同一界面中录入,求解答

要回复问题请先登录注册