Título: Tablas multiceldas/multicell con php, mysql y libreria FPDF Publicado por: ontte en 15 Mayo 2013, 04:06 am Hola, soy nuevo en este foro, el tema es ese..multiceldas con la libreria fpdf, php y mysql..
Tengo este código pero quisiera implementarle las multiceldas a la tabla con "multicell" en vez de "cell", no sé exactamente como agregarlas, espero que me puedan ayudar y gracias de antemano. Aquí el código: <?php require('fpdf.php'); class PDF_MySQL_Table extends FPDF { var $ProcessingTable=false; var $aCols=array(); var $TableX; function TableHeader() { $this->SetFont('Arial','B',10); $this->SetX($this->TableX); $fill=!empty($this->HeaderColor); if($fill) $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]); foreach($this->aCols as $col) $this->Cell($col['w'],6,$col['c'],1,0,'C',$fill); $this->Ln(); } function Row($data) //Aqui se muestra la información de la tabla { $this->SetX($this->TableX); $x=$this->GetX(); $y=$this->GetY(); foreach($this->aCols as $col) $this->Cell($col['w'],5,$data[$col['f']],1,$col['a'],false); $this->Ln(); } function CalcWidths($width,$align) { //Compute the widths of the columns $TableWidth=0; foreach($this->aCols as $i=>$col) { $w=$col['w']; if($w==-1) $w=$width/count($this->aCols); elseif(substr($w,-1)=='%') $w=$w/100*$width; $this->aCols[$i]['w']=$w; $TableWidth+=$w; } //Compute the abscissa of the table if($align=='C') $this->TableX=max(($this->w-$TableWidth)/2,0); elseif($align=='R') $this->TableX=max($this->w-$this->rMargin-$TableWidth,0); else $this->TableX=$this->lMargin; } function AddCol($field=-1,$width=-1,$caption='',$align='L') { //Add a column to the table if($field==-1) $field=count($this->aCols); $this->aCols[]=array('f'=>$field,'c'=>$caption,'w'=>$width,'a'=>$align); } function Table($query,$prop=array()) { //Issue query $res=mysql_query($query) or die('Error: '.mysql_error()."<BR>Query: $query"); //Add all columns if none was specified if(count($this->aCols)==0) { $nb=mysql_num_fields($res); for($i=0;$i<$nb;$i++) $this->AddCol(); } //Retrieve column names when not specified foreach($this->aCols as $i=>$col) { if($col['c']=='') { if(is_string($col['f'])) $this->aCols[$i]['c']=ucfirst($col['f']); else $this->aCols[$i]['c']=ucfirst(mysql_field_name($res,$col['f'])); } } //Handle properties if(!isset($prop['width'])) $prop['width']=0; if($prop['width']==0) $prop['width']=$this->w-$this->lMargin-$this->rMargin; if(!isset($prop['align'])) $prop['align']='C'; if(!isset($prop['padding'])) $prop['padding']=$this->cMargin; $cMargin=$this->cMargin; $this->cMargin=$prop['padding']; //Compute column widths $this->CalcWidths($prop['width'],$prop['align']); //Print header $this->TableHeader(); //Print rows $this->SetFont('Arial','',9); $this->ColorIndex=0; $this->ProcessingTable=true; while($row=mysql_fetch_array($res)) $this->Row($row); $this->ProcessingTable=false; $this->cMargin=$cMargin; $this->aCols=array(); } } ?> |