博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP中基于b2core框架内部的网页上Html输出生成Word的处理
阅读量:5986 次
发布时间:2019-06-20

本文共 3853 字,大约阅读时间需要 12 分钟。

hot3.png

下面是部分的代码处理:

关键的函数是下面这几个,你要看懂这里的代码书写即可:

 

function report_data($yaml)  {/* Yaml 格式-  h1  content-  table  entity:uuid-  list  entity:filed:val*/    foreach($yaml as $sec){      $list = $unlist = $ndt = array();      $tag = $sec[0];      switch($tag){        case 'table':          $label = load('m/config_m')->key($sec[1]);          $data = load('m/entity_m')->get_one($_POST[$sec[2]]);          $dt = _decode($data['data']);          if($sec[3]['unlist']){            $unlist = explode(',',$sec[3]['unlist']);            foreach($label['item'] as $k=>$v){              if(!in_array($v['id'],$unlist)){                $ndt[$k]= $v;              }            }            $label['item'] = $ndt;          }          elseif($sec[3]['list'])          {            $list = explode(',',$sec[3]['list']);            foreach($label['item'] as $k=>$v){              if(in_array($v['id'],$list)){                $ndt[$k]= $v;              }            }            $label['item'] = $ndt;          }          $report1[] = array('table',array($label['item'],$dt));          break;        case 'list':          $data  = $header = array();          $label = load('m/config_m')->key($sec[1]);          $rs = load('m/entity_m')->get_by_index($sec[1],$sec[2],$_POST[$sec[3]]);          if($sec[4]['unlist']){            $unlist = explode(',',$sec[4]['unlist']);            foreach($label['item'] as $k=>$v){              if(!in_array($v['id'],$unlist)){                $ndt[$k]= $v;              }            }            $label['item'] = $ndt;          }          elseif($sec[4]['list'])          {            $list = explode(',',$sec[4]['list']);            foreach($label['item'] as $k=>$v){              if(in_array($v['id'],$list)){                $ndt[$k]= $v;              }            }            $label['item'] = $ndt;          }          foreach($label['item'] as  $k => $label){           switch($label['type']){             case 'section':               break;             case 'system':               $k = $k.'_label';               $header[$k] = $label['name'];               break;             default:               $header[$k] = $label['name'];           }          }          $data[] = $header;          foreach($rs as $line){           $dt = _decode($line['data']);           $tr = array();           foreach($header as $k=>$label){             $tr[] = $dt[$k];           }           $data[] = $tr;          }          $report1[] = array('list',$data);          break;        default:           $report1[] = array($tag,$sec[1]);     }   }    return $report1;  }  /*    htmlt report :    根据 数组数据 生成 html 格式报表  */  function html_report($report)  {    foreach($report as $r){      $tag = $r[0];      switch($tag){        case 'h1':        case 'h2':        case 'h3':        case 'h4':          $out.= "<$tag>".$r[1]."
"; break; case 'table': $data = $r[1]; $label = $data[0]; $dt = $data[1]; $out.='
'; foreach($label as $k=>$r){ if($r['type']=='section')$out.='
'; else $out.='
'; } $out.='
'; break; case 'list': $data = $r[1]; $no = '序号'; $out.='
'; foreach($data as $dt){ $out.='
'; foreach($dt as $d){ $out.='
'; } $out.='
'; $no = ($no == '序号')?1:$no+1; } $out.='
'; break; case 'textbox': $out.='
'; break; case 'text': $out.='
'.$r[1].'
'; break; } } return $out; }}

 

转载于:https://my.oschina.net/feanlau/blog/909851

你可能感兴趣的文章
DragonBoard810使用记录
查看>>
2015第24周五Spring的AOP
查看>>
Linux下批量替换文件内容方法
查看>>
JSON风格指南-真经
查看>>
VSTO学习笔记(八)向 Word 2010 中写入表结构
查看>>
linux c 之signal 和sigaction区别
查看>>
使用CNN(convolutional neural nets)关键的一点是检测到的面部教程(四):学习率,学习潜能,dropout...
查看>>
六款主流免费网络嗅探软件wireshark,tcpdump,dsniff,Ettercap,NetStumbler
查看>>
Android Game
查看>>
Hadoop入门进阶课程1--Hadoop1.X伪分布式安装
查看>>
POJ 3691 DNA repair 基于AC自己主动机DP
查看>>
[ios]Xcode常用快捷键
查看>>
(剑指Offer)面试题15:链表中倒数第k个结点
查看>>
[地图代数]处理DEM中的高程异常值——ArcGIS栅格计算的应用
查看>>
【LeetCode从零单排】No189 .Rotate Array
查看>>
记一个简单的保护if 的sh脚本
查看>>
使用Merge存储引擎实现MySQL分表
查看>>
Spark通过YARN提交任务不成功(包含YARN cluster和YARN client)
查看>>
Win10系列:C#应用控件基础7
查看>>
PowerDesigner导出word,PowerDesigner把表导出到word,PDM导出word文档
查看>>