一段代码,贴贴,无聊时候看看,会更无聊。
2010-09-01 14:00
260 查看
$myxls = new Excel_Creator ($downloadTitle."[企业数据]表面活性剂季度报表" ); $workSheet=array(); $condition = array(); $myPageViewList = array(); $myPageViewList = $myClassObj->get_listexport($condition); $workSheet[] = $myxls->createWorkSheet ( "表面活性剂", getTableHead(), getTableBody($myPageViewList), getTableBottom(),getWorkSheetHead(),getWorkSheeBottom()); echo $myxls->createExcel ( $workSheet,getStyle());//如果是多个样式需要在这里统一添加
function get_listexport($condition = null) { $re= array(); $argwhere= $this->_make_condition($condition);//组装条件 $sqlStr="select distinct qy_name from (select *,concat(trim(`year`),trim(`month`)) as mydatecon from `$this->table`) a WHERE 1 $argwhere"; $qyNameArray= $this->db->select($sqlStr); $this->getTrees(); $treeArray=$this->treeData; $qyNameArray= $this->db->select($sqlStr); //总值的统计,去掉公司条件限制 foreach($treeArray as $node){ //通过arrchildid 集合来统计此父级节点的汇总值 $sql="SELECT ifnull(sum(`bj_cl`),0) as bj_cl,ifnull(sum(`bj_xl`),0) as `bj_xl` FROM `phpcms_form_qysj_bmhxj_yzhg_qt` WHERE `code` in (". $node['arrchildid'].")"; $tmpResult= $this->db->select($sql); //组织一条数据 序号 名称 公司 常量 销量 $re[]=array( $node["typeSeNo"], $node["typeId"], $node["typeName"], '总 计', $tmpResult[0]['bj_cl'], $tmpResult[0]['bj_xl'] ); }//end类型产品列表 //各个公司的统计找到公司列表,遍历公司列表 foreach($qyNameArray as $aQy){ //获取类型树集合,遍历树 foreach($treeArray as $node){ //通过arrchildid 集合来统计此父级节点的汇总值 $sql="SELECT ifnull(sum(`bj_cl`),0) as bj_cl,ifnull(sum(`bj_xl`),0) as `bj_xl` FROM `phpcms_form_qysj_bmhxj_yzhg_qt` WHERE `qy_name` like '%".$aQy["qy_name"]."%' and `code` in (". $node['arrchildid'].")"; $tmpResult= $this->db->select($sql); //组织一条数据 序号 名称 公司 常量 销量 $re[]=array( $node["typeSeNo"], $node["typeId"], $node["typeName"], $aQy["qy_name"], $tmpResult[0]['bj_cl'], $tmpResult[0]['bj_xl'] ); }//end类型产品列表 }//end公司列表 $data=array(); $data[]=$treeArray;//产品类型 $data[]=$re;//数据 $data[]=$qyNameArray;//企业名称集合 return $data; }
function getTableBody($data){ $firstTitle=''; $secondTitle=''; array_unshift($data[2],array('qy_name'=> "总 计")); foreach($data[2] as $qy){ $firstTitle.='<Cell ss:MergeAcross="1" ss:StyleID="s135"><ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40">'.$qy["qy_name"].'</ss:Data><NamedCell ss:Name="Print_Area"/></Cell> '; $tmp=$qy["qy_name"]=="总 计"?'ss:Index="4"':''; $secondTitle.=' <Cell '.$tmp.' ss:StyleID="s72"><Data ss:Type="String">产</Data><NamedCell ss:Name="Print_Area"/></Cell> <Cell ss:StyleID="s72"><Data ss:Type="String">销</Data><NamedCell ss:Name="Print_Area"/></Cell> '; } $qyNameString='<Row ss:AutoFitHeight="0" ss:Height="15" ss:StyleID="s71"> <Cell ss:MergeDown="1" ss:StyleID="s137"><Data ss:Type="String">序号</Data><NamedCell ss:Name="Print_Area"/></Cell> <Cell ss:MergeDown="1" ss:StyleID="s137"><Data ss:Type="String">产品名称</Data><NamedCell ss:Name="Print_Area"/></Cell> <Cell ss:MergeDown="1" ss:StyleID="s137"><Data ss:Type="String">代码</Data><NamedCell ss:Name="Print_Area"/></Cell> '.$firstTitle.' <Cell ss:StyleID="s68"/> <Cell ss:StyleID="s69"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> <Cell ss:StyleID="s70"/> </Row> <Row> '.$secondTitle.' <Cell ss:Index="17" ss:StyleID="s66"/> <Cell ss:StyleID="s66"/> <Cell ss:StyleID="s66"/> <Cell ss:StyleID="s66"/> </Row>'; //头部/////////////////////////////////////////////////////////////////////// //return $qyNameString; $leftRecord=''; foreach($data[0] as $sub){ $aQyValueString=""; foreach($data[2] as $qy){ foreach($data[1] as $row){ if(($row[1]==$sub["typeId"])&&($row[3]== $qy["qy_name"])){ $aQyValueString.='<Cell ss:StyleID="s77"><Data ss:Type="Number">'.$row["4"].'</Data><NamedCell ss:Name="Print_Area"/></Cell> <Cell ss:StyleID="s77"><Data ss:Type="Number">'.$row["5"].'</Data><NamedCell ss:Name="Print_Area"/></Cell>'; break;//一定要break } } } $leftRecord.='<Row ss:Height="15"> <Cell ss:StyleID="s74"><Data ss:Type="String">'.$sub["typeSeNo"].'</Data><NamedCell ss:Name="Print_Area"/></Cell> <Cell ss:StyleID="s75"><Data ss:Type="String">'.$sub["typeName"].'</Data><NamedCell ss:Name="Print_Area"/></Cell> <Cell ss:StyleID="s76"><Data ss:Type="Number">'.$sub["typeId"].'</Data><NamedCell ss:Name="Print_Area"/></Cell>'.$aQyValueString.'</Row>'; } //循环类型树列表 //循环数据表找出 某类型的(公司的产销数据)列表 //var_dump($leftRecord); return $qyNameString.$leftRecord; }
相关文章推荐
- 其实不是无聊 就是随便看看 手机号码是否合理 一段小代码
- 无聊代码一段
- 写一段jsp的代码,挺无聊的
- 深入.NET程序集加载:你知道.NET程序集加载的确切时机吗,来看看一段代码存在的问题
- 上班无聊,可以自己学习下别的知识或看看自己以前写的代码有没有好的改进的地方
- 贴一段代码看看
- 一段代码,给游戏添加统一的封面和旋屏提示
- 一段项目开发时候用的调试代码 一 --输出特殊信息
- 关于Zend framework 里一段代码的疑问
- 一段异步操作的代码(清理缓存)
- 从一段代码看fork()函数及其引发的竞争
- 分析网友的一段求救小程序,20行代码有多少错误?多少可改进之处?
- 一段使linux中中文字体美化的有用代码
- c++学习之旅 (在main函数执行前执行一段代码和在main函数执行之后执行一段代码)
- 一段很有意思的代码
- magento入门代码解析--醍醐灌顶【强烈推荐看看】
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
- 分享一段优雅的代码,测试编译通过。摘自《设计模式沉思录》,稍作修改,否则编译不过
- 一段下载魔兽世界历史音频的代码
- java学习-【转】如何用Java编写一段代码引发内存泄露