No Naci Caminando Buscador

Envia sms gratis a Personal, Tigo; Claro y Vox...

miércoles, 18 de marzo de 2009

Fpdf en Symfony = Reportes

Crea un modulo para tus reportes:
> cd ~/miproyecto
> symfony init-module miaplicacion mimodulo

una ves creado tu modulo. verificalo en la url:


ahora crear una funcion y una vista para levantar un combo:
accionClass.php:
class reporteActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/

public function executeIndex(sfWebRequest $request)
{
$this->forward('default', 'module');
}
public function executeAccion()
{
$this->datos = BancoPeer::doSelect(new Criteria());

}
}

Vista o template:
en este caso accionSuccess.php---



quendo la vista asi:


notese que el boton hace referencia a la funcion Rep: para ello crearas dicha fuccion y antes del class principal incluiras el archivo fpdf :
include_once('fpdf.php');
class reporteActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/

public function executeIndex(sfWebRequest $request)
{
$this->forward('default', 'module');
}
public function executeAccion()
{
$this->datos = BancoPeer::doSelect(new Criteria());

}
public function executeRep()
{
}
}

el contenido de la funcion executeRep es la que sigue:
public function executeRep()
{ $var=$_POST['tipo_tarjeta'];
// armando el reporte
$pdf=new FPDF();
$pdf->Open();
$pdf->Header();
$pdf->AddPage();
//Set fonts y colores
$pdf->SetFont('Arial','B',15);
$pdf->SetFillColor(155,0,0);
$pdf->SetTextColor(0,0,265);
$pdf->Cell(190,10,'ProjectClick',1,1,'C',0,'');
$pdf->Cell(190,5,'',0,1,'C',0);

$pdf->SetTextColor(255);
$pdf->SetFillColor(155,0,0);
$pdf->SetLineWidth(.1);
$pdf->SetFont('Arial','B',8);

$pdf->Cell(8,5,'Nº',1,0,'C',1);
$pdf->Cell(36,5,'ID',1,0,'C',1);
$pdf->Cell(36,5,'Banco',1,1,'C',1);
//$pdf->Cell(80,5,'depto',1,1,'C',1);
//Consulta
$c = new Criteria();
if($var!=0)
{
$c->add(BancoPeer::IDBANCO, $var);
}
$c->addAscendingOrderByColumn(BancoPeer::NOMBRE_BANCO);
$numero_reg = BancoPeer::doCount($c);
$datos = BancoPeer::doSelect($c);
//Construir la tabla
//Restaurar fuentes y colores
$pdf->SetFont('Arial','',7);
$pdf->SetFillColor(224,235,255);
$pdf->SetTextColor(0);
$i =0;
foreach ($datos as $dat):
$i++;
$pdf->Cell(8,7,$i,1,0,'C',1);
$id =$dat->getIdBanco(); $pdf->Cell(36,7,$id,1,0,'C',1);
$descripcion = strtoupper($dat->getNombreBanco()); $pdf->Cell(36,7,$descripcion,1,1,'C',1);

endforeach;

$pdf->SetFillColor(220,220,220);
$pdf->Cell(65,5,'TOTAL Registros ',1,0,'R',1);
$pdf->Cell(15,5,$numero_reg,1,1,'C',1);
$pdf->SetFillColor(224,235);
$pdf->SetFont('Arial','',7);
$pdf->Cell(190,5,'',0,1,'C',0);
$pdf->Cell(190,5,'',0,1,'C',0);


$pdf->SetFont('Arial','B',15);
$pdf->SetFillColor(224,235,235);
$pdf->SetTextColor(0,0,265);
$pdf->Cell(190,10,' Report End ',1,1,'C',0,'www.hotmail.com');
$pdf->SetFont('Arial','',8);
$pdf->Cell(190,4,'By Pablo Medina cel:(0975 633035/ 0985 830946 )',1,1,'C',0);

$pdf->SetXY(5,300);
$pdf->Output();
return sfView::NONE;
}

de ir todo bien el resultado seria algo como esto:

1 comentario:

  1. Hola soy Elimar Polanco de Venezuela, gracias por la explicacion sencilla y muy bien explicada me funciono, very thanks!

    ResponderEliminar