Código PHP:
<?php
/*
* @Autor: Aarón García A
* @Fecha: 26 de Febrero de 2008
* @Descripción: Permite mostrar reporte detallado de cajones.
*/
session_start();
include ('../../../libs_php/fpdf/fpdf.php');
include ('../../includes/funciones.php');
include ('../../includes/informes.inc.php');
class PDF extends FPDF {
function Footer() {
//Go to 1.5 cm from bottom
$this->SetY(-15);
//Select Arial italic 8
$this->SetFont('Arial','I',8);
//Print centered page number
$this->Cell(0,10,'Página '.$this->PageNo(),0,0,'C');
}
}
$pdf = new PDF();
$pdf->AddPage();
$despNum = $_GET['despnum'];
$cajones = listarReporteCajonesDetallado($despNum);
$nroCajon = -999;
$i = 0;
for ($j = 0; $j < count($cajones); $j++){
if ($j == 0) {
$pdf->SetFont('Arial','B',10);
$pdf->Text(11,30,'Número de Despacho: ');
$pdf->Text(120,30,'Fecha de Despacho: ');
$pdf->SetFont('Arial','',10);
$pdf->Text(50,30,$cajones[$j]['DespNum']);
$pdf->Text(155,30,$cajones[$j]['DespFec']);
}
//si cambia de cajón y no es el primer registro genero resumen de cajón
//en caso contrario sigo llenando los datos del producto que contiene el cajón.
if ($cajones[$j]['EmbNumCaja'] <> $nroCajon) {
if ($j > 0){
$pdf->SetFont('Arial','B',8);
$pdf->Ln(10);
$idxAnt = $j - 1;
$pdf->Cell(40,5,'NUMERO CAJON:',0);
$pdf->Cell(15,5,$nroCajon,0,0,'R');
$pdf->Ln(5);
$pdf->Cell(40,5,'COSTO CAJON EXTERNO: $',0);
$pdf->Cell(15,5,convertirMiles($cajones[$idxAnt]['CostoCajonExterno']),0,0,'R');
$pdf->Ln(5);
$pdf->Cell(40,5,'COSTO CAJON INTERNO : $',0);
$pdf->Cell(15,5,convertirMiles($cajones[$idxAnt]['CostoCajonInterno']),0,0,'R');
$pdf->AddPage();
}
$nroCajon = $cajones[$j]['EmbNumCaja'];
$pdf->SetFont('Arial','B',10);
$pdf->Text(11,35,'Número de Cajón: ');
$pdf->Text(11,45,'Fecha Cajón: ');
$pdf->Text(11,55,'Nombre: ');
$pdf->Text(100,55,'Rut: ');
$pdf->Text(11,60,'Dirección:');
$pdf->Text(100,60,'Ciudad:');
$pdf->SetFont('Arial','',10);
$pdf->Text(42,35,$cajones[$j]['EmbNumCaja']);
$pdf->Text(35,45,$cajones[$j]['EmbFec']);
$pdf->Text(30,55,$cajones[$j]['ClieNom']);
$pdf->Text(110,55,$cajones[$j]['ClieRut']);
$pdf->Text(30,60,$cajones[$j]['ClieDir']);
$pdf->Text(115,60,$cajones[$j]['ClieCiu']);
$pdf->Ln(70);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(15,5,'Código',0);
$pdf->Cell(80,5,'Descripción',0);
$pdf->Cell(20,5,'Cantidad',0);
$pdf->Cell(20,5,'Factor',0);
$pdf->Cell(15,5,'Subt.',0);
$pdf->Cell(15,5,'Costo',0);
$pdf->Cell(15,5,'C.Flete',0);
$pdf->Line(5,85,200,85);
$pdf->Ln(7);
$pdf->SetFont('Arial','',8);
$pdf->Cell(15,5,$cajones[$j]['ProdCod'],0);
$pdf->Cell(80,5,$cajones[$j]['ProdNom'],0);
$pdf->Cell(17,5,$cajones[$j]['Det_EmbProdCant'],0,0,'R');
$pdf->Cell(20,5,$cajones[$j]['Det_EmbFactor'],0,0,'C');
$pdf->Cell(15,5,'',0);
$pdf->Cell(15,5,'',0);
$pdf->Cell(15,5,'',0);
}else{
$pdf->Ln(5);
$pdf->Cell(15,5,$cajones[$j]['ProdCod'],0);
$pdf->Cell(80,5,$cajones[$j]['ProdNom'],0);
$pdf->Cell(17,5,$cajones[$j]['Det_EmbProdCant'],0,0,'R');
$pdf->Cell(20,5,$cajones[$j]['Det_EmbFactor'],0,0,'C');
$pdf->Cell(15,5,'',0);
$pdf->Cell(15,5,'',0);
$pdf->Cell(15,5,'',0);
}
$i = $j;
}
$pdf->SetFont('Arial','B',8);
$pdf->Ln(10);
$pdf->Cell(40,5,'NUMERO CAJON:',0);
$pdf->Cell(15,5,$cajones[$i]['EmbNumCaja'],0,0,'R');
$pdf->Ln(5);
$pdf->Cell(40,5,'COSTO CAJON EXTERNO: $',0);
$pdf->Cell(15,5,convertirMiles($cajones[$i]['CostoCajonExterno']),0,0,'R');
$pdf->Ln(5);
$pdf->Cell(40,5,'COSTO CAJON INTERNO : $',0);
$pdf->Cell(15,5,convertirMiles($cajones[$i]['CostoCajonInterno']),0,0,'R');
$pdf->Output();
?>
Hay que masticarlo su resto, pero ese reporte hace salto de página con la instrucción