深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 637|回复: 0
打印 上一主题 下一主题

beacon的报表数据处理(excel)

[复制链接]

800

主题

1379

帖子

7708

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7708
跳转到指定楼层
楼主
发表于 2021-6-11 16:57:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
beacon的报表数据处理(excel)

默认功能放在基类activity.inc.php的默认函数createExcel()中

  1.                 //第五种情况的UI: 下载
  2.                 if($this->editgrid_action=="download"){
  3.                         __saveLog("执行download页面UI");
  4.                         $this->loadLastQuery();
  5.                         $this->showReport();
  6.                         $this->createExcel();
  7.                         $this->halt=true;
  8.                         return;
  9.                 }
复制代码


默认的下载处理函数:

  1.         /*
  2.          * 下载Excel数据;
  3.          */
  4.         function createExcel(){
  5.                 global $db, $config, $user, $report, $smarty;
  6.                 $sqlstr = $smarty->tpl_vars["sql"];
  7.                 $limit = 65000;  //最大60K
  8.                 //require_once("phar://beacon.inc.phar/page.inc.php");        
  9.                 include_once("page.inc.php");
  10.                 $pager = new pager($limit, 1);
  11.                 $data=$pager->execute($db, $sqlstr);
  12.                 $count=count($data);  //数量
  13.                 include_once("excel.inc.php");
  14.                 if($count==0){
  15.                         //die( $sqlstr);
  16.                         ob_end_clean();  //fix by syant !
  17.                         exportExcel($report->Title, array(''), array(array(''),array('')), '', './', true);
  18.                 }else if($count>60000){
  19.                         //die( "a".$sqlstr);
  20.                         ob_end_clean();  //fix by syant !
  21.                         exportExcel($report->Title, array('警告'), array(array('由于数据量超过60000,请联系管理人员!'),array($sqlstr)), '', './', true);
  22.                 }else{
  23.                         $col=array_keys($data[0]);
  24.                         $line=array();
  25.                         foreach($data as $v){
  26.                                 $line[]=array_values($v);
  27.                         }
  28.                         ob_end_clean();  //fix by syant !
  29.                         exportExcel($report->Title, $col, $line, '', './', true);
  30.                         //exportExcel("syant-test",array('AA','BB'), array(array('a',21),array('b',23)), 'test', './', true);
  31.                 }
  32.         }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 12:57 , Processed in 0.023398 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表