您的位置:首页 > 编程语言

一段代码,贴贴,无聊时候看看,会更无聊。

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;
 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: