ReportTpl.class.rar

  • PUDN用户
    了解作者
  • PHP
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 2
    下载次数
  • 2013-12-19 21:03
    上传日期
结合tcpdf编写的一个生成报表的类,只需要传入一些参数即可生成pdf报表,快捷方便.
ReportTpl.class.rar
  • ReportTpl.class.php
    9.2KB
内容介绍
<?php /* 说明:此类必须先引用tcpdf.php 必要参数: $data['titleText']='报表的名称'; $data['imgPath']="E:\\temp\\php\\gaishan\\App\\Public\\Img\\logo_print.png"; $data['imgWidthPix']=474; $data['imgHeightPix']=133; $data['imgWidthPrint']=40.1; $data['imgHeightPrint']=11.3; $data['headerInfo']=array('单号:','打印时间:'.date('Y-m-d H:i:s',time()),'制表人:'); $data['footerData']=array('领料人:','审核:','仓管员:','日期:'); $data['tableHeader']=array('标题1','标题2','标题3','标题4','标题5'); $data['colWidths']=array(45,30,30,32,32); $data['colAlign']=array('C','L','C','R','L'); $data['reportData']=$result; //$result是二维数组。 调用方式: $pdf = new ReportHeadFoot( $data, 'L', 'mm', 'A4' ); $pdf->Output( 'Report.pdf', 'I' ); */ Vendor('tcpdf.examples.lang.chi'); Vendor('tcpdf.tcpdf'); Class ReportHeadFoot extends TCPDF { private $marginLeft;//左边距 private $marginRight;//右边距 private $marginTop;//上边距 private $marginBottom;//下边距 private $titleText;//报表标题 private $titleFontSize;//标题字体大小 private $infoFontSize;//页眉内容字体大小 private $fontFamily;//字体 private $imgPath;//logo路径 private $imgWidthPix;//图片宽度像素 private $imgHeightPix;//图片高度像素 private $imgWidthPrint;//图片宽度打印 private $imgHeightPrint;//图片高度打印 private $headerY;//页眉开始Y坐标 private $headerInfo;//页眉右边内容 array() private $footerData;//页脚数据 array() private $reportData;//报表数据 array() private $tableHeader;//表标题 array() private $colWidths;//列宽 array() private $colAlign;//列的对齐方式 array() private $tabelHeaderHeight;//表头行高 private $rowHeight;//表格行高 private $tableHeaderFontSize;//表头字体大小 private $reportFontSize;//报表主体字体大小 public function __construct($data,$orientation, $unit, $format) { parent::__construct($orientation, $unit, $format,true,'UTF-8',false); if(!empty($data['titleText'])){ $this->titleText=$data['titleText']; }else{ $this->titleText='报表标题'; } if(!empty($data['titleFontSize'])){ $this->titleFontSize=$data['titleFontSize']; }else{ $this->titleFontSize=16; } if(!empty($data['infoFontSize'])){ $this->infoFontSize=$data['infoFontSize']; }else{ $this->infoFontSize=8; } if(!empty($data['fontFamily'])){ $this->fontFamily=$data['fontFamily']; }else{ $this->fontFamily='stsongstdlight'; } if(!empty($data['imgPath'])){ $this->imgPath=$data['imgPath']; }else{ $this->imgPath="E:\\temp\\php\\gaishan\\App\\Public\\Img\\logo_print.png"; } if(!empty($data['imgWidthPix'])){ $this->imgWidthPix=$data['imgWidthPix']; }else{ $this->imgWidthPix=474; } if(!empty($data['imgHeightPix'])){ $this->imgHeightPix=$data['imgHeightPix']; }else{ $this->imgHeightPix=133; } if(!empty($data['imgWidthPrint'])){ $this->imgWidthPrint=$data['imgWidthPrint']; }else{ $this->imgWidthPrint=40.1; } if(!empty($data['imgHeightPrint'])){ $this->imgHeightPrint=$data['imgHeightPrint']; }else{ $this->imgHeightPrint=11.3; } if(!empty($data['marginLeft'])){ $this->marginLeft=$data['marginLeft']; }else{ $this->marginLeft=14; } if(!empty($data['marginRight'])){ $this->marginRight=$data['marginRight']; }else{ $this->marginRight=14; } if(!empty($data['marginTop'])){ $this->marginTop=$data['marginTop']; }else{ $this->marginTop=25; } if(!empty($data['marginBottom'])){ $this->marginBottom=$data['marginBottom']; }else{ $this->marginBottom=16; } if(!empty($data['headerY'])){ $this->headerY=$data['headerY']; }else{ $this->headerY=10; } if(!empty($data['headerInfo'])){ $this->headerInfo=$data['headerInfo']; }else{ $this->headerInfo=array(); } if(!empty($data['footerData'])){ $this->footerData=$data['footerData']; }else{ $this->footerData=array(); } if(!empty($data['reportData'])){ $this->reportData=$data['reportData']; }else{ $this->reportData=array(); } if(!empty($data['tableHeader'])){ $this->tableHeader=$data['tableHeader']; }else{ $this->tableHeader=array(); } if(!empty($data['colWidths'])){ $this->colWidths=$data['colWidths']; }else{ $this->colWidths=array(); } if(!empty($data['colAlign'])){ $this->colAlign=$data['colAlign']; }else{ $this->colAlign=array(); } if(!empty($data['tabelHeaderHeight'])){ $this->tabelHeaderHeight=$data['tabelHeaderHeight']; }else{ $this->tabelHeaderHeight=9; } if(!empty($data['rowHeight'])){ $this->rowHeight=$data['rowHeight']; }else{ $this->rowHeight=8; } if(!empty($data['reportFontSize'])){ $this->reportFontSize=$data['reportFontSize']; }else{ $this->reportFontSize=10; } if(!empty($data['tableHeaderFontSize'])){ $this->tableHeaderFontSize=$data['tableHeaderFontSize']; }else{ $this->tableHeaderFontSize=11; } $this->SetMargins($this->marginLeft,$this->marginTop,$this->marginRight,true); $this->SetAutoPageBreak( true, $this->marginBottom ); //设置图像缩放因子 $this->setImageScale(PDF_IMAGE_SCALE_RATIO); } //页眉 public function Header() { //p($this->marginLeft); global $webcolor; $this->SetFont($this->fontFamily, '', $this->infoFontSize ); $this->SetY($this->headerY-$this->infoFontSize+3); $this->Cell(0,0,'页码:'.$this->getAliasNumPage().'/'.$this->getAliasNbPages(),0,0,'R'); $this->ImagePngAlpha($this->imgPath, $this->marginLeft, $this->headerY, $this->imgWidthPix,$this->imgHeightPix,$this->imgWidthPrint, $this->imgHeightPrint, 'PNG', null, 'T', false, 300, 'L' ); $this->SetFont($this->fontFamily, 'B', $this->titleFontSize ); $this->Cell( $this->getPageWidth()-$this->marginLeft-$this->marginRight-$this->imgWidthPrint-42, 0, $this->titleText , 0, 0,'C' ); $this->SetFont($this->fontFamily, 'I', $this->infoFontSize ); $this->Cell( 0, 0, $this->headerInfo[0], 0, 2,'L' ); $this->Cell( 0, 0, $this->headerInfo[1], 0, 2,'L' ); $this->Cell( 0, 0, $this->headerInfo[2], 0, 0,'L' ); $this->SetLineStyle( array( 'width' => 0.1, 'color' => array( $webcolor['black'] ) ) ); $this->Line( $this->marginLeft, $this->headerY + $this->imgHeightPrint, $this->getPageWidth() - $this->marginRight, $this->headerY + $this->imgHeightPrint ); } //页脚 public function Footer() { global $webcolor; $this->SetLineStyle( array( 'width' => 0.1, 'color' => array( $webcolor['black'] ) ) ); $this->Line( $this->marginLeft, $this->getPageHeight() - $this->marginBottom, $this->getPageWidth() - $this->marginRight, $this->getPageHeight() - $this->marginBottom ); $this->SetFont( $this->fontFamily, '', $this->infoFontSize ); $this->SetY( -$this->marginBottom+1, true ); $colWidth=($this->getPageWidth() - $this->marginLeft-$this->marginRight)/count($this->footerData); foreach($this->footerData as $v){ $this->Cell( $colWidth, 0, $v,0,0,'L'); } } //报表主体(数据) public function reportData() { global $webcolor; if($this->getPageWidth()-$this->marginLeft-$this->marginRight-$this->_getTableWidth() < 0){ echo '表宽度+边距 超过了页面的宽度!'; } $this->AddPage(); $this->_tableHeader(); $indent=($this->getPageWidth()-$this->marginLeft-$this->marginRight-$this->_getTableWidth())/2; $tableLineStyle=array('LR' => array('width' => 0.1, 'color' => array(0, 0, 0))); # 表格内容 $this->SetFont( $this->fontFamily ,'',$this->reportFontSize); foreach( $this->reportData as $key=>$item ) { $this->Cell( $indent ); $i=0; foreach($item as $v){ $this->Cell( $this->colWidths[$i]
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...