Buenas foro.
Necesito de su ayuda estoy realizando un reporte de ventas donde necesito crear gráficas de para las ventas realizadas.
El reporte ya lo tengo generado pero no se como incorporar jpgraph a fpdf para poder crear la gráfica. Encontré por la web un ejemplo que funciona pero como comento no se como incorporarlo a FPDF.
Para el reporte utilice esta clase:
Código PHP:
Ver original<?php
require('fpdf.php');
class PDF_MC_Table extends FPDF
{
var $widths;
var $aligns;
function SetWidths($w){
//Set the array of column widths
$this->widths=$w;
}
function SetAligns($a){
//Set the array of column alignments
$this->aligns=$a;
}
function Row($data)
{
//Calculate the height of the row
$nb=0;
for($i=0;$i<count($data);$i++) $nb=max($nb,$this->NbLines($this->widths[$i],$data[$i])); $h=6*$nb;
//Issue a page break first if needed
$this->CheckPageBreak($h);
//Draw the cells of the row
for($i=0;$i<count($data);$i++) {
$w=$this->widths[$i];
$a=isset($this->aligns[$i]) ?
$this->aligns[$i] : 'L'; //Save the current position
$x=$this->GetX();
$y=$this->GetY();
//Draw the border
$this->Rect($x,$y,$w,$h);
//Print the text
$this->MultiCell($w,6,$data[$i],0,$a);
//Put the position to the right of the cell
$this->SetXY($x+$w,$y);
}
//Go to the next line
$this->Ln($h);
}
function CheckPageBreak($h)
{
//If the height h would cause an overflow, add a new page immediately
if($this->GetY()+$h>$this->PageBreakTrigger)
$this->AddPage($this->CurOrientation);
}
function NbLines($w,$txt)
{
//Computes the number of lines a MultiCell of width w will take
$cw=&$this->CurrentFont['cw'];
if($w==0)
$w=$this->w-$this->rMargin-$this->x;
$wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
if($nb>0 and $s[$nb-1]=="\n")
$nb--;
$sep=-1;
$i=0;
$j=0;
$l=0;
$nl=1;
while($i<$nb)
{
$c=$s[$i];
if($c=="\n")
{
$i++;
$sep=-1;
$j=$i;
$l=0;
$nl++;
continue;
}
if($c==' ')
$sep=$i;
$l+=$cw[$c];
if($l>$wmax)
{
if($sep==-1)
{
if($i==$j)
$i++;
}
else
$i=$sep+1;
$sep=-1;
$j=$i;
$l=0;
$nl++;
}
else
$i++;
}
return $nl;
}
}
?>
Y de ahí mando a llamar los métodos de FPDF:
Código PHP:
Ver original$pdf=new PDF_MC_Table('L','mm','A4');
Pero encontre esta clase para las graficas:
Código PHP:
Ver originalclass Reporte extends FPDF
{
public function __construct($orientation='L', $unit='mm', $format='A4'){
parent::__construct($orientation, $unit, $format);
}
public function gaficoPDF
($datos = array(),$nombreGrafico = NULL,$ubicacionTamamo = array(),$titulo = NULL){ //construccion de los arrays de los ejes x e y
echo "los datos del grafico y la ubicacion deben de ser arreglos";
}
elseif($nombreGrafico == NULL){
echo "debe indicar el nombre del grafico a crear";
}
else{
#obtenemos los datos del grafico
foreach ($datos as $key => $value){
$data[] = $value[0];
$nombres[] = $key;
$color[] = $value[1];
}
$x = $ubicacionTamamo[0];
$y = $ubicacionTamamo[1];
$ancho = $ubicacionTamamo[2];
$altura = $ubicacionTamamo[3];
#Creamos un grafico vacio
$graph = new PieGraph(600,400);
#indicamos titulo del grafico si lo indicamos como parametro
$graph->title->Set($titulo);
}
//Creamos el plot de tipo tarta
$p1 = new PiePlot3D($data);
$p1->SetSliceColors($color);
#indicamos la leyenda para cada porcion de la tarta
$p1->SetLegends($nombres);
//Añadirmos el plot al grafico
$graph->Add($p1);
//mostramos el grafico en pantalla
$graph->Stroke("$nombreGrafico.png");
$this->Image("$nombreGrafico.png",$x,$y,$ancho,$altura);
}
}
}
Pero como hago para agregarlo a mi archivo para poder hacer el grafico.
De verdad les agradecería si me pudieran ayudar.
De antemano muchas gracias.